多尺度表面百分位数 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

计算在不同空间尺度下的最极端百分位数。

了解有关“多尺度表面百分位数”工作原理的详细信息

使用情况

  • 输入表面栅格Python 中的 in_raster)参数值可以为任何类型的表面栅格。 当使用高程表面以外的表面栅格时,此工具将计算栅格像元值的百分位数。

  • 当使用高程表面作为输入时,高程百分位数 (EP) 为计算的百分位数。 EP 是局部地形位置 (LTP) 的度量。 它将像元的垂直位置表示为过滤窗口或邻域内高程分布的百分位数。 多尺度 EP 在较小尺度上变化很大,而在较大尺度上变化较为缓慢。 它也相对不受不规则高程分布和异常值的影响,由此使其成为测量 LTP 的可靠方法。

  • 无论使用高程表面还是其他类型的表面作为输入,百分位数均跨多个尺度进行计算。 这些尺度是用于计算的邻域距离值。 即与目标像元中心的距离,由此在目标像元周围创建一个像元方块。 例如,尺度为 4 个像元即 9×9 像元邻域。

  • 输出百分位数栅格Python 中的 out_percentile_raster)参数值是主要输出。 这是一个栅格,其中包含一系列空间尺度上每个像元的最极端百分位数。 值的范围为 0 到 100。 最极端的值为距离 50 最远的百分位数(例如,更接近 0 或 100 的百分位数)。

  • 输出尺度栅格Python 中的 out_scale_raster)参数将提供有关主要输出的详细信息。 其中包含针对每个像元找到最极端百分位数的尺度。 该尺度为邻域距离值,即与目标像元中​​心的距离,由此在目标像元周围创建一个像元方块。

  • 最小邻域距离Python 中的 min_scale)和最大邻域距离Python 中的 max_scale)参数用于定义计算百分位数的最小和最大邻域大小或尺度。 这些值表示与目标像元的最小距离和最大距离。 例如,值为 1 将创建 3 x 3 像元邻域,值为 2 将创建 5 x 5 像元邻域。

    这些值不能小于输入栅格的像元大小或一个像元。

    最小邻域距离参数值必须小于或等于最大邻域距离参数值。

  • 基础距离增量Python 中的 base_increment)参数是尺度之间邻域距离的初始增量。 当针对非线性因子Python 中的 nonlinearity)参数使用大于 1 的值时,此增量将会改变。

    此参数值不能小于输入栅格的像元大小或 1 个像元。 默认值为输入栅格像元大小。

  • 非线性因子参数用于控制邻域距离或尺度的增量。 值为 1.0 将创建尺度的线性增量,其中尺度之间的增量将相同(基础距离增量参数的值)。 增大此值将更快地增大尺度,并减小给定最小和最大尺度的尺度数量。

    如果希望较小尺度的采样密度较高,较大尺度的采样密度较低,请针对此参数使用大于 1.0 的值。

    此参数接受大于或等于 1.0 的值。 通常,当寻求邻域距离的非线性增加时,该参数最常使用 1.0 到 2.0 之间的值。

    了解有关“多尺度表面百分位数”工作原理的详细信息

  • 输入表面栅格值中的 NoData 像元将被忽略,并且将在输出百分位数栅格输出尺度栅格参数值中为这些像元分配 NoData。

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

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

  • 使用 GPU 运行时,比 CPU 计算能生成更高精度的结果。

  • 该工具支持并行处理。 如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。 使用 Spatial Analyst 进行并行处理帮助主题包括有关此功能及其配置方法的详细信息。

    默认情况下,此工具将使用可用核数的 50%。 您可以控制该工具用于并行处理因子环境的内核数。

  • 当输出栅格格式为 .crf 时,此工具支持金字塔栅格存储环境。 默认情况下,将在输出中创建金字塔。 对于任何其他输出格式,不支持此环境,并且不会创建金字塔。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

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

输入表面栅格。

Raster Layer
输出尺度栅格
(可选)

输出栅格,其中包含针对每个像元找到最极端百分位数的尺度。 尺度将表示为其邻域距离值。

此栅格为浮点类型。

Raster Dataset
距离单位
(可选)

指定将用于最小邻域距离最大邻域距离基础距离增量参数的距离单位。

将以像元数量或指定单位来测量距离。 默认值为输入表面栅格值的空间参考的地图单位。

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

用于定义将计算高程百分位数的最小邻域尺度的距离。 即与目标像元中心的距离,由此在目标像元周围创建一个像元方块。

该值必须小于或等于最大邻域距离参数值,并且大于或等于输入栅格的像元大小或一个像元。

默认值为输入表面栅格像元大小的 4 倍,形成一个 9x9 的像元邻域。

