爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 18515|回复: 2

[求助] Python多维插值

[复制链接]

新浪微博达人勋

发表于 2019-7-1 14:44:36 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 callmezoro 于 2020-11-20 15:33 编辑

以前一直用的python的interp2d插值,这次工作需要一个四维插值,找了一下scipy的interpolate列表,发现一个interpnd的module,打算试一试,但是遇到了报错,我首先自己排查了一下并没有命名为interpnd的函数或者module
之后呢我又help了一下这个函数,并和我常用的interp2d进行了一下对比,结果如图,还是没有找到解决方案我就去看了一下那个interpnd的文件,全是乱码

不知道这个具体问题应该怎么解决

附件是我的数据,程序语句是:
from scipy import interpolate
f=interpolate.interpnd(lon,lat,depth,time,rho,kind='linear')

实际上我用别的三维数据用这个interpnd还是会报错,有没有解决办法啊或者有其他的多维插值的办法

help.npz

21.51 MB, 下载次数: 8, 下载积分: 金钱 -5

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

新浪微博达人勋

 楼主| 发表于 2019-7-1 18:18:01 | 显示全部楼层
我最后用循环写的二维插值,简化了一部分计算
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-21 19:56:07 | 显示全部楼层
我也是四维数组插值,写的循环不知道对不对
  1. from scipy import interpolate
  2. d2=np.zeros((684,19,35,180),dtype=float)
  3. for i in range(0,684):
  4.     for j in range(0,19):
  5.         f=interpolate.interp2d(x1,y1,zg11[i,j,:,:],kind='linear')
  6.     #x2和y2是待插值的经纬度,现在用0.5的分辨率组成的网格
  7.         lon,lat1 =  np.arange(0,360,2),np.arange(20,90,2)
  8.     #直接使用f函数把x2和y2上的格点插值出来
  9.         d2[i,j,:,:] = f(lon,lat1)
  10.     #输出结果看看
  11. print(d2.shape)
复制代码
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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