查找局部山峰或山谷 (国防)

在 Advanced 许可等级下可用。

需要 Spatial Analyst 许可。

摘要

用于在定义区域内查找局部山峰或山谷。

使用情况

  • 返回的最高或最低点要素的数量可能少于山峰或山谷的数量参数中请求的数量。 该工具将仅返回在给定输入表面的情况下,可以标识的局部山峰或山谷的数量。

  • 通过反转表面,然后在表面中找到汇,即可找到山峰。 这些点用于从原始表面提取高程值,然后基于高程进行排序。

  • 输入表面的高程用于为点设置等级,但是返回的数量将基于高程值的排序顺序。 如果您需要选择最高的 10 个点,并且点 10、11 和 12 具有相同的高程,则该工具将排除后两个点。

  • 该工具将查找区域中的局部最大值或最小值。例如,被高山包围的山谷中间的一个小山顶将被识别为局部山峰。

  • 输出将包含 Elevation 字段,该字段具有山峰或山谷的高程值。 山峰或山谷的单位为输入表面的 z 单位(高程)。 请检查此单位的输入表面元数据。

参数

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

输入高程栅格表面。

Raster Layer; Mosaic Dataset; Mosaic Layer
输出要素类

包含局部山峰或山谷的输出点要素类。

Feature Class
山峰或山谷

用于指定该工具将执行的操作类型。

  • 局部山峰将找到局部山峰。 这是默认设置。
  • 局部山谷将找到局部山谷。
String
山峰或山谷的数量

要查找的山峰或山谷的数量。

Long
输入区域
(可选)

将在其中查找局部山峰或山谷的输入面要素类。

Feature Set

arcpy.defense.FindLocalPeaksValleys(in_surface, out_feature_class, peak_valley_op_type, num_peaks_valleys, {in_feature})
名称说明数据类型
in_surface

输入高程栅格表面。

Raster Layer; Mosaic Dataset; Mosaic Layer
out_feature_class

包含局部山峰或山谷的输出点要素类。

Feature Class
peak_valley_op_type

用于指定该工具将执行的操作类型。

  • PEAKS将找到局部山峰。 这是默认设置。
  • VALLEYS将找到局部山谷。
String
num_peaks_valleys

要查找的山峰或山谷的数量。

Long
in_feature
(可选)

将在其中查找局部山峰或山谷的输入面要素类。

Feature Set

代码示例

FindLocalPeaksValleys 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 FindLocalPeaksValleys 函数。

import arcpy
arcpy.env.workspace = r"C:/Data.gdb"
arcpy.defense.FindLocalPeaksValleys("n36.dt2",
                                    "n36_FindLocalPeaksValleys",
                                    "PEAKS",
                                    10,
                                    "SelectedAOI")
FindLocalPeaksValleys 示例 2(独立脚本)

以下示例将在示例工作流脚本中使用 FindLocalPeaksValleys 函数。

# Description: Find the highest peak in Crowders State Park.

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = r"C:/Data.gdb"

# Select state park
state_parks = "NCStateParks"
whereClause = "st_park_name = 'Crowders Mountain State Park'"
aoi_layer = arcpy.management.SelectLayerByAttribute(state_parks,
                                                    "NEW_SELECTION",
                                                    whereClause)

# Inputs
input_surface = "n36.dt2"

# Find highest peak 
arcpy.defense.FindLocalPeaksValleys(input_surface,
                                    "PeaksCrowdersMtn",
                                    "PEAKS",
                                    10,
                                    aoi_layer)