我有一个包含多面地理的GeoDataframe。如果我使用centroid
函数查找中心,则结果并不总是位于任何多边形内,例如一系列的岛屿。那么,如何找到多多边形形状中仅第一个多边形的质心?
答案 0 :(得分:2)
对于MultiPolygon的第一个多边形的质心,您可以做
mp[0].centroid
有几种方法可以应用它,例如首先将数据框中的每个MultiPolygon限制为第一个Polygon。
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