【ArcGIS】利用高程进行坡度分析:区域面/河道坡度

2024-02-24 09:52

本文主要是介绍【ArcGIS】利用高程进行坡度分析:区域面/河道坡度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在ArcGIS中利用高程进行坡度分析

  • 坡度
  • ArcGIS实操
    • 案例1:流域面上坡度计算
    • 案例2:河道坡度计算
      • 2.1 案例数据
      • 2.2 操作步骤
  • 参考

坡度

坡度是地表单元陡缓的程度,通常把坡面的垂直高度和水平距离的比值称为坡度。
坡度的表示方法有百分比法、度数法、密位法和分数法四种,其中以百分比法和度数法较为常用。

(1)百分比法:最为常用的方法,即两点的高程差与其水平距离的百分比,其计算公式如下:
坡度 = (高程差/水平距离)x100%

(2)度数法:用度数来表示坡度,利用反三角函数计算而得,其公式如下:
tanα(坡度)= 高程差/水平距离

通常,将坡度分为五级:

  • 1级:坡度≤2度
  • 2级:2<坡度≤6度
  • 3级:6<坡度≤15度
  • 4级:15<坡度≤25度
  • 5级:坡度>25度

ArcGIS实操

案例1:流域面上坡度计算

DEM图如下:
在这里插入图片描述
要基于高程数据进行坡度分析,需要在ArcMap开启扩展模块,选择“自定义\扩展模块”菜单可以选择需要开启的扩展模块。

选择“3D Analyst”和“Spatial Analyst”模块,即可开启ArcGIS的3D分析和空间分析功能。
在这里插入图片描述
点击“ArcToolbox”按钮,可以打开ArcGIS的GIS分析工具箱。在“ArcToolbox”中,双击“3D Analyst 工具\栅格表面\坡度”菜单,会显示“坡度”对话框。
在这里插入图片描述
在该对话框中,点击“输入栅格”的下拉列表可以选择“DEM.tif”文件,在“输出栅格”中可以设置结果保存路径,这里将结果保存到与原文件同目录中,并命名为“坡度_输出栅格”,点击“确定”按钮开始基于地球的高程数据进行坡度分析。
在这里插入图片描述
注意:
在该对话框中,前两项很常规,但Z因子参数需要注意。
如果在下载高程时,没有将“坐标投影”设置为西安80或北京54等平面坐标而是经纬度坐标的话,当输入了栅格后Z因子会弹出警告,这是因为在水平地面单位(度)与高程Z单位(米)之间度量单位不统一的原因。
由于经度的长度随着纬度而变化,因此需要为该纬度指定一个适当的Z因子。如果X、Y单位是十进制而Z单位是米,则一些适用于特殊纬度的适当Z因子参考值,如下表所示:

纬度(Latitude),单位:度Z因子(Z-Factor)
00.00000898
100.00000912
200.00000956
300.00001036
400.00001171
500.00001395
600.00001792
700.00002619
800.00005156

坡度分析结果如下图所示,如绿色到红色的渐变,坡度越来越大。
在这里插入图片描述

案例2:河道坡度计算

河道方向坡度是指沿着河道方向上的纵剖面坡度值,其计算方法与常规的区域内坡度值计算方法相区别,特殊的地学意义使其成为地形分析中的重要指标。而坡度与高程值具有依赖关系,提取出河道上各处的高程值是计算河道方向坡度值的前提。

本案例讲述使用地理信息系统软件以DEM数字高程模型作为高程数据,对矢量河道数据进行河道方向坡度计算,包括矢量河道数据的栅格化处理、河道高程值的提取及河道方向上坡度的计算,使读者灵活使用地理信息系统软件对地形指标进行快速计算。

2.1 案例数据

图层名称格式坐标系说明
demGRID栅格Krasovsky_1940_Transverse_Mercator数字高程模型数据
riversShapefile线要素Krasovsky_1940_Transverse_Mercator矢量河道线数据

2.2 操作步骤

(1)栅格化河道数据
在 ArcToolbox中,打开【Conversion Tools】→【To Raster】→【Polyline to Raster】对话框,【Input Features】设置为“rivers”,【Value field】设置为“GRID_CODE”,【Output Raster Dataset】设置为“str”,【Cellsize】设置为与“dem”相同;点击【OK】,得到栅格化后的河道数据。

(2)提取河道高程值
打开【Spatial Analyst Tools】→【Map Algebra】→【Raster Calculator】对话框,输入公式:“str” * “dem”,【Output raster】设置为“str_dem”;点击【OK】,得到河道的高程数据。

注:第(1)步中生成的河道栅格值为1,非河道栅格值为NoData,所以执行公式计算后,河道栅格值变为高程值,而非河道栅格值仍为NoData。

(3)计算坡度数据
打开【Spatial Analyst Tools】→【Surface】→【Slope】对话框,【Input raster】设置为“str_dem”,【Output raster】设置为“str_slope”;点击【OK】,得到河道方向上的坡度数据。

注:由于仅河道栅格有值,非河道栅格值为NoData,在坡度计算时,NoData不参与计算,所以结果坡度为河道方向上的坡度值。

参考

1、CSDN博客-ArcGIS基础实验操作100例–实验97计算河道方向坡度

这篇关于【ArcGIS】利用高程进行坡度分析:区域面/河道坡度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/741723

相关文章

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S