You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostGIS计算点集凹壳结果不准 对比QGIS alpha shapes效果差问题问询

PostGIS凹壳计算结果与QGIS差异问题解答

核心原因

  • PostGIS 3.1.3依赖的GEOS 3.8.1版本中,ST_ConcaveHull的实现逻辑与QGIS的「Concave hull (alpha shapes)」完全不同:前者是基于三角剖分的面积占比优化算法,target_percent参数指凹包面积与凸包面积的比值,数值越低凹包越紧凑;后者是标准Alpha Shapes算法,阈值参数为alpha值的缩放比例,两类参数没有对应关系,不能直接套用QGIS的参数值到PostGIS的ST_ConcaveHull中。
  • 旧版本GEOS的ST_ConcaveHull实现对稀疏点云的适配性较差,即便设置极低的target_percent也很难得到贴合点分布的凹包结果。

解决方法

方案一:升级依赖使用对齐算法

将PostGIS升级至3.3及以上版本,同步升级GEOS至3.10及以上版本,使用新增的ST_AlphaShape函数计算凹壳,该函数的实现逻辑与QGIS的Alpha Shapes完全对齐,参数可直接对应调整,示例SQL如下:

CREATE TABLE public.sam_sm_gridded_seismicity_source_09_m4_alpha_01 AS
SELECT ST_AlphaShape(ST_Collect(geom), 0.1)
FROM ssm_geoms.sam_sm_gridded_seismicity_source_09_m4;

方案二:临时适配现有版本

如果暂时无法升级依赖,可尝试调整ST_ConcaveHull的第三个参数为False(返回单一面),再逐步下调target_percent参数测试,但受限于旧版本算法实现,最终效果大概率仍不如Alpha Shapes贴合预期,也可将点集导出到QGIS计算完成后再导入PostGIS使用。

问题相关原始信息

执行的SQL查询:

CREATE TABLE public.sam_sm_gridded_seismicity_source_09_m4_0_00001 AS
SELECT ST_ConcaveHull(ST_Collect(geom), 0.00001, True)
FROM ssm_geoms.sam_sm_gridded_seismicity_source_09_m4;

效果对比图:
PostGIS与QGIS(alpha shapes)凹壳计算效果对比
环境配置:

  • POSTGIS="3.1.3 008d2db" [EXTENSION] PGSQL="130" GEOS="3.8.1-CAPI-1.13.3" PROJ="8.0.0" LIBXML="2.9.1" LIBJSON="0.15"
  • PostgreSQL 13.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit

内容的提问来源于stack exchange,提问作者user2455068

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:54:03