『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS教程:山体阴影

ArcGIS教程:山体阴影
通过考虑照明源的角度和阴影,根据表面栅格创建地貌晕渲。

摘要

    通过考虑照明源的角度和阴影,根据表面栅格创建地貌晕渲。

插图


用法

·      山体阴影工具可根据某栅格创建地貌晕渲栅格。将照明源视为位于无穷远处。

·      山体阴影栅格的整数值范围为 0 255

·      可以输出两种地貌晕渲栅格。如果模拟阴影选项不可用(取消选中),则输出栅格仅会考虑本地光照入射角度。如果该选项启用(选中),则输出栅格会同时考虑本地光照入射角度和阴影。

·      通过计入本地地平线对各像元的影响完成阴影分析。将处于阴影之中的栅格像元的值指定为零。

·      若只想创建阴影区域的栅格,请使用条件函数重分类按属性提取工具将为零的山体阴影值与其他山体阴影值分离。山体阴影工具必须已启用模拟阴影选项。

·      如果输入栅格位于球面坐标系中(如十进制度球面坐标系),则生成的山体阴影可能看起来很独特。这是因为水平地面单位与高程 z 单位之间的测量值存在差异。由于经度的长度随着纬度而变化,因此需要为该纬度指定一个适当的 z 因子。如果 x,y 单位是十进制度而 Z 单位是米,特定纬度的一些合适的 Z 因子为:

·             Latitude     Z-factor

·              0           0.00000898

·             10           0.00000912

·             20           0.00000956

·             30           0.00001036

·             40           0.00001171

·             50           0.00001395

·             60           0.00001792

·             70           0.00002619

    80           0.00005156

·      您可以通过 ArcGIS ArcScene 叠加输出栅格,从而创建山体阴影表面的动态三维视图。

语法

    Hillshade (in_raster, {azimuth}, {altitude}, {model_shadows}, {z_factor})

参数

说明

数据类型

in_raster

输入表面栅格。

Raster Layer

azimuth

(可选)

光源的方位角。

方位角由 0 360 度之间的正度数表示,以北为基准方向按顺时针进行测量。

默认值为 315 度。

Double

altitude

(可选)

高于地平线的光源高度角。

高度角由正度数表示,0 度代表地平线,而 90 度代表头顶正上方。

默认值为 45 度。

Double

model_shadows

(可选)

要生成的地貌晕渲类型。

·         NO_SHADOWS —输出栅格只会考虑本地光照入射角度而不会考虑阴影的影响。输出值的范围从 0 2550 表示最暗区域,255 表示最亮区域。

·         SHADOWS — 输出晕渲栅格会同时考虑本地光照入射角度和阴影。输出值的范围从 0 2550 表示阴影区域,255 表示最亮区域。

Boolean

z_factor

(可选)

一个表面 z 单位中地面 x,y 单位的数量。

z 单位与输入表面的 x,y 单位不同时,可使用 z 因子调整 z 单位的测量单位。计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。

如果 x,y 单位和 z 单位采用相同的测量单位,则 z 因子为 1。这是默认值。

如果 x,y 单位和 z 单位采用不同的测量单位,则必须将 z 因子设置为适当的因子,否则会得到错误的结果。例如,如果 z 单位是英尺而 x,y 单位是米,则应使用 z 因子 0.3048 z 单位从英尺转换为米(1 英尺 = 0.3048 米)。

Double

返回值

名称

说明

数据类型

out_raster

输出山体阴影栅格。

山体阴影栅格的整数值范围为 0 255

Raster

代码实例

    山体阴影示例 1Python 窗口)

    在本例中将生成含有阴影的山体阴影栅格。设置特定方位角和高度角。

import arcpy

from arcpy import env

from arcpy.sa import *

env.workspace = "C:/sapyexamples/data"

outHillShade = HillShade("elevation", 180, 75, "SHADOWS", 1)

outHillShade.save("C:/sapyexamples/output/outhillshd01")

    山体阴影示例 2(独立脚本)

    在本例中将生成含有阴影的山体阴影栅格。设置特定方位角和高度角,并且 z 因子将使 z 单位从英尺转换为米。

# Name: HillShade_Ex_02.py

# Description: Computes hillshade values for a raster surface.

# Requirements: Spatial Analyst Extension

# Import system modules

import arcpy

from arcpy import env

from arcpy.sa import *

# Set environment settings

env.workspace = "C:/sapyexamples/data"

# Set local variables

inRaster = "elevation"

azimuth = 180

altitude = 75

modelShadows = "SHADOWS"

zFactor = 0.348

# Check out the ArcGIS Spatial Analyst extension license

arcpy.CheckOutExtension("Spatial")

# Execute HillShade

outHillShade = HillShade(inRaster, azimuth, altitude, modelShadows, zFactor)

# Save the output

outHillShade.save("C:/sapyexamples/output/outhillshd02")

      京ICP备2025132830号-1 京公网安备 号