坡向 (3D Analyst)

需要 Spatial Analyst 许可。

需要 3D Analyst 许可。

摘要

从栅格表面的每个像元派生出坡向。

坡向用于识别每个位置的下坡坡度所面对的罗盘方向。

表面参数工具可提供较新的实施和增强功能。

了解有关坡向工作原理的详细信息

插图

坡向工具图示
Aspect_3d (InRas1, OutRas)

使用情况

  • 表面参数工具可提供坡向的较新实施,建议使用该工具来代替坡向工具。 坡向工具可将一个平面与九个局部像元进行拟合,但是,平面可能并非景观的良好描述符,可能会掩盖或夸大感兴趣的自然变化。 表面参数工具可将一个表面与像元邻域而不是平面进行拟合,以提供针对地形的更自然的拟合效果。

    坡向工具将使用 3 × 3 像元窗口来计算值,而表面参数工具允许窗口大小介于 3 × 3 到 15 × 15 像元之间。 较大的窗口尺寸对于高分辨率高程数据很有用,可以适当的比例捕获地表过程。 表面参数还可提供自适应窗口选项,该选项可评估地形的局部变异性,并为每个像元标识最大的适当邻域大小。 对于被河流、道路或陡坡中断的平缓且均匀的地形而言,该工具很有用。

    如果您需要结果与先前工具运行结果完全匹配,或者快速执行时间比更好的算法更重要,则可以继续使用坡向工具的传统方法。

  • 此工具使用移动的 3 x 3 像元窗口来处理数据。 如果处理像元为 NoData,则该位置的输出将为 NoData。

  • 该工具还要求在与处理像元相邻的 8 个像元中,至少有 7 个具有有效值。 如果有效像元少于 7 个,则不执行计算,并且该处理像元处的输出将为 NoData。

  • 输出栅格最外侧行列的像元为 NoData。 这是因为沿着输入数据集边界,这些像元没有足够的有效相邻像元。

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

  • 会为输入栅格中的平坦(具有零坡度)像元分配 -1 坡向。

  • 在测地线方法中,指定表面 z 单位可确保输出的精度。 仅当选择测地线方法时才会启用 Z 单位参数。

  • 如果 z 单位可用于输入栅格的垂直坐标系,则将自动应用 z 单位。 如果缺失,建议您定义输入栅格的 z 单位。 可使用定义投影工具来指定 z 单位。 如果未定义 z 单位,则默认使用米。

  • 投影测地线方位角(Python 中的 project_geodesic_azimuths)参数仅在方法参数设置为测地线时可用。

    对于测地线方法,如果选中投影测地线方位角参数(在 Python 中,project_geodesic_azimuths 设置为 PROJECT_GEODESIC_AZIMUTHS),则以下表述将为真:

    • 北方始终以 360 度表示。
    • 将投影方位角以纠正由非等角的输出坐标系环境值引起的变形。 这些角度可用于沿着最陡峭的下坡坡度准确定位点。

  • 若要对输入栅格进行重采样,需使用双线性技术。 当输出坐标系、范围或像元大小与输入不同时,可以对输入栅格进行重新采样的示例。

  • 如果输入栅格参数值(Python 中的 in_raster)为高分辨率值(其像元大小小于几米,或者特别是存在噪点),请考虑使用表面参数工具及其用户定义的邻域距离选项,而非此工具的直接 3 x 3 邻域。 使用较大邻域可以最大程度地减少噪点表面的影响。 当使用高分辨率表面时,使用较大邻域也可以更好地表示地形和表面特征。

  • 此工具可通过 GPU 加速,也就是说,如果系统中安装了兼容的图形处理器 (GPU),该设备将用于增强工具的性能。 使用用于分析的目标设备(Python 中的 analysis_target_device)参数来控制是使用 GPU 还是 CPU 来运行该工具。

    有关兼容的 GPU 以及配置和使用 GPU 设备的更多详细信息还有故障排除提示,请参阅 Spatial Analyst 扩展模块帮助中的使用 Spatial Analyst 进行 GPU 处理

参数

标注说明数据类型
输入栅格

输入表面栅格。

Raster Layer
输出栅格

输出坡向栅格。

此栅格为浮点类型。

Raster Dataset
方法
(可选)

指定计算将基于平面(平地)还是测地线(椭球)方法。

平面方法适用于保持正确距离和面积的投影中的局部区域。 适用于覆盖诸如城市、县或面积较小的州等区域的分析。 测地线方法可以产生更精确的结果,但会造成处理时间这一潜在成本增加。

  • 平面将使用 2D 笛卡尔坐标系对投影平面执行计算。 这是默认方法。
  • 测地线通过将地球形状视为椭球体,在 3D 笛卡尔坐标系中执行计算。
