一个用于Jupyter环境中的地理空间分析和交互式制图的Python包。
项目描述
欢迎使用leafmap
一个用于Jupyter环境中的地理空间分析和交互式制图的Python包。
- GitHub仓库:https://github.com/opengeos/leafmap
- 文档:https://leafmap.org
- PyPI:https://pypi.ac.cn/project/leafmap
- Conda-forge:https://anaconda.org/conda-forge/leafmap
- YouTube上的Leafmap教程:https://youtube.com/@giswqs
- 免费软件:MIT许可证
加入我们的Discord服务器 👇
简介
Leafmap 是一个用于 Jupyter 环境中交互式制图和地理空间分析的 Python 包,编码量最小。它是专门为与 geemap Python 包协同工作而设计的,geemap 包是为了与 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 分析、形态学分析、水文分析、激光雷达数据分析、数学和统计分析,以及 河流网络分析。
致谢
本项研究得到亚马逊网络服务 (AWS) 的支持。
需求声明
存在许多用于地理空间分析的 Python 包,例如用于矢量数据分析的 geopandas 和用于栅格数据分析的 xarray。如 pyviz.org 所列,Python 中也有许多在地图上绘制数据的选项,从专注于地图的库如 ipyleaflet 和 folium 到支持地理空间数据类型的一般用途绘图工具,如 hvPlot、bokeh 和 plotly。虽然这些工具提供了强大的功能,但将来自不同文件格式的地理空间数据显示在交互式地图上并进行基本分析可能会很具挑战性,尤其是对于编码技能有限的用户。此外,许多工具缺乏前端(浏览器)和后端(Python)之间的双向通信,这限制了它们在探索地图数据方面的互动性和可用性。
Leafmap 通过利用 ipyleaflet 提供的双向通信来解决这些挑战,使用户只需一行代码即可加载和可视化地理空间数据集。Leafmap 还提供了一种无需任何编码即可加载地理空间数据集的交互式图形用户界面(GUI)。它旨在为任何想在 Jupyter 环境中交互式地分析和可视化地理空间数据的人提供服务,对编程技能有限的初学者尤其易于使用。高级程序员也可以从 Leafmap 中受益,用于地理空间数据分析以及构建交互式网络应用程序。
使用方法
现在使用 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允许您在地图上加载和显示栅格数据,如GeoTIFFs。此功能对于可视化卫星影像、数字高程模型和其他栅格数据集非常有用。
-
创建自定义图例和颜色条:Leafmap提供工具来自定义地图上的图例和颜色条,允许您使用不同的颜色和相应的标签来表示数据值。
-
创建分面板地图和链接地图:使用Leafmap,您可以创建分面板地图以并列比较不同的数据集。您还可以创建链接地图,以同步多个地图之间的交互,提供不同空间数据的协调视图。
-
下载和可视化OpenStreetMap数据:Leafmap允许您下载和可视化OpenStreetMap数据,提供详细街道地图、建筑和其他兴趣点的访问。
-
交互式创建和编辑矢量数据:Leafmap包括在地图上交互式创建和编辑矢量数据的功能。您可以绘制点、线和多边形,并根据需要修改它们。
-
搜索地理空间数据:Leafmap提供从空间时间资产目录(STAC)、微软行星计算机、AWS开放数据注册和OpenAerialMap等来源搜索和访问地理空间数据的功能。
-
交互式检查像素值:Leafmap允许您交互式地检查栅格数据集中的像素值,帮助您在更细粒度级别分析和理解数据。
-
创建面状图和热力图:Leafmap支持创建面状图,其中颜色代表特定地理区域的不同数据值。您还可以创建热力图以可视化数据密度。
-
显示PostGIS数据库中的数据:Leafmap提供工具用于连接到PostGIS数据库,并在地图上显示存储在数据库中的空间数据。
-
创建时间序列动画:Leafmap能够从矢量和栅格数据中创建时间序列动画,允许您可视化地理空间数据集中的时间变化。
-
使用白盒分析地理空间数据:Leafmap 与 WhiteboxTools 和 whiteboxgui 集成,提供一系列地理空间分析功能,如水文分析、地形分析和激光雷达处理。
-
分割和分类遥感影像:Leafmap 集成了 segment-geospatial 包,该包提供使用深度学习算法分割和分类遥感影像的工具。
-
构建交互式网络应用程序:Leafmap 支持使用 Voila、Streamlit 和 Solara 等框架开发交互式网络应用程序。这允许您通过用户友好的网络界面与他人共享您的地理空间分析和可视化。
这些功能和能力使 leafmap 成为地理空间数据探索、分析和可视化的强大工具。无论是初学者还是有经验的地理空间数据科学家,leafmap 都提供了一个易于使用且高效的在 Python 中处理地理空间数据的方法。
参考文献
如果您在研究中发现 leafmap 有用,请考虑引用以下论文以支持我的工作。感谢您的支持。
- Wu, Q. (2021). Leafmap:一个用于在 Jupyter 环境中实现交互式制图和地理空间分析的 Python 包。 开源软件杂志,6(63),3414. https://doi.org/10.21105/joss.03414
演示
YouTube 频道
我创建了一个 YouTube 频道 用于分享地理空间教程。您可以订阅我的频道以获取定期更新。查看以下关于使用 MapLibre 和 Leafmap 进行 3D 制图的视频。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
leafmap-0.38.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5490bcf8b9496304067f688860b5b4a7f88450551460458d3b80264ac5e6c47e |
|
MD5 | a4ca547fc26fffdad9895a62b8175d1a |
|
BLAKE2b-256 | 2cc5444e2b22085e538886ae91e9944f8f7148bc2e6382d614d54e7508771966 |
leafmap-0.38.2-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | efe58e112f2a0b4d7fd5bc0a53ab48cfcd09cd3f267e97f93f9e00d9277eb25e |
|
MD5 | c1ffa46ca4a723584e574f7bc7835978 |
|
BLAKE2b-256 | a3fcc54a085094e3874e6089ec991d7f7d06654ebd31c11c21ddba93886c55cd |