表面差异 (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

相关主题