表面参数 (栅格分析)

摘要

使用测地线方法确定表面栅格的参数,例如坡向、坡度和多种类型的曲率。

通过拟合目标像元周围的局部表面,将逐个像元执行计算。

使用情况

  • 当您登录到已针对 Raster Analysis 配置 ArcGIS Image ServerArcGIS Enterprise 门户时,可以使用此栅格分析门户工具。 工具运行时,ArcGIS Pro 将充当客户端,并且处理将在与 ArcGIS Enterprise 联合的服务器中进行。 门户工具接受来自门户的图层作为输入,并在门户中创建输出。

    输入栅格图层支持来自门户的图层、影像服务的 URI 或 URL 或创建影像服务器图层工具的输出。 输入要素图层可以是来自门户、URI 或要素服务 URL 的图层。 此工具不支持本地栅格数据或图层。 虽然可以使用本地要素数据和图层作为此门户工具的输入,但是最佳做法是使用门户的图层作为输入。

  • 当为参数类型指定坡度选项时,输出表示每个数字高程模型 (DEM) 像元的高程变化率。 它是 DEM 的一阶导数。 坡度输出值的范围取决于测量单位的类型。

  • 当为参数类型指定坡向选项时,输出可识别每个位置下坡所面对的罗盘方向。 坡向由 0 到 360 度之间的正度数表示,以北为基准方向按顺时针进行测量。

  • 曲率用于描述曲面的形状。 将曲率应用于地球科学时,有助于解释重力、侵蚀以及其他因素对表面的影响,并且曲率可与其他表面参数结合使用,以识别地形并对其进行分类。 参数类型的曲率选项描述如下:

    • 平均曲率 - 表面的整体曲率。 计算最小曲率和最大曲率的平均值即可获得平均曲率。 指定此选项时,输出等效于剖面(法向坡度线)曲率和切向(标准等高线)曲率的平均值。 除极值外,其正负符号并非确定的指标。 高正值表示最大剥蚀区域,高负值表示最大累积区域 (Minár et al., 2020)。
    • 切向(法向等值线)曲率 - 垂直于坡度线且与等值线相切的几何法向曲率。 正值表示表面流分散的区域。 负切向曲率表示表面流会聚的区域。 正切向(标准等高线)曲率表示表面在与坡度方向垂直的像元处凸起。 负曲率表示表面在与坡度方向垂直的像元处凹陷。 值为 0 说明表面是平的。
    • 剖面(法向坡度线)曲率 - 沿坡度线的几何法向曲率。 正值表示表面流动和侵蚀加速的区域。 负剖面曲率表示表面流动和沉降减缓的区域。 正剖面(法向坡度线)曲率表示表面在坡度方向上的像元处凸起。 负曲率表示表面在相同方向上的像元处凹陷。 值为 0 说明表面是平的。
    • 平面(投影等值线)曲率 - 沿等值线的曲率。
    • 等值测地线扭转 - 沿等值线的坡度角变化率。
    • 高斯曲率 - 表面的总曲率。 计算最小曲率和最大曲率的结果即可获得高斯曲率,并且可能为负值和正值。 正值表示该像元处的表面为凸面,负值表示其为凹面。 值为 0 说明表面是平的。
    • Casorati 曲率 - 表面的总曲率。 值可以为零或始终为正值。 高正值表示在多个方向上的尖锐弯曲区域。

    曲率类型输出的所有单位都将是输出坐标系环境设置的 x,y 单位的倒数(高斯曲率倒数的平方)。

  • 局部表面类型参数中的二次选项无法与邻域像元精确拟合。 这是大多数数据和应用程序的默认和推荐选项。

    • 二次表面最大程度地减少了噪点表面数据(例如高分辨率激光雷达表面)的影响,这在计算曲率时尤其重要。
    • 当指定的邻域大小大于像元大小以及使用自适应邻域选项时,应使用二次曲面。
  • 局部表面类型参数中的四次选项可与来自邻域像元的数据精确拟合。

    • 此选项适用于高精度输入表面。
    • 如果邻域距离大于输入栅格像元大小,则将失去双二次表面类型的精度优势。 邻域距离应保留为默认值(等于像元大小)。
  • 邻域距离参数可确定邻域大小,并根据与目标像元中心之间的这一距离计算表面参数。

    • 邻域距离不能小于输入栅格像元大小。
    • 较小邻域距离可捕获地表中的更多局部变化,例如较小地表要素的特征。 对于高分辨率高程数据,更大的距离可能更合适。
  • 选中使用自适应邻域参数时(Python 中为 useAdaptiveNeighborhood = "ADAPTIVE_NEIGHBORHOOD"),邻域距离将随地形的变化而变化。 如果计算窗口中的内容变化过大,则邻域距离将缩小。

  • 指定表面 Z 单位参数值可确保正确计算坡度输出。

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

  • 坡度输出值的范围取决于输出坡度测量参数值:

    • - 坡度值的范围为 0 至 90。
    • 增量百分比 - 范围为 0 至无穷大。 平坦表面为 0%,45 度表面为 100%,随着表面变得越来越接近垂直,增量百分比将变得越来越大。
  • 如果选中投影测地线方位角参数(Python 中为 projectGeodesicAzimuths = "PROJECT_GEODESIC_AZIMUTHS"),则以下表述将为真:

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

  • 如果选中使用赤道投影参数(Python 中为 useEquatorialAspect = "EQUATORIAL_ASPECT"),系统将从赤道上的某个点开始测量坡向,以纠正接近两极时发生的方向偏斜。 此参数可确保南北轴和东西轴相互垂直。

    如果您的地形靠近北极或南极,请选中使用赤道投影参数。

