- 积分
- 55950
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 MeteoInfo 于 2017-3-21 17:48 编辑
MeteoInfoLab的numeric包中有interpolate模块,其中有两个类(class)用于一维和二维插值:interp1d, RectBivariateSpline。利用已知数据创建类的对象后可以像函数一样使用进行数据插值计算。
一维插值:
- from mipylib.numeric import interpolate
- x = linspace(0, 10, num=11, endpoint=True)
- y = cos(-x**2/9.0)
- f = interpolate.interp1d(x, y)
- f2 = interpolate.interp1d(x, y, kind='cubic')
- xnew = linspace(0, 10, num=100, endpoint=True)
- plot(x, y, 'bo', xnew, f(xnew), 'g-', xnew, f2(xnew), 'r--')
- ylim(-1.5, 1.2)
- legend(['data','linear','cubic'], loc='lower left')
- title('Interpolation example')
二维插值(矩形格点数据):
- from mipylib.numeric import interpolate
- x, y = meshgrid(linspace(-1, 1, 20), linspace(-1, 1, 20))
- z = (x+y) * exp(-6.0*(x*x+y*y))
- f = interpolate.RectBivariateSpline(x[0,:], y[:,0], z)
- subplot(1,2,1)
- im = imshow(x[0,:], y[:,0], z, 40)
- colorbar(im)
- xnew, ynew = meshgrid(linspace(-1, 1, 70), linspace(-1, 1, 70))
- znew = f(xnew, ynew)
- subplot(1,2,2)
- im = imshow(xnew[0,:], ynew[:,0], znew, 40)
- colorbar(im)
- suptitle('2-D grid data interpolation example')
|
|