geopandas

用于处理地理空间矢量数据的Python库,支持Shapefile、GeoJSON和GeoPackage等格式。适用于地理数据的空间分析、几何运算、坐标转换、空间连接、叠加操作、等值区域制图,以及任何涉及读取/写入/分析矢量地理数据的任务。兼容PostGIS数据库,支持交互式地图绘制,并能与matplotlib/folium/cartopy等工具集成。可用于缓冲区分析、数据集空间连接、边界融合、数据裁剪、面积距离计算、坐标系重投影、地图创建或空间文件格式转换等场景。

安装

热度:23

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-geopandas&locale=zh&source=copy

GeoPandas - Python 地理空间数据分析技能

技能概述


GeoPandas 是一个强大的 Python 库,用于处理和分析地理空间矢量数据,它将 pandas 的数据处理能力与 shapely 的几何操作结合,让地理数据分析变得简单高效。

适用场景

1. 地理空间数据分析


当你需要处理包含地理位置信息的数据时,GeoPandas 是理想选择。无论是分析城市人口分布、研究环境变化模式,还是进行商业选址分析,它都能帮你高效完成空间统计、聚合计算和几何运算。

2. 地图制作与可视化


需要创建专业的地图图表?GeoPandas 支持从简单的统计地图到复杂的多层叠加地图。你可以轻松制作分级统计图(choropleth map)、热力图,甚至生成交互式网页地图,完美集成 matplotlib、folium 和 cartopy 等可视化库。

3. 空间数据处理与转换


处理各种格式的地理数据文件时,GeoPandas 提供统一的接口。支持 Shapefile、GeoJSON、GeoPackage 等主流格式,还能直接连接 PostGIS 数据库。需要坐标转换、格式互转或几何运算?一行代码即可完成。

核心功能

1. 多格式数据读写


GeoPandas 支持超过 10 种地理数据格式,包括 Shapefile、GeoJSON、GeoPackage、KML 等。可以通过边界框过滤、空间掩码等方式精准读取所需数据,并支持 Arrow 加速实现 2-4 倍的读写性能提升。还能直接从 PostGIS 数据库读取空间数据,实现与数据库的无缝集成。

2. 空间分析与几何运算


提供完整的空间分析工具集:缓冲区分析、空间连接、叠加分析、边界融合等。支持多种空间谓词(相交、包含、邻近等)进行数据关联,可计算面积、距离、重心等几何属性。还能进行几何简化、仿射变换等高级操作。

3. 坐标参考系管理


内置完整的坐标参考系(CRS)管理功能,支持 EPSG 代码识别和转换。可以在地理坐标系和投影坐标系之间灵活转换,确保面积和距离计算的准确性。自动处理坐标变换的复杂细节,让空间分析结果更加可靠。

常见问题

GeoPandas 是什么?用来做什么?


GeoPandas 是 Python 的地理空间数据分析库,扩展了 pandas 以支持几何类型和空间操作。它主要用于读取/写入矢量地理数据文件(如 Shapefile、GeoJSON)、执行空间分析(如缓冲区、空间连接)、制作地图以及进行坐标参考系转换。适用领域包括城市规划、环境科学、交通运输、流行病研究等任何需要处理地理位置信息的场景。

如何安装 GeoPandas 及其依赖?


基础安装使用 uv pip install geopandas 即可。根据需要,可以添加可选依赖:folium(交互式地图)、mapclassify(分级方案)、pyarrow(加速 I/O)、psycopg2 和 geoalchemy2(PostGIS 支持)、contextily(底图)、cartopy(制图投影)。建议使用虚拟环境管理依赖,避免版本冲突。

GeoPandas 支持哪些地理数据格式?


GeoPandas 通过 Fiona 库支持多种矢量格式:Shapefile (.shp)、GeoJSON (.geojson)、GeoPackage (.gpkg)、KML、GML、FileGDB 等。还支持读取 PostGIS 数据库中的空间表,以及 Parquet 格式的地理数据。写入时推荐使用 GeoPackage 格式,它是现代开放标准,比 Shapefile 更高效可靠。

如何进行坐标参考系(CRS)转换?


使用 gdf.to_crs("EPSG:XXXX") 方法即可转换坐标参考系。操作前建议先检查当前 CRS(gdf.crs),确保两个数据集的坐标系一致后再进行空间分析。计算面积和距离时使用投影坐标系(如 UTM),制作地图时常用地理坐标系(如 WGS84/EPSG:4326)。

GeoPandas 可以读取 PostGIS 数据库吗?


可以。安装 psycopg2 和 geoalchemy2 后,使用 gpd.read_postgis() 方法即可从 PostGIS 数据库读取空间数据。需要提供数据库连接引擎、SQL 查询语句和几何列名称。这种方式适合处理大量地理数据或需要与现有 GIS 系统集成的场景。

如何创建交互式地图?


使用 gdf.explore() 方法可以快速生成交互式地图,支持指定颜色字段、添加图例、设置弹出信息等。生成的地图可以保存为 HTML 文件,在浏览器中打开支持缩放、平移、点击查看详情等交互功能。底层基于 folium 库,可与 Leaflet.js 生态无缝集成。

GeoPandas 和 pandas 有什么区别?


GeoPandas 是 pandas 的扩展,专门处理地理空间数据。核心区别在于:GeoDataFrame 有一列特殊的几何列(geometry)存储空间信息,支持空间操作和坐标参考系。普通 DataFrame 只能处理表格数据,无法理解地理位置关系。GeoPandas 继承了 pandas 的所有数据分析能力,同时增加了缓冲区、空间连接、叠加分析等 GIS 功能。

如何计算地理区域面积和距离?


首先将数据转换为投影坐标系(gdf.to_crs()),然后使用 gdf.geometry.area 计算面积,gdf.geometry.distance() 计算距离。距离计算可以是两个几何对象之间,或者使用 sjoin_nearest() 找到最近邻。注意在地理坐标系(如经纬度)下直接计算的面积和距离是不准确的,必须先投影。