Answers:
曲率是要计算的复杂地形导数,您使用的方程式取决于输入数据的分辨率,因为您必须确保可以将计算出的曲率结果与数据中的噪声区分开。
最近在高分辨率LiDAR数据的曲率计算上进行了大量研究,结果表明在大约2米或3米的分辨率下存在定标断裂,在此之上,需要使用更多不同的算法(我不太熟悉) 。有关计算地形曲率的最佳信息可能来自Hurst等人2012年及其中的参考文献。
曲率计算的基本原理(与坡度和长宽比一样)是在高程表面上传递一个移动窗口,并使高程值适合6项多项式函数,其系数将得出中心的坡度,长宽比和曲率移动窗口的单元格。
ArcGIS使用3x3搜索窗口,该窗口只会在完全没有植被的区域中产生良好的结果,这使得该工具相当无用,除非人们意识到此限制,这可能说明了为什么它在QGIS中不存在。
该数学最初源自(我认为)是在Evans(1980)中进行的,并在《地理信息系统原理》(Amazon链接)的几页中进行了简化,我可以推荐这些数学基础作为此类地形分析的良好指南。
一种计算DEM曲率的方法是将DEM转换为ascii栅格,将其读取为numpy数组,然后对通过数据的移动窗口执行多项式拟合。这很容易做到,但是执行起来却很慢,并且需要进行大量的优化(这些操作通常会移植到c ++来加速它们)。
要在QGIS中执行操作,您可以使用GRASS插件r.slope.aspect,该插件也受3x3固定窗口的限制。
我意识到这不是您无疑希望得到的简单答案,但我希望您理解以有意义的方式得出曲率是复杂的。祝一切顺利。
Evans, I. S. (1980), An integrated system of terrain analysis and slope mapping, Z. Geomorphol., 36, 274–295.
ESRI的用于分析曲率的Raster Analysis版本可能有助于开发QGIS插件。
对于每个像元,形式为:
Z =Ax²y²+Bx²y+Cxy²+Dx²+Ey²+ Fxy + Gx + Hy + I
适合于由3x3窗口组成的表面。从该表面计算系数a,b,c等。
如图所示,每个单元的系数与九个仰角值之间的关系如下:曲率值图曲率值图
A = [(Z1 + Z3 + Z7 + Z9)/ 4-(Z2 + Z4 + Z6 + Z8)/ 2 + Z5] / L4
B = [(Z1 + Z3-Z7-Z9)/ 4-(Z2-Z8)/ 2] / L3
C = [(-Z1 + Z3-Z7 + Z9)/ 4 +(Z4-Z6)] / 2] / L3
D = [(Z4 + Z6)/ 2-Z5] / L2
E = [(Z2 + Z8)/ 2-Z5] / L2
F =(-Z1 + Z3 + Z7-Z9)/ 4L2
G =(-Z4 + Z6)/ 2L
H =(Z2-Z8)/ 2L
我= Z5
“曲率”工具的输出是曲面的二阶导数(例如,斜率),因此:
曲率= -2(D + E)* 100
完整信息和来源:
http://help.arcgis.com/zh-CN/arcgisdesktop/10.0/help/index.html#//00q90000000t000000
-2(D+E)*100
方法(100/L2)*(3*Z5 - [Z2+Z4+Z6+Z8+Z5])
显示了如何获得该值的三倍的原始值Z5
,减去邻域总和Z2+Z4+Z6+Z8+Z5
(使用半径为1的圆),全部用来重新缩放100/L2
。那只是三个简单的网格操作。
曲率可以使用SAGA的模块“地形分析-形态分析--->坡度,纵横比,曲率”来计算
可以基于以下算法之一进行计算:
LandSerf可以执行此操作。您可以定义窗口大小(3 * 3、5 * 5、7 * 7、11 * 11等),但必须为奇数。多尺度分析。您可以考虑坡度,纵横比和曲率的比例依赖性。http://www.landserf.org/ LandSerf将co二次多项式方程式拟合到特定的预定义窗口,但是如果您定义大窗口尺寸(如50 * 50),则需要花费很长时间。这取决于您定义的栅格大小和窗口大小。乔·伍德(Jo Wood)为他的博士学位论文写了Landserf。它是用Java编写的。
可以在LandSerf中以不同的比例计算
您也可以尝试免费的SAGA GIS(http://sourceforge.net/apps/trac/saga-gis/wiki)或TAS(http://www.uoguelph.ca/~hydrogeo/TAS/index.html)。