Построение двухмерных массивов данных с использованием контура и контура - почему использование контура убивает скрипт? - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь нанести контуры высотой 500 МБ и заполненные контуры значений завихренности 500 МБ на карте США. h500 и vort оба являются двумерными массивами формы (721,1440).

import numpy as np
import pygrib
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.ticker 
import LongitudeFormatter, LatitudeFormatter
from cartopy.util import add_cyclic_point
import cartopy.feature as cfeature
from datetime import datetime

date = datetime.today().strftime('%Y%m%d')

grib = 'gfs'+date+'.f012'
grbs=pygrib.open(grib)

grb = grbs.select(name='Geopotential Height')[0]
h500 = grb.values
grb1 = grbs.select(name='Absolute vorticity')[0]
vort = grb1.values
lats,lons = grb.latlons()

ax0 = plt.axes(projection=ccrs.PlateCarree())

height=ax0.contour(lons,lats,h500[:,:],levels=30,extend='both', 
                   colors='black',transform=ccrs.PlateCarree())
vorticity = ax0.contourf(lons,lats,vort,levels=30,extend='both', 
                         transform=ccrs.PlateCarree())

ax0.set_extent([230,300,20,70],ccrs.PlateCarree())
ax0.coastlines()
ax0.add_feature(cfeature.BORDERS)
ax0.add_feature(cfeature.STATES)
ax0.set_title('500mb(dam) Height & Absolute Vorticity(s-1)\n'+date+'valid 12Z')
plt.savefig(date+'12Z 500mbHeight_Vorticity_US.png')
plt.show()

Код работает нормально, когда я использую ax0.contour. Когда я пытаюсь использовать ax0.contourf или plt.contourf, код не выполняется, он отключается и не генерирует сообщение об ошибке или каких-либо трассировок. Я прочитал документацию по matplotlib для contourf, и для меня нет четкой причины, почему код не должен работать правильно.

...