如何将GeoJSON中的Polygon信息转换为GeoPandas几何并存入数据框
解决方法
你提供的Polygon坐标多了一层嵌套,按照如下步骤即可完成转换:
- 第一步:导入所需依赖
import geopandas as gpd from shapely.geometry import Polygon
- 第二步:提取坐标并构造面几何对象
location = {'type': 'Polygon', 'coordinates': [[[[-90.06, 29.34], [-89.8, 29.15], [-89.55, 29.26], [-89.61, 29.27], [-89.6, 29.35], [-89.67, 29.31], [-89.77, 29.33], [-89.75, 29.41], [-89.81, 29.43], [-89.83, 29.49], [-89.93, 29.51], [-89.94, 29.48], [-90.07, 29.55], [-90.17, 29.51], [-90.06, 29.43], [-90.06, 29.34]]]]} # 提取正确层级的外环坐标 poly_coords = location['coordinates'][0][0] # 构造Shapely面几何 polygon = Polygon(poly_coords)
- 第三步:构造GeoPandas数据框
gdf = gpd.GeoDataFrame( data={'geometry': [polygon]}, # 坐标系按需调整,这里默认使用WGS84经纬度坐标系 crs="EPSG:4326" )
如果需要验证转换结果,可以直接打印查看:
print(gdf)
注意事项
标准GeoJSON的Polygon坐标结构为三层嵌套:[[外环坐标点列表], [内环1坐标点列表], ...],你提供的数据集多了一层嵌套,所以需要通过location['coordinates'][0][0]提取到正确的坐标点列表,否则会触发参数校验错误。
内容的提问来源于stack exchange,提问作者yosi
相关产品推荐
相关产品推荐

