Python 获取X阵列中点到点的对角线上的所有栅格值

Python 获取X阵列中点到点的对角线上的所有栅格值,python,numpy,python-xarray,metpy,Python,Numpy,Python Xarray,Metpy,我希望从介于一点和另一点之间的xarray数据集中选择所有数据。使用sel当然很容易,例如,使用基于lat/lon网格的数据集,从全球数据集到大西洋海岸线的子集,我可以做ds_geo_subset=ds.sel(lat=slice(42,20),lon=slice(-85,-65))但我想选择沿墨西哥湾流前缘的所有数据,基本上是从点到点(-78 lon,32 lat)到点(-72 lon,36 lat),但我不知道如何做到这一点。最好的方法是提供完整的点数据集并从每个点获取数据,还是将这两个端点

我希望从介于一点和另一点之间的
xarray
数据集中选择所有数据。使用
sel
当然很容易,例如,使用基于lat/lon网格的数据集,从全球数据集到大西洋海岸线的子集,我可以做
ds_geo_subset=ds.sel(lat=slice(42,20),lon=slice(-85,-65))
但我想选择沿墨西哥湾流前缘的所有数据,基本上是从点到点(-78 lon,32 lat)到点(-72 lon,36 lat),但我不知道如何做到这一点。最好的方法是提供完整的点数据集并从每个点获取数据,还是将这两个端点提供给xarray并返回插值数据?

正如上面的评论所建议的,
Metpy
有一个特定的功能,可以方便地完成此任务

from metpy.interpolate import cross_section

data = xr.open_dataset('my_data')

# Define start and end points:

start = (-78, 32)
end = (-72, 36)
cross = cross_section(data, start, end).set_coords(('lat', 'lon'))

这是绘制横截面的一个很好的示例。

您可以在此处找到类似问题的解决方案: