一组几何的包络或凸包
Envelope or convex hull of set of geometries
我遇到了一个问题,涉及对我试图解决的几何图形进行分组。这个想法是将许多几何对象分组为“集合”或大多边形。基本上,这意味着要么找到凸包,要么找到这些多边形的联合包络作为一个集合(哪个最简单)。请注意,存在不相交对象的并集。
这是一个例子:
from shapely.geometry import Polygon, LineString, Point, MultiPoint
s = gpd.GeoSeries(
[
Polygon([(4, 4), (4, 2),(2,2), (2, 4)]),
Polygon([(8, 8), (8, 6),(6,6), (6, 8)]),
Polygon([(6, 2), (8, 2),(8,4), (6, 4)]),
Polygon([(2, 6), (2, 8),(4,8), (4, 6)])
]
)
sdf = gpd.GeoDataFrame(s).reset_index()
sdf = sdf.rename(columns={0:'geometry'})
生产
我希望能够找到包含所有正方形的多边形(多多边形),或者只找到其中两个。我想这两种情况下的方法都是一样的。
我显然可以手动定义该多边形,但这只是一个示例,并且 1) 该多边形的形状可能不像四个最外角那么简单,并且 2) 我想自动执行此过程。
有没有办法使用 s.envelope
来做到这一点?我唯一能做的就是找到单个多边形的包络....这(在我的情况下)毫无意义。
我到处都找遍了,什么也没找到。
理想情况下,我将能够决定凸面 hull/envelope 中可以包含多少个多边形或定义其最大面积。
geopandas.envelope(df)
将为您提供所有内容的边界框
df['new_col']=0
df=df.dissolve(by='new_col')
会将所有东西合并成多边形,您可以使用 'by' 中的另一个特征合并成 len(unique(feature)) 多边形。
我遇到了一个问题,涉及对我试图解决的几何图形进行分组。这个想法是将许多几何对象分组为“集合”或大多边形。基本上,这意味着要么找到凸包,要么找到这些多边形的联合包络作为一个集合(哪个最简单)。请注意,存在不相交对象的并集。
这是一个例子:
from shapely.geometry import Polygon, LineString, Point, MultiPoint
s = gpd.GeoSeries(
[
Polygon([(4, 4), (4, 2),(2,2), (2, 4)]),
Polygon([(8, 8), (8, 6),(6,6), (6, 8)]),
Polygon([(6, 2), (8, 2),(8,4), (6, 4)]),
Polygon([(2, 6), (2, 8),(4,8), (4, 6)])
]
)
sdf = gpd.GeoDataFrame(s).reset_index()
sdf = sdf.rename(columns={0:'geometry'})
生产
我希望能够找到包含所有正方形的多边形(多多边形),或者只找到其中两个。我想这两种情况下的方法都是一样的。
我显然可以手动定义该多边形,但这只是一个示例,并且 1) 该多边形的形状可能不像四个最外角那么简单,并且 2) 我想自动执行此过程。
有没有办法使用 s.envelope
来做到这一点?我唯一能做的就是找到单个多边形的包络....这(在我的情况下)毫无意义。
我到处都找遍了,什么也没找到。 理想情况下,我将能够决定凸面 hull/envelope 中可以包含多少个多边形或定义其最大面积。
geopandas.envelope(df)
将为您提供所有内容的边界框
df['new_col']=0
df=df.dissolve(by='new_col')
会将所有东西合并成多边形,您可以使用 'by' 中的另一个特征合并成 len(unique(feature)) 多边形。