作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 MetPy 的忠实粉丝,查看了它们的插值函数 (https://unidata.github.io/MetPy/latest/api/generated/metpy.interpolate.html),但找不到我要找的东西。
我正在寻找将网格化的 2D(经度和纬度)或 3D(经度、纬度和垂直水平)气候数据字段插入到特定地理位置(纬度/经度)的函数。
该函数将采用 5 个参数:一个 2D/3D 数据变量和相关的纬度和经度变量,以及两个所需的纬度和经度坐标值。返回的是单个值(对于 2D 字段)或垂直剖面(对于 3D 字段)。
我基本上是在寻找与旧 basemap 函数 bm.interp() 等效的函数。 Cartopy 没有等价物。 CDO(气候数据运算符)运算符 'remapbil,lon=/lat=' 做同样的事情,但直接从命令行处理 netCDF 文件,我正在寻找 Python 解决方案。
我认为这样的函数将是对 MetPy 库的有用补充,因为它允许将网格数据(例如,模型或卫星数据)与来自气象站或 radio 探空仪剖面(仅视为垂直剖面)的点观测进行比较在这里)。
你能给我指出正确的方向吗?
最佳答案
我认为您要查找的内容已经存在于 scipy.interpolate
中(scipy 是 MetPy 的依赖项之一)。这里我们可以使用interpn
对n维进行线性插值:
import numpy as np
from scipy.interpolate import interpn
# Array of synthetic grid to interpolate--ordered z,y,x
a = np.arange(24).reshape(2, 3, 4)
# Locations of grid points along each dimension
z = np.array([1.5, 2.5])
y = np.array([-1., 0., 1.])
x = np.array([-3.5, -1, 1, 3.5])
interpn((z, y, x), a, (2., 0.5, 2.))
关于python - 将网格化数据插值到地理位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64959563/
我是一名优秀的程序员,十分优秀!