String
Z 单位
(可选)

指定将用于垂直 z 值的线性单位。

由垂直坐标系(如果存在)定义。 如果垂直坐标系不存在,则应使用单位列表来定义 z 单位,以确保测地线计算正确。 默认单位为米。

  • 英寸线性单位将为英寸。
  • 英尺线性单位将为英尺。
  • 线性单位将为码。
  • 英里(美制)线性单位将为英里。
  • 海里线性单位将为海里。
  • 毫米线性单位将为毫米。
  • 厘米线性单位将为厘米。
  • 线性单位将为米。
  • 千米线性单位将为公里。
  • 分米线性单位将为分米。
String
投影测地线方位角
(可选)

指定是否将投影测地线方位角以校正由输出空间参考引起的角度失真。

  • 未选中 - 将不会投影测地线方位角。 这是默认设置。
  • 选中 - 将投影测地线方位角。 此选项仅支持 CPU 处理。
Boolean
用于分析的目标设备
(可选)

指定将用于执行计算的设备。

  • 先 GPU 后 CPU如果找到了兼容的 GPU,则系统会将其用于执行计算。 否则,系统将使用 CPU。 这是默认设置。
  • 仅 CPU计算将仅在 CPU 上执行。
  • 仅 GPU计算将仅在 GPU 上执行。
String

arcpy.ddd.Aspect(in_raster, out_raster, {method}, {z_unit}, {project_geodesic_azimuths}, {analysis_target_device})
名称说明数据类型
in_raster

输入表面栅格。

Raster Layer
out_raster

输出坡向栅格。

此栅格为浮点类型。

Raster Dataset
method
(可选)

指定计算将基于平面(平地)还是测地线(椭球)方法。

  • PLANAR将使用 2D 笛卡尔坐标系对投影平面执行计算。 这是默认方法。
  • GEODESIC通过将地球形状视为椭球体,在 3D 笛卡尔坐标系中执行计算。

平面方法适用于保持正确距离和面积的投影中的局部区域。 适用于覆盖诸如城市、县或面积较小的州等区域的分析。 测地线方法可以产生更精确的结果,但会造成处理时间这一潜在成本增加。

String
z_unit
(可选)

指定将用于垂直 z 值的线性单位。

由垂直坐标系(如果存在)定义。 如果垂直坐标系不存在,则应使用单位列表来定义 z 单位,以确保测地线计算正确。 默认单位为米。

  • INCH线性单位将为英寸。
  • FOOT线性单位将为英尺。
  • YARD线性单位将为码。
  • MILE_US线性单位将为英里。
  • NAUTICAL_MILE线性单位将为海里。
  • MILLIMETER线性单位将为毫米。
  • CENTIMETER线性单位将为厘米。
  • METER线性单位将为米。
  • KILOMETER线性单位将为公里。
  • DECIMETER线性单位将为分米。
String
project_geodesic_azimuths
(可选)

指定是否将投影测地线方位角以校正由输出空间参考引起的角度失真。

  • GEODESIC_AZIMUTHS测地线方位角将不会投影。 这是默认设置。
  • PROJECT_GEODESIC_AZIMUTHS测地线方位角将被投影。
Boolean
analysis_target_device
(可选)

指定将用于执行计算的设备。

  • GPU_THEN_CPU如果找到了兼容的 GPU,则系统会将其用于执行计算。 否则,系统将使用 CPU。 这是默认设置。
  • CPU_ONLY计算将仅在 CPU 上执行。
  • GPU_ONLY计算将仅在 GPU 上执行。
String

代码示例

Aspect 示例 1(Python 窗口)

此示例将根据输入表面栅格创建坡向栅格。

import arcpy
from arcpy import env  
env.workspace = "C:/data"
arcpy.ddd.Aspect("elevation", "C:/output/outaspect.img")
Aspect 示例 2(独立脚本)

此示例将根据输入表面栅格创建坡向栅格。

# Name: Aspect_3d_Ex_02.py
# Description: Derives aspect from a raster surface.
# Requirements: 3D Analyst Extension

# Import system modules
import arcpy
from arcpy import env

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

# Set local variables
inRaster = "elevation"
outAspect = "C:/output/outaspect2"
method = "GEODESIC"
zUnit = "FOOT"

# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")

# Execute Aspect
arcpy.ddd.Aspect(inRaster, outAspect, method, zUnit)

许可信息

  • Basic: 需要 3D Analyst 或 Spatial Analyst
  • Standard: 需要 3D Analyst 或 Spatial Analyst
  • Advanced: 需要 3D Analyst 或 Spatial Analyst

相关主题