ArcGIS生成山脊线

本文详细介绍了如何使用ArcGIS软件通过DEM数据提取山脊线,包括正地形处理、填充洼地、流向分析、流量计算以及最终的山脊线确定和转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

山脊,指山高处像兽脊凸起的部分。是由两个坡向相反坡度不一的斜坡相遇组合而成条形脊状延伸的凸形地貌形态。山脊最高点的连线就是两个斜坡的交线,叫做山脊线。等高线,向低处凸的是山脊。山脊是连成一排的山峰,山峰之间连成一条长线,好像动物的脊骨有一条突出的线条,故名山脊线。这里,我们介绍一下如何使用ArcGIS生成山脊线。


一、数据来源

DEM数据如实验(2)[1]

加载数据

二、提取正地形

为了消除那些存在于负地形区域中的错误的山脊线,最后需要正地形和得到的结果进行乘法运算,所以需要先准备正地形栅格数据。

ArcToolbox内点击“Spatial Analyst工具\邻域分析\焦点统计,调用焦点统计工具。

调用焦点统计工具

在显示的焦点统计对话框内,输入下载的DEM数据,设置邻域高度和宽度为10。点击确定之后得到统计栅格,如下图所示。

在ArcToolbox内点击“Spatial Analyst工具\地图代数\栅格计算器”,调用栅格计算器工具。

在显示的栅格计算器对话框内,输入下面公式:"dem" - "Focal_St"。点击确定之后得到计算结果,如下图所示。

在ArcToolbox内点击“Spatial Analyst工具\重分类\重分类”,调用重分类工具。

在显示的重分类对话框内,以值0为界,小于0赋值为0,大于0赋值为1,点击确定之后可以看到重分类后的效果,如下图所示。

三、提取山脊线

在ArcToolbox内点击“Spatial Analyst工具\水文分析\填洼”,调用填洼工具。在显示的填洼对话框内,输入表面栅格数据为下载的dem数据,点击确定后可以得到填洼后的栅格,如下图所示。

在ArcToolbox内点击“Spatial Analyst工具\水文分析\流向”,调用流向工具。

在显示的流向对话框内,输入表面栅格为上一步填洼后的栅格,如下图所示。点击确定之后可以得到流向的效果。

在ArcToolbox内点击“Spatial Analyst工具\水文分析\流量”,调用流量工具。

在显示的流量对话框内,输入流向栅格数据为上一步得到的流向结果点击确定之后得到流量栅格。

在ArcToolbox内点击“Spatial Analyst工具\地图代数\栅格计算器”,调用栅格计算器工具。在显示的栅格计算器对话框内,输入下面的公式:"F_Ac" == 0,获取流量为0的区域。点击确定后得到计算结果,如下图所示。

通过邻域分析平滑山脊线,在ArcToolbox内点击“Spatial Analyst工具\邻域分析\焦点统计”,调用焦点统计工具。

在显示的焦点统计对话框内,输入栅格为上一步栅格计算后的栅格点击确定之后得到统计结果,如下图所示。

为了判断重分类的阈值,需要先生成等高线和山体阴影帮助判断。

在ArcToolbox内点击“Spatial Analyst工具\表面分析\等值线”,调用等值线工具。

在显示的等值线对话框内,输入栅格选择下载的dem数据,等值线间距设置为30,点击确定之后生成等高线,效果如下图所示。

在ArcToolbox内点击“Spatial Analyst工具\表面分析\山体阴影”,调用山体阴影工具。

在显示的山体阴影对话框内,输入栅格为下载的dem数据。。

点击确定之后可以看到生成的山体阴影,如下图所示。

在焦点统计的栅格图上点击右键,选择属性,如下图所示。

在显示的图层属性对话框内,选择符号系统选项卡,选择已分类,类别设置为2,以等值线图和晕渲图作为辅助判断,不断地调整分类的临界值,属性值越接近1的栅格越有可能是山脊线的位置,最终确定分类阈值为0.52585。

在ArcToolbox内点击“Spatial Analyst工具\重分类\重分类”,调用重分类工具。

在显示的重分类对话框内,将阈值(0.52585)以下赋值为0,阈值(0.52585)以上赋值为1点击确定之后可以得到重分类结果,如下图所示。

为了排除负地形的影响,需要将重分类结果和正地形相乘。

在ArcToolbox内点击“Spatial Analyst工具\地图代数\栅格计算器”,调用栅格计算器工具。

在显示的栅格计算器对话框内,输入下面的公式:"Reclassify " * " Reclassify2 ",其中" Reclassify2 " 为上一步重分类结果," Reclassify "为最开始得到的正地形。点击确定之后可以得到栅格计算结果,

在ArcToolbox内点击“Spatial Analyst工具\重分类\重分类”,调用重分类工具。在显示的重分类对话框内,输入栅格为上一步的计算结果,将0赋值为NoData,1赋值为1。

点击确定之后可以得到山脊线如果需要将山脊线提取成矢量,可以在ArcToolbox内点击“转换工具\由栅格转出\栅格转折线”将山脊线栅格转换为矢量。

### 如何在 ArcGIS 中创建插值等高线 #### 创建 TIN 表面 为了成插值等高线,在 ArcGIS 中通常先要创建一个不规则三角网 (TIN) 表面。这可以通过使用包含高程信息的要素(如点、线和面)来完成[^4]。 对于点数据,这些通常是离散的高度测量值的位置;而带高度信息的线则用于强调地形特征,比如湖泊、河流、山脊以及山谷等地貌结构。至于面,则主要用于限定 TIN 的边界范围以便更好地适应特定的研究区域需求。 ```python import arcpy # 设置工作空间环境 arcpy.env.workspace = "C:/data" # 定义输入要素类路径及字段名 in_point_features = "elevation_points.shp" z_field = "ELEVATION" # 输出 TIN 文件路径 out_tin = "tin_surface.tin" # 使用 CreateTin 函数创建 TIN 数据集 arcpy.CreateTin_3d(out_tin, "", f"{in_point_features} Mass_Points {z_field}") ``` #### 插值得到栅格表面 一旦有了 TIN 或其他类型的三维表面模型之后,下一步就是将其转换成能够支持更广泛分析操作的形式——即栅格图像。这里推荐的方法之一是反距离加权(IDW),它属于一种常见的空间插值技术,适用于从已知样本点预测未知位置处属性值的情况[^3]。 ```python from arcpy.sa import * # 输入 TIN 和输出 IDW 栅格文件路径 idw_raster_output = "idw_elevations.tif" # 应用 IDW 工具执行插值运算并保存结果至指定位置 idw_result = Idw(in_point_features, z_field) idw_result.save(idw_raster_output) ``` #### 提取等高线 当拥有了经过平滑处理后的连续型地表模型后,就可以从中提取出代表不同海拔级别的闭合曲线集合—也就是所谓的“等高线”。这项任务可通过 Contour 地理处理工具轻松实现: ```python # 设定等距间隔参数 contour_interval = 10 # 指定输出等高线 shapefile 路径 output_contours = "contours.shp" # 运行 Contour 工具获取最终产品 arcpyContoursFromRaster_3d(idw_raster_output, output_contours, contour_interval) ``` 上述过程展示了如何利用 Python 脚本自动化的方式,在 ArcGIS 平台上高效地完成了从原始观测站点坐标到可视化表达之间的一系列关键步骤变换。当然除了编程接口外,ArcGIS Desktop 用户也可以借助图形化界面下的 ModelBuilder 来设计相似的工作流逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MR.Sun961

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值