欢迎使用 leafmap
一个用于 Jupyter 环境中地理空间分析和交互式映射的 Python 包。
- GitHub 仓库: https://github.com/opengeos/leafmap
- 文档: https://leafmap.org
- PyPI: https://pypi.org/project/leafmap
- Conda-forge: https://anaconda.org/conda-forge/leafmap
- YouTube 上的 Leafmap 教程: https://youtube.com/@giswqs
- 免费软件: MIT 许可证
加入我们的 Discord 服务器 👇
引言
Leafmap 是一个用于在 Jupyter 环境中以最少代码进行交互式制图和地理空间分析的 Python 包。它是 geemap Python 包的衍生项目,该包专为与 Google Earth Engine (GEE) 配合使用而设计。然而,并非地理空间社区中的每个人都能访问 GEE 云计算平台。Leafmap 旨在填补非 GEE 用户的这一空白。它是一个免费且开源的 Python 包,使用户能够在 Jupyter 环境(如 Google Colab、Jupyter Notebook、JupyterLab 和 marimo)中以最少代码分析和可视化地理空间数据。Leafmap 基于多个开源包构建,例如 folium 和 ipyleaflet(用于创建交互式地图)、WhiteboxTools 和 whiteboxgui(用于分析地理空间数据)以及 ipywidgets(用于设计交互式图形用户界面 [GUI])。Leafmap 拥有一套包含各种交互式工具的工具集,允许用户无需编码即可将矢量数据和栅格数据加载到地图上。此外,用户可以使用强大的分析后端(即 WhiteboxTools)直接在 leafmap 用户界面中执行地理空间分析,而无需编写任何代码。WhiteboxTools 库目前包含 500+ 用于高级地理空间分析的工具,例如 GIS Analysis、Geomorphometric Analysis、Hydrological Analysis、LiDAR Data Analysis、Mathematical and Statistical Analysis 以及 Stream网络分析。
需求陈述
地理空间分析领域有大量的 Python 包,例如用于矢量数据分析的 geopandas 和用于栅格数据分析的 xarray。正如 pyviz.org 所列,Python 中也有许多在地图上绘制数据的选项,从专门针对地图的库(如 ipyleaflet 和 folium)到也支持地理空间数据类型的通用绘图工具(如 hvPlot、bokeh 和 plotly)。尽管这些工具提供了强大的功能,但在交互式地图上显示来自不同文件格式的地理空间数据并执行基本分析可能具有挑战性,尤其对于编码技能有限的用户而言。此外,许多工具缺乏前端(浏览器)与后端(Python)之间的双向通信,限制了其交互性和探索地图数据的可用性。
Leafmap 通过利用 ipyleaflet 提供的双向通信来解决这些挑战,使用户只需一行代码即可加载和可视化地理空间数据集。Leafmap 还提供了一个交互式图形用户界面(GUI),无需编写任何代码即可加载地理空间数据集。它专为希望在 Jupyter 环境中交互式地分析和可视化地理空间数据的任何人而设计,使其对编程技能有限的初学者特别易于上手。高级程序员也可以从 leafmap 中受益,用于地理空间数据分析和构建交互式 Web 应用程序。
用法
立即使用 Google Colab、Binder 或 Amazon Sagemaker Studio Lab 启动 leafmap Python 包的交互式笔记本教程:
查看 Medium 上这篇关于地理空间数据科学的新 Python 包 Leafmap 的优秀文章 - Leafmap a new Python Package for Geospatial data science
要了解有关 leafmap 的更多信息,请访问 leafmap 文档网站 - https://leafmap.org

主要功能
Leafmap 提供了广泛的功能和特性,使地理空间数据科学家、研究人员和开发者能够释放其数据的潜力。一些主要功能包括:
-
仅用一行代码创建交互式地图: Leafmap 通过提供简单的 API,允许您以极少的代码加载和可视化地理空间数据集,从而轻松创建交互式地图。
-
在不同映射后端之间切换: Leafmap 支持多种映射后端,包括 ipyleaflet、folium、kepler.gl、pydeck 和 bokeh。您可以切换这些后端,以创建具有不同可视化样式和功能的地图。
-
交互式更改底图: Leafmap 允许您交互式地更改底图,提供多种选项,例如 OpenStreetMap、Stamen Terrain、CartoDB Positron 以及更多。
-
添加 XYZ、WMS 和矢量瓦片服务: 您可以轻松地将 XYZ、WMS 和矢量瓦片服务添加到您的地图中,从而允许您叠加来自各种来源的额外地理空间数据。
-
显示矢量数据: Leafmap 支持多种矢量数据格式,包括 Shapefile、GeoJSON、GeoPackage 以及 GeoPandas 支持的任何矢量格式。您可以在地图上加载和显示矢量数据,从而实现对空间特征的可视化和分析。
-
显示栅格数据: Leafmap 允许您在地图上加载和显示栅格数据,例如 GeoTIFF。此功能对于可视化卫星影像、数字高程模型和其他网格数据集非常有用。
-
创建自定义图例和色条: Leafmap 提供了用于自定义地图上图例和色条的工具,允许您使用不同的颜色和相应的标签来表示数据值。
-
创建分屏地图和联动地图: 借助 Leafmap,您可以创建分屏地图以并排比较不同的数据集。您还可以创建联动地图,以同步多个地图之间的交互,从而提供不同空间数据的协调视图。
-
下载和可视化 OpenStreetMap 数据: Leafmap 允许您下载和可视化 OpenStreetMap 数据,提供对详细街道地图、建筑物和其他兴趣点的访问。
-
交互式创建和编辑矢量数据: Leafmap 包含用于在地图上交互式创建和编辑矢量数据的工具。您可以绘制点、线和多边形,并根据需要进行修改。
-
搜索地理空间数据: Leafmap 提供了从 SpatialTemporal Asset Catalogs (STAC)、Microsoft Planetary Computer、AWS Open Data Registry 和 OpenAerialMap 等来源搜索和访问地理空间数据的功能。
-
交互式检查像素值: Leafmap 允许您交互式地检查栅格数据集中的像素值,帮助您在更细粒度上分析和理解数据。
-
创建分级统计图和热力图: Leafmap 支持创建分级统计图,其中颜色代表特定地理区域的不同数据值。您还可以创建热力图来可视化数据密度。
-
显示来自 PostGIS 数据库的数据: Leafmap 提供了连接 PostGIS 数据库并将存储在数据库中的空间数据显示在地图上的工具。
-
创建时间序列动画: Leafmap 支持从矢量数据和栅格数据创建时间序列动画,使您能够可视化地理空间数据集中的时间变化。
-
使用 whitebox 分析地理空间数据: Leafmap 与 WhiteboxTools 和 whiteboxgui 集成,提供一系列地理空间分析功能,如水文分析、地形分析和 LiDAR 处理。
-
分割和分类遥感影像: Leafmap 集成了 segment-geospatial 包,该包提供了使用深度学习算法对遥感影像进行分割和分类的工具。
-
构建交互式 Web 应用: Leafmap 支持使用 Voila、Streamlit 和 Solara 等框架构建交互式 Web 应用程序。这允许您通过用户友好的 Web 界面与他人共享您的地理空间分析和可视化结果。
这些特性和功能使 leafmap 成为地理空间数据探索、分析和可视化的强大工具。无论您是初学者还是有经验的地理空间数据科学家,leafmap 都提供了一种在 Python 中处理地理空间数据的便捷且高效的方式。
引用
如果您在研究中发现 leafmap 有用,请考虑引用以下论文以支持我的工作。感谢您的支持。
- Wu, Q. (2021). Leafmap: A Python package for interactive mapping and geospatial analysis with minimal coding in a Jupyter environment. Journal of Open Source Software, 6(63), 3414. https://doi.org/10.21105/joss.03414
演示

YouTube 频道
我创建了一个 YouTube 频道 用于分享地理空间教程。您可以订阅我的频道以获取定期更新。请查看以下关于使用 MapLibre 和 Leafmap 进行 3D 映射的视频。

