表面差异 (3D Analyst)

摘要

计算两个表面之间的位移来确定哪个表面在上、哪个表面在下或两个表面位置相同。

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

使用情况

  • 该输出仅表示输入表面的重叠部分。

  • 要评估输入和参考表面之间的 Z 值差异,请考虑生成输出栅格或 TIN。

  • 输入表面的水平和垂直坐标系最好相同。

  • 输出要素类将拥有按输入表面区域在上、在下或与参考平面相同来对其进行划分的面要素。要素属性表将包含以下字段:

    • Volume - 在输入和以面为界的参考表面之间的空间体积。两个表面相同的区域的体积始终为 0。
    • SArea - 以面为界的输入表面的表面区域。
    • Code - 描述表面与参考平面空间关系的数字值。-1 表示表面在参考平面以下,0 表示表面与参考平面重合,1 表示表面在参考平面之上。

参数

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

从参考表面评估其相对位移的三角化网格面。

LAS Dataset Layer; Terrain Layer; TIN Layer
参考表面

将作为基线用于确定输入表面相对位移的三角化网格面。

LAS Dataset Layer; Terrain Layer; TIN Layer
输出要素类

包含了因分类相同而划分为面的连续三角形和三角面部件的输出要素类。每个差异区域包围的体积均列于属性表中。

Feature Class
分析分辨率
(可选)

将用于生成输入表面的分辨率。对于 terrain 数据集,此分辨率与其金字塔等级定义对应,其中默认值 0 表示全分辨率。对于 LAS 数据集,此值表示用于稀疏化 LAS 点回波的方形区域各边的长度。

Double
参考分析分辨率
(可选)

将用于生成参考表面的分辨率。对于 terrain 数据集,此分辨率与其金字塔等级定义对应,其中默认值 0 表示全分辨率。对于 LAS 数据集,此值表示用于稀疏化 LAS 点回波的方形区域各边的长度。

Double
输出栅格
(可选)

其值代表对参考表面进行归一化的输入表面的输出栅格表面。正值反映输入表面位于参考表面之上的区域,而负值表示输入表面位于参考表面之下的区域。使用线性插值法从 TIN 获取栅格值。

Raster Dataset
栅格像元大小
(可选)

输出栅格的像元大小。

Double
输出 TIN 文件夹
(可选)

存储其值代表输入和参考表面之间差异的一个或多个 TIN 表面的文件夹位置。

Folder
输出 TIN 基本名称
(可选)

指定给每个输出 TIN 表面的基本名称。如果一个 TIN 数据不足以表示数据,则会创建多个具有相同基本名称的 TIN。

String
LAS 稀疏化方法

在应用某一分析分辨率来稀疏化输入 LAS 数据集表面时,在每个分析窗口中选择 LAS 点所使用的方法。所生成的点将用于构建三角化网格面。

  • 最接近平均值将使用值最接近分析窗口中所有 LAS 点的平均值的 LAS 点。这是默认设置。
  • 最小值在分析窗口的所有 LAS 点中 z 值最小的 LAS 点。
  • 最大值在分析窗口的所有 LAS 点中 z 值最高的 LAS 点。
String
参考 LAS 稀疏化方法

在应用某一分析分辨率来稀疏化输入 LAS 数据集表面时,在每个分析窗口中选择 LAS 点所使用的方法。所生成的点将用于构建三角化网格面。

  • 最接近平均值将使用值最接近分析窗口中所有 LAS 点的平均值的 LAS 点。这是默认设置。
  • 最小值在分析窗口的所有 LAS 点中 z 值最小的 LAS 点。
  • 最大值在分析窗口的所有 LAS 点中 z 值最高的 LAS 点。
String
处理范围
(可选)

待评估数据的范围。

  • 默认 - 该范围将基于所有参与输入的最大范围设定。这是默认设置。
  • 输入的并集 - 该范围将基于所有输入的最大范围。
  • 输入的交集 - 该范围将基于所有输入共用的最小区域。
  • 当前显示范围 - 该范围与可见显示范围相等。如果没有活动地图,则该选项将不可用。
  • 如下面的指定 - 该范围将基于指定的最小和最大范围值。
  • 浏览 - 该范围将基于现有数据集。
Extent
处理边界

定义将进行处理的感兴趣区域的面要素。

Feature Layer

