山顶点提取(ArcPy实现)

一、背景

山顶点指哪些在特定邻域分析范围内,该点都比周围点高的区域。山顶点是地形的重要特征点,它的分布与密度反映了地貌的发育特征,同时也制约着地貌发育。因此,如何基于DEM数据正确有效的提取山顶点,在数字地形分析中具有重要意义。

二、目的

通过等高线、山顶点、洼地点的提取和配置、引导读者熟练掌握利用ArcGIS栅格数据空间分析中等高线的提取、栅格数据邻域分析和窗口计算功能,完成栅格数据表面分析。

三、数据:

黄土丘陵地区 1:10000 DEM 数据(Chp8\Ex5\)。

四、要求

(1)应用栅格数据空间分析模块中的等高线提取功能,分别提取等高距为15米和75米的等高线图,并按标准地形图绘制等高线方法绘制等高线,作为山顶点提取的地形背景;

(2)通过邻域分析和栅格计算器提取山顶点。

五、流程
加载DEM数据->加载Spatial Analyst模块,邻域分析->地图代数->重分类->栅格转点

用DEM生成间隔为15m和75m的等高线,生成山体阴影结果图,二者构成地形晕渲图以辅助判断山顶点位置。对DEM数据进行焦点统计分析,以21*21的窗口进行处理,将生成的结果与DEM数据做差重分类后可得到栅格形式的山顶点数据。将栅格数据转为矢量后结合地形晕渲图删除不合理的山顶点,即得到山顶点的分布。

流程图如下所示:

六、模型构建器

七、ArcPy实现

# -*- coding: utf-8 -*-
import arcpy
from arcpy.sa import *
print "输入示例:D:\桌面\Chp8\Ex5"
arcpy.env.workspace = raw_input("请输入数据所在的文件绝对路径:").decode('utf-8')
a = FocalStatistics('dem', "Rectangle 21 21 CELL", "MAXIMUM")  # Process: 焦点统计
b = Test(a - 'dem', 'value=0')  # Process: 条件测试
c = Con(b, 1)  # Process: 条件函数
arcpy.RasterToPoint_conversion(c, '山顶点')  # Process: 栅格转点

八、结果


注:提取的山顶点的点多不多,是受块统计中分析窗口大小的影响,窗口越大提取的点越少,但是窗口过大的话,将会漏掉一些重要的山顶点。对提取的结果,可人工判断删除局部点。

实验结束 byebye~~

>>点我跳转 > 文章推荐

posted @ 2021-10-10 23:26  槑孒  阅读(593)  评论(0编辑  收藏  举报