在Python上使用GRIDDATA的未知内插方法数组 [英] Unknown interpolation method array using griddata on PYTHON

查看:0
本文介绍了在Python上使用GRIDDATA的未知内插方法数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经花了两天时间寻找答案,但我总是遇到同样的错误,我不明白为什么。无论我做什么,我都会收到错误"ValueError:未知的一维数据内插方法数组"

我正在尝试使用网格数据将值插值到更精细的网格

以下是我的代码

import numpy as np

lon_ww3=array([[-10. , -10. , -10. , -10. , -10. , -10. , -10. , -10. , -10. ],
               [ -9.5,  -9.5,  -9.5,  -9.5,  -9.5,  -9.5,  -9.5,  -9.5,  -9.5],
               [ -9. ,  -9. ,  -9. ,  -9. ,  -9. ,  -9. ,  -9. ,  -9. ,  -9. ],
               [ -8.5,  -8.5,  -8.5,  -8.5,  -8.5,  -8.5,  -8.5,  -8.5,  -8.5]])

lat_ww3=array([[ 38. ,  38.5,  39. ,  39.5,  40. ,  40.5,  41. ,  41.5,  42. ],
               [ 38. ,  38.5,  39. ,  39.5,  40. ,  40.5,  41. ,  41.5,  42. ],
               [ 38. ,  38.5,  39. ,  39.5,  40. ,  40.5,  41. ,  41.5,  42. ],
               [ 38. ,  38.5,  39. ,  39.5,  40. ,  40.5,  41. ,  41.5,  42. ]])

Z=np.random.random_sample((4,9))*3

#Create finer mesh grid

lon_pn=[-10,-9]
lat_pn=[38,42]

lon_points=np.arange(lon_pn[0],lon_pn[1]+(300./3600),300./3600)[:-1]
lat_points=np.arange(lat_pn[0],lat_pn[1]+(300./3600),300./3600)[:-1]

LON_grid,LAT_grid=np.meshgrid(lon_points,lat_points)

from scipy.interpolate import griddata

Z_interp=griddata(lon_ww3.ravel(),lat_ww3.ravel(), Z.ravel(),LON_grid,LAT_grid)

我也试过了,显然没有成功:

Z_interp=griddata(lon_ww3.ravel(),lat_ww3.ravel(), Z.ravel(),lon_points,lat_points)

我能想到的几乎每一种可能的变化...每次我都收到相同的错误:

"ValueError:第n维数据的未知内插方法数组[LON_GRID]"

有人能尝试复制代码并帮助我找出发生了什么吗?

提前谢谢

保罗

推荐答案

您的griddata用法错误。

将这些行添加到您的代码示例中。

xi = np.c_[lon_ww3.ravel(),lat_ww3.ravel()]
xx = np.c_[LON_grid.ravel(),LAT_grid.ravel()]

Z_interp=griddata(xi,Z.ravel(),xx)

xi是原始网格点的n,D向量。 xx是插值点的N,D向量。

np.c_是坐标每个方向的列堆栈。

这篇关于在Python上使用GRIDDATA的未知内插方法数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