статическая карта города из базовой карты - PullRequest
0 голосов
/ 05 декабря 2018

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

Можно ли нарисовать статическую карту Нью-Йорка, используя Базовую карту

1 Ответ

0 голосов
/ 14 декабря 2018

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

Я получаю следующее изображение (ВНИМАНИЕ: это занимает некоторое время):

enter image description here

Вывод команды print (т. Е. Размер изображения в пикселях) равен

(32, 32)

, что меня озадачивает, так как яне ожидал, что разрешение станет таким высоким в широтном направлении.Я предполагаю, что происходит некоторая интерполяция, но, чтобы быть уверенным, нужно пройти через код, чтобы увидеть, что на самом деле делает ключевое слово scale.

...