PostGIS实现DEM分析之地形崎岖度指数计算【ST_TRI】

发布时间:2026/7/1 0:26:28

PostGIS实现DEM分析之地形崎岖度指数计算【ST_TRI】 一、函数概述ST_TRITerrain Ruggedness Index用于计算地形崎岖度指数。TRI 通过量化中心像素与其 8 邻域像素的高程差异反映地形表面的粗糙程度和破碎度。该指标在生态栖息地评估、军事行动规划和灾害风险分析中具有重要应用。二、参数解析raster ST_TRI(raster rast,-- 输入DEM栅格integernband,-- 指定栅格波段通常为高程波段raster customextent,-- 自定义输出范围可选默认与输入一致textpixeltype32BF,-- 输出像素类型默认32位浮点型booleaninterpolate_nodataFALSE-- 是否插值处理NoData);参数说明1. 计算逻辑对每个像素 P计算其与 8 邻域像素的高程差绝对值之和再取平均TRI(P) [Σ| P.value - 邻域像素值 |] / 8结果值越大地形越崎岖如山区、破碎地貌值越小地形越平坦如平原、冰盖。2. 窗口限制函数固定使用3×3 邻域窗口半径 1 像素不可调整。3. NoData 处理若窗口内存在 NoData默认输出 NoData启用interpolate_nodata可插值填充邻域值。三、算法原理1. 高程差计算对中心像素 P 及其 8 邻域像素 N₁,N₂,…,N₈差异值 |P - N₁| |P - N₂| ... |P - N₈|2. 指数计算TRI 差异值 / 8本质为局部高程变异性度量突出地形的微观起伏特征。四、典型示例示例 1基础 TRI 计算WITHdem_dataAS(SELECTST_SetValues(ST_MakeEmptyRaster(5,5,0,0,1,-1),1,1,1,ARRAY[[10,10,10,10,10],-- 平坦区域[10,15,15,15,10],-- 缓坡[10,15,20,15,10],-- 山顶中心像素20[10,15,15,15,10],-- 缓坡[10,10,10,10,10]-- 平坦区域]::doubleprecision[][])ASrast)SELECTST_TRI(rast,1,NULL,32BF)AStri_rasterFROMdem_data;输出解析中心像素20的 TRI 值为[|20-15||20-15||20-15||20-15||20-10||20-10||20-10||20-10|]/8 5平坦区域 TRI 值为 0缓坡区域 TRI 约为 2.5。示例 2插值处理 NoData 区域SELECTST_TRI(rast,nband :1,customextent :NULL,pixeltype :32BF,interpolate_nodata :TRUE-- 插值填充邻域NoData)AStri_with_interpolationFROMdem_with_nodata;场景处理含湖泊、建筑物等空洞的 DEM避免空洞区域影响 TRI 计算。示例 3崎岖度分级统计WITHtri_resultsAS(SELECTST_TRI(dem.rast,1)AStriFROMdem_table)-- 分级统计各地形崎岖度占比SELECTCASEWHENtri1THEN极平坦WHENtriBETWEEN1AND3THEN平缓WHENtriBETWEEN3AND5THEN中等崎岖ELSE高度崎岖ENDASruggedness_class,COUNT(*)ASpixel_countFROMST_DumpValues(tri_results.tri)GROUPBYruggedness_class;五、输出值与地形类型关系TRI 值范围地形特征描述典型区域示例0-1极平坦城市广场、湖面1-3平缓起伏农田、低丘3-5中等崎岖丘陵、梯田5-10高度崎岖山区、峡谷10极其崎岖破碎地形喀斯特地貌、火山口六、性能优化1. 数据类型选择输出推荐使用32BF浮点型保留精度若仅需分级可转为8BUI整数型ST_TRI(rast,pixeltype :8BUI)2. 并行计算结合 PostgreSQL 并行查询加速大规模栅格处理SETmax_parallel_workers_per_gather4;SELECTST_TRI(rast,1)FROMlarge_dem;3. 边界扩展对边缘像素可先通过ST_Expand扩展栅格避免边界效应WITHexpanded_demAS(SELECTST_Expand(rast,1)ASexpanded_rast-- 扩展1个像素FROMdem_table)SELECTST_TRI(expanded_rast,1)FROMexpanded_dem;4. 与其他指标结合TRI 常与坡度ST_Slope、粗糙度ST_Roughness联合分析全面描述地形特征。七、应用场景1. 生态栖息地评估野生动物如山地山羊偏好特定崎岖度的地形TRI 用于栖息地适宜性建模。2. 军事与机器人路径规划高 TRI 区域通行难度大需避开或规划特殊通行策略。3. 自然灾害风险分析高 TRI 区域易发生滑坡、泥石流结合坡度和土壤类型可构建风险模型。4. 户外休闲规划徒步路线设计中TRI 值可量化路线难度辅助路线规划。八、总结通过ST_TRI可快速量化地形的局部变异性为地形分析、生态研究和工程应用提供关键参数。合理处理边界和 NoData 区域结合其他地形指标能更全面地刻画地表形态。

相关新闻