Интерактивная визуализация гео данных на Python
Гео данные могут быть интересными. Одна интерактивная геопространственная визуализация предоставляет много информации о данных и области и многое другое. У Python так много библиотек. Трудно понять, какой из них использовать. Для геопространственной визуализации я буду использовать Folium. Он очень прост в использовании, и он также имеет несколько стилей, чтобы соответствовать вашему выбору и требованиям.
Для этого я использовал среду Jupyter Notebook. Если вы используете Jupyter Notebook, вам необходимо установить folium с помощью anaconda, используя следующую команду:
conda install -c conda-forge folium = 0.5.0 - да
Теперь мы можем импортировать folium. В Folium встроена карта мира.
import folium
folium.Map()
![](/static/storage/1185513300084583422585205382173986965.png)
Вот карта мира. Как видите, вы можете увеличивать и уменьшать масштаб и перемещаться по нему. Вам может понадобиться карта определенной страны, штата или города. Широта и долгота этого конкретного места могут быть предоставлены в качестве параметра для получения карты этого конкретного места. Я хочу распечатать карту Флориды.
folium.Map(location = [27.664827, -81.516], zoom_start = 4)
![](/static/storage/199584412158553086072800045351880520701.png)
Здесь вы можете увидеть штат Флорида. Я указал zoom_start как 4. Вы можете увеличивать или уменьшать масштаб и переходить к определенной части. И вы также можете изменить зум.
florida = folium.Map(location = [27.664827, -81.516], zoom_start = 7)
![](/static/storage/198032615690443504349055580951196821529.png)
Давайте посмотрим на несколько разных стилей. Сделаем высококонтрастную черно-белую карту. Вы можете сделать это, используя плитки параметров. Для высококонтрастной черно-белой карты используются tiles «Stamen Toner».
folium.Map(location= [27.665, -81.516], zoom_start = 8, tiles = 'Stamen Toner')
![](/static/storage/208304662775658826442225790019117343912.png)
Разве это не мило! Этот тип карты идеально подходит для прибрежной зоны. Также подходит для мэшапа данных.
В следующем примере я буду использовать карту Stamen Terrain. Это покажет естественную растительность и затенение холмов.
folium.Map(location= [27.665, -81.516], zoom_start = 4, tiles = 'Stamen Terrain')
![](/static/storage/11996757886846490101517036781853836612.png)
Я уверен, вам будет интересно узнать, можем ли мы нанести на карту события или инциденты. Конечно, можем. Чтобы продемонстрировать, что я собираюсь использовать набор данных, который покажет инциденты во Флориде. Не стесняйтесь загрузить набор данных отсюда
import pandas as pd
florida_incidents = pd.read_csv('Florida_Subsidence_Incident_Reports.csv')
Набор данных слишком велик. Поэтому я не показываю здесь скриншот. Но в наборе данных есть столбцы X и Y, которые представляют собой широту и долготу разных мест Флориды. Мы можем разместить эти места на карте, создав группу объектов. Мы включим позиции и стили точек. Для ясности изображения я поставлю только 100 точек данных.
![](/static/storage/260804208978745250214790243927468980003.png)
Мы можем пойти дальше и добавить маркеры на эти точки.
latitudes = list(florida_incidents.Y)
longitudes = list(florida_incidents.X)
for lat, lng in zip(latitudes, longitudes):
folium.Marker([lat, lng]).add_to(florida)
florida.add_child(incidents)
![](/static/storage/292500066384371617588660724121044208443.png)
Вывод
Я попытался показать, как создать интерактивную карту, представить на ней некоторые инциденты или события с помощью маркеров и стилизовать ее. Этот тип интерактивной карты всегда полезен на панели инструментов, в презентации или в любой другой представленной информации. Я надеюсь, что это было полезно.