python–使用convolve 对二维数据进行平滑
对于气象、海洋常用的二维网格数据,有些数据往往处理完后会有较多的噪声,需要对数据进行平滑,使得结果更耐看,这里介绍了使用卷积的方式进行二维网数据平滑,并给出了平滑效果。
结果如图所示:
import numpy as np
from scipy import signal
"""
example:
from scipy import signal
import matplotlib.pyplot as plt
import numpy as np
a = np.random.rand(100).reshape(20,5)
b = smooth2(a, 2, 2)
plt.figure(dpi=200)
plt.subplot(121,title='a')
plt.contourf(a)
plt.subplot(122,title='b')
plt.contourf(b)
"""
def smooth2(a, nx, ny):
from scipy import signal
kernel = np.ones((nx,ny)) * 1 / (nx * ny)
r = signal.convolve2d(a, kernel, mode = 'same')
return r