山体阴影函数

概览

山体阴影函数可生成地形表面的灰度 3D 制图表达,并且在对图像应用阴影时会考虑太阳的相对位置。山体阴影是一种用于可视化由光源和高程表面的坡度和坡向确定的地形的技术。这是一种用于可视化地形且不给出绝对高程值的定性方法。此函数可提供两个生成山体阴影的选项:传统和多方向。传统方法使用高度和方位角属性,从单一光源方向计算山体阴影,并以此指定太阳位置。多方向方法能够将来自多个源的光线进行融合,从而表示山体阴影地形。多方向山体阴影法相比于传统山体阴影法的优点是,通常受过饱和和深阴影影响的区域可显示更多细节。

默认情况下,灰度色带用于显示山体阴影高程模型。下列图片首先显示的是使用传统默认山体阴影法生成的高程模型,其次是使用多方向山体阴影法生成的高程模型。

传统山体阴影
下面是传统山体阴影图像的示例。

多方向山体阴影
下面是多方向山体阴影的示例。

参数

山体阴影函数具有以下参数:

参数描述
栅格

输入高程数据集。

山体阴影类型

控制山体阴影的光源:

  • 传统 - 从单一光线方向计算山体阴影。可以设置方位角高度角选项以控制光源的位置。
  • 多方向 - 可将多个源的光线进行融合,以增强地形的可视化效果。
默认设置为传统

方位角

方位角是太阳沿地平线的相对位置(以度为单位)。此位置由从正北方向开始按顺时针进行测量的太阳角度指示。0 度方位角表示北,东为 90 度,南为 180 度,西为 270 度。

此参数只有在山体阴影类型传统时才有效。默认方位角为西北方向 315 度。

高度角

高度角是在地平线之上的太阳高程角,它的范围为 0 至 90 度。0 度值表示太阳位于地平线上,即,与参考框架位于同一水平面中。90 度值表示太阳处于头顶正上方。

此参数只有在山体阴影类型传统时才有效。默认值为高于地平线 45 度。

缩放

调整 z 因子时使用以下两个选项可以动态缩放阴影结果:

  • - 不应用缩放。对于覆盖局部区域的单个栅格数据集,此选项非常理想。对于高程变化较大的世界范围数据集或多比例地图,则不建议使用此选项,因为它在较小比例下会生成变化很小的地形地貌。
  • 已调整 - 通过使用默认的 像素大小倍数像素大小因子值进行非线性调整,因此在查看器放大和缩小时,可在大范围内调节高度角变化(比例)。当使用世界范围数据集时,建议使用已调整选项。
默认设置为“无”。

Z 因子

Z 因子是用于转换高程值的比例因子,它有两种用途:

  • 将高程单位(例如米或英尺)转换为数据集的水平坐标单位(可能是英尺、米或度)。
  • 为实现视觉效果添加垂直夸大。
默认值为 1。

像素大小倍数

像素大小倍数在查看器于地图显示中放大和缩小时可兼顾高度角变化(或比例)。在控制 Z 因子变化速率的方程式中应用像素尺寸项的指数,以避免造成明显的地貌缺失。

此参数只有在比例类型为已调整时才有效。默认值为 0.664。

像素大小因子

像素大小因子在查看器于地图显示中放大和缩小时可兼顾比例变化。可用来控制 Z 因子的变化率。

此参数只有在比例类型为已调整时才有效。默认值为 0.024。

禁用默认边缘像素插值

使用此选项可避免栅格边缘可能会出现的任何重采样伪影。沿栅格边缘的输出像素或 NoData 像素旁边的输出像素将以 NoData 填充;因此,建议仅将此参数用于发生重叠的高程镶嵌数据集。当存在可用的重叠像素时,NoData 区域则将显示重叠像素值,而不会显示为空白。

  • 未选中 - 双线性重采样将统一应用于对山体阴影进行重采样。当包含高程栅格数据的镶嵌数据集已对接时请使用此选项。这是默认设置。
  • 选中 - 双线性重采样将用于山体阴影内,但不用于栅格边缘或 NoData 像素旁边的山体阴影。这些像素将使用 NoData 填充并显示重叠的像素值,从而降低可能会出现的任何凸出边缘效果。当包含高程栅格数据的镶嵌数据集由重叠项目或切片组成时请使用此选项。

函数结果可能与数据相关。如果您想在输出中观察切片边界伪影,请选中复选框内的其他可选条件。

了解有关山体阴影工作原理的详细信息

山体阴影类型

多方向山体阴影可改善地形可视化效果。该类型可将来自六个不同方向的光线进行融合,以增强地形的可视化效果并改善地形较低区域的外观。该类型能够改善地图上照明过度区域和阴影区域之间的平衡。输出适合用作地形、土壤、水文、土地覆被或其他通过地形进行数据增强的专题地图的地貌背景。

