【问题标题】:How can I convert a dictionary of polygons' coordinates to a geodataframe?如何将多边形坐标字典转换为地理数据框?
【发布时间】:2021-05-29 00:13:01
【问题描述】:

我有一个看起来像这样的 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)。有人有想法吗?

【问题讨论】:

  • 您能具体说明“转为另一种格式”的含义吗?因为在 geopandas 中加载它就像调用 geopandas.GeoDataFrame(your_array) 一样简单
  • 我想获得一个带有 id 列和几何列的地理数据框。我设法创建了一个经典数据框,但不是地理数据框,因为它无法识别坐标格式。我是 python 新手,所以我会很感激这个!

标签: python dictionary coordinates gis


【解决方案1】:

如果您想要一个 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 documentation 中的更多信息和示例

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 2019-10-09
    • 2017-01-05
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2021-04-07
    相关资源
    最近更新 更多