定位异常值 (3D Analyst)

摘要

在与表面相比较时,定位看上去异常的点。这些点可能是粗差点,可能需要从表面创建中排除。

了解有关“定位异常值”(3D 分析)工作原理的详细信息

用法

语法

LocateOutliers_3d (in_surface, out_feature_class, {apply_hard_limit}, {absolute_z_min}, {absolute_z_max}, {apply_comparison_filter}, {z_tolerance}, {slope_tolerance}, {exceed_tolerance_ratio}, {outlier_cap})
参数说明数据类型
in_surface

输入 TIN 或 terrain 数据集。

TIN Layer; Terrain Layer
out_feature_class

输出要素类。

Feature Class
apply_hard_limit
(可选)

是否使用 Z 最小绝对值和 Z 最大绝对值寻找异常值。

  • APPLY_HARD_LIMIT使用 Z 最小绝对值和 Z 最大绝对值寻找异常值。
  • NO_APPLY_HARD_LIMIT不使用 Z 最小绝对值和 Z 最大绝对值寻找异常值。这是默认设置。
Boolean
absolute_z_min
(可选)

如果应用了硬限制,那么任何一个点的高程低于此值将被视为异常值。默认值为 0。

Linear unit
absolute_z_max
(可选)

如果应用了硬限制,那么任何一个点的高程高于此值将被视为异常值。默认值为 0。

Linear unit
apply_comparison_filter
(可选)

该比较过滤器包括三个用来评估点的参数,通过评估点来确定点是否是异常值 - 可以选择在评估点时是否使用以下三个参数(Z 容差坡度容差超出容差比)。

  • APPLY_COMPARISON_FILTER在评估点时使用以下三个参数(Z 容差、坡度容差和超出容差比)。这是默认设置。
  • NO_APPLY_COMPARISON_FILTER在评估点时不使用三个比较参数(Z 容差、坡度容差和超出容差比)。
Boolean
z_tolerance
(可选)

用于在应用了比较过滤器的情况下比较邻近点的 Z 值。默认值为 0。

Linear unit
slope_tolerance
(可选)

连续点间的坡度阈值。它以百分比形式表示。默认值为 150。

Double
exceed_tolerance_ratio
(可选)

最大容差。默认值为 0.5。

Double
outlier_cap
(可选)

输出异常点的最大数量。一旦达到了该值,将无法搜索其他异常值。默认值为 2500。

Long

代码示例

定位异常值示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在立即模式下使用定位异常值函数。

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LocateOutliers_3d("tin", "outliers.shp", "NO_APPLY_HARD_LIMIT", 0, 0, 
                        "APPLY_COMPARISON_FILTER", 0, 150, 0.5, 2500)
定位异常值示例 2(独立脚本)

以下 Python 脚本演示了如何在独立脚本中使用定位异常值函数。

'''**********************************************************************
Name: Delete Terrain Outliers
Description: Uses Locate Outliers to identify outlier points in 
             a terrain dataset, and eliminates the outliers from the 
             terrain with Delete Terrain Points.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env

try:
    arcpy.CheckOutExtension('3D')
    # Set Local Variables
    env.workspace = 'C:/data'
    terrain = 'test.gdb/featuredataset/sample_terrain'
    terrainPt = 'elevation_pts' # name of terrain point data source
    outliers = 'in_memory/outliers'
    # Execute LocateOutliers
    arcpy.ddd.LocateOutliers(terrain, outliers, 'APPLY_HARD_LIMIT', -10, 
                             350, 'APPLY_COMPARISON_FILTER', 1.2, 120, 
                             0.8, 8000)
    # Execute Delete Terrain Points
    arcpy.ddd.DeleteTerrainPoints(terrain, terrainPt, outliers)
    arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
    print arcpy.GetMessages()
except:
    # Get the traceback object
    tb = sys.exc_info()[2]
    tbinfo = traceback.format_tb(tb)[0]
    # Concatenate error information into message string
    pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
          .format(tbinfo, str(sys.exc_info()[1]))
    msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
    # Return python error messages for script tool or Python Window
    arcpy.AddError(pymsg)
    arcpy.AddError(msgs)

环境

相关主题

许可信息

ArcView: 需要 3D Analyst
ArcEditor: 需要 3D Analyst
ArcInfo: 需要 3D Analyst

7/10/2012