描述
通过合并由高程编码和山体阴影方法生成的影像来创建 terrain 的彩色 3D 制图表达。
语法
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 Red 或 Slope。也可以字典的形式提供。有关详细信息,请参阅色带对象。 (默认值为 Elevation #1) | String |
slope_type | 坡度倾角输出值的单位可以是度或增量百分比。指定以下内容之一:DEGREE、PERCENTRISE 或 SCALED。有关详细信息,请参阅坡度函数。 (默认值为 DEGREE) | String |
ps_power | 像素大小倍数在查看器于地图显示中放大和缩小时可兼顾高度角变化(或比例)。在控制 z-factor 变化速率的方程式中应用像素尺寸项的指数,以避免造成明显的地貌缺失。 此参数仅在 slope_type 为 SCALED 时有效。 (默认值为 0.664) | Double |
psz_factor | 像素大小因子在查看器于地图显示中放大和缩小时可兼顾比例变化。可用来控制 z-factor 的变化率。 此参数仅在 slope_type 为 SCALED 时有效。 (默认值为 0.024) | Double |
remove_edge_effect | 使用此选项可避免栅格边缘可能会出现的任何重采样伪影。栅格边缘的输出像素或与不含值的像素旁边的输出像素将以 NoData 填充;因此,建议仅当存在重叠像素可用的其他栅格时才使用此选项。当存在可用的重叠像素时,NoData 区域则将显示重叠像素值,而不会显示为空白。
(默认值为 False) | Boolean |
数据类型 | 说明 |
Raster | 输出栅格。 |
代码示例
本示例创建了一个地貌晕渲:
# Import system modules
import arcpy
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/data"
# input raster
inRasters= = "input_raster.tif"
# use built-in colorramp slope
colorramp_name = "Slope"
# Execute arcpy.sa.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")
本示例创建了一个地貌晕渲:
# Import system modules
import arcpy
from arcpy.sa 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")