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

Я пытаюсь нарисовать карту Нью-Йорка статическим способом через базовую карту в 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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
320
1

Ответы 1

Согласно базовой карте документация, 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.

Другие вопросы по теме