Базовая карта Python стереографическая карта - PullRequest
7 голосов
/ 25 октября 2011

Я хочу отобразить некоторые значения на стереографической карте (в данном случае южный полюс ( spstere )). Если я отображаю их на цилиндрической карте ( cyl ), все в порядке:

m = Basemap(projection='cyl',llcrnrlon=-180,llcrnrlat=-90,urcrnrlon=180,urcrnrlat=90,resolution='i') 
CS = m.scatter(lon2,lat2,c=BT2,edgecolors='none',s=sz,cmap='gray')

Теперь мне нужны те же значения на стереографической карте южного полюса, но я не могу заставить ее работать:

m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
CS = m.scatter(lon2,lat2,c=BT2,edgecolors='none',s=sz,cmap='gray')

Что бы я ни делал, я рисую только континенты, но без данных.

Ответы [ 3 ]

3 голосов
/ 15 июня 2012

Так что я думаю, что нашел ответ сам.Вам нужно преобразовать координаты широты / долготы из цилиндрической проекции в координаты x / y, принадлежащие стереографической проекции.Это довольно просто, после определения базовой карты следующим образом:

m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')

просто выполните преобразование следующим образом:

x,y = m(lon2,lat2)

и, наконец, нарисуйте карту с координатами x / y, например:

CS = m.scatter(x,y,c=BT2,edgecolors='none',s=sz,cmap='gray')

Это работает для меня:)

1 голос
/ 15 июня 2012

Как вы уже поняли, вам нужно преобразовать ваши координаты x и y в координаты "карты" (соответствующую документацию можно найти по адресу http://matplotlib.github.com/basemap/users/mapcoords.html):

spstereo = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
x, y = spstereo(lons, lats)
spstereo.scatter(x, y)
0 голосов
/ 17 марта 2015

Просто добавьте ключевое слово latlon

m = Basemap(projection='spstere',boundinglat=-10,lon_0=180,resolution='c')
CS = m.scatter(lon2,lat2,c=BT2,s=sz,cmap='gray', latlon=True)

из документации :

Если ключевое слово latlon установлено в True, x, y интерпретируются какдолгота и широта в градусах.Данные и долготы автоматически сдвигаются, чтобы соответствовать области проекции карты для цилиндрической и псевдоцилиндрической проекций, а x, y преобразуются в координаты проекции карты.Если значение latlon равно False (по умолчанию), x и y предполагаются как координаты проекции карты.

...