Hillshade

描述

通过考虑光源位置和阴影来创建表面的灰度 3D 制图表达的栅格对象。

讨论

有关此函数工作原理的详细信息,请参阅山体阴影栅格函数。

栅格对象的引用栅格数据集是临时的。要将其设置为永久,可以调用栅格对象的 save 方法。

语法

Hillshade (dem, {azimuth}, {altitude}, {z_factor}, {slope_type}, {ps_power}, {psz_factor}, {remove_edge_effect}, {hillshade_type})
参数说明数据类型
dem

输入高程栅格。

Raster
azimuth

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

此参数仅在 hillshade_type 参数设置为 TRADITIONAL 时有效。默认方位角为西北方向 315 度。

(默认值为 315)

Double
altitude

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

此参数仅在 hillshade_type 参数设置为 TRADITIONAL 时有效。

(默认值为 45)

Double
z_factor

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

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

如果 x,y 单位和 z 单位采用相同的测量单位,则应将 z 因子设置为 1。计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。

(默认值为 1)

Double
slope_type

坡度倾角输出值的单位可以是度或增量百分比。指定以下内容之一:DEGREEPERCENTRISESCALED。有关详细信息,请参阅坡度函数

Integer
ps_power

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

此参数仅在 slope_typeSCALED 时有效。

(默认值为 0.664)

Double
psz_factor

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

此参数仅在 slope_typeSCALED 时有效。

(默认值为 0.024)

Double
remove_edge_effect

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

  • 错误 - 双线性重采样将统一应用于对输出进行重采样。
  • 正确 - 双线性重采样将用于对输出进行重采样,但不用于在栅格边缘或 NoData 像素旁边进行重采样。这些像素将使用 NoData 进行填充。这将降低可能会出现的任何凸出边缘效果。

(默认值为 False)

Boolean
hillshade_type

用于控制山体阴影的光源。

  • 0从单一光线方向计算山体阴影。可以设置 azimuthaltitude 参数以控制光源的位置。
  • 1可将多个源的光线进行融合,以增强地形的可视化效果。

(默认值为 0)

Integer
返回值
数据类型说明
Raster

输出栅格。

代码示例

Hillshade 示例 1

本示例将计算给定高程的山体阴影。

from arcpy.ia import *
out_hillshade_raster = Hillshade("elevation.tif", 180, 75, 0.3048)
out_hillshade_raster.save("C:/arcpyExamples/outputs/hillshade.tif")
Hillshade 示例 2

本示例将计算给定高程的山体阴影。

# Import the system modules
import arcpy
from arcpy.ia import *

# Set the analysis environments
arcpy.env.workspace = "C:/arcpyExamples/data"

# Set the local variables
in_dem = "elevation.tif"

# Execute the Hillshade function
out_hillshade_raster = Hillshade(in_dem, 180, 75, 0.3048)

# Save the output
out_hillshade_raster.save("C:/arcpyExamples/outputs/hillshade.tif")