Я пытаюсь нарисовать карту Нью-Йорка статическим способом через базовую карту в Python
west, south, east, north = -74.26, 40.50, -73.70, 40.92
# fig = plt.figure(figsize=(18,14))
m = Basemap(projection='merc', llcrnrlat=south, urcrnrlat=north,
llcrnrlon=west, urcrnrlon=east, lat_ts=south, resolution='i')
m.etopo(scale=0.5, alpha=0.5)
Но я получаю только это
Я могу нарисовать его через folium, но он будет не статичным, а с зумом.
Можно ли нарисовать статическую карту Нью-Йорка с помощью Basemap






Согласно базовой карте документация, etopo использует данные из Страница NOAA (который обеспечивает разрешение 1 угловую минуту) для отображения рельефа. С координатами, которые вы указываете в своем коде, я ожидал бы максимальное разрешение около 33x25 пикселей.
Теперь, опять же согласно документации по базовой карте, etopo принимает ключевое слово scale для уменьшения масштаба данных с None по умолчанию, но они на самом деле не указывают, какой диапазон значений допустим. Я начал экспериментировать с этим и, используя scale=5, в вашем (слегка адаптированном) коде:
from matplotlib import pyplot as plt
from mpl_toolkits.basemap import Basemap
west, south, east, north = -74.26, 40.50, -73.70, 40.92
m = Basemap(projection='merc', llcrnrlat=south, urcrnrlat=north,
llcrnrlon=west, urcrnrlon=east, lat_ts=south, resolution='i')
result = m.etopo(scale=5)
print(result.get_size())
plt.show()
Я получаю следующее изображение (ВНИМАНИЕ: это займет некоторое время):
Вывод команды print (т.е. размер пикселя изображения):
(32, 32)
что меня озадачивает, поскольку я не ожидал, что разрешение станет таким высоким в широтном направлении. Я предполагаю, что происходит некоторая интерполяция, но чтобы быть действительно уверенным, нужно просмотреть код, чтобы увидеть, что на самом деле делает ключевое слово scale.