Я пытаюсь перейти с базовой карты на демонстрационные примеры в виде карт. У меня есть простой код, используя как coastlines () и contourf (). Я могу получить оба отдельно, но не одновременно. Набор данных представляет собой файл netcdf, содержащий данные о температуре поверхности моря западной части Средиземного моря. Код:
import numpy as np
from netCDF4 import Dataset
import cartopy
import matplotlib.pyplot as plt
# DATA
data = Dataset('20190715.0504.n19.nc','r')
lon = data.variables['lon'][:]
lat = data.variables['lat'][:]
sst = data.variables['mcsst'][0,:,:].squeeze()
xxT,yyT = np.meshgrid(lon,lat)
# PLOT
fig = plt.figure(figsize=(10, 5))
ax1 = fig.add_axes([0.01,0.01,0.98,0.98],projection=cartopy.crs.Mercator())
ax1.coastlines()
#ax1.contourf(xxT,yyT,sst)
ax1.set_extent([16.5, -15.0, 35.0, 46.5])
plt.show()
С этим кодом я получаю:
Если я использую:
#ax1.coastlines()
ax1.contourf(xxT,yyT,sst)
ax1.set_extent([16.5, -15.0, 35.0, 46.5])
У меня белый прямоугольник.
Если я использую:
#ax1.coastlines()
ax1.contourf(xxT,yyT,sst)
ax1.set_extent([16.5,-15.0,35.0,46.5],crs=cartopy.crs.Mercator())
Я получаю контурные данные.
Но с обоими:
ax1.coastlines()
ax1.contourf(xxT,yyT,sst)
ax1.set_extent([16.5,-15.0,35.0,46.5],crs=cartopy.crs.Mercator())
контур в порядке! но без береговой линии. И если наконец
ax1.coastlines()
ax1.contourf(xxT,yyT,sst)
ax1.set_extent([16.5,-15.0,35.0,46.5])
показаны только береговые линии, а не контур! Я пытаюсь понять, как мне поступить, потому что возникли проблемы при попытке включить это в GUI с опциями показать / скрыть линии, особенности и т. Д. c. На всякий случай я использую Python 3.7.4, Cartopy 0.17, proj4 5.2, matplotlib 3.1.1. Спасибо!