使用 MetPy 生成等高线图的问题

Problem with generating Countour Plot using MetPy

我正在尝试使用 MetPy 和 ContourPlot 生成等压线。 我使用来自我自己的 netCDF 文件的压力数据。背景热图生成正确,但对于轮廓,似乎存在一种插值错误。有谁知道如何解决水平白线的问题?

这是我用来生成情节的代码:

cams = xr.open_dataset('20191129.nc')
contour = ContourPlot(clabels=True)
contour.data = cams
contour.field = 'PN'
contour.time = datetime.strptime('2020-11-29 00:00', '%Y-%m-%d %H:%M')
contour.level = units.Quantity(1000,units.hPa)
contour.linecolor = 'white'
contour.contours = 10

img = ImagePlot(colormap='jet',colorbar='horizontal')
img.data = cams
img.field = 'PN'
img.level = units.Quantity(1000,units.hPa)
img.time = datetime.strptime('2020-11-29 00:00', '%Y-%m-%d %H:%M')

panel = MapPanel()
panel.layers = ['coastline', 'borders', 'states',  'ocean', 'land']    
panel.title = 'Pressure @ Sea level '+date_str+' 00:00 UTC'
panel.plots = [contour,img]

pc = PanelContainer()
pc.size = (10, 8)
pc.panels = [panel]

pc.save('tt.png')

看来我在 MetPy 代码中发现了一个错误,该错误在绘制覆盖零子午线两侧的数据时出现: https://github.com/Unidata/MetPy/pull/1595

临时解决方案是编辑文件 src/metpy/plots/declarative.py 并替换行:

x = x[:, 0] % 360

x = x[:, 0]

不,它工作正常。