我有一组lat,长点,从这一点我想提取构成边界的点,我使用了凸包,但对于我的purpouse是不够的,因为transferhull只是返回最远的形成所有点适合的多边形的点,我需要所有形成掠夺者的点,就像我附加的图像。我能做什么?是否有某种包可以使用而不是实现任何空间算法? 谢谢
答案 0 :(得分:1)
您必须使用凸多边形包。下面是一个例子:
import alphashape
import matplotlib.pyplot as plt
points = put your points here (can be array)!
alpha = 0.95 * alphashape.optimizealpha(points)
hull = alphashape.alphashape(points, alpha)
hull_pts = hull.exterior.coords.xy
fig, ax = plt.subplots()
ax.scatter(hull_pts[0], hull_pts[1], color='red')
答案 1 :(得分:-1)
假设你有两个LATS,LONGS列表中的所有点(纬度和经度),这个python片段可以解决问题。 hullPoint将具有可以绘制凸包的点集。
import numpy as np
from scipy.spatial import ConvexHull
allPoints=np.column_stack((LATS,LONGS))
hullPoints = ConvexHull(allPoints)
答案 2 :(得分:-1)
改用凹形船体(Alpha形状)。