
曲率计算在 ArcGIS 里属于那种“点一下就会、用对很难”的工具。表面分析菜单里它排在坡度、坡向后面很多人做地形分析时顺手就跑了结果出来一张灰扑扑的栅格正负号看不懂数值大小也没概念最后丢进回收站。实际上曲率是刻画地形“凹凸转折”的核心指标剖面曲率能告诉你坡面上的水是加速还是减速平面曲率能告诉你水流是汇聚还是发散这两件事在土壤侵蚀评估、汇流路径判断、道路选线、滑坡敏感性分析里都是绕不开的输入。这篇内容面向的是已经会用 ArcGIS 基本栅格工具、但想把曲率算准、算明白的读者从底层算法思路讲到参数设定、批量脚本、结果解读和踩坑排查能直接照着复现。读完你应该能独立完成一次可交付的曲率计算并且知道结果里每个异常值是怎么来的。1. 曲率计算的底层逻辑与方案选择1.1 曲率不是“弯不弯”是坡度往哪边走很多人第一次接触曲率会把它理解成“地形的弯曲程度”这个说法对了一半。更准确的定义是曲率是坡度在空间上的变化率也就是高程的二阶导数。坡度是一阶导数描述“往哪个方向倾斜、倾斜多少”曲率是二阶导数描述“这个倾斜本身在怎么变化”。举个生活里的例子你开车走一段山路坡度告诉你现在是上坡还是下坡、陡不陡曲率告诉你这段上坡是越走越陡凹形坡还是越走越缓凸形坡。同样坡度 20% 的两段路一段让你越走越吃力一段让你越走越轻松区别就在曲率上。ArcGIS 的曲率工具会给出两个方向的二阶变化剖面曲率Profile Curvature沿最大坡降方向计算反映坡面在上下方向的凹凸正值代表凸起、水流加速负值代表凹陷、水流减速并容易沉积平面曲率Plan Curvature垂直于最大坡降方向计算反映坡面在水平方向的收敛与发散正值代表坡面发散如山脊、鼻状地形负值代表坡面汇聚如沟谷、洼地。这两个指标必须分开看因为它们描述的物理过程完全不同一个管“快慢”一个管“聚散”。把两者混为一谈是曲率分析里最常见的概念错误。还有一个容易忽略的点曲率是尺度相关量。同一个山头用 5 米 DEM 和 30 米 DEM 算出来的曲率符号可能一致量级能差好几倍。原因很简单5 米分辨率保留了大量微小起伏二阶导数对噪声极其敏感稍微一点高程误差就会被放大。所以拿到曲率结果的第一反应不该是“这个值对不对”而是“这个值是在什么分辨率、什么预处理条件下得到的”。脱离尺度和预处理谈曲率数值基本没有意义。1.2 二次曲面拟合九个像元解出三个导数ArcGIS 计算曲率不是拿相邻两个像元做简单差分那样对噪声几乎没有抵抗力。它采用的是经典的局部二次曲面拟合思路以目标像元为中心取一个 3×3 窗口用这九个高程值拟合一个二次多项式然后对这个多项式求二阶偏导得到该点的曲率。这个方法在上世纪八十年代就被系统提出一直沿用到今天ArcGIS、多数开源 GIS 和地形分析软件的实现都基于这个框架。为什么要用二次曲面而不是直接差分因为差分只用了两三个点任何单点误差都会直接传到结果里二次曲面拟合用了九个点相当于做了局部最小二乘平滑对随机噪声有一定抑制作用同时还能同时解出东西向、南北向和交叉项的二阶导数一次性得到剖面和平面两个方向的曲率。代价是窗口边缘的像元没有完整的邻域只能靠外推或者直接置为 NoData这也是后面要讲的“边缘假凸”问题的根源。具体到公式层面拟合出的二阶导数组合成曲率值后工具内部会乘以 100 再输出。所以你看到的 -0.35、0.12 这类数值单位是“1/100 水平单位”不是直接的曲率数值也不是曲率半径。粗略换算曲率半径可以用 R ≈ 100 / 数值单位与 DEM 水平单位一致只能做量级参考别拿去做精确的几何计算。我在给同事解释时一般会说把这堆数字当成“凹凸强度和方向的相对编码”比当成绝对物理量更靠谱。1.3 三套可选路径的取舍对比在 ArcGIS 体系里算曲率不止一条路。不同版本、不同授权、不同批量需求选的方式差别挺大选错了要么多做无用功要么卡在授权上。路径适用场景优点需要注意Spatial Analyst 曲率工具单次计算、少量数据参数直观输出规范需要 Spatial Analyst 许可表面参数工具较新版本一次要坡度、坡向、曲率多项一次出多个结果省重复读盘老版本没有参数更多ArcPy 脚本调用批量、可复现、进模型可循环、可记录参数版本间参数顺序有差异栅格计算器手写公式教学演示、自定义变体完全可控手写窗口运算极慢不推荐生产用我自己的习惯是临时看效果用工具面板正式交付一律走脚本因为脚本能把 Z 因子、平滑窗口、掩膜范围这些关键参数写死在代码里过半年回来复查也知道当时怎么算的。栅格计算器那条路只建议用来验证算法真拿它算整幅 DEM窗口运算的开销大到让人怀疑人生。还有一点值得提不同版本的曲率工具输出项数量和命名不完全一致。老版本主输出就是曲率栅格剖面曲率作为可选输出新版本会把综合曲率、剖面曲率、平面曲率拆得更清楚。拿到一个新环境先看一眼工具对话框里有几个输出框再决定脚本怎么写别照着旧教程硬套参数报错还找不到原因。2. 数据准备与参数设定决定结果成败的两个环节2.1 投影与分辨率先把尺子摆正曲率是二阶导数对水平距离的单位极其敏感。如果 DEM 用的是地理坐标系像元大小以“度”为单位一个像元大约 0.0008 度二阶导数算出来的数值会离谱到没法看正负号都可能失真。所以第一条铁律算曲率之前DEM 必须是投影坐标系水平单位是米或英尺并且这个投影在你研究的区域内变形可以接受。国内常用的是各类高斯-克吕格投影或 UTM 分带投影具体选哪个带、中央经线怎么定按你数据的实际位置来别直接套一个全国范围的投影那样面积和距离变形会污染结果。分辨率的选择同样关键。30 米 DEM 适合流域级、区域级的坡面形态分析5 米、2 米 DEM 适合小范围精细地形比如单个坡面、工程场地。有人喜欢把 30 米 DEM 重采样到 10 米再算曲率觉得“更精细”这是典型的反向操作重采样不会凭空产生地形细节只会用插值把原来的台阶抹平又制造出新的伪起伏二阶导数会把这些插值痕迹全部放大结果看起来花里胡哨实际全是假信号。正确做法是有什么分辨率就用什么分辨率需要更精细的结果就去拿更高精度的原始数据。另外要检查 DEM 的坐标系定义是否真实。有些数据是从别处拷来的坐标值看着像投影坐标但坐标系信息丢了或者标错了软件按像元大小算距离时用的是错的单位。这种情况跑出来的曲率往往数值巨大或者全是零排查起来很费时间。拿到数据先看一眼属性里的坐标系、像元大小、值域范围五分钟的检查能省掉半天的返工。2.2 Z因子填多少算一遍就明白Z 因子是曲率工具里最容易被忽略、也最容易填错的参数。它的作用是告诉工具“高程单位相对于水平单位需要乘一个什么系数”本质是垂直与水平单位的换算。填错了曲率数值会成比例地缩放虽然符号和空间格局不变但你后面做的分级阈值、统计分析全部失效。换算其实很简单记住一个式子Z 因子 垂直单位换算到水平单位的系数。DEM 水平单位是米、高程也是米填 1水平单位是米、高程是厘米填 0.01水平单位是米、高程是英尺填 0.3048水平单位是英尺、高程是米填 3.2808。就这么四行够覆盖绝大多数情况。水平单位高程单位Z 因子说明米米1最常见直接填 1米厘米0.01高程数值普遍偏大时检查米英尺0.3048部分历史数据英尺米3.2808少见但存在度米不建议先投影别硬算有个反直觉的地方要说清楚Z 因子填错不会让结果“看起来明显不对”。比如本该填 1 却填了 0.3048曲率图的空间纹理完全一样只是数值整体缩到原来的三成。你如果只对着图看颜色根本发现不了等到做阈值分级、算面积占比、和其他指标做相关分析的时候才会发现怎么调都对不上。所以我的习惯是把 Z 因子和像元大小一起写进脚本注释交付时一并说明。还有一个常见误区是把 Z 因子当成“夸张系数”觉得填大一点能让地形看起来更明显。在坡度工具里这种用法勉强能接受用于视觉强化但在曲率里不行曲率是要拿去做定量分析的任何人为缩放都会破坏数值的可比性。如果只是想让图好看去调符号系统的色带和分类别动 Z 因子。2.3 DEM 预处理平滑、填洼与边界留白原始 DEM 几乎不可能直接拿来算曲率。测绘产品里常见的高程噪声、植被剔除残留、建筑物残影、水系上的伪洼地在坡度图上不明显在曲率图上会被二阶差分放大成一片雪花点。所以预处理这一步不能省顺序也有讲究。第一步做异常值检查。用栅格统计看一下最小最大值如果出现 -9999 之外的可疑负值或者远超区域最高峰的正值先找出来处理掉。第二步做填洼。汇流分析用的填洼在这里也有意义因为洼地边缘的曲率会被强行拉成极端凹形形成虚假的汇水中心。填洼的阈值别设太大超过一两个像元深度的“坑”可能本身就是真实地形比如喀斯特洼地、矿坑填掉反而失真必要时用条件判断只填小洼地。第三步是平滑这一步最有争议。3×3 均值滤波能明显压制噪声代价是削平真实的小尺度起伏让曲率变得更“温和”。我的经验是如果研究目标是坡面尺度的侵蚀、汇流用 3×3 平滑如果目标是微地形、工程精细分析尽量不平滑改用更高精度的原始数据如果非平滑不可用中值滤波比均值滤波更保边。平滑窗口一定要记录因为它直接决定了曲率结果的尺度属性。第四步是边界留白。曲率工具在栅格边缘的像元上没有完整邻域输出通常是 NoData 或者被外推成虚假的凸起。稳妥的做法是计算前把研究区边界向内收缩一到两个像元或者计算后用掩膜裁掉外圈。这一步在拼接过多块 DEM 的项目里尤其重要接边处的曲率经常出现一条明显的异常带不做处理会污染后续统计。3. 从 DEM 到曲率栅格的完整实操3.1 单次计算工具面板逐项设置先走一遍最基础的单次流程把每个参数的含义落实。打开 Spatial Analyst 工具箱下的表面分析找到曲率工具。输入栅格选预处理好的投影 DEM输出曲率栅格给一个有意义的命名别用默认的 Curv1后期根本分不清是哪版数据算的如果工具提供剖面曲率和平面曲率的独立输出框两个都勾上并分别命名后面解读时你会庆幸自己没偷懒Z 因子按上一节的方法填输出像元大小保持与输入一致不要在这里改分辨率。运行前建议先在环境设置里确认三件事工作空间指向文件地理数据库而不是散落的文件夹避免产生一堆同名 shp 和 aux 文件处理范围设为与输入 DEM 一致捕捉栅格设为输入 DEM。这三项不设多轮计算后栅格的微小错位会让你在做叠加分析时莫名其妙地对不上。运行完成后不要急着关窗口先把三个输出的统计值拉出来看一眼最小值、最大值、均值、标准差。正常的剖面曲率输出数值大致落在 -0.5 到 0.5 这个量级个别陡峭地形会超出均值接近 0标准差在 0.05 到 0.2 之间。如果最大值到了几千直接跳到第 4 节排查单位问题如果全是 0先确认 DEM 是不是真的平坦或者是不是被当成了整型栅格做了某种截断。3.2 结果符号解读与分级配色曲率图默认的灰度配色几乎没法看必须重新分级。剖面曲率的解读逻辑是负值凹、正值凸、接近 0 平直。我一般用五级分类小于 -0.1 强凹、-0.1 到 -0.02 弱凹、-0.02 到 0.02 平直、0.02 到 0.1 弱凸、大于 0.1 强凸。分类断点不是固定的要结合你区域的坡度整体情况调整陡峭山区可以把阈值放大平缓平原要缩小否则全挤在中间一类里。配色上用发散色带负值一端用冷色蓝、青正值一端用暖色橙、红中间用浅灰或白色。这样一眼就能看出哪些坡面在“兜水”、哪些在“放水”。平面曲率的配色逻辑类似但语义不同负值是汇聚沟谷正值是发散山脊配色时最好在图例里直接写“汇聚/发散”而不是“负/正”避免读图的人二次翻译出错。还有一个提高可读性的技巧把曲率图和山体阴影做半透明叠加或者用曲率做色带、用 hillshade 做透明度。纯曲率图缺少立体感外行看着就是一片色块叠加阴影后地形骨架立刻清楚汇报时省去很多解释成本。注意阴影只做视觉参考别把它当成分析图层参与计算。3.3 批量处理一个可复用的脚本正式项目里 DEM 往往不止一幅手工点十几遍既慢又容易漏参数。用 ArcPy 写个循环是最稳的下面这段可以直接改路径复用。需要说明的是不同版本的曲率函数参数个数和顺序略有差异我按较常见的写法给跑之前先用一幅数据试通再批量。import arcpy from arcpy.sa import Curvature import os arcpy.CheckOutExtension(Spatial) arcpy.env.workspace rC:\giswork\dem.gdb arcpy.env.overwriteOutput True # 关键参数集中管理方便复查 Z_FACTOR 1 # 水平米、高程米 SMOOTH_WIN 3 # 预处理平滑窗口未平滑填 0 dem_list arcpy.ListRasters(*, RALL) for dem in dem_list: base os.path.splitext(dem)[0] try: # 平滑可选中值滤波比均值更保边 src dem if SMOOTH_WIN and SMOOTH_WIN 1: smooth_name base _smooth arcpy.sa.FocalStatistics( dem, arcpy.sa.NbrRectangle(SMOOTH_WIN, SMOOTH_WIN, CELL), MEDIAN ).save(smooth_name) src smooth_name # 曲率计算依次输出综合曲率、剖面曲率、平面曲率 Curvature(src, Z_FACTOR, base _curv, base _prof, base _plan) print(done: base) except Exception as e: print(fail: base - str(e)) arcpy.CheckInExtension(Spatial)如果你的版本里Curvature只接受两个输出参数把最后一行多余的参数去掉即可反过来如果工具面板里只有一个输出框说明该版本把剖面曲率作为主输出平面曲率需要单独调用或者用表面参数工具。判断方法很简单在 Python 窗口敲help(Curvature)看签名就知道比翻文档快。脚本跑完建议加一步自动统计把每幅图的 min、max、mean、std 写进一张表。这一步看着多余实际非常有用——批量处理时最容易出现某一幅数据单位不对、投影缺失统计表里一眼就能发现离群的那一幅。stats [] for dem in dem_list: base os.path.splitext(dem)[0] out base _curv if arcpy.Exists(out): mn arcpy.GetRasterProperties_management(out, MINIMUM)[0] mx arcpy.GetRasterProperties_management(out, MAXIMUM)[0] mean arcpy.GetRasterProperties_management(out, MEAN)[0] stats.append((base, mn, mx, mean))3.4 与坡度坡向叠加把地形部位分出来单看曲率只能知道凹凸加上坡度才能落到具体地形部位。把剖面曲率和平面曲率做一次交叉能得到一张很有用的地形部位图平面曲率汇聚加剖面曲率凹是典型的沟谷底部汇水能力强平面曲率发散加剖面曲率凸是山脊线水往外散两个都接近 0是平直坡面平面汇聚加剖面凸是坡中部的浅沟或切沟发育带这类位置在侵蚀评估里要重点关注。平面曲率剖面曲率地形部位水文含义汇聚负凹负沟谷底汇流、沉积汇聚负凸正坡中切沟带汇流加速、侵蚀强发散正凸正山脊分流、水分差发散正凹负坡顶洼地/鞍部局部滞水平直平直直形坡均匀漫流具体操作可以用栅格计算器做条件判断也可以用重分类后叠乘。我偏向重分类先把两个曲率各分成 -1、0、1 三类再用一个 3×3 的组合表映射到地形部位编码逻辑清楚、便于修改也不容易写出嵌套过深的条件表达式。做完之后拿山体阴影对一遍看看沟谷线、山脊线是不是真的落在该落的位置误差大的地方通常是平滑过头或者 DEM 本身有问题。这里补充一个实操心得坡度很小比如小于 2 度的区域最大坡降方向本身就不稳定剖面曲率和平面曲率的方向定义会变得随机结果可能在正负之间跳。这类平坦区域建议单独掩膜出来不要参与地形部位分类否则会生成一堆破碎的伪斑块看着像噪声实际是算法在平坦面上的固有不确定性。4. 常见问题与排查实录4.1 输出全是 0 或一片 NoData这是最高频的问题。输出全 0先分两种情况如果统计值确实全是 0.000多半是 Z 因子被填成了 0或者 DEM 本身是常量栅格比如裁剪时弄错了图层。Z 因子填 0 会让所有高程被压成同一个平面二阶导数自然全为零符号和纹理都不会有。改回正确值重跑即可。输出全是 NoData 则是另一回事通常是处理范围和环境设置出了问题。检查处理范围是不是被设成了一个不相交的矩形检查捕捉栅格是否与输入错位检查输入 DEM 是否本身就在研究区外。还有一种隐蔽情况DEM 是整型且值域范围极小工具在某些版本里会对整型输入做特殊处理建议先把 DEM 转成 32 位浮点再算这一步几乎零成本能规避不少莫名其妙的截断问题。如果输出是“大部分正常、局部一片 NoData”看形状。规则的矩形空洞一般是掩膜或分块处理留下的不规则的斑块多半是原始 DEM 里的 NoData 区域曲率工具在 NoData 邻域无法完成九点拟合会把周围一圈也标成 NoData。这种“空洞扩散”是算法特性不是错误处理办法是先对 DEM 做小范围填补用邻域插值或样条再算曲率最后用原始有效范围掩膜回来。4.2 数值大得离谱九成是单位没对齐曲率值动辄几百上千第一个怀疑对象永远是坐标系。DEM 标着投影坐标但实际存的是经纬度数值或者坐标系信息缺失软件就按度来算距离一个像元 0.0008 度二阶导数除以一个极小数的平方结果自然爆炸。快速验证方法看 DEM 属性里的像元大小如果显示 0.0008 或 0.0003 这种量级基本可以确定是地理坐标先投影再说。第二个怀疑对象是 Z 因子和方法不匹配。高程用厘米存、Z 因子填 1相当于把地形垂直放大了 100 倍曲率也跟着放大 100 倍。这种情况的特征是数值整体偏大但空间格局合理改对 Z 因子后一切正常。判断技巧拿一个已知的陡坎或阶地边缘用手算的坡度估算一下量级和工具输出对比差一个数量级以上就要查单位。第三个容易被忽略的原因是 DEM 里混进了异常高程值。比如水体被填成 0、建筑残留被赋成 9999这些孤立的尖峰会在曲率图上形成极端的正负对统计最大值直接被拉爆。处理办法是先做值域筛选把超出合理范围的值设为 NoData再用邻域统计填补千万别直接拿原始数据往下跑。4.3 边缘假凸与斑点噪声栅格边缘出现一圈明显偏正凸的条带是曲率工具的固有现象。边缘像元缺少完整邻域拟合时只能外推外推的结果往往偏向“向外凸”。解决办法有两个计算前用缓冲区把研究区边界内缩两到三个像元算完再裁回来或者计算后直接用内缩的掩膜裁掉边缘。两种做法效果差不多我倾向前者因为能避免边缘异常值影响后续的统计和分级断点确定。斑点噪声表现为曲率图上密密麻麻的正负交替小点放大看像椒盐。来源有三个原始 DEM 的随机误差、重采样引入的插值振铃、以及分辨率过高导致真实微地形和噪声混在一起。对应的处理分别是平滑滤波、避免重采样、以及适当降低分析分辨率或改用中值滤波。我遇到过一次特别顽固的噪声最后发现是 DEM 从整型转浮点时被做了某种拉伸换回原始浮点数据后噪声直接消失所以排查噪声时别只盯着滤波参数数据本身的处理历史也要问清楚。还有一类“假噪声”其实是真实地形比如农田的垄沟、梯田的田坎、矿区的台阶。这些规则的人工地物在曲率图上表现为密集的平行条带看着像噪声但位置规律。判断方法是叠加影像或者等高线看如果条带走向和地物一致就保留不要盲目平滑掉否则会丢失有意义的微地形信息。4.4 问题速查表现象最可能原因快速验证处理全部为 0Z 因子为 0 或常量 DEM看 DEM 统计值改 Z 因子、换数据全部 NoData范围/捕捉设置错误检查环境设置重设范围与捕捉数值上千地理坐标未投影看像元大小是否 0.000x投影后重算数值整体偏大Z 因子单位错对比坡度估算按换算表修正边缘一圈异常邻域不完整外推看边缘条带是否规则内缩掩膜裁边斑点密集DEM 噪声/重采样叠加影像看位置中值滤波、换原始数据平坦区正负跳变坡度太小方向不稳叠加坡度图坡度阈值掩膜接边处条带多块 DEM 拼接误差看接缝位置接边处单独平滑或裁掉5. 曲率结果往哪用几个落地场景5.1 地形部位与地貌制图曲率最直接的用途是把连续地形切成有语义的地形部位。传统地貌制图靠等高线形态人工判读费时且主观用剖面曲率和平面曲率组合可以半自动地分出山脊线、谷底线、坡面、鞍部、洼地这几类基本单元。做法是先按 3.4 节的组合表分类再做众数滤波去掉零星碎斑最后转成面要素做制图综合。这套流程在区域地貌调查里很实用尤其是需要快速出一张概略图的时候。但要清楚它的局限曲率分类给出的是几何形态不是成因类型。一个由滑坡形成的凹坡和一个由流水侵蚀形成的凹坡在曲率图上长得一样。所以最终的地貌图还得靠野外验证和影像判读来补充成因信息曲率只是把“哪里需要重点看”圈出来替代不了人的判断。5.2 汇流路径与土壤侵蚀判断平面曲率的汇聚区是天然的汇流路径指示。把平面曲率小于某个阈值的像元提取出来再和填洼后的流向、汇流累积量叠加能快速勾出潜在汇水线。相比纯水文方法提取的河网曲率法的优势在于它不依赖完整的汇流计算对洼地和不连续地形的容忍度更高适合做初步筛查。在土壤侵蚀评估里剖面曲率的凹凸直接影响坡面流速。凸形坡水流加速侵蚀能力强凹形坡水流减速容易沉积。把剖面曲率和坡度、坡长一起作为侵蚀模型的修正因子比单用坡度更贴近实际过程。我做过一个小流域的对比同样的坡度条件下凸形坡的细沟密度明显高于凹形坡这个差异在只考虑坡度的模型里完全体现不出来加上曲率后解释力提升不少。5.3 工程选线与选址的辅助筛选道路、管线选线时曲率能帮忙识别需要避让或重点设计的位置。平面曲率强烈汇聚的位置往往是天然排水通道路基容易受水毁剖面曲率剧烈变化的位置意味着坡度突变纵断面设计要额外处理。把曲率图和坡度图叠加筛出“坡度中等但曲率极端”的段落这些地方在平面图上不显眼实际施工时最容易出问题。场地选址也是类似逻辑。一块看着平坦的台地如果边缘剖面曲率是强凹说明周边在汇水排水设计要考虑清楚如果平面曲率强发散说明这块地本身在分水岭上水源条件可能偏弱。这些判断不需要精确的曲率数值看符号和量级就够但前提是曲率算得对、Z 因子没填错否则符号都可能反。需要提醒的是曲率只能做初筛不能替代工程勘察。它是从 DEM 上算出来的表面形态看不出土层厚度、岩性、地下水这些决定性的东西。我一般把它定位成“圈定重点关注段落”的工具把百米级的线路缩到几段重点区后面该钻探钻探、该测绘测绘别指望一张曲率图给出结论。5.4 结果验证用山体阴影和断面图交叉检查曲率结果做完一定要验证不然错了都不知道。最快的验证是叠山体阴影把曲率按发散色带渲染山体阴影设 40% 到 50% 透明度压在上面然后找几条明显的山脊和沟谷看曲率符号对不对得上。山脊应该是平面曲率正值带沟谷应该是负值带如果反了说明符号约定理解错了或者 Z 因子出了负值之类的怪问题。第二种验证是拉断面图。在曲率图上垂直穿过一条山脊画条线把高程剖面拉出来对照剖面曲率的正负分布高程剖面上凸的段剖面曲率应该是正的下凹的段应该是负的。这个方法特别适合检查局部异常比如某个位置曲率符号和实际地形对不上多半是 DEM 本身的坑或者平滑过度造成的。第三种是抽样对比。随机取几十个点用相邻像元手工估算一个粗略的曲率量级和工具输出比。不需要精确到小数点差一个数量级就足够说明问题。这个笨办法我在每次换数据源、换软件版本的时候都会做一遍花十分钟能避免后面几天的返工。最后再分享一个我在实际项目里养成的小习惯每次算完曲率把用的 DEM 名称、分辨率、投影、Z 因子、平滑窗口、工具版本这几项写进一个随手的文本记录里和输出栅格放在同一个文件夹。曲率这种对参数敏感的结果隔几个月回头看没有参数记录基本等于作废。这个习惯不花什么时间但真到了要复现或者交接的时候价值远超那几分钟。另外如果研究区跨了多个投影带或者多种地形类型别指望一套分级阈值走天下分区定阈值、分区验证结果的可信度会高很多。