📜  在Python使用 Folium 可视化地理空间数据(1)

📅  最后修改于: 2023-12-03 15:37:38.708000             🧑  作者: Mango

在Python使用 Folium 可视化地理空间数据

Folium 是一个基于 Leaflet.js 构建的 Python 地图库,可以用于可视化地理空间数据。

安装

可以使用 pip 安装 folium 库:

pip install folium
基本用法

导入 folium 包并创建一个地图:

import folium

m = folium.Map(location=[45.5236, -122.6750], zoom_start=13)

m

结果会在 Jupyter Notebook 中显示一个地图。如果在其他环境中运行,可以使用 m.save('map.html') 把地图保存到磁盘中,并在浏览器中查看。

标记点

我们可以在地图上加上标记点。下面的例子从 CSV 文件中读取标记点的经纬度,并在地图上展示:

import pandas as pd

df = pd.read_csv('locations.csv')

for index, row in df.iterrows():
    folium.Marker(location=[row['Latitude'], row['Longitude']]).add_to(m)

m

上面的代码使用 Pandas 读取一个 CSV 文件,并根据经纬度在地图上添加标记点。

热力图

Folium 还支持热力图。下面的例子从 CSV 文件中读取热力图数据,并在地图上展示:

from folium.plugins import HeatMap

df = pd.read_csv('locations.csv')

heat_data = [[row['Latitude'], row['Longitude']] for index, row in df.iterrows()]

HeatMap(data=heat_data).add_to(m)

m

上面的代码使用 Pandas 读取一个 CSV 文件,并提取出经纬度组成热力图的数据。HeatMap 用于创建热力图,然后添加到地图上。

GeoJSON 数据

Folium 还支持 GeoJSON 格式的地理空间数据。下面的例子使用 GeoJSON 数据创建一个政治地图,并展示出来:

import json
import urllib.request

url = 'https://raw.githubusercontent.com/python-visualization/folium/master/examples/data'
country_geo = f'{url}/world-countries.json'

with urllib.request.urlopen(country_geo) as url:
    geojson = json.loads(url.read().decode())

folium.GeoJson(geojson).add_to(m)

m

上面的代码使用 urllib.request 获取 GeoJSON 格式的地理空间数据,并使用 Folium 中的 GeoJson 类把数据添加到地图上。GeoJson 类可以接受本地文件或 URL,所以你可以根据实际情况修改代码。

总结

Folium 是一个十分强大的 Python 地图库,支持很多功能和数据格式,可以用于可视化各种地理空间数据。以上只是一些基本用法和例子,更多功能可以参考官方文档。