我在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
所以gdf
和gdf.head()
没有任何不同,但有一个给了我一个错误,一个没有。有没有人知道获取与每行对应的边界框的正确方法。
答案 0 :(得分:2)
您也可以尝试以下方法
# 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