ShadedRelief

描述

通过合并由高程编码和山体阴影方法生成的影像来创建 terrain 的彩色 3D 制图表达。

讨论

有关此函数工作原理的详细信息,请参阅地貌晕渲栅格函数。

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

语法

ShadedRelief (raster, azimuth, altitude, {z_factor}, {colormap}, {colorramp}, {slope_type}, {ps_power}, {psz_factor}, {remove_edge_effect})
参数说明数据类型
raster

输入 DEM。

Raster
azimuth

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

(默认值为 315)

Double
altitude

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

(默认值为 45)

Double
z_factor

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

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

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

(默认值为 1)

Double
colormap
[colormap,...]

用于渲染栅格的色彩映射表。可以列表或字典的形式提供。

(默认值为 None)

List
colorramp

色带的名称。可以字符串形式提供,该字符串指定了 ArcGIS Pro 中支持的色带名称,例如 Yellow to RedSlope。也可以字典的形式提供。有关详细信息,请参阅色带对象

(默认值为 Elevation #1)

String
slope_type

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

(默认值为 DEGREE)

String
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
返回值
数据类型说明
Raster

输出栅格。

代码示例

ShadedRelief 示例 1

本示例创建了一个地貌晕渲:

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

# Set environment settings
env.workspace = "C:/data"

# input raster
inRasters= = "input_raster.tif"

# use built-in colorramp slope
colorramp_name = "Slope"

# Execute arcpy.ia.ShadedRelief
shadedRelief = ShadedRelief(imagePath1, azimuth=315, altitude=45, z_factor=1, colorramp=colorramp_name, slope_type = "SCALED",
                            ps_power=0.664, psz_factor=0.024, remove_edge_effect=False)
shadedRelief.save("C:/output/shadedrelief_output2.tif")
ShadedRelief 示例 2

本示例创建了一个地貌晕渲:

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

# Set environment settings
env.workspace = "C:/data"

# input raster
inRasters= = "input_raster.tif"

# generate a color map list
color_map = []
for i in range(1, 255):
    # generate random color
    red = random.randrange(0, 256)
    green = random.randrange(0, 256)
    blue = random.randrange(0, 256)
    value = i
    color_map.append([value, red, green, blue])

# Execute Sample
shadedRelief = ShadedRelief(imagePath1, azimuth=315, altitude=45, z_factor=1, colormap=315, slope_type = "DEGREE")
shadedRelief.save("C:/output/shadedrelief_output.tif")