ArcGIS教程:山体阴影工作原理

时间:2024-10-12 09:07:21

1、山体阴影参数 在为任何特定位置创建山体阴影地图时,所要考虑的主要因素是太阳在天空中的位置。 方位角 方向角指的是太阳的角度方向,是以北为基准方向在0到360度范围内按顺时针进行测量的。90º的方位角为东。默认方向角为315º (NW)。 高度 高度指的是照明源高出地平线的角度或坡度。高度的单位为度,范围为0(位于地平线上)到90(位于头上)之间。默认值为45度。 下面的山体阴影示例的方位角为315º,高度为45º。

ArcGIS教程:山体阴影工作原理

2、将山体阴影用于显示 通过将高程栅格放置在山体阴影栅格的顶部,然后对高程栅格的透明度进行调整,您可以轻松地创建出外观精美的地表地貌图。 您可以添加其他图层(如土地使用类型、植被、道路或河流),从而进一步丰富显示中的信息内容。

ArcGIS教程:山体阴影工作原理

3、在分析中使用山体阴影 通过对阴影进行建模(默认选项),可计算局部照明度以及像元是否落入阴影内。 通过对阴影进行建模,可在一天的特定时间对将要落入其他像元阴影的各个像元进行识别。位于其他像元的阴影中的像元编码为0;所有其他像元的编码为介于1和255之间的整数。可将所有大于1的值重分类为1,从而生成二进制输出栅格。在以下示例中,黑色区域位于阴影内。两张图像中的相位角相同,只是太阳角度(高度)被进行了修改。

ArcGIS教程:山体阴影工作原理

4、如何计算山体阴影 要计算阴影值,首先需要提供光照源的高度和方向角。在计算坡度和坡向的同时会处理这些值,从而确定输出栅格中每个像元的最嘏钱侯薰终山体阴影值。 山体阴影算法 用于计算山体阴影值的算法如下:(1)Hillshade= 255.0 * ((cos(Zenith_rad) * cos(Slope_rad)) + (sin(Zenith_rad) * sin(Slope_rad) * cos(Azimuth_rad-Aspect_rad))) 请注意,如果山体阴影值的计算结果< 0,则输出像元值将= 0。 计算入射角度 以高于地平线的角度指定照明源的高度。但是,用于计算山体阴影值的公式要求以弧度为单位表示角度且从垂直方向偏转角度。将垂直于表面的方向(头顶正上方)标注为天顶。天顶角是从天顶点到照明源的方向测量而来的角度,是高度的90°余角。要计算入射角度,第一步是将高度角转换为天顶角。第二步是将天顶角转换为弧度。 将高度转换为天顶角:(2)Zenith_deg= 90 -Altitude 转换为弧度:(3)Zenith_rad=Zenith* pi / 180.0 计算入射方向 以度为单位指定照明源的方向和天顶。山体阴影公式要求天顶角采用弧度作为单位。首先,将天顶角从地理单位(罗盘方向)转换为数学单位(直角)。然后,将天顶角转换为弧度。 转换天顶角的方法:(4)Azimuth_math= 360.0 -Azimuth+ 90请注意,如果Azimuth_math>= 360.0,则:(5)Azimuth_math=Azimuth_math- 360.0 转换为弧度:(6)Azimuth_rad=Azimuth_math* pi / 180.0 计算坡度和坡向 移动的3 x 3窗口会访问输入栅格中的每个像元,窗口中心的每个像元的坡向和坡度将使用包含该像元的八个相邻像元的值的算法进行计算。这些像元使用字母a至i进行标识,其中e表示当前正在计算坡向的像元。像元e在x方向上的变化率使用以下算法计算:(7) [dz/dx] = ((c+ 2f+i) - (a+ 2d+g)) / (8 *cellsize) 像元“e”在y方向上的变化率使用以下算法计算:(8) [dz/dy] = ((g+ 2h+i) - (a+ 2b+c)) / (8 *cellsize) 坡度是从表面中的每个像元开始的最陡坡降。以下算法用于计算以弧度为单位的坡度(其中包含z因子):(9)Slope_rad= ATAN (z_factor* √ ([dz/dx]2+ [dz/dy]2)) 最陡坡降的方向就是坡向的朝向。使用范围为0到2pi之间的弧度来定义坡向,其中0表示朝东。根据以下算法中的规则确定坡向:(10) If [dz/dx] is non-zero:Aspect_rad= atan2 ([dz/dy], -[dz/dx]) ifAspect_rad< 0 thenAspect_rad= 2 * pi +Aspect_rad If [dz/dx] is zero: if [dz/dy] > 0 thenAspect_rad= pi / 2 else if [dz/dy] < 0 thenAspect_rad= 2 * pi - pi / 2 elseAspect_rad=Aspect_rad

5、山体腌擀释飙阴影计算示例 例如,将计算移动窗口内中心像元的山体阴影值。像元大小为5个单位。将使用45度的默认高度和泌驾台佐315度的默认方位角。· 入射角度根据等式2计算天顶角所得出的结果为:(2)Zenith_deg= 90 -Altitude = 90 - 45 = 45根据等式3将天顶角转换为弧度的计算结果为:(3)Zenith_rad=Zenith_deg* pi / 180.0 = 45 * 3.1428571429 / 180 = 0.7857142857· 入射方向使用等式4将天顶角从地理角度转换为数学角度的计算结果为:(4)Azimuth_math= 360.0 -Azimuth+ 90 = 360.0 - 315 + 90 = 135 = 2.3571428571使用等式6将天顶角转换为弧度的计算结果为:(6)Azimuth_rad=Azimuth_math* pi / 180.0 = 135 * 3.1438571429 / 180· 坡度和坡向中心像元e在x方向上的变化率的计算结果为:(7) [dz/dx] = ((c+ 2f+i) - (a+ 2d+g)) / (8 *cellsize) = ((2483 + 4966 + 2477) - (2450 + 4904 + 2447)) / (8 * 5) = (9926 - 9801)/ 40 = 3.125中心像元e在y方向上的变化率的计算结果为:(8) [dz/dy] = ((g+ 2h+i) - (a+ 2b+c)) / (8 * cellsize) = (2447 + 4910 + 2477) - (2450 + 4922 + 2483) / (8 * 5) = (9834 - 9855) / 40 = -0.525坡度角的计算结果为:(9)Slope_rad= ATAN (z_factor* √ ([dz/dx]2+ [dz/dy]2)) = atan(1 * sqrt(3.125 * 3.125 + -0.525 * -0.525)) = 1.26511根据规则10计算Aspect_rad角(因为本例中dz/dx为非零值)所得出的结果为: Aspect_rad= atan2 ([dz/dy], -[dz/dx]) = atan2(-0.525, -3.125) = -2.9751469600412由于此值小于0,因此应用该规则的以下部分: Aspect_rad= 2 * pi + Aspect_rad = 2 * 3.1428571429 + -2.9751469600412 = 3.310567· 山体阴影山体阴影的最终计算结果为:Hillshade= 255.0 * ((cos(Zenith_rad) * cos(Slope_rad)) + (sin(Zenith_rad) * sin(Slope_rad) * cos(Azimuth_rad-Aspect_rad))) = 255.0 * ((cos(0.7857142857) * cos(1.26511)) + (sin(0.7857142857) * sin(1.26511) * cos(2.3571428571 - 3.310567))) = 153.82因为输出栅格为整型,所以中心像元e的阴影值为154。

ArcGIS教程:山体阴影工作原理
© 手抄报圈