山顶点是指局部区域内海拔最高点,通常位于山脊或山脉的高处,周围地形在水平或垂直方向上均低于该点。山顶点是地形地貌中的重要特征点,是地形起伏的关键标志点,山顶点的分布特征(密度、高程)能反映地形地貌的发育特征,如区域构造运动(抬升、断裂)或外力侵蚀强度(如河流切割、冰川侵蚀)等。

一、高程差提取山顶点

由于山顶点是局部区域的最高点,因此可以利用高程差的方式进行提取。原理为利用邻域分析方法提取局部最高点,其与原始地形的差值即有可能为山顶点(实验数据于文末下载链接或点击文末阅读原文获取)。

1. 局部最大值

Spatial Analyst 工具➡️邻域分析,打开焦点统计工具输入栅格下拉菜单选择原始DEM图层输出栅格选择保存位置并命名(本例为dem_max域设置输入分析窗口大小(本例为17×17统计类型下拉菜单选择MAXIMUM(即最大值),确定

得到研究区分析窗口为17的邻域分析最大值图层。

2. 高程差值

Spatial Analyst工具➡️地图代数,打开栅格计算器。在对话框输入公式:最大值-原始值(鼠标双击两个图层及减号,切勿手动输入公式。本例为‘dem_max’ – ‘dem_test’输入栅格选择保存位置并命名(本例为minus,确定

得到最大值与原始值的差值图层。

3. 山顶点提取

最大值减原始值,如果值为0,则为山顶点,因此只需要保留差值图层为0的区域。

再次打开栅格计算器,输入公式:‘minus’ == 0输出栅格选择保存位置并命名(本例为minus0)。确定。

得到仅保留差值为0的结果。

此时可能看不太清潜在山顶点在哪里,局部放大即可,其中图层属性值0为背景层,属性值为1的即为潜在山顶点(本例为黑色点)。

将背景值去除,仅保留潜在山顶点。3D Analyst 工具➡️栅格重分类,打开重分类工具输入栅格选择上步计算结果minus0图层重分类中,0对应NoData,1对应1,NoData对应NoData输出栅格选择保存位置并命名(本例为minus_rec。确定

得到重分类后的结果。

4. 栅格山顶点转矢量栅格点

此时得到的潜在山顶点实际上是栅格图层,同时并不是所有的山顶点都是一个栅格,有的是由几个栅格组成的面状山顶(有可能是山顶夷平面),例如下图所示由三个栅格组成。

转换工具➡️由栅格转出,打开栅格转面工具输入栅格下拉菜单选择重分类结果图层minus_rec输出面要素选择保存位置并命名(本例为矢量面山顶点,确定

得到转化为矢量面的山顶点。

通常山顶点为点要素,而上步转化成的为矢量面,因此还需要将矢量面山顶点转换为点要素。数据管理工具➡️要素,打开要素转点工具输入要素下拉菜单选择矢量面山顶点图层输出要素类选择保存位置并命名(本例为山顶点。确定

得到最终的山顶点。

叠加山体阴影后(具体配置步骤见GIS制图(6):图层叠加技巧,打造高质感地图),效果如下:

二、负地形洼地提取山顶点

基于负地形洼地提取山顶点,其原理是将原始地形变为负地形或反地形,使原始地形中的山顶点(局部最高点)变为反地形中的洼地点(局部最低点)。这样做的好处是可以规避邻域分析中平坦区域伪山顶点的干扰,通过洼地填充的连续性分析提升精度。

1. 负地形计算

Spatial Analyst 工具➡️地图代数,打开栅格计算器,给原始DEM图层乘-1,将地形反转,公式框输入: – 1 * ‘dem_test’ , 输入栅格选择保存位置并命名(本例为dem_reverse,确定

得到负地形图层。

水文分析(六):山顶点提取

2. 流向

洼地计算前需要先计算流向。Spatial Analyst 工具➡️水文分析,打开流向工具输入表面栅格数据下拉菜单选择负地形图层dem_reverse输出流向栅格数据选择保存位置并命名(本例为direction1,确定

得到负地形流向图层。

3. 提取洼地

Spatial Analyst 工具➡️水文分析,打开输入流向格栅数据选择上步计算的流向图层direction1输出格式选择保存位置并命名(本例为sink确定

得到负地形的洼地,即正地形的潜在山顶点。

此时的图层仍然为栅格面图层,需要将其转换为矢量点,先用栅格转面工具将栅格面转为矢量面(命名为矢量面山顶点1),再用要素转点工具转换为点(命名为山顶点1),具体步骤见方法一相关步骤。得到最终利用洼地提取的潜在山顶点。

可以看到,因为此方法没有经过邻域窗口提取局部最大高程,所以利用洼地提取的潜在山顶点,较方法一,要多很多,负地形有洼地的地方均认为是山顶点,会产生很多冗余的伪山顶点,可以利用等高线对伪山顶点进行剔除。

4. 伪山顶点的剔除

3D Anlyst 工具➡️栅格表面,打开等值线工具输入栅格下拉菜单选择原始DEM图层输出要素类选择保存位置并命名(本例为contour等值线间距设置50(根据需要自行尝试合适的间距,这个仅作示例),其它项默认。确定

得到等高线面图层。

将等高线转化为面:数据管理工具➡️要素,打开要素转面工具输入要素下拉菜单选择等高线图层contour输出要素类选择保存位置并命名(本例为等高线矢量面)。确定

得到等高线矢量图层。

上方菜单栏选择➡️按位置选择,打开按位置选择对话框,选择方法➡️从以下图层中选择要素,在目标图层下的山顶点1前面打勾源图层选择等高线矢量面图层目标图层要素的空间选择方法选择与源图层要素相应,应用,并确定

在等高线矢量面内的山顶点被选中。

此时,选中的为真的山顶点,而其它的则为伪山顶点,需要删除。选择山顶点图层,右键打开属性表,在属性表对话框中,单击切换选择按键,即可将伪山顶点全部选中。

上方菜单栏编辑器➡️开始编辑,在弹出的对话框中选择山顶点1,确定。此时山顶点图层已经处于编辑状态,直接按键盘上的Del删除键,删除伪山顶点即可。

小结

山顶点,多大范围内最高点属于山顶点?笔者并未进行文献资料查阅。如果地势平坦,仅有一个孤峰,那无疑只有一个山顶点;如果是峰群,其中山峰规模大小不同,多大规模的山峰最高点算山顶点?

本节的两种山顶点提取方法,各有优劣,并且各自在提取的时候受多种因素的影响。但是建议大家用第一种方法。

利用高程差在进行邻域最大值提取时,分析窗口影响至关重要,这在前面好多计算中已经说明过,不同邻域分析窗口体现的尺度不一样,会得到不同空间尺度大小的山顶点,也就控制着山顶点的分布密度,需要根据研究需要选择最适合的窗口大小。

利用高程插值提取的山顶点,也可以叠加山体阴影、等高线,对伪山顶点进行剔除,同时可以添加遗漏的山顶点。

而利用负地形提取时,本说明中并没有对原始DEM图层进行水文分析中的填洼处理,而是直接计算的流向,填洼对结果到底有没有影响,留给大家自行尝试。同时也应该注意到,由于负地形的洼地较多,并不是所有洼地都是山顶点,所以需要用等高线去限定,但是等高线在计算时的参数设置对结果也有很大的影响。假设如果所有等高线均闭合,那需要确定多大闭合面积的等高线内的山顶点是真正的山顶点,这个面积阈值也需要讨论。

对比两种方法提取出的山顶点,高差方法在流域边界有山顶点分布,而负地形方法没有,这显然和实际不符,因此建议大家使用前者,第二种方法仅提供思路参考。


END

#artContent h1{font-size:16px;font-weight: 400;}#artContent p img{float:none !important;}#artContent table{width:100% !important;}