参数

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

输入表面栅格。 可为整型或浮点型。

Raster Layer; Image Service; String
输出栅格名称

输出栅格服务的名称。

String
参数类型
(可选)

指定要计算的输出表面参数类型。

  • 坡度将计算高程变化率。 这是默认设置。
  • 坡向将计算每个像元的最大变化率的下坡方向。
  • 平均曲率将计算表面的总曲率。 计算最小曲率和最大曲率的平均值即可获得平均曲率。 此曲率可描述表面的固有凸度或凹度,与方向或重力影响无关。
  • 切向(标准等高线)曲率将计算垂直于坡度线且与等值线相切的几何法曲率。 通常应用此曲率来表征流经某表面的流的汇聚和分散。
  • 剖面(法向坡度线)曲率将计算沿坡度线的几何法曲率。 通常应用此曲率来表征流经某表面的流的加速和减速。
  • 平面(投影等值线)曲率将计算沿等值线的曲率。
  • 等值测地线扭转将计算沿等值线的坡度角变化率。
  • 高斯曲率将计算表面的总曲率。 计算最小曲率和最大曲率的结果即可获得平均曲率。
  • Casorati 曲率将计算表面的总曲率。 该值可为零或任意其他正数。
String
局部表面类型
(可选)

指定在目标像元周围拟合的表面函数的类型。

  • 二次将二次表面函数拟合到邻域像元。 这是默认设置。
  • 双二次将四次表面函数拟合到邻域像元。
String
邻域距离
(可选)

根据与目标像元中心之间的这一距离计算输出。 邻域距离可确定邻域大小。

默认值为输入栅格像元大小,可生成 3 x 3 邻域。

Linear Unit
使用自适应邻域
(可选)

指定邻域距离是否随地表变化而变化(自适应)。 最大距离由邻域距离确定。 最小距离为输入栅格像元大小。

  • 未选中 - 在所有位置使用单一(固定)邻域距离。 这是默认设置。
  • 选中 - 在所有位置使用自适应邻域距离。
Boolean
Z 单位
(可选)

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

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

  • 英寸线性单位将为英寸。
  • 英尺线性单位将为英尺。
  • 线性单位将为码。
  • 英里(美制)线性单位将为英里。
  • 海里线性单位将为海里。
  • 毫米线性单位将为毫米。
  • 厘米线性单位将为厘米。
  • 线性单位将为米。
  • 千米线性单位将为公里。
  • 分米线性单位将为分米。
String
输出斜率测量
(可选)

将用于输出坡度栅格的测量单位(度或百分比)。 仅当将参数类型设置为坡度时,此参数才处于活动状态。

  • 坡度倾角将以度为单位进行计算。
  • 增量百分比坡度倾角将以增量百分比进行计算,也称为百分比坡度。
String
工程测地线方位角
(可选)

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

  • 未选中 - 将不会投影测地线方位角。 这是默认设置。
  • 选中 - 将投影测地线方位角。
Boolean
使用赤道投影
(可选)

指定是从赤道上的点还是从北极测量坡向。

  • 未选中 - 将从北极测量坡向。 这是默认设置。
  • 选中 - 将从赤道上的点测量坡向。
Boolean

派生输出

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

输出表面参数栅格。

Raster Layer

arcpy.ra.SurfaceParameters(inputSurfaceRaster, outputRasterName, {parameterType}, {localSurfaceType}, {neighborhoodDistance}, {useAdaptiveNeighborhood}, {zUnit}, {outputSlopeMeasurement}, {projectGeodesicAzimuths}, {useEquatorialAspect})
名称说明数据类型
inputSurfaceRaster

输入表面栅格。 可为整型或浮点型。

Raster Layer; Image Service; String
outputRasterName

