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

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


坡度

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

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

坡度 = (高程差/水平距离)x100%

java gdal 坡度坡向分析 arcmap坡度分析_坡度分析

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

通常,将坡度分为五级:

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

ArcGIS实操

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

DEM图如下:

java gdal 坡度坡向分析 arcmap坡度分析_栅格_02


要基于高程数据进行坡度分析,需要在ArcMap开启扩展模块,选择“自定义\扩展模块”菜单可以选择需要开启的扩展模块。选择“3D Analyst”和“Spatial Analyst”模块,即可开启ArcGIS的3D分析和空间分析功能。

java gdal 坡度坡向分析 arcmap坡度分析_栅格_03


点击“ArcToolbox”按钮,可以打开ArcGIS的GIS分析工具箱。在“ArcToolbox”中,双击“3D Analyst 工具\栅格表面\坡度”菜单,会显示“坡度”对话框。

java gdal 坡度坡向分析 arcmap坡度分析_栅格_04


在该对话框中,点击“输入栅格”的下拉列表可以选择“DEM.tif”文件,在“输出栅格”中可以设置结果保存路径,这里将结果保存到与原文件同目录中,并命名为“坡度_输出栅格”,点击“确定”按钮开始基于地球的高程数据进行坡度分析。

java gdal 坡度坡向分析 arcmap坡度分析_java gdal 坡度坡向分析_05


注意:

在该对话框中,前两项很常规,但Z因子参数需要注意。

如果在下载高程时,没有将“坐标投影”设置为西安80或北京54等平面坐标而是经纬度坐标的话,当输入了栅格后Z因子会弹出警告,这是因为在水平地面单位(度)与高程Z单位(米)之间度量单位不统一的原因。

由于经度的长度随着纬度而变化,因此需要为该纬度指定一个适当的Z因子。如果X、Y单位是十进制而Z单位是米,则一些适用于特殊纬度的适当Z因子参考值,如下表所示:

纬度(Latitude),单位:度

Z因子(Z-Factor)

0

0.00000898

10

0.00000912

20

0.00000956

30

0.00001036

40

0.00001171

50

0.00001395

60

0.00001792

70

0.00002619

80

0.00005156

坡度分析结果如下图所示,如绿色到红色的渐变,坡度越来越大。

java gdal 坡度坡向分析 arcmap坡度分析_ArcGIS_06

案例2:河道坡度计算

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

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

2.1 案例数据

图层名称

格式

坐标系

说明

dem

GRID栅格

Krasovsky_1940_Transverse_Mercator

数字高程模型数据

rivers

Shapefile线要素

Krasovsky_1940_Transverse_Mercator

矢量河道线数据

河道矢量数据根据DEM高程数据提取得到,可参见另一博客-【ArcGIS】利用DEM进行水文分析:流向/流量等

java gdal 坡度坡向分析 arcmap坡度分析_数据_07

2.2 操作步骤

(1)栅格化河道数据

在 ArcToolbox中,打开【Conversion Tools】→【To Raster】→【Polyline to Raster】对话框,【Input Features】设置为“rivers”,【Value field】设置为“GRID_CODE”,【Output Raster Dataset】设置为“str”,【Cellsize】设置为与“dem”相同;

java gdal 坡度坡向分析 arcmap坡度分析_栅格_08


点击【OK】,得到栅格化后的河道数据。

java gdal 坡度坡向分析 arcmap坡度分析_数据_09


放大,如下图:

java gdal 坡度坡向分析 arcmap坡度分析_ArcGIS_10


【查看DEM的CellSize】0.00027777778

java gdal 坡度坡向分析 arcmap坡度分析_栅格_11

(2)提取河道高程值

打开【Spatial Analyst Tools】→【Map Algebra】→【Raster Calculator】对话框,输入公式:“str” * “dem”,【Output raster】设置为“str_dem”;

java gdal 坡度坡向分析 arcmap坡度分析_栅格_12


点击【OK】,得到河道的高程数据。

java gdal 坡度坡向分析 arcmap坡度分析_java gdal 坡度坡向分析_13


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

打开【Spatial Analyst Tools】→【Surface】→【Slope】对话框,【Input raster】设置为“str_dem”,【Output raster】设置为“str_slope”;

java gdal 坡度坡向分析 arcmap坡度分析_坡度分析_14


点击【OK】,得到河道方向上的坡度数据。

java gdal 坡度坡向分析 arcmap坡度分析_栅格_15


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