У меня есть данные спутниковой развертки, которые я пытаюсь построить на базовой карте с помощью pcolormesh.Использование python Basemap.pcolormesh с немонотонными прыжками долготы
Данные организованы как 2d-матрица (bTemp) с двумя соответствующими 2D-массивами lat и lon, которые дают соответствующую широту и долготу в каждой точке. Таким образом, мой код построения выглядит как
m = Basemap()
m.drawcoastlines()
m.pcolormesh(lon, lat, bTemp)
Однако это не совсем дает мне результат, который я ищу. Большая карта проходит по карте.
Я думаю, что причиной этого является то, что моя долгота увеличивается немонотонно вдоль данного луча в точке обертывания.
Вот сюжет на луче в моей долготе массиве
plot(lon[100,:])
Что бы лучший способ исправить это будет, так что pcolormesh сюжет просто переходит к другой стороне карту без соединения двух точек с заполненной областью?
Это не совсем дает результат, который я хочу. Вместо этого в итоге получается плавное увеличение с -180 до 180, оно просто добавляет 360 к моим номерам после прыжка. Таким образом, я получаю плавное увеличение, но это от ~ 90 до ~ 240 градусов .... по существу, как вы взяли раздел моего сюжета линии выше после прыжка и просто подняли его, чтобы соответствовать остальной части линии , Итак, я заканчиваю значениями долготы> 180, базовая карта которых просто не строится. – hm8
@ user3826115 да, это то, что он должен делать. Все разумные представления углов на сфере должны просто обертываться должным образом, я не знал, что базовая карта не делает этого:/В этом случае у вас нет другого шанса, чем циклически изменять порядок данных. Опция грубой силы: 'ind = np.where (np.diff (lon [i,:]) <0) [0] +1; lon [i ,:] = np.concatenate ((lon [i, ind:], lon [i,: ind])) ', циклическая перестановка. Вы также можете попробовать что ['addcyclic'] (http://matplotlib.org/basemap/api/basemap_api.html#mpl_toolkits.basemap.addcyclic), возможно, это может быть то, что вам нужно после использования распаковки, я не нашел документы очищены. –