arcpy.ddd.SurfaceDifference(in_surface, in_reference_surface, out_feature_class, {pyramid_level_resolution}, {reference_pyramid_level_resolution}, {out_raster}, {raster_cell_size}, {out_tin_folder}, {out_tin_basename}, method, reference_method, {extent}, boundary)
名称说明数据类型
in_surface

从参考表面评估其相对位移的三角化网格面。

LAS Dataset Layer; Terrain Layer; TIN Layer
in_reference_surface

将作为基线用于确定输入表面相对位移的三角化网格面。

LAS Dataset Layer; Terrain Layer; TIN Layer
out_feature_class

包含了因分类相同而划分为面的连续三角形和三角面部件的输出要素类。每个差异区域包围的体积均列于属性表中。

Feature Class
pyramid_level_resolution
(可选)

将用于生成输入表面的分辨率。对于 terrain 数据集,此分辨率与其金字塔等级定义对应,其中默认值 0 表示全分辨率。对于 LAS 数据集,此值表示用于稀疏化 LAS 点回波的方形区域各边的长度。

Double
reference_pyramid_level_resolution
(可选)

将用于生成参考表面的分辨率。对于 terrain 数据集,此分辨率与其金字塔等级定义对应,其中默认值 0 表示全分辨率。对于 LAS 数据集,此值表示用于稀疏化 LAS 点回波的方形区域各边的长度。

Double
out_raster
(可选)

其值代表对参考表面进行归一化的输入表面的输出栅格表面。正值反映输入表面位于参考表面之上的区域,而负值表示输入表面位于参考表面之下的区域。使用线性插值法从 TIN 获取栅格值。

Raster Dataset
raster_cell_size
(可选)

输出栅格的像元大小。

Double
out_tin_folder
(可选)

存储其值代表输入和参考表面之间差异的一个或多个 TIN 表面的文件夹位置。

Folder
out_tin_basename
(可选)

指定给每个输出 TIN 表面的基本名称。如果一个 TIN 数据不足以表示数据,则会创建多个具有相同基本名称的 TIN。

String
method

在应用某一分析分辨率来稀疏化输入 LAS 数据集表面时,在每个分析窗口中选择 LAS 点所使用的方法。所生成的点将用于构建三角化网格面。

  • CLOSEST_TO_MEAN将使用值最接近分析窗口中所有 LAS 点的平均值的 LAS 点。这是默认设置。
  • MIN在分析窗口的所有 LAS 点中 z 值最小的 LAS 点。
  • MAX在分析窗口的所有 LAS 点中 z 值最高的 LAS 点。
String
reference_method

在应用某一分析分辨率来稀疏化输入 LAS 数据集表面时,在每个分析窗口中选择 LAS 点所使用的方法。所生成的点将用于构建三角化网格面。

  • CLOSEST_TO_MEAN将使用值最接近分析窗口中所有 LAS 点的平均值的 LAS 点。这是默认设置。
  • MIN在分析窗口的所有 LAS 点中 z 值最小的 LAS 点。
  • MAX在分析窗口的所有 LAS 点中 z 值最高的 LAS 点。
String
extent
(可选)

待评估数据的范围。

  • MAXOF - 将使用所有输入的最大范围。
  • MINOF - 将使用所有输入共有的最小区域。
  • DISPLAY - 该范围与可见显示范围相等。
  • 图层名称 - 将使用指定图层的范围。
  • Extent 对象 - 将使用指定对象的范围。
  • 以空格分隔的坐标字符串 - 将使用指定字符串的范围。坐标以 x-min,y-min,x-max,y-max 的顺序表示。
Extent
boundary

定义将进行处理的感兴趣区域的面要素。

Feature Layer

代码示例

SurfaceDifference 示例 1(Python 窗口)

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

arcpy.env.workspace = "C:/data"
arcpy.ddd.SurfaceDifference("sample.gdb/lidar/terrain", "flood_tin", "surface_diff.shp")
SurfaceDifference 示例 2(独立脚本)

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

'''****************************************************************************
Name: SurfaceDifference Example
Description: This script demonstrates how to use the
             SurfaceDifference tool.
****************************************************************************'''

# Import system modules
import arcpy

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

# Set Local Variables
inSurface = "flood_tin"
inReference = "elev_tin"

# Ensure output name is unique
outPoly = arcpy.CreateUniqueName("difference.shp")

# Execute SurfaceDifference
arcpy.ddd.SurfaceDifference(inSurface, inReference, outPoly)

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题