定位异常值 (3D Analyst)

许可等级:BasicStandardAdvanced

摘要

标识来自 terrain、TIN 或 LAS 数据集的异常高程测量值,这些差异值超出了高程值的定义范围或具有与周围表面不一致的坡度特征。

用法

语法

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

将要分析的 terrain、TIN 或 LAS 数据集。

LAS Dataset Layer; Terrain Layer; TIN 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。

Double
absolute_z_max
(可选)

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

Double
apply_comparison_filter
(可选)

比较过滤器包括用于确定异常值(z_toleranceslope_toleranceexceed_tolerance_ratio)的三个参数。

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

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

Double
slope_tolerance
(可选)

用于标识异常值点的连续点之间坡度变化的阈值。坡度用百分比表示,默认为 150。

Double
exceed_tolerance_ratio
(可选)

将确定每个异常值点的条件定义为其邻域内必须超出指定比较过滤器的点比例的函数。例如,默认值 0.5 表示查询点周围至少有一半的点必须超出比较过滤器,这样查询点才会被标记为异常值。值 0.7 表示至少 70% 的相邻点必须超出容差。

Double
outlier_cap
(可选)

异常值点的最大数量可被写入至输出。一旦达到了该值,将无法搜索其他异常值。默认值为 2,500。

Long

代码实例

定位异常值 (LocateOutliers) 示例 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)
定位异常值 (LocateOutliers) 示例 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)

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 需要 3D Analyst
ArcGIS for Desktop Standard: 需要 3D Analyst
ArcGIS for Desktop Advanced: 需要 3D Analyst
5/10/2014