Я пытаюсь построить некоторые данные об осадках.Код, который я использую, немного изменен из этого кода здесь .
Код работает нормально, когда я строю графики, используя данные с сайта, использованного в ссылке, но когда я использую другойУ меня есть набор данных, он не строится.Самое большое различие между этим набором данных и набором данных, используемым в примере ссылки, состоит в том, что мой набор данных - это глобальные данные.Набор данных, который я использую, также является netcdf, не маскируется, и я загружаю его так же, как в примере.
Я знаком с данными и точно знаю, что должен что-то увидеть, а значения контуров, использованные в примере, являются разумными для этого другого набора данных, который я использую.
Мой код такой же, ожидайте некоторых изменений в разделе, где изображена фигура (ниже), которую я изменил, чтобы она отображала конкретную область вместо CONUS, как в примере (используя ax.set_extent
),
Когда я не устанавливаю экстент, кажется, что он отображает данные, но тогда ни одна из границ (береговые линии, линии состояния и т. Д.) Не отображается.Исходя из этого, я предполагаю, что это что-то с самим набором данных, что-то с set_extent
, или с комбинацией вещей, которая заставляет его работать неправильно.Я не получаю никаких ошибок при планировании, так или иначе.Тем не менее, может быть что-то еще, что я скучаю с этим.
В конце я фактически сравниваю свой набор данных с набором данных, использованным в примере ссылки, поэтому я хотел бы, чтобы они были в той же проекции.
Спасибо за понимание и дайте мне знать, если вам нужна дополнительная информация о самих данных!
fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(1, 1, 1, projection=proj)
ax.set_extent((x1,x0,y0,y1))
# draw coastlines, state and country boundaries, edge of map.
ax.coastlines()
ax.add_feature(cfeature.BORDERS)
ax.add_feature(cfeature.STATES)
cs1 = ax.contourf(ym, xm, data1, clevs, cmap=cmap, norm=norm)
# add colorbar.
cbar = plt.colorbar(cs1, orientation='horizontal')
#cbar.set_label(data1.units)
#ax.set_title(prcpvar.long_name + ' for period ending ' + nc.creation_time)
plt.show()
plt.savefig('ncep_model')
Результаты, когда экстент не включен в код выше: ![enter image description here](https://i.stack.imgur.com/w52gy.png)
Редактировать 1:
Я добавлю, что мне удалось успешно построить данные с помощью этого кода ниже (из шаблона по умолчанию, который я сделал).Я пытался изменить проекцию на стереографическую, но у меня возникли проблемы с настройкой правильного построения графика с использованием базовой карты, потому что я никогда не использовал его раньше.В качестве альтернативы, если вы не можете выяснить ошибку с помощью приведенного выше кода и вместо этого могли бы помочь с изменением проекции для приведенного ниже кода, я также принял бы это.На данный момент я просто хочу, чтобы мои данные отображались правильно в правильной проекции, которую я хочу!
(я также включил результаты для кода ниже, чтобы подтвердить, что данные должны отображаться в этом месте)
LLlat = 40.
LLlon = 263.
URlat = 44.
URlon = 270.
lat = xm
lon = ym
%matplotlib inline
plt.figure(1,figsize=(10, 8),)
plt.title('Convective Precipitation 8/28/2018 0Z (in) Valid July 2018')
map = Basemap(projection='cyl',\
llcrnrlat=LLlat,urcrnrlat=URlat,\
llcrnrlon=LLlon,urcrnrlon=URlon,\
rsphere=6371200.,resolution='i')
map.drawcoastlines(linewidth=0.5) # Draw some coastlines
map.drawstates(linewidth=0.5) # Draw some coastlines
map.drawrivers(color='#000000')
map.drawparallels(np.arange(-90.,91.,30),labels=[1,0,0,0]) # Drawing lines of latitude
map.drawmeridians(np.arange(0.,330.,60),labels=[0,0,0,1]) # Drawing lines of longitude
lons,lats = map(lon,lat) # Setting up the grid in cylindrical coords.
cs = plt.contourf(lons,lats,data1[:,:], clevs,cmap=cmap, norm=norm)
cb = plt.colorbar(cs,orientation='horizontal')
plt.show()
![enter image description here](https://i.stack.imgur.com/un63M.png)
Редактировать 2:
Я добавил полученный график, когда не включаю set_extent
в первый фрагмент кода (не знаю, поможет ли этовообще, но подумал, что я тоже это включу)