2016-06-20 4 views
2

У меня есть xarray DataArray, который идет от 0 до 360 долготы и от -90 до 90 широт. если я сюжет его m.imshow без указания широты, данные смещена с карты на 180 градусов:Как обернуть данные на основе базовой карты?

m = Basemap() 
m.drawcoastlines() 
m.imshow(mean['Qle'].T) 

basemap with offset imshow

или я могу сделать это с m.pcolormesh(x=mean.lon, y=mean.lat, data=mean['Qle'].T), и я получаю это:

basemap with non-wrapping pcolormesh

Каков наилучший способ обертывания данных? Мне по-прежнему нужен макет карты по умолчанию, а Африка посередине.

+0

@HanZhengzu: да? '[:: - 1]' просто переворачивает топоры, поэтому вся вещь перевернута и возвращается на передний план ... она ничего не сдвигает. – naught101

+0

Извините, я неправильно понимаю вашу проблему. –

ответ

2

А, нашел. pcolormesh имеет latlon аргумент, который автоматически сдвигает данные:

m.pcolormesh(x=mean.lon, y=mean.lat, data=mean['Qle'].T, latlon=True) 

pcolormesh with shifted data

+0

В чем разница между вашей подпрограммой 'pcolormesh' и вашим ответом. Я не вижу их несоответствия, но воспроизвожу маловероятную цифру. –

+0

@HanZhengzu: Ahh .. вставил неправильную линию. теперь исправлено. – naught101