Ваш аргумент преобразования для imshow
почти наверняка неверен. Экстерьер изображения (2.0715, 15.72, 46.9526, 54.5877)
в стереографической проекции северной полярной области - это очень маленький регион вблизи Северного полюса, который находится за пределами желаемого экстента карты. Из контекста это выглядит так, будто экстент указан в географических координатах, и в этом случае решение должно использовать transform=ccrs.PlateCarree()
в вашем вызове imshow
.
В общем, я рекомендую четко указывать, какая у вас система координатв любое время, поэтому я хотел бы предложить
def create_map(image):
res = '10m'
proj = ccrs.NorthPolarStereo(central_longitude=10.0)
img = plt.imread(image)
img_extent = (2.0715, 15.72, 46.9526, 54.5877)
ax = plt.axes(projection = proj)
# EXPLICIT CRS HERE:
ax.set_extent([3.0889, 17.1128, 46.1827, 55.5482], crs=ccrs.PlateCarree())
land_10m = cfeature.NaturalEarthFeature('physical', 'land', res,
edgecolor = 'face',
facecolor=cfeature.COLORS['land'],
zorder=0)
state_provinces_10m = cfeature.NaturalEarthFeature(category = 'cultural',
name = 'admin_1_states_provinces_lines',
scale = res,
facecolor = none)
ax.add_feature(state_provinces_10m, edgecolor='gray')
ax.add_feature(land_10m)
ax.add_feature(cartopy.feature.BORDERS.with_scale(res), linestyle='-', linewith=1)
ax.add_feature(cartopy.feature.COASTLINE.with_scale(res), linestyle='-')
# USE CORRECT CRS HERE
plt.imshow(img, origin='upper', extent=img_extent, transform=ccrs.PlateCarree())
plt.show()
Эта документация содержит руководство по преобразованиям / проекциям в картопах: https://scitools.org.uk/cartopy/docs/latest/tutorials/understanding_transform.html