Недавно я переключился с базовой карты на Cartopy, и у меня возникли проблемы с нанесением векторов ветра. У меня есть северополярная стереографическая проекция (central_longitude = -100.0) с протяженностью [-180,180,10,90]. У меня есть набор данных netCDF со значениями ветра u, v каждые 0,5 градуса широты и долготы.
Если я рисую зазубрины с помощью slice, чтобы вручную пропустить определенное число (поскольку данные слишком плотные, чтобы отобразить их все), я получаю то, что кажется правильным представлением поля (см. Первое изображение ниже):
sknum = 15
skip=(slice(None,None,sknum),slice(None,None,sknum))
ax.barbs(lons[skip], lats[skip], u[skip],v[skip], length=6,
sizes=dict(emptybarb=0.25, spacing=.2, height=0.5),
zorder = 20,
linewidth=0.95, transform= ccrs.PlateCarree())
Однако этот метод выглядит немного неестественно и слишком плотно у столба. Использование функции cartopy regrid_shape дает мне худшую ошибку (см. Второе изображение), когда строки одного и того же вектора повторяются снова и снова.
ax.barbs(lons, lats, u,v, length=6,
sizes=dict(emptybarb=0.25, spacing=.2, height=0.5),
zorder = 20,
linewidth=0.95, transform= ccrs.PlateCarree(), regrid_shape=20)
Является ли это ошибкой для regrid_shape в этой проекции, я что-то делаю не так и / или есть ли другой способ получить естественно выглядящие векторы?