爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5304|回复: 3

MeteoInfoLab脚本示例:数据插值

[复制链接]

新浪微博达人勋

发表于 2017-3-21 17:27:43 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 MeteoInfo 于 2017-3-21 17:48 编辑

MeteoInfoLab的numeric包中有interpolate模块,其中有两个类(class)用于一维和二维插值:interp1d, RectBivariateSpline。利用已知数据创建类的对象后可以像函数一样使用进行数据插值计算。

一维插值:
  1. from mipylib.numeric import interpolate

  2. x = linspace(0, 10, num=11, endpoint=True)
  3. y = cos(-x**2/9.0)
  4. f = interpolate.interp1d(x, y)
  5. f2 = interpolate.interp1d(x, y, kind='cubic')

  6. xnew = linspace(0, 10, num=100, endpoint=True)
  7. plot(x, y, 'bo', xnew, f(xnew), 'g-', xnew, f2(xnew), 'r--')
  8. ylim(-1.5, 1.2)
  9. legend(['data','linear','cubic'], loc='lower left')
  10. title('Interpolation example')


interp1d.png

二维插值(矩形格点数据):
  1. from mipylib.numeric import interpolate

  2. x, y = meshgrid(linspace(-1, 1, 20), linspace(-1, 1, 20))
  3. z = (x+y) * exp(-6.0*(x*x+y*y))
  4. f = interpolate.RectBivariateSpline(x[0,:], y[:,0], z)

  5. subplot(1,2,1)
  6. im = imshow(x[0,:], y[:,0], z, 40)
  7. colorbar(im)

  8. xnew, ynew = meshgrid(linspace(-1, 1, 70), linspace(-1, 1, 70))
  9. znew = f(xnew, ynew)
  10. subplot(1,2,2)
  11. im = imshow(xnew[0,:], ynew[:,0], znew, 40)
  12. colorbar(im)
  13. suptitle('2-D grid data interpolation example')


rect_bivariate_spline.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-3-22 08:44:16 | 显示全部楼层
王老师威武
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-10 09:33:08 | 显示全部楼层
学习了。。。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2018-1-25 19:54:56 | 显示全部楼层
学习了。。。谢谢楼主{:5_213:}
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表