GeoPandas:创建多边形地理第一部分的质心列表?
GeoPandas: Create a list of centroids of the first part of multi-polygon geography?
我有一个包含多边形地理的 GeoDataframe。如果我使用 centroid
函数来查找中心,结果并不总是位于任何多边形内,例如对于一系列岛屿。那么,如何只找到多边形中第一个多边形的质心?
对于 MultiPolygon 的第一个多边形的质心,您可以这样做
mp[0].centroid
有几种方法可以应用它,例如首先将数据框中的每个 MultiPolygon 限制为第一个多边形。
def keep_first(geo):
if geo.geom_type == 'Polygon':
return geo
elif geo.geom_type == 'MultiPolygon':
return geo[0]
df.geometry = df.geometry.apply(lambda _geo: keep_first(_geo))
df.centroid
我有一个包含多边形地理的 GeoDataframe。如果我使用 centroid
函数来查找中心,结果并不总是位于任何多边形内,例如对于一系列岛屿。那么,如何只找到多边形中第一个多边形的质心?
对于 MultiPolygon 的第一个多边形的质心,您可以这样做
mp[0].centroid
有几种方法可以应用它,例如首先将数据框中的每个 MultiPolygon 限制为第一个多边形。
def keep_first(geo):
if geo.geom_type == 'Polygon':
return geo
elif geo.geom_type == 'MultiPolygon':
return geo[0]
df.geometry = df.geometry.apply(lambda _geo: keep_first(_geo))
df.centroid