我是MetPy的忠实粉丝,曾看过他们的插值函数(https://unidata.github.io/MetPy/latest/api/generated/metpy.interpolate.html),但找不到我想要的
我正在寻找一个函数,将栅格2D(lon和lat)或3D(lon、lat和垂直水平)气候数据字段插值到特定的地理位置(lat/lon)
该函数将包含5个参数:一个2D/3D数据变量和相关的纬度和经度变量,以及两个所需的纬度和经度坐标值。返回的是单个值(对于二维字段)或垂直轮廓(对于三维字段)
我基本上是在寻找一个与旧的Basemap函数bm.interp()等价的函数。Cartopy没有等效项。CDO(气候数据操作符)操作符'remapbil,lon=/lat='也做同样的事情,但是直接从命令行处理netCDF文件,我正在寻找Python解决方案
我认为这样一个函数将是MetPy库的有用补充,因为它允许将网格数据(例如,模型或卫星数据)与点观测值(例如,来自气象站或无线电探空仪剖面的观测值)进行比较(此处仅视为垂直剖面)
你能给我指一下正确的方向吗
这可以通过我的nctoolkit包(https://nctoolkit.readthedocs.io/en/latest/)轻松完成。它使用CDO作为后端,默认为双线性插值。下面将把.nc文件重新栅格化为单个网格点,然后将其转换为xarray数据集
如果您已经在使用多维netCDF文件,并且想要一个Python解决方案,那么再添加一个解决方案:查看xarray的interpolation tools。它们支持多维的、基于标签的插值,其用法类似于xarray的索引接口。它们构建在前面提到的相同的
scipy.interpolate
之上,并且xarray也是MetPy依赖项我认为您所寻找的已经存在于
scipy.interpolate
(scipy是MetPy的依赖项之一)。在这里,我们可以使用interpn
在n维中进行线性插值:相关问题 更多 >
编程相关推荐