多尺度表面差异 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

计算在不同空间尺度下相对于平均高程的最大差值。

了解有关“多尺度表面差异”工作原理的详细信息。

使用情况

  • 针对各比例计算与平均高程的最大差异。 这意味着,对于每个比例,都可以找到平均高程,并找到中心像元的值与该比例的平均高程之间的差异。 将保留差异以与不同比例的值进行比较。 这些比例是用于计算的邻域距离值(与目标像元中​​心的距离,由此在目标像元周围创建一个像元正方形)。 例如,两个像元的比例为 5×5 像元邻域。

  • 输入表面栅格Python 中的 in_raster)参数值可以为任何类型的表面栅格。

  • 输出差异栅格Python 中的 out_difference_raster)参数为主要输出。 一个栅格,其中包含针对一系列空间比例的与平均高程的最大差异。

  • 输出比例栅格Python 中的 out_scale_raster)参数可提供有关主要输出的详细信息。 它包含针对每个像元找到与平均高程的最大差异的比例。 该比例为邻域距离值,即与目标像元中​​心的距离,由此在目标像元周围创建一个像元正方形。

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

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

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

  • 距离增量Python 中的 increment)参数是比例间邻域距离的增加。

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

  • 输入表面栅格值中的 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
用于分析的目标设备
(可选)

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

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

返回值

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

输出栅格,其中包含每个像元与平均高程的最大差异。

此栅格为浮点类型。

Raster

MultiscaleSurfaceDifference(in_raster, {out_scale_raster}, {distance_units}, {min_scale}, {max_scale}, {increment}, {analysis_target_device})
名称说明数据类型
in_raster

输入表面栅格。

Raster Layer
out_scale_raster
(可选)

输出栅格,其中包含针对每个像元找到最大差异的比例。 比例表示为其邻域距离值。

此栅格为浮点类型。

Raster Dataset
distance_units
(可选)

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

将以像元数量或指定单位来测量距离。 默认值为 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
increment
(可选)

比例间邻域距离的增加。

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

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

Double
analysis_target_device
(可选)

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

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

返回值

名称说明数据类型
out_difference_raster

输出栅格,其中包含每个像元与平均高程的最大差异。

此栅格为浮点类型。

Raster

代码示例

MultiscaleSurfaceDifference 示例 1(Python 窗口)

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

本示例将使用所有可选参数的默认值,根据输入表面栅格生成差异输出栅格。

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

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

本示例将生成一个差异栅格,其比例从 10 米到 100 米不等,其中每个比例之间的增量为 1 米。

# Name: MultiscaleSurfaceDifference_standalone.py
# Description: Calculates the maximum difference for each cell from the mean
# 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 = 1

# Execute the tool
outMaxDifferences = MultiscaleSurfaceDifference(inRaster, "", inDistanceUnits, inMinScale,
                                                inMaxScale, inIncrement, "")

# Save the output 
outMaxDifference.save("C:/sapyexamples/output/outmaxdifferences02.tif")

许可信息

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

相关主题