我目前正在使用 Python 进行一个地理空间分析项目,我需要计算一组地理点的凹壳(alpha 形状)。我正在使用
alphashape
库来完成此任务。然而,我面临一个问题,即更改 alpha 参数似乎并没有按预期改变生成的凹壳的形状。
我有一个代表小城市地区的点(经度和纬度)数据集。我的目标是创建一个紧密遵循这些点轮廓的凹形船体。然而,即使改变 alpha 参数,船体的形状也基本保持不变。
这是我的代码片段:
import pandas as pd
import matplotlib.pyplot as plt
import alphashape
# Load cluster data
data = pd.read_csv('myDir/cluster_0.csv', sep=';')
# Select longitude and latitude columns
points = data[['longitude', 'latitude']].values
# Visualize the concave hull for different alpha values
fig, axes = plt.subplots(1, 3, figsize=(15, 5))
alphas = [0.01, 0.05, 0.1] # Different alpha values to test
for ax, alpha in zip(axes, alphas):
concave_hull = alphashape.alphashape(points, alpha)
ax.scatter(data['longitude'], data['latitude'], color='blue')
if concave_hull:
x, y = concave_hull.exterior.xy
ax.plot(x, y, color='red')
ax.set_title(f'Alpha = {alpha}')
ax.set_xlabel('Longitude')
ax.set_ylabel('Latitude')
plt.tight_layout()
plt.show()
可视化显示船体的形状不会随着不同的 alpha 值而发生显着变化。我原本期望较小的 alpha 能在点周围产生更紧密贴合的船体。
是否有一个常见原因导致 alpha 参数可能无法按预期影响船体形状?我的方法中是否遗漏了某些内容,或者是否有更好的方法来确定给定数据集的适当 alpha 值?
任何见解或建议将不胜感激。谢谢!