如何用python选择geojson文件中的给定特征?

问题描述 投票:0回答:1

场景:我有一个大的(120多MB).geojson文件,它代表了一系列的特征。

我有一个大的(120多MB).geojson文件,它代表了一堆的 LineStrings 的特点。

下面是一个例子 feature 选用 json.dumps(geoFile['features'][0]):

{
    "type": "Feature",
    "id": 0,
    "properties": {
        "FID": 0,
        "prop1": 1,
        "prop2": "thing2",
        "prop3": "thing3"
    },
    "geometry": {
        "type": "LineString",
        "coordinates": [
            [
                -99.491525,
                35.306851,
                0
            ],
            [
                -99.491485,
                35.306705,
                0
            ],
            [
                -99.491451,
                35.306581,
                0
            ],
            [
                -99.491417,
                35.306456,
                0
            ],
            [
                -99.491375,
                35.306321,
                0
            ]
        ]
    }
}

目标:目标。

  • 选择一个 feature 根据财产价值在 prop1.
  • 渲染所选的 feature 关于 geopandas 地图(或其他python地图),以及应用中其他地方使用的数据框中的一些地理参考点。

问题。

  • 用什么python语法来选取 feature 从geojson文件中提取,基于 properties/prop?
    • 显然,我知道如何根据指数来选择([0]),但我找不到通过以下方式选择的例子。prop1.
    • 试过了 json.dumps(geoFile['features'][0]['properties']['prop1'] == 1) 但这只是返回 true
  • geopandas 一个合适的映射库用于这种类型的混搭?
    • 最后,我想使用的是 Dash 或类似的东西,以使 feature 选择和渲染点互动。

谢谢你

python gis geojson
1个回答
2
投票

我假设这里的 geoFile 只是一个 python dict,而你正在用以下方法将其转换为字符串化的 json json.dumps那么你可以用字典理解为

features = [f for f in geoFile["features"] if f["properties"]["prop1"]==1]

这应该会给你一个满足条件的特征词条列表.现在你可以用任何你想要的方式来包装这个列表。一个简单的做法是把这个列表放在一个键下,就像最初的特征列表放在了 "features" 钥匙。json.dumps({"features": features})

© www.soinside.com 2019 - 2024. All rights reserved.