Повторяющаяся карта в базовой карте - PullRequest
0 голосов
/ 26 сентября 2018

Как я могу сделать повтор на карте долготы в Базовой карте для спутниковой дорожки?

Как эта карта

Чтобы иметь непрерывную спутниковую дорожку, я попробовал немногоразличия llcrnrlon и urcrnrlon.В случае набора llcrnrlon=-180 и urcrnrlon со значением Major * 180 (чтобы повторить некоторые меридианы), базовая карта не генерирует карту

Это текущая картаспутниковой трассы

1 Ответ

0 голосов
/ 26 сентября 2018

Вы можете передать минимальное значение от -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

Как вы можете видетьпоследняя часть (справа) карты больше не рисуется, поэтому лучше ограничиться максимальным значением 540 для urcrnrlon.Я также две функции фонового изображения.Выдает arcgisimage() и ошибку, что он не может обрабатывать карты, которые пересекают дневную границу, но bluemarble() работает, хотя и только на меньшей площади.Если вы хотите, чтобы карта повторялась еще чаще, я думаю, вам придется stitch собрать вместе несколько осей, а затем разбить ваши данные на части, которые вы затем нанесите на соответствующие карты.

...