[ PROMPT_NODE_26630 ]
geopandas
[ SKILL_DOCUMENTATION ]
# GeoPandas
GeoPandas 扩展了 pandas 以支持对几何类型进行空间操作。它结合了 pandas 和 shapely 的功能,用于地理空间数据分析。
## 安装
bash
uv pip install geopandas
### 可选依赖
bash
# 用于交互式地图
uv pip install folium
# 用于地图分类方案
uv pip install mapclassify
# 用于更快的 I/O 操作 (2-4 倍加速)
uv pip install pyarrow
# 用于 PostGIS 数据库支持
uv pip install psycopg2
uv pip install geoalchemy2
# 用于底图
uv pip install contextily
# 用于制图投影
uv pip install cartopy
## 快速入门
python
import geopandas as gpd
# 读取空间数据
gdf = gpd.read_file("data.geojson")
# 基本探索
print(gdf.head())
print(gdf.crs)
print(gdf.geometry.geom_type)
# 简单绘图
gdf.plot()
# 重投影到不同的 CRS
gdf_projected = gdf.to_crs("EPSG:3857")
# 计算面积 (使用投影 CRS 以获得准确性)
gdf_projected['area'] = gdf_projected.geometry.area
# 保存到文件
gdf.to_file("output.gpkg")
## 核心概念
### 数据结构
- **GeoSeries**: 具有空间操作的几何矢量
- **GeoDataFrame**: 具有几何列的表格数据结构
详情请参阅 [data-structures.md](references/data-structures.md)。
### 数据读写
GeoPandas 支持多种格式的读写:Shapefile, GeoJSON, GeoPackage, PostGIS, Parquet。
python
# 带过滤读取
gdf = gpd.read_file("data.gpkg", bbox=(xmin, ymin, xmax, ymax))
# 使用 Arrow 加速写入
gdf.to_file("output.gpkg", use_arrow=True)
详情请参阅 [data-io.md](references/data-io.md)。
### 坐标参考系统 (CRS)
务必检查并管理 CRS 以进行准确的空间操作:
python
# 检查 CRS
print(gdf.crs)
# 重投影 (转换坐标)
gdf_projected = gdf.to_crs("EPSG:3857")
# 设置 CRS (仅在元数据缺失时使用)
gdf = gdf.set_crs("EPSG:4326")
详情请参阅 [crs-management.md](references/crs-management.md)。
## 常见操作
### 几何操作
缓冲区、简化、质心、凸包、仿射变换:
python
# 缓冲 10 个单位
buffered = gdf.geometry.buffer(10)
# 以容差简化
simplified = gdf.geometry.simplify(tolerance=5, preserve_topology=True)
# 获取质心
centroids = gdf.geometry.centroid
详情请参阅 [geometric-operations.md](references/geometric-operations.md)。
### 空间分析
空间连接、叠加