首页 > 解决方案 > 如何将多边形坐标字典转换为地理数据框?

问题描述

我有一个看起来像这样的python字典:

{0: [[806735.1544109267, 6537534.445304121],
     [841214.0757437024, 6522224.452253355],
     [842501.6252045294, 6522869.442922172],
     [842549.1443712532, 6522901.510964515],
     [806735.1544109267, 6537534.445304121]],
 1: [[841408.2671391629, 6521335.689519852],
     [841100.3038260225, 6520996.388704606],
     [842331.2640584556, 6520540.411264208],
     [841950.1552972465, 6521128.964539945],
     [841408.2671391629, 6521335.689519852]],
 2: [...]}

它对应于多面体。每个多边形由一个数字(0、1 等)和2154 (scr)中的坐标列表定义。我的目标是将这个字典转换成另一种我可以轻松操作的格式(geodataframe),这样我就可以在 GIS 中读取它(例如作为 shapefile)。有人有想法吗?

标签: pythondictionarycoordinatesgis

解决方案


如果您想要一个 id 列和一个几何列,'id'并且'geometry'应该是字典中的键:

import geopandas as gdp

d = {
    'id': [0, 1],
    'geometry': [
        [
            [806735.1544109267, 6537534.445304121],
            [841214.0757437024, 6522224.452253355],
            [842501.6252045294, 6522869.442922172],
            [842549.1443712532, 6522901.510964515],
            [806735.1544109267, 6537534.445304121]
        ],
        [
            [841408.2671391629, 6521335.689519852],
            [841100.3038260225, 6520996.388704606],
            [842331.2640584556, 6520540.411264208],
            [841950.1552972465, 6521128.964539945],
            [841408.2671391629, 6521335.689519852]
        ],
    ]
}

gdf = gdp.GeoDataFrame(d)

geopandas 文档中的更多信息和示例


推荐阅读