Double
最大邻域距离
(可选)

用于定义将计算高程百分位数的最大邻域尺度的距离。 即与目标像元中心的距离,由此在目标像元周围创建一个像元方块。

该值必须大于或等于最小邻域距离参数值,并且大于或等于输入栅格的像元大小或一个像元。

默认值为输入表面栅格像元大小的 13 倍,形成一个 27x27 的像元邻域。

Double
基础距离增量
(可选)

尺度之间邻域距离的初始增量。

此参数值不能小于输入表面栅格像元大小或 1 个像元。

默认值为输入表面栅格参数值的像元大小。

Double
非线性因子
(可选)

可向尺度中引入非线性的因子会随着每个增量而增大。 由此导致尺度之间的增量增大,而非保持不变。 通常,将使用介于 1.0 和 2.0 之间的值。

此参数必须大于或等于 1。

默认值为 1,表示邻域距离呈线性增大(其中尺度之间的增量保持不变)。

Double
用于分析的目标设备
(可选)

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

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

返回值

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

输出栅格,其中包含每个像元的最极端百分位值。 最极端的值为距离 50 最远的百分位数(例如,更接近 0 或 100 的百分位数)。

此栅格为浮点类型。

Raster

MultiscaleSurfacePercentile(in_raster, {out_scale_raster}, {distance_units}, {min_scale}, {max_scale}, {base_increment}, {nonlinearity}, {analysis_target_device})
名称说明数据类型
in_raster

输入表面栅格。

Raster Layer
out_scale_raster
(可选)

输出栅格,其中包含针对每个像元找到最极端百分位数的尺度。 尺度将表示为其邻域距离值。

此栅格为浮点类型。

Raster Dataset
distance_units
(可选)

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

将以像元数量或指定单位来测量距离。 默认值为 in_raster 值的空间参考的地图单位。

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

用于定义将计算高程百分位数的最小邻域尺度的距离。 即与目标像元中心的距离,由此在目标像元周围创建一个像元方块。

该值必须小于或等于 max_scale 参数值,并且大于或等于输入栅格的像元大小或一个像元。

默认值为 in_raster 像元大小的 4 倍,形成一个 9x9 的像元邻域。

Double
max_scale
(可选)

用于定义将计算高程百分位数的最大邻域尺度的距离。 即与目标像元中心的距离,由此在目标像元周围创建一个像元方块。

该值必须大于或等于 min_scale 参数值,并且大于或等于输入栅格的像元大小或一个像元。

默认值为 in_raster 像元大小的 13 倍,形成一个 27x27 的像元邻域。

Double
base_increment
(可选)

尺度之间邻域距离的初始增量。

此参数不能小于 in_raster 像元大小或 1 个像元。

默认值为 in_raster 参数值的像元大小。

Double
nonlinearity
(可选)

可向尺度中引入非线性的因子会随着每个增量而增大。 由此导致尺度之间的增量增大,而非保持不变。 通常,将使用介于 1.0 和 2.0 之间的值。

此参数必须大于或等于 1。

默认值为 1,表示邻域距离呈线性增大(其中尺度之间的增量保持不变)。

Double
analysis_target_device
(可选)

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

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

返回值

名称说明数据类型
out_percentile_raster

输出栅格,其中包含每个像元的最极端百分位值。 最极端的值为距离 50 最远的百分位数(例如,更接近 0 或 100 的百分位数)。

此栅格为浮点类型。

Raster

代码示例

MultiscaleSurfacePercentile 示例 1(Python 窗口)

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

此示例使用所有可选参数的默认值,根据输入表面栅格生成百分位数输出栅格。

from arcpy.sa import *
outPercentiles = MultiscaleSurfacePercentile("elevation.tif", "", "", "", "", "", "", "")
outPercentiles.save("C:/sapyexamples/output/outpercentiles01.tif")
MultiscaleSurfacePercentile 示例 2(独立脚本)

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

本示例将为 10 米到 100 米的尺度生成百分位数栅格,其中每个尺度之间的增量为 10 米。

# Name: MultiscaleSurfacePercentile_standalone.py
# Description: Calculates the most extreme percentiles over a range of spatial scales.
# 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.tif"
inDistanceUnits = "METERS"
inMinScale = 10
inMaxScale = 100
inIncrement = 10
inNonlinearity = 1

# Execute the tool
outPercentiles = MultiscaleSurfacePercentile(inRaster, "", inDistanceUnits, inMinScale,
                                             inMaxScale, inIncrement, inNonlinearity, "")

# Save the output 
outPercentiles.save("C:/sapyexamples/output/outpercentiles02.tif")

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题