输出栅格服务的名称。

String
parameterType
(可选)

指定要计算的输出表面参数类型。

  • SLOPE将计算高程变化率。 这是默认设置。
  • ASPECT将计算每个像元的最大变化率的下坡方向。
  • MEAN_CURVATURE将计算表面的总曲率。 计算最小曲率和最大曲率的平均值即可获得平均曲率。 此曲率可描述表面的固有凸度或凹度,与方向或重力影响无关。
  • TANGENTIAL_CURVATURE将计算垂直于坡度线且与等值线相切的几何法曲率。 通常应用此曲率来表征流经某表面的流的汇聚和分散。
  • PROFILE_CURVATURE将计算沿坡度线的几何法曲率。 通常应用此曲率来表征流经某表面的流的加速和减速。
  • CONTOUR_CURVATURE将计算沿等值线的曲率。
  • CONTOUR_GEODESIC_TORSION将计算沿等值线的坡度角变化率。
  • GAUSSIAN_CURVATURE将计算表面的总曲率。 计算最小曲率和最大曲率的结果即可获得平均曲率。
  • CASORATI_CURVATURE将计算表面的总曲率。 该值可为零或任意其他正数。
String
localSurfaceType
(可选)

指定在目标像元周围拟合的表面函数的类型。

  • QUADRATIC将二次表面函数拟合到邻域像元。 这是默认设置。
  • BIQUADRATIC将四次表面函数拟合到邻域像元。
String
neighborhoodDistance
(可选)

根据与目标像元中心之间的这一距离计算输出。 邻域距离可确定邻域大小。

默认值为输入栅格像元大小,可生成 3 x 3 邻域。

Linear Unit
useAdaptiveNeighborhood
(可选)

指定邻域距离是否随地表变化而变化(自适应)。 最大距离由邻域距离确定。 最小距离为输入栅格像元大小。

  • FIXED_NEIGHBORHOOD在所有位置使用单一(固定)邻域距离。 这是默认设置。
  • ADAPTIVE_NEIGHBORHOOD在所有位置使用自适应邻域距离。
Boolean
zUnit
(可选)

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

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

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

将用于输出坡度栅格的测量单位(度或百分比)。 仅当 parameterType = "SLOPE" 时此参数才可用。

  • DEGREE坡度倾角将以度为单位进行计算。
  • PERCENT_RISE坡度倾角将以增量百分比进行计算,也称为百分比坡度。
String
projectGeodesicAzimuths
(可选)

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

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

指定是从赤道上的点还是从北极测量坡向。

  • NORTH_POLE_ASPECT将从北极测量坡向。 这是默认设置。
  • EQUATORIAL_ASPECT将从赤道上的点测量坡向。
Boolean

派生输出

名称说明数据类型
outputRaster

输出表面参数栅格。

Raster Layer

代码示例

SurfaceParameters 示例 1(Python 窗口)

此示例在给定输入表面的情况下使用固定的 3 x 3 邻域窗口以度为单位计算坡度,然后将输出另存为影像服务图层。

import arcpy

arcpy.SurfaceParameters_ra(
    "https://myserver/rest/services/elevation/ImageServer", 
    "out_surfaceparameters", "SLOPE", "QUADRATIC", 
    "", "FIXED_NEIGHBORHOOD", "", "DEGREE", "", "")
SurfaceParameters 示例 2(独立脚本)

此示例在给定输入表面的情况下,使用自适应邻域窗口创建切向曲率影像服务。

#---------------------------------------------------------------------------
# Name: SurfaceParameters_standalone.py
# Description: Calculates tangential curvature using 
#              an adaptive neighborhood from an input surface. 
#
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables

inputSurface = "https://myserver/rest/services/elevation/ImageServer"
outName = "outsurfp1"
parameterType = "TANGENTIAL_CURVATURE"
localSurfaceType = "QUADRATIC"
neighborhoodDistance = "2 Meters"
useAdaptiveNeighborhood = "ADAPTIVE_NEIGHBORHOOD"
zUnit = "#"
outputSlopeMeasure = "#"
projectGeodesicAzimuth = "#"
useEquatorialAspect = "#"

# Execute Surface Parameters raster analysis tool

arcpy.SurfaceParameters_ra(inputSurface, 
                           outName, 
                           parameterType,
                           localSurfaceType, 
                           neighborhoodDistance,
                           useAdaptiveNeighborhood, 
                           zUnit,
                           outputSlopeMeasure,
                           projectGeodesicAzimuth,
                           useEquatorialAspect)

许可信息

  • Basic: 需要 ArcGIS Image Server
  • Standard: 需要 ArcGIS Image Server
  • Advanced: 需要 ArcGIS Image Server

相关主题