ArcGIS教程:坡度

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ArcGIS教程:坡度
一、了解坡度
坡度可表明表面上某个位置的最陡下坡倾斜程度。

可针对 TIN 中的每个三角形和栅格中的每个像元计算坡度。

对于不规则三角网 (TIN),坡度为各三角形中的最大高程变化率。

对于栅格,坡度为每个像元及与其相邻的八个像元中的最大高程变化率。

坡度命令可提取输入表面栅格,并计算出包含各个像元坡度的输出栅格。

坡度值越小,地势越平坦;坡度值越大,地势越陡峭。

可使用百分比单位计算输出坡度栅格,也可以以度为单位进行计算。

坡度角等于 45 度时,高程增量等于水平增量。

如果以百分比形式表示,此角的坡度为 100%。

如果坡度接近垂直(90度),则百分比坡度接近无穷大。

坡度函数最常用于处理高程格网,如下图所示。

较为陡峭的坡在输出坡度地图中显示为红色。

二、坡度
1、摘要
判断栅格表面的各像元中的坡度(梯度或 z 值的最大变化率)。

2、插图
3、用法
· 坡度是指各像元中 z 值的最大变化率。

· 当表面 z 单位用其他单位而非地面 x,y 单位表示时,需要使用 Z 因子对坡度计算进行校正。

· 输出值的范围取决于测量单位的类型。

§ 如果为度,坡度值的范围为 0 至 90。

§ 如果为高程增量,范围为 0 至无穷大。

平坦表面为 0%,45 度表面为 100%,随着表面变得越来越接近垂直,高程增量百分比将变得越来越大。

· 如果直接邻域(3 x 3 窗口)中的中心像元为 NoData,则输出将为 NoData。

· 如果有任何邻域像元为 NoData,则会向这些像元分配中心像元的值,然后再计算坡度。

4、语法
Slope (in_raster, {output_measurement}, {z_factor})
5、返回值
6、代码实例
坡度示例 1(Python 窗口)
在本例中将确定输入表面栅格的坡度值。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outSlope = Slope("elevation", "DEGREE", 0.3043) outSlope.save("C:/sapyexamples/output/outslope01")
坡度示例 2(独立脚本)
在本例中将确定输入表面栅格的坡度值。

# Name: _Ex_02.py
# Description: Identifies the rate of maximum change
# in z-value from each cell.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "elevation"
outMeasurement = "DEGREE"
zFactor = 0.3043
# Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial")
# Execute Slope
outSlope = Slope(inRaster, outMeasurement, zFactor)
# Save the output
outSlope.save("C:/sapyexamples/output/outslope02")
三、坡度的工作原理
返回值
坡度工具用于为每个像元计算值在从该像元到与其相邻的像元方向上的最大变化率。

实际上,高程随着像元与其相邻的八个像元之间距离的变化而产生的最大变化率可用来识别自该像元开始的最陡坡降。

从概念上讲,该工具会将一个平面与要处理的像元或中心像元周围一个 3 x 3 的像元邻域的 z 值进行拟合。

该平面的坡度值通过最大平均值法来计算。

该平面的朝向就是待处理像元的坡向。

坡度值越小,地势越平坦;坡度值越大,地势越陡峭。

如果邻域内某个像元位置的 z 值为 NoData,则将中心像元的 z 值指定给该位置。

在栅格的边缘上,至少有三个像元(在栅格范围外)的 z 值为 NoData。

中心像元的 z 值将被指定给这些像元。

最后得出与这些边缘像元拟合的 3 x 3 平面的扁率,这通常会使坡度减小。

输出坡度栅格可使用两种单位计算:度和百分比(高程增量百分比)。

如果将高程增量百分比视为高程增量除以水平增量后再乘以 100,就可以更好地理解高程增量百分比。

请考虑下面的三角形 B。

当角度为 45 度时,高程增量等于水平增量,所以高程增量百分比为 100%。

如三角形 C 所示,当坡度角接近直角(90 度)时,高程增量百分比开始接近无穷大。

坡度工具最常用在高程数据集处理中,如下图所示。

较陡的坡度在输出坡度栅格上以红色阴影显示。

该工具可与其他类型的连续数据(如人口)配合使用,用来识别值的急剧变化。

坡度算法
坡度取决于表面从中心像元开始在水平 (dz/dx) 方向和垂直 (dz/dy) 方向上的变化率(增量)。

用来计算坡度的基本算法是:
slope_radians = ATAN ( √ ([dz/dx]2 + [dz/dy]2) )
坡度通常以度为单位来测量,其算法如下:
slope_degrees = ATAN ( √ ([dz/dx]2 + [dz/dy]2) ) * 57.29578
坡度算法也可以表示为:
slope_degrees = ATAN (rise_run) * 57.29578
· 其中:
rise_run = √ ([dz/dx]2 + [dz/dy]2]
中心像元及其相邻的八个像元的值确定水平增量和垂直增量。

这些相邻的像元使用字母 a 至 i 进行确定,其中 e 表示当前正在计算坡向的像元。

像元 e 在 x 方向上的变化率将通过以下算法进行计算:
[dz/dx] = ((c + 2f + i) - (a + 2d + g) / (8 * x_cellsize)
像元 e 在 y 方向上的变化率将通过以下算法进行计算:
[dz/dy] = ((g + 2h + i) - (a + 2b + c)) / (8 * y_cellsize)
坡度计算示例
例如,将计算如下所示的移动窗口内中心像元的坡度值。

像元大小为 5 个单位。

默认情况下,将使用度来计算坡度。

中心像元 e 在 x 方向上的变化率为:
[dz/dx] = ((c + 2f + i) - (a + 2d + g) / (8 * x_cellsize) = ((50 + 60 + 10) - (50 + 60 + 8)) / (8 * 5)
= (120 - 118) / 40
= 0.05
像元 e 在 y 方向上的变化率为:
[dz/dy] = ((g + 2h + i) - (a + 2b + c)) / (8 * y_cellsize) = ((8 + 20 + 10) - (50 + 90 + 50)) / (8 * 5)
= (38 - 190 ) / 40
= -3.8
代入 x 方向和 y 方向上的变化率,计算中心像元 e 的坡度:
rise_run = √ ([dz/dx]2 + [dz/dy]2)
= √ ((0.05)2 + (-3.8)2)
= √ (0.0025 + 14.44)
= 3.80032
slope_degrees = ATAN (rise_run) * 57.29578
= ATAN (3.80032) * 57.29578
= 1.31349 * 57.29578
= 75.25762
像元 e 的整型坡度值为 75 度。

相关文档
最新文档