python空间处理库——geopandas

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


简介

根据PyPI官网的介绍:GeoPandas项目是为支持将地理数据转为pandas对象。
其目标是在python中使用地理空间数据更容易。它结合了pandas和shapey的功能,在pandas中提供地理空间操作,并为shapey提供多个几何图形的高级界面。GeoPandas使您能够轻松地在python中执行操作,而不必使用如PostGIS等空间数据库。

Geopandas 是一个基于 Python 的空间数据处理库,结合了 pandas 的数据处理能力和地理空间分析功能。

一、安装

使用 pip 或 conda 安装:

pip install geopandas
# 或
conda install -c conda-forge geopandas

注意:Windows 用户可能需要单独安装 GDAL 依赖。

二、核心数据结构

  • GeoDataFrame:继承自 pandas DataFrame,包含一个几何列(geometry),存储 shapely 对象(点、线、面等)。
  • GeoSeries:单列的几何数据,支持向量化空间操作。

三、数据读写

  • 读取文件(支持 Shapefile、GeoJSON 等):
import geopandas as gpd
gdf = gpd.read_file("data.shp")
  • 保存文件
gdf.to_file("output.geojson", driver="GeoJSON")

四、坐标系管理

  • 查看坐标系:gdf.crs
  • 转换坐标系:
gdf = gdf.to_crs(epsg=4326)  # WGS84

五、空间操作

  • 几何计算(面积、长度等):
gdf['area'] = gdf.geometry.area
  • 缓冲区分析:
gdf['buffer'] = gdf.geometry.buffer(100)  # 100单位缓冲区
  • 空间关系判断(相交、包含等):
mask = gdf1.geometry.intersects(gdf2.geometry.iloc[0])
  • 空间连接:
import geopandas.tools
joined = gpd.sjoin(gdf1, gdf2, how="inner", op="intersects")
  • 集成 Matplotlib 快速绘图:
gdf.plot(column="population", legend=True, cmap="viridis")
  • 示例:统计城市内公园数量
# 读取数据
cities = gpd.read_file("cities.shp")
parks = gpd.read_file("parks.shp")

# 确保坐标系一致
parks = parks.to_crs(cities.crs)

# 空间连接
joined = gpd.sjoin(parks, cities, op='within')

# 统计每个城市的公园数量
park_count = joined.groupby('city_name').size()
print(park_count)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值