You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ESRI Shapefile转换为含指定字段及地理信息的CSV文件

解决Geopandas导出CSV时提取地理坐标的方法

根据你的需求,Geopandas可以通过直接操作几何对象的属性或方法,提取出点、线、面对象的地理坐标,再导出到CSV中,以下是几种常见场景的实现方式:

1. 提取点要素的经纬度坐标

如果你的Shapefile是点类型,直接从geometry列的x、y属性提取坐标:

import geopandas as gpd

# 读取Shapefile
gdf = gpd.read_file("your_shapefile.shp")

# 转换为WGS84经纬度坐标系(如果原数据不是的话)
gdf = gdf.to_crs(epsg=4326)

# 添加经纬度字段
gdf['longitude'] = gdf.geometry.x
gdf['latitude'] = gdf.geometry.y

# 导出CSV,可指定要保留的字段
gdf.to_csv("point_data_with_coords.csv", columns=['longitude', 'latitude', '属性列1', '属性列2'], index=False)

2. 提取线/面要素的质心坐标

对于线或面对象,若需要获取地理对象的中心位置,使用centroid属性计算质心:

import geopandas as gpd

gdf = gpd.read_file("your_polyline_or_polygon.shp").to_crs(epsg=4326)

# 计算质心并提取坐标
gdf['centroid_lon'] = gdf.geometry.centroid.x
gdf['centroid_lat'] = gdf.geometry.centroid.y

# 导出CSV
gdf.to_csv("centroid_data.csv", index=False)

3. 提取线要素的起点/终点坐标

如果需要线对象的首尾端点坐标,通过coords属性获取:

import geopandas as gpd

gdf = gpd.read_file("your_line_shapefile.shp").to_crs(epsg=4326)

# 提取起点坐标
gdf['start_lon'] = gdf.geometry.apply(lambda geom: geom.coords[0][0])
gdf['start_lat'] = gdf.geometry.apply(lambda geom: geom.coords[0][1])

# 提取终点坐标
gdf['end_lon'] = gdf.geometry.apply(lambda geom: geom.coords[-1][0])
gdf['end_lat'] = gdf.geometry.apply(lambda geom: geom.coords[-1][1])

gdf.to_csv("line_start_end_coords.csv", index=False)

4. 提取面要素的所有顶点坐标

若需要面的每个顶点坐标,可使用explode方法将面拆分为单个顶点,再提取坐标:

import geopandas as gpd

gdf = gpd.read_file("your_polygon_shapefile.shp").to_crs(epsg=4326)

# 拆分面为单个顶点
gdf_vertices = gdf.explode(index_parts=True)

# 提取顶点坐标
gdf_vertices['vertex_lon'] = gdf_vertices.geometry.x
gdf_vertices['vertex_lat'] = gdf_vertices.geometry.y

# 导出包含所有顶点的CSV
gdf_vertices.to_csv("polygon_vertices.csv", index=False)

注意事项

  • 导出时若不需要原geometry列,可在to_csv的columns参数中明确指定要保留的字段,排除geometry;若需保留几何信息的WKT文本格式,默认导出会包含该列,无需额外操作。
  • 确保坐标参考系正确,若原数据是投影坐标系(如UTM),务必先转换为WGS84(EPSG:4326)再提取经纬度。

内容的提问来源于stack exchange,提问作者parzival

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 15:14:55