базовая карта питона близко к северному полюсу - PullRequest
0 голосов
/ 26 ноября 2018

Я хочу нанести некоторые данные далеко на север, используя базовую карту.К сожалению, я не могу отобразить меридианы.Я думаю, что это потому, что они не показаны к северу от 80 градусов.Любой способ исправить это?

В основном я использую этот код:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(num=None, figsize=(12, 8) ) 
m = Basemap(projection='poly', resolution=None,
            lon_0=16, lat_0=81.8,
            llcrnrlon=9.5, llcrnrlat=80,
            urcrnrlon=22, urcrnrlat=82.5)

m.drawparallels(np.arange(80. ,82.5 ,0.5),labels=[True,False,False,False])
m.drawmeridians(np.arange(10.0, 22.0, 2.0),labels=[True,True,False,True])

m.drawmapboundary(fill_color='lightblue')

plt.show()

, который производит эту цифру:

enter image description here

Но я хочу, чтобы меридианы также отображались.Как это сделать?

1 Ответ

0 голосов
/ 27 ноября 2018

Ваши выводы являются одними из многих недостатков, которые существуют в базовой карте.Вот почему был создан Cartopy.Для простого обхода графика вы можете использовать функцию plot(), чтобы нарисовать недостающие меридиональные кривые следующим образом.

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(num=None, figsize=(12, 8)) 
m = Basemap(projection='poly', resolution=None,
            lon_0=16, lat_0=81.8,
            llcrnrlon=9.5, llcrnrlat=80,
            urcrnrlon=22, urcrnrlat=82.5)

m.drawparallels(np.arange(80.0, 83.0, 0.5), labels=[True,False,False,False])

# this does not fully work, only labels are rendered, but not lines
m.drawmeridians(np.arange(10.0, 22.0, 2.0), labels=[True,True,False,True])

# a workaround to get meridians plotted
phs = np.arange(80, 83, 0.05)
for ea in np.arange(8.0, 22.0, 2.0):
    lds = np.ones(len(phs))*ea
    m.plot(lds, phs, latlon=True, color="k", linewidth=0.5)

m.drawmapboundary(fill_color='lightblue')

plt.show()

Полученный график:

enter image description here

...