Geomorphon 地貌 (Spatial Analyst)

摘要

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

使用情况

  • 地单体是基于目标单元周围地区的高程差异而建立的地貌表达。 共有 498 种独特的地单体模式可归类为 10 种常见地貌类型:平坦、山峰、山脊、山肩、山嘴、坡地、洼地、坡麓、山谷和凹地(Jasiewicz 和 Stepiski,2012)。

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

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

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

  • 跳过距离参数指定一个值会使焦点集中在距离目标像元较远的区域,并生成更平滑的分类地貌栅格。 如果未指定跳过距离值,则在识别地单体模式时将考虑分析区域内的所有邻近像元。

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

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

    如果 z 单位可用于输入栅格的垂直坐标系,则将自动应用 z 单位。 如果输入表面栅格中缺少 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")

相关主题