以下影像可显示两个类型的山体阴影:

  • 顶部影像可显示传统山体阴影结果。
  • 底部影像可显示多方向山体阴影结果。

传统山体阴影
传统山体阴影。源 DEM 由美国地质勘探局 (USGS) 赞助提供。

多方向山体阴影
多方向山体阴影。源 DEM 由美国地质勘探局 (USGS) 赞助提供。

有关多方向山体阴影的详细信息,请参阅借助多方向山体阴影打造受欢迎的地图

方位角和高度角

高度角和方位角属性共同表示将用于创建任意 3D 模型(山体阴影或渲染地貌)的太阳相对位置。高度角是在地平线之上的太阳高程角,它的范围为 0 至 90 度。0 度值表示太阳位于地平线上,即,与参考框架位于同一水平面中。90 度值表示太阳处于头顶正上方。

高度角图

方位角是太阳沿地平线的相对位置(以度为单位)。此位置由从正北方向开始按顺时针进行测量的太阳角度指示。0 度方位角表示北,东为 90 度,南为 180 度,西为 270 度。

比例调整和像素大小

调整 z 因子时使用以下两个选项可以动态缩放阴影结果:

  • 无 - 不应用比例。对于覆盖局部区域的单个栅格数据集,此选项非常理想。对于世界范围的数据集或多比例地图,建议您不要使用此选项,因为在较小比例下会生成非常平坦的地貌。
  • 已调整 - 通过使用默认的像素大小倍数值和像素大小因子值进行非线性调整,因此在查看器放大和缩小时可兼顾高度角变化(比例)。使用世界范围的数据集时建议使用这些值。

    使用以下公式调整 z 因子:

    Adjusted Z-Factor = (Z Factor) + (Pixel Size)(像素大小倍数) × (Pixel Size Factor)

坡度为像素大小系数。坡度所表示的是较大距离的平均坡度,因此像素越大,坡度值越小。因此,在较小比例下要素显示较为平坦。从制图角度来看,这会造成明显的地貌缺失。为了抵消这种效果,可以根据比例更改 Z 因子参数。关系呈指数分布而非线性分布。更改像素大小倍数像素大小因子的同时会更改 Z 因子的变化率。这表示需要根据比例设置合适的 Z 因子。

Z 因子

z 因子是用于转换高程值的比例因子,它有两种用途:

  • 将高程单位(例如米或英尺)转换为数据集的水平坐标单位(可能是英尺、米或度)。
  • 为实现视觉效果添加垂直夸大

单位转换

如果 z(高程)的单位与 x、y(线性)单位相同,则 z 转换因子为 1。如果您的数据集使用投影坐标系,则比例将设置为,如果高程单位和线性单位不同,则需要定义 z 转换因子来解释差异。

要在英尺和米之间的相互转换,请参阅下表。例如,如果 DEM 的高程单位是英尺而镶嵌数据集的单位是米,则应使用值 0.3048 将高程单位从英尺转换为米(1 英尺 = 0.3048 米)。

比例调整和像素大小

转换类型转换系数

从英尺转换为米

0.3048

从米转换为英尺

3.28084

如果您的数据采用地理坐标系(例如 GCS_WGS 84 中的 DTED),其中线性单位为度,高程单位为米,则使用转换因子 1,系统会自动将线性单位从度转换为米。如果您的高程单位不是米,则在使用此函数前通过单位转换函数将高程单位转换为米。

注:

如果将比例设置为已调整,可以使用 Z 因子将 z 单位转换为米,ArcGIS 会将经纬度单位自动调整为米。

垂直夸大

要应用垂直夸大,必须将转换系数与夸大系数相乘。例如,如果高程和数据集坐标的单位均为米,并且您希望夸大 10 的倍数,则比例因子将为单位转换系数 (1.0) 乘以垂直夸大系数 (10.0),即 10 的 Z 因子。如果高程单位为米,并且数据集为地理数据集(度),则您应将单位转换系数 (1.0) 乘以夸大系数 (10.0),即 10 的 Z 因子。如果您的高程单位不是米,则在使用此函数前通过算术函数将高程单位转换为米。然后将单位转换系数 (1.0) 乘以夸大系数 (10.0) - 即 10 的 Z 因子。

移除边效果

使用此选项可避免栅格边缘可能会出现的任何重采样伪影。栅格边缘的输出像素或与不含值的像素旁边的输出像素将以 NoData 填充;因此,建议仅当存在重叠像素可用的其他栅格时才使用此选项。当存在可用的重叠像素时,NoData 区域则将显示重叠像素值,而不会显示为空白。

  • 未选中 - 双线性重采样将统一应用于对山体阴影进行重采样。这是默认设置。
  • 选中 - 双线性重采样将用于山体阴影内,但不用于栅格边缘或 NoData 像素旁边的山体阴影。这些像素将使用 NoData 填充并显示重叠数据集的高程值,从而降低可能会出现的任何凸出边缘效果。