Geomorphon 地貌 (空间分析)

需要 Spatial Analyst 许可。

摘要

计算输入表面栅格的每个像元的地单体模式,并将计算过的地单体按照常见的地貌类型进行分类。

使用情况

  • 地单体是基于目标单元周围区域内的海拔差异的景观表示。 共有 498 种独特的地单体模式,可分为 10 种常见地貌类型:平地、山峰、山脊、山肩、山嘴、山坡、凹地、坡麓、山谷和凹坑(Jasiewicz 和 Stepiski,2012)。

  • 输出地貌栅格(Python 中的 out_landforms_raster)参数值是主要输出。 这是一个栅格,表示使用查找表将地单体分类为 10 种地貌类型的结果。 Geomorphon 模式是可选输出,可以通过指定输出 Geomorphons 栅格(Python 中的 out_geomorphons_raster)参数值来保存。 这是一个表示地单体模式唯一标识符的栅格。 它可用于将地单体分类为输出地貌栅格值中的地貌以外的地貌。

  • 目标像元的周围区域,即分析区域,由搜索距离(Python 中的 search_distance)和跳过距离(Python 中的 skip_distance)参数确定。 这些参数定义了将用于计算目标像元地单体模式的区域的半径。 跳过距离参数指定距分析区域开始处的目标像元的距离。 搜索距离参数指定区域延伸到的位置。 跳过距离参数值必须小于搜索距离参数值。

  • 搜索距离参数使用较大的值时,结果是较大的分析区域,这可能会提供有关周围地形的详细信息,并提高将目标像元分类为大型景观要素的一部分的能力。 同时,较大的值可能会忽略较小的景观要素。 例如,一个像元可能在较小的分析区域(较小的搜索距离值)中被归类为平地,但在较宽的分析区域(较大的搜索距离值)中可能被归类为山谷。 搜索距离参数值越小,分析区域越小,大的景观要素可能会被分解成更小的要素并进行相应分类。

  • 跳过距离参数指定一个值会导致目标聚焦到远离目标像元的区域,并生成更平滑的分类地貌栅格。 如果未指定跳过距离值,则在识别地貌图案时将考虑分析区域内的所有相邻像元。

  • 平坦地形角度阈值(Python 中的 angle_threshold)参数指定视线角度之间的差异,低于该角度可见周围区域将被视为平地。 确定平坦地形角度阈值参数值时,请考虑输入表面栅格参数值的像元大小。 例如,对于具有较大像元的输入栅格,1 度的差异意味着几米的高程差异。 较大的平坦地形角度阈值参数值将导致更多区域被识别为平坦。

  • 指定 Z 单位(Python 中的 z_unit)值可确保正确计算用于生成地单体模式和地形分类的高程差异和视线角度。

    如果 z 单位可用于输入栅格的垂直坐标系,则将被自动应用。 如果在输入表面栅格中缺失,建议您定义输入栅格的 z 单位。 可使用定义投影工具来指定 z 单位。 如果未定义垂直坐标,则默认使用米。 当指定的 z 单位根据每个基本方向上的视线角度计算不正确时,此工具将发出警告。 例如,如果 DEM 高程值以米为单位,但已为 Z 单位参数指定了厘米,则地形将被视为平地,地形将不会被正确分类。

  • 表面栅格中的 NoData 像元将被忽略,并且这些像元将在输出地貌栅格输出地单体栅格参数值中分配为 NoData。

  • 参考:

    • Jasiewicz, J and Stepinski, T. J., Geomorphons - a pattern recognition approach to classification and mapping of landforms, Geomorphology, 182, January 15, 2013: 147-56. https://doi.org/10.1016/j.geomorph.2012.11.005

参数

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

输入表面栅格。

Raster Layer
输出地单体栅格
(可选)

每个地单体模式都将分配一个唯一标识符,该标识符存储在输出地单体栅格中的每个像元中。

输出为整型。

Raster Dataset
平坦地形角度阈值
(可选)

目标像元将被分类为平地的角度阈值(以度为单位)。

默认值为 1 度。 对于低分辨率 DEM,建议指定比默认值更大的值。

Double
距离单位
(可选)

指定将用于搜索距离跳过距离参数的距离单位。

距离将以指定的单位或像元数进行测量。 默认为像元

  • 像元距离单位将为像元。
  • 距离单位将为米。
  • 厘米距离单位将为厘米。
  • 千米距离单位将为公里。
  • 英寸距离单位将为英寸。
  • 英尺距离单位将为英尺。
  • 距离单位将为码。
  • 英里距离单位将为英里。
String
搜索距离
(可选)

距目标像元的距离定义了将用于识别地单体模式的区域的半径。

默认值为 10。 使用与要分类的地貌类型和大小相匹配的搜索距离值。

Double
跳过距离
(可选)

距分析区域开始处的目标像元的距离。 落在该距离内的相邻像元将被跳过,并且不会有助于识别地单体模式。

每个单独的像元的分类是通过评估距目标像元中心的跳跃距离内的相邻像元来确定的。

Double
Z 单位
(可选)

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

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

  • 英寸线性单位将为英寸。
  • 英尺线性单位将为英尺。
  • 线性单位将为码。
  • 英里(美制)线性单位将为英里。
  • 海里线性单位将为海里。
  • 毫米线性单位将为毫米。
  • 厘米线性单位将为厘米。
  • 线性单位将为米。
  • 千米线性单位将为公里。
  • 分米线性单位将为分米。
String

返回值

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

输出分类地貌栅格。

输出为整型。

每个值对应一个特定的地貌类型:平地 - 像元值 1,山峰 - 像元值 2,山脊 - 像元值 3,山肩 - 像元值 4,山嘴 - 像元值 5,山坡 - 像元值 6,凹地 - 像元值 7 , 坡麓 - 像元值 8,山谷 - 像元值 9,凹坑 - 像元值 10。

Raster

GeomorphonLandforms(in_surface_raster, {out_geomorphons_raster}, {angle_threshold}, {distance_units}, {search_distance}, {skip_distance}, {z_unit})
名称说明数据类型
in_surface_raster

输入表面栅格。

Raster Layer
out_geomorphons_raster
(可选)

每个地单体模式都将分配一个唯一标识符,该标识符存储在输出地单体栅格中的每个像元中。

输出为整型。

Raster Dataset
angle_threshold
(可选)

目标像元将被分类为平地的角度阈值(以度为单位)。

默认值为 1 度。 对于低分辨率 DEM,建议指定比默认值更大的值。

Double
distance_units
(可选)

指定将用于搜索距离跳过距离参数的距离单位。

距离将以指定的单位或像元数进行测量。 默认为像元

指定将用于 search_distanceskip_distance 参数的距离单位。

距离将以指定的单位或像元数进行测量。 默认为 CELLS

  • CELLS距离单位将为像元。
  • METERS距离单位将为米。
  • CENTIMETERS距离单位将为厘米。
  • KILOMETERS距离单位将为公里。
  • INCHES距离单位将为英寸。
  • FEET距离单位将为英尺。
  • YARDS距离单位将为码。
  • MILES距离单位将为英里。
String
search_distance
(可选)

距目标像元的距离定义了将用于识别地单体模式的区域的半径。

默认值为 10。 使用与要分类的地貌类型和大小相匹配的搜索距离值。

Double
skip_distance
(可选)

距分析区域开始处的目标像元的距离。 落在该距离内的相邻像元将被跳过,并且不会有助于识别地单体模式。

每个单独的像元的分类是通过评估距目标像元中心的跳跃距离内的相邻像元来确定的。

Double
z_unit
(可选)

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

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

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

返回值

名称说明数据类型
out_landforms_raster

输出分类地貌栅格。

输出为整型。

每个值对应一个特定的地貌类型:平地 - 像元值 1,山峰 - 像元值 2,山脊 - 像元值 3,山肩 - 像元值 4,山嘴 - 像元值 5,山坡 - 像元值 6,凹地 - 像元值 7 , 坡麓 - 像元值 8,山谷 - 像元值 9,凹坑 - 像元值 10。

Raster

代码示例

GeomorphonLandforms 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

此示例使用所有可选参数的默认值从输入表面栅格生成地貌栅格。

from arcpy.sa import *
outGeomorphonLandforms = GeomorphonLandforms("elevation_1m.tif", "", "", "", "", "", "")
outGeomorphonLandforms.save("C:/sapyexamples/output/outgeorphonlandforms01.tif")
GeomorphonLandforms 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

此示例生成一个地貌栅格,该地貌栅格根据在 50 米的搜索距离内计算的地貌进行分类,跳过目标像元 2 米内的像元。

# Name: GeomorphonLandforms_standalone.py
# Description: Calculates geomorphons over a search distance of 50 meters, skipping cells within 2 meters
# of the target cell. Terrain is considered flat if the difference between elevation angles is less or equal to 2 degrees.
# The calculated geomorphons are classified into landforms and saved as a raster. 
# Requirements: Spatial Analyst Extension

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

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

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

# Set local variables
inRaster = "elevation_1m.tif"
inAngleThreshold = 2
inDistanceUnits = "METERS"
inSearchDistance = 50
inSkipDistance = 2
inZunit = "METER"

# Execute the tool
outGeomorphonLandforms = GeomorphonLandforms(inRaster, "", inAngleThreshold, inDistanceUnits,
                                         inSearchDistance, inSkipDistance, inZunit)

# Save the output 
outGeomorphonLandforms.save("C:/sapyexamples/output/outgeomorphonlandforms02.tif")