如何计算地形曲率?


29

我有一个高程栅格,我想获得一些基本的地形变量,例如坡度,崎ness度,纵横比或曲率。

问题是,我似乎无法使用地形分析器来计算曲率:

在此处输入图片说明

谁能告诉我为什么这个指标不在列表中?否则如何计算?

Answers:


20

曲率是要计算的复杂地形导数,您使用的方程式取决于输入数据的分辨率,因为您必须确保可以将计算出的曲率结果与数据中的噪声区分开。

最近在高分辨率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.

谢谢大家的发展!但是,QGIS栅格地形分析器的列表中缺少“曲率”选项,这让我很感兴趣。是正常的吗?可以肯定的是,我重新安装了QGIS 1.8版本,但是仍然不存在:-/
Damien 2012年

1
请注意,在GRASS中,您可以使用“ r.param.scale”,它以用户定义的窗口运算符大小(不只是默认的3x3)来计算地形导数(例如曲率)。
user1013346'3

12

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
这是对数学的一个很好的总结,但是如果您的数据分辨率低于3米,则可以简化为使用6项多项式而没有明显的质量损失。
10/18的

5
由于ESRI的“曲率”仅取决于D + E,因此其余所有内容都是不必要的。计算-2(D+E)*100方法(100/L2)*(3*Z5 - [Z2+Z4+Z6+Z8+Z5])显示了如何获得该值的三倍的原始值Z5,减去邻域总和Z2+Z4+Z6+Z8+Z5(使用半径为1的圆),全部用来重新缩放100/L2。那只是三个简单的网格操作。
ub

@whuber:谁能告诉我x和y是什么?Z是曲率值吗?那么-2(D + E)* 100是多少?如果我的矢量文件包含许多多边形,是否想知道天气,多边形内部的区域是凹面还是凸面(平面和轮廓曲率),是否可能?
Hardik 2013年

Z =高程值,-2(D + E)* 100 =曲率值en.wikipedia.org/wiki/曲率(
Osculating_Circle

6

曲率可以使用SAGA的模块“地形分析-形态分析--->坡度,纵横比,曲率”来计算

可以基于以下算法之一进行计算:

  • 最大斜率(Travis等,1975)
  • 最大三角形斜率(Tarboton 1997)
  • 最小二乘拟合平面(Horn 1981,Costa-Cabral&Burgess 1996)
  • Fit 2.Degree Polynom(鲍尔(Bauer),罗登堡(Rohdenburg),博克(Bork),1985年)
  • Fit 2.度多项式(Heerdegen&Beran 1982)
  • Fit 2.度多项式(Zevenbergen&Thorne 1987)
  • 适合3.Degree Polynom(Haralick 1983)

3

LandSerf可以执行此操作。您可以定义窗口大小(3 * 3、5 * 5、7 * 7、11 * 11等),但必须为奇数。多尺度分析。您可以考虑坡度,纵横比和曲率的比例依赖性。http://www.landserf.org/ LandSerf将co二次多项式方程式拟合到特定的预定义窗口,但是如果您定义大窗口尺寸(如50 * 50),则需要花费很长时间。这取决于您定义的栅格大小和窗口大小。乔·伍德(Jo Wood)为他的博士学位论文写了Landserf。它是用Java编写的。

  • 轮廓曲率
  • 计划曲率
  • 经度曲率
  • 截面曲率
  • 平均曲率
  • 最小曲率
  • 最大曲率

可以在LandSerf中以不同的比例计算


2

您也可以尝试免费的SAGA GIS(http://sourceforge.net/apps/trac/saga-gis/wiki)或TAS(http://www.uoguelph.ca/~hydrogeo/TAS/index.html)。


您能否提供有关这些程序包如何计算曲率的更多详细信息?您发布的链接是指向两个GIS软件包的常规链接,与所提问题没有直接关系。
感到悲伤

1
很抱歉,答案很短。在SAGA中,您可以找到“地形分析-复合分析->标准地形分析”模块。在那里您可以计算曲率,轮廓曲率,平面曲率(软件帮助内没有详细描述)。你可以很容易从ASC,FLT,...数据导入SAGA
韩城

@sgrieve在TAS中,您可以计算轮廓,平面和切向曲率(菜单:“地形分析”->“主要地形属性”->“表面导数”)。同样,几乎没有描述它是如何工作的。
拉克(Rok)2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.