Вы можете передать минимальное значение от -360
до llcrnrlon
и максимальное значение от 720
до urcrnrlon
(с большей степенью Basemap
будет жаловаться).При такой настройке некоторые функции Basemap
создают повторяющиеся изображения.Может быть, лучше просто показать пример:
from matplotlib import pyplot as plt
from mpl_toolkits import basemap
import numpy as np
fig, ax = plt.subplots(figsize=(15,6))
lonmin = -360
lonmax = 720
latmin = -90
latmax = 90
##setting up the map
bmp = basemap.Basemap(
ax=ax,
llcrnrlat=latmin, llcrnrlon=lonmin,
urcrnrlat=latmax, urcrnrlon=lonmax,
)
bmp.drawcoastlines()
bmp.drawcountries()
bmp.drawmapboundary(fill_color='cyan')
bmp.fillcontinents(color='coral')
##bmp.arcgisimage() <-- does not work
##bmp.bluemarble() <-- works to some extent
##drawing a fake track
lons = np.linspace(lonmin, lonmax, 200)
rads = lons/150*np.pi
lats = np.sin(rads)*0.95*latmax
bmp.plot(lons,lats, 'r--', lw=5)
plt.show()
Полученное изображение выглядит так:
![result of the above code](https://i.stack.imgur.com/WkwbN.png)
Как вы можете видетьпоследняя часть (справа) карты больше не рисуется, поэтому лучше ограничиться максимальным значением 540
для urcrnrlon
.Я также две функции фонового изображения.Выдает arcgisimage()
и ошибку, что он не может обрабатывать карты, которые пересекают дневную границу, но bluemarble()
работает, хотя и только на меньшей площади.Если вы хотите, чтобы карта повторялась еще чаще, я думаю, вам придется stitch
собрать вместе несколько осей, а затем разбить ваши данные на части, которые вы затем нанесите на соответствующие карты.