Стереографическая карта базовой карты Python

#python #matplotlib #matplotlib-basemap

#python #matplotlib #matplotlib-базовая карта

Вопрос:

Я хочу отобразить некоторые значения на стереографической карте (в данном случае southpole (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')
 

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

Комментарии:

1. Вы должны опубликовать свое решение в качестве ответа ниже.

Ответ №1:

Итак, я думаю, что я сам нашел ответ. Что вам нужно сделать, это преобразовать координаты широты / широты из цилиндрической проекции в координаты 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')
 

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

Ответ №2:

Как вы, кажется, уже поняли, вам нужно преобразовать ваши координаты 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)
 

Ответ №3:

Просто добавьте ключевое слово 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 являются координатами проекции карты.