如何使用 Xarray 数据集在 MetPy 中创建直线横截面图?

问题描述 投票:0回答:1

我正在尝试使用 MetPy 和 xarray 为存储在数据 xarray.Dataset 中的变量创建横截面图。但是,当使用经纬度对时,横截面线会显得弯曲,如附图所示。我想制作一个直线横截面。

这是用于解析数据和创建横截面的代码片段:

# Parse the data as MetPy for cross-sectional analysis
data = data.metpy.parse_cf()

# Longitude-latitude pair for cross-section analysis
start = (30.0, -90.0)
end = (60, 60.0)

# Create the cross-section
cross = cross_section(data, start, end).set_coords(('lat', 'lon'))

这是绘图代码:

# Preliminary plot
fig = plt.figure(1, figsize=(8, 6))
ax = plt.axes()

# Plot using contourf
sf_contour = ax.contourf(cross['lon'], cross['time'], cross['sf_ano'],
                         levels=np.arange(-3.4, 3.8, .4)*1e7, cmap='RdBu_r',
                         extend='both')
sf_colorbar = fig.colorbar(sf_contour)

# Adjust the y-axis
ax.set_ylim(cross['time'].max(), cross['time'].min())

我还附上了一张显示当前输出的图像,其中横截面线是弯曲的。我怎样才能使它成为直线横截面?

plot

data

cross

python-xarray cartopy metpy
1个回答
0
投票

MetPy 的

cross_section
函数始终沿纬度/经度空间中起点和终点之间的测地线(“大圆”)进行切片。这表示真实纬度/经度空间中这些点(球体上的点)之间的最短路径。

MetPy 目前不支持在投影空间中执行横截面。如果这对您很重要,我建议打开一个功能请求,或者更好的是,贡献一个拉取请求

© www.soinside.com 2019 - 2024. All rights reserved.