欢迎使用 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 是一个 Python 包,用于在 Jupyter 环境中进行交互式制图和地理空间分析,只需少量代码。它是 geemap Python 包的衍生项目,后者专门为 Google Earth Engine(GEE)设计。然而,地理空间社区中并非每个人都能访问 GEE 云计算平台。Leafmap 旨在为非 GEE 用户填补这一空白。它是一个免费开源的 Python 包,使用户能够在 Jupyter 环境中(如 Google Colab、Jupyter Notebook 和 JupyterLab)通过最少的编码来分析和可视化地理空间数据。Leafmap 建立在多个开源包的基础上,如 folium 和 ipyleaflet(用于创建交互式地图)、WhiteboxTools 和 whiteboxgui(用于分析地理空间数据)以及 ipywidgets(用于设计交互式图形用户界面 [GUI])。Leafmap 拥有一套工具集,包含各种交互式工具,允许用户无需编码即可将矢量和栅格数据加载到地图上。此外,用户可以使用强大的分析后端(即 WhiteboxTools)直接在 leafmap 用户界面中执行地理空间分析,而无需编写一行代码。WhiteboxTools 库目前包含 500 多个用于高级地理空间分析的工具,如 GIS 分析、地貌计量分析、水文分析、LiDAR 数据分析、数学和统计分析以及流网分析。
致谢
本项目得到亚马逊网络服务(AWS)的支持。
需求陈述
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上这篇优秀的文章 - Leafmap:一个用于地理空间数据科学的新Python包
要了解更多关于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提供了从诸如时空资产目录(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地图制作的方法。