在xarray中从点到点获取对角线上的所有网格值
Get all grid values on a diagonal line from point to point in xarray
我正在寻找 select 来自 xarray
数据集的所有数据,这些数据位于一个点和另一个点之间。这当然很容易 sel
例如,使用基于 lat/lon 网格的数据集从全球数据集到大西洋海岸线的子集我可以做到 ds_geo_subset = ds.sel( lat=slice(42, 20), lon=slice(-85,-65))
但我想 select 湾流前沿的所有数据,基本上是从点(-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'))
Here 是绘制 cross-section.
的一个很好的例子
我正在寻找 select 来自 xarray
数据集的所有数据,这些数据位于一个点和另一个点之间。这当然很容易 sel
例如,使用基于 lat/lon 网格的数据集从全球数据集到大西洋海岸线的子集我可以做到 ds_geo_subset = ds.sel( lat=slice(42, 20), lon=slice(-85,-65))
但我想 select 湾流前沿的所有数据,基本上是从点(-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'))
Here 是绘制 cross-section.
的一个很好的例子