Home 新闻中心 技术博客

ArcGIS山脊线、山谷线和山顶点的提取

发布时间:2021-10-24 23:44:45   浏览量:160   作者:GIS前沿

特征地形要素,主要是指对地形在地表的空间分布特征具有控制作用的点、线或面状要素。特征地形要素构成地表地形与起伏变化的基本框架。与地形指标的提取主要采用小范围的邻域分析不同的是,特征地形要素的提取更多地应用较为复杂的技术方法,如山谷线、山脊线、沟沿线等的提取采用了全局分析法(global process),成为栅格数据地学分析中很具特色的数据处理内容。

特征地形要素从表示的内容上可分为地形特征点和特征线两大类。地形特征点主要包括山顶点(peak)、凹陷点(pit)、脊点(ridge)、谷点(channel)、鞍点(pass),平地点(plane)等。利用DEM提取地形特征点,可利用一个12×12或更大的栅格窗口,通过中心格网点与8个邻域格网点的高程关系来进行判断获取。

一方面,山脊线和山谷线构成了地形起伏变化的分界线 (骨架线),因此它对于地形地貌研究具有重要的意义。另一方面,对于水文物理过程研究而言,由于山脊、山谷分别表示分水性与汇水性,山脊线和山谷线的提取实质上也是分水线与汇水线的提取。

自动提取山脊线和山谷线的主要方法都是基于规则格网DEM数据的,从算法设计原理上来分,大致可以分为以下五种:

1.基于图像处理技术的原理;

2.基于地形表面几何形态分析的原理;

3.基于地形表面流水物理模拟分析原理;

4.基于地形表面几何形态分析和流水物理模拟分析相结合的原理;

5.平面曲率与坡形组合法。

其中,平面曲率与坡形组合法提取的山脊、山谷的宽度可由选取平面曲率的大小来调节,方法简便,效果好,具体为什么好你得先看完操作过程我才好跟你解释哈,希望各位看官仔细阅读,受益无穷哦,哈哈哈哈哈哈哈哈哈。

(1) 我在上一篇文章详细讲解了无误差的平面曲率的含义以及提取方法,本次不再阐述哦,文章链接:超详细讲解ArcGIS中地形指标的提取

最终提取的SOA数据如下图所示:请添加图片描述
(2) 点击初始DEM数据,使用【Spatial Analysis工具】【邻域分析】【焦点统计】工具;设置统计类型为平均值(MEAN),邻域的类型为矩形(也可以为圆),邻域的大小为12×12(这个值也可以根据自己的需要进行改变),则可得到一个邻域为12×12的矩形的平均值数据层,记为MEAN;请添加图片描述
(3)使用【栅格计算器】计算,公式ZFDX=“DEM”-“MEAN”,即可求出正负地形分布区域,结果图层如下图所示:请添加图片描述
小编给大家解释一下这个正负地形值的范围是什么意思,意思就是在12*12像元范围内平均高程和其他高程的最大差就是19至-20,而不是整个栅格数据内的高程极差,整个栅格内的高程极差如下图所示哦:

请添加图片描述
(4)使用【栅格计算器】计算,公式为shanji=(“ZFDX”>0)&(“SOA”>80)即可提取出山脊线,结果图如下所示:请添加图片描述
绿色部分是符合条件的栅格像元,值为1,其余黑色的都不符合要求,所以值都为0,这样看起来感觉不出山脊线,为此我们进行重分类,将值为0的栅格像元设置为NoData,得到结果后叠加到山体阴影上面,山体阴影设置和最终展示结果如下图所示:请添加图片描述
请添加图片描述
(5)同理,使用【栅格计算器】计算,公式为shangu=(“ZFDX”<0)&(“SOA”>80)即可求出山谷线,其他后续重分类和上文提取山脊线一致,最终展示结果如下图所示:

请添加图片描述

看到这里发现山脊线和山谷线的提取都比较精确,但是有小伙伴就会问,为什么ZFDX>0&SOA>70就是山脊线,我换成其他数值不行吗?你先不急哈,小编先解释一下这简单的判断语句为什么要这样判断,首先我们知道山脊线肯定是在正负地形图层中大于0的正地形区域里面提取,所以要求ZFDX>0,那么正地形范围很大,怎么判断里面的山脊线呢?划重点了哈,这个很关键的,考试必考。我们前面提取的平面曲率,一个像元平面曲率很大说明什么?说明这个像元的相邻像元的朝向变化很大,朝向变化大说明什么,说明等高线很曲折呀,如下图所示:请添加图片描述
可以发现这个山谷和山脊都是等高线向一个方向弯曲的,高中地理这个经常考的哦!所以在凹陷地区(负地形)内等高线最曲折的那部分应该就是山谷了,而在凸起地区(正地形)内等高线最曲折的那部分应该就是山脊了。

提取山顶点

(1)单击【Spatial Analyst 工具】|【邻域分析】【焦点统计】请添加图片描述
设置统计类型为最大值(MAXIMUM),邻域的类型为矩形(也可以为圆),邻域的大小为12×12(这个值也可以根据自己的需要进行改变),则可得到一个邻域为12×12的矩形的最大值数据层,记为max;

(2)选择【Spatial Analyst 工具】【地图代数】【栅格计算器】,入计算公式:“max”-“dem”==0,得到二值栅格;

请添加图片描述
结果图层中对计算结果为真的像元赋予值1,即“max”-“dem”==0,其余不满足条件的都为0,这时候有的小伙伴就会问了,为什么“max”-“dem”==0的像元就是山顶点?那么小编就跟大家详细解释一下这个山顶点的提取原理吧。我们知道山顶点都是某个小山地的最高点,那么我让每个像元都变成邻域范围内的最高值,其减去原始像元高程等于0的说明原始像元高程就是那个邻域范围内的最高值,必然就是该地区的最高点了,如果大于0说明该像元原始高程是小于邻域范围内的最高值,那就不是山顶点了,这个值不可能小于0,因为前面邻域分析中统计类型是MAXIMUM,所以“max”总是大于或者等于“dem”。

(3)对计算结果进行重分类,选择【Spatial Analyst工具】【重分类】将值为0的像元都设置为NoData,然后叠加到“dem”数据上。

(4)将重分类后的栅格转换为矢量点,在ArcToolbox中选择【转换工具】【由栅格转出】【栅格转点】,转点后如下所示:请添加图片描述
由于受到邻域分析中分析窗口大小的影响,窗口越大提取的点越少,但是窗口过大的话,将会漏掉一些重要的山顶点,为此需要设置合适的窗口大小,对提取的结果,可人工判断删除一些不符合条件的山顶点,最后进行符号化,结果如图所示:请添加图片描述


来源:https://blog.csdn.net/qq_43173805/article/details/119869555