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

问题是我似乎无法计算曲率与地形分析人员一起:



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

#1 楼

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

最近对高分辨率LiDAR数据的曲率计算进行了大量研究,结果表明在2或3米左右的分辨率下存在缩放比例断裂,在此之上,需要使用更多不同的算法(我不太熟悉)用过的。有关计算地形曲率的最佳信息可能来自Hurst等人2012及其参考文献。

曲率计算的基本原理(与坡度和坡向一样)是使移动窗口通过高程表面并将高程值拟合为6项多项式函数,其系数将得出移动窗口中心单元的斜率,纵横比和曲率。

ArcGIS使用3x3搜索窗口,该窗口仅会在完全没有植被的区域产生了良好的结果,这使该工具相当无用,除非人们意识到这一局限性,这可能说明了为什么它在QGIS中不存在。

数学最初是衍生的(I (埃文斯(1980)),并在《地理信息系统原理》(亚马逊链接)中的几页中进行了简化,我可以推荐它作为基本的此类地形分析的良好指南。

计算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年10月18日13:51



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

–user1013346
18 Mar 2 '18 at 4:44

#2 楼

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

I = Z5


>“曲率”工具的输出是曲面的二阶导数(例如,坡度),因此:

曲率= -2(D + E)* 100

完整信息和来源:

http://help.arcgis.com/en/arcgisdesktop/10.0/help/ index.html#// 00q90000000t000000

评论


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

–悲伤
2012年10月18日13:43

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

– hu
2012年10月18日15:02



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

– Hardik
2013年3月7日13:39



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

– Mapperz♦
2013年3月7日14:46

#3 楼

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

可以根据以下算法之一进行计算:


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


#4 楼

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


轮廓曲率
平面曲率
经度曲率
横截面曲率
平均曲率
Min曲率
最大曲率

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

#5 楼

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

评论


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

–悲伤
2012年10月24日在8:22

很抱歉,答案很短。在SAGA中,您可以找到“地形分析-复合分析->标准地形分析”模块。您可以在其中计算曲率,轮廓曲率,平面曲率(软件帮助内没有详细描述)。您可以轻松地从asc,flt等将数据导入SAGA。

– Rok
2012年10月25日在9:34

@sgrieve在TAS中,您可以计算轮廓,平面和切向曲率(菜单:“地形分析”->“主要地形属性”->“曲面导数”)。同样,几乎没有描述它是如何工作的。

– Rok
2012年10月25日9:43