gpt4 book ai didi

geospatial - GeoPandas:如何获取地理数据框中每个几何图形的边界框

转载 作者:行者123 更新时间:2023-12-04 11:19:22 28 4
gpt4 key购买 nike

我在 python 中使用 GeoPandas 并且有一个有效的多边形 GeoDataframe。

0         POLYGON Z ((68.70999999999999 623.1 0, 35.71 6...
1 POLYGON Z ((221.33 645.02 0, 185.7 640.33 0, 1...
2 POLYGON Z ((150.3 650 0, 160.9 650 0, 150.58 6...

我想获得一个新的数据帧,它具有数据帧中每一行的边界框坐标。

现在我对 GeoPandas 有一些奇怪的行为。

假设我将 GeoDataFrame 命名为 gdf ,然后使用代码:
gdf.bounds

我得到相应的错误。我不知道这个错误是什么意思,因为我没有将任何值传递给 bounds方法——它们是隐式传递的。
ValueError: Shape of passed values is (1, 110042), indices imply (4, 110042)

当我尝试:
gdf.geometry.bounds我得到同样的 ValueError...
但是,当我这样做时,我得到了一个有效的答案:
gdf.head(10).bounds

我得到
    minx    miny    maxx    maxy
0 0.00 618.15 68.71 650.00
1 169.56 640.33 221.33 650.00
2 150.30 648.64 160.90 650.00

所以 gdfgdf.head()没有任何不同,但一个给我一个错误,一个没有。有谁知道获取与每一行对应的边界框的正确方法。

最佳答案

您也可以尝试以下方法

# remove empty geometry
valid_geom = gdf[gdf.geometry.map(lambda z: True if not z.is_empty else False)]
# get the bounds of each geometry
valid_geom.geometry.map(lambda z: z.exterior.xy)

# or in one line
gdf[gdf.geometry.map(lambda z: True if not z.is_empty else False)].geometry.map(lambda z: z.exterior.xy)

这将导致以下输出。你得到 (minx, miny, maxx, maxy) 作为一个列表。
0     ([346494.47052450513, 346512.1633455531, 34642...
1 ([347156.6195963654, 347140.5694171803, 347106...
2 ([347374.2493280142, 347343.280266067, 347331....
3 ([347752.9399173185, 347732.0804000348, 347699...
4 ([352462.7065634858, 352421.82634455897, 35239...
5 ([352398.84073305037, 352366.62657852937, 3523...
6 ([351619.2911484046, 351581.3489685701, 351559...
7 ([349298.04394918215, 349284.4299869118, 34926...
8 ([349402.6562116009, 349390.3714050767, 349364...
9 ([347447.35067824554, 347427.2888365253, 34740...
10 ([351038.9227137904, 351023.75894022046, 35101...
11 ([352360.8991716495, 352311.8060843693, 352289...
12 ([348053.8637179602, 348014.5578245763, 347995...
13 ([350854.3664365387, 350802.39711500367, 35075...
14 ([350661.291738528, 350539.01532645256, 350497...
15 ([349634.9936554617, 349617.43041924713, 34959...
16 ([346588.703008323, 346576.2541223159, 346560....
17 ([347323.7364982413, 347311.6537559405, 347289...
18 ([347592.9326738138, 347588.24603437353, 34757...
19 ([347871.4965194545, 347852.9032783319, 347846...
20 ([349503.7927385038, 349484.6946827946, 349482...
21 ([349917.505834857, 349907.19522809517, 349885...
22 ([350254.82670837734, 350243.1101097837, 35024...
dtype: object

关于geospatial - GeoPandas:如何获取地理数据框中每个几何图形的边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49948876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com