Картопия Азимутальная проекция на равном расстоянии: увеличение области и береговых линий

Я пытаюсь нанести некоторые данные на проекцию AzimuthalEquidistant, используя картографию. Однако это создает у меня несколько проблем. Во-первых, береговые линии больше не отображаются для этого типа проекции. Не уверен, что это мой код или проблема с Картопией. Я также заметил, что если я использую преобразование ccrs.PlateCarree () в команде pcolormesh, береговые линии действительно отображаются, но тогда, по-видимому, мои данные относятся к неправильному типу предварительного прогноза?

Во-вторых, я бы предпочел, чтобы граница оси была круговой после построения данных, можно ли для этого использовать set_extent или другую подобную функцию? Приведенный ниже код должен воспроизводить проблемы, кружок показывает, как я бы хотел, чтобы пансионат выглядел.

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import matplotlib.patches as mpatches

clat = 55.0
clon = -8.0
lons = np.arange(clon-15,clon+16,0.5)
lats = np.arange(clat-15,clat+16,0.5)
d = np.random.rand(lons.shape[0],lats.shape[0])

trans = ccrs.AzimuthalEquidistant(central_latitude=clat, central_longitude=clon)

ax = plt.axes(projection=trans)
ax.coastlines(resolution='10m')

CB=ax.pcolormesh(lons-0.25, lats-0.25, d.T, 
                 cmap=plt.cm.viridis, alpha=0.5,
                 transform=trans)#ccrs.PlateCarree())

p1 = mpatches.Circle((clon,clat), radius=15, color='k', lw=5, fill=False,
                     transform=trans)
ax.add_patch(p1)

person Dave    schedule 31.07.2017    source источник


Ответы (1)


Если данные, которые вы строите, находятся в координатах широта / долгота, то правильным значением для ключевого слова transform действительно является ccrs.PlateCarree(). Это обычная проблема для новых пользователей. Аргумент transform сообщает cartopy, в каких координатах находятся ваши данные, и полностью не зависит от projection, на котором вы хотите построить график.

Чтобы сюжет получился круглым, вам нужно установить границу самостоятельно. В документации Cartopy есть несколько примеров этого: http://scitools.org.uk/cartopy/docs/latest/examples/always_circular_stereo.html и http://scitools.org.uk/cartopy/docs/latest/examples/star_shaped_boundary.html.

person ajdawson    schedule 31.07.2017