ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

定位异常值

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

标识 terrain、TIN 或 LAS 数据集中超出高程值定义范围的异常高程测量或存在与周围表面不一致的坡度特征的异常高程测量。

使用方法

  • 可针对异常值检测应用应用硬限制和应用比较过滤器选项。如果启用两个选项,则先应用硬限制。

  • 应用硬限制选项会将高程值低于 Z 最小绝对值和高于 Z 最大绝对值的任何点视为异常值。如果表面的有效高程值范围已知,请考虑使用此选项。

  • 考虑使用应用比较过滤器选项来定位超出相对于邻近测量值的高度或斜度差的数据点。此选项将测试表面中每个测量值与其自然相邻点的高度和坡度偏差。超出容差比选项用于确定查询点邻域中周围测量值的数量,将该点视为异常值之前,坡度或高度容差必须超过该数量。

  • 对于任何有 X 个通过三角形边连接节点的给定点,如果从该给定点到连接点的坡度大于 m 个点中的坡度容差(其中 m 是超出容差比的 n 倍),那么此点将视为异常值。
  • 比较过滤器最适用于裸露地表点数据。不应针对使用植被和建筑物的数据集运行比较过滤器,因为比较可能会将其中许多要素视为异常值。针对 LAS 数据集使用此异常值检测方法时,请考虑过滤地面分类点。或者考虑使用分类 LAS 噪点工具来识别 LAS 数据集中的噪点。

  • 输出点会将名为 REASON 的整型字段作为属性,该字段的值可标识包括点测量值得出的异常值识别条件

    • 0 - 硬限制
    • 1 - 硬限制和比较过滤器
    • 2 - 比较过滤器
  • 要从 terrain 数据集消除异常值点,请考虑针对在感兴趣区域参数中指定的异常值点使用删除 Terrain 点工具。

语法

arcpy.ddd.LocateOutliers(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_tolerance、slope_tolerance 和 exceed_tolerance_ratio。

  • APPLY_COMPARISON_FILTER —评估点时,可以使用三个比较参数(z_tolerance、slope_tolerance 和 exceed_tolerance_ratio)。这是默认设置。
  • NO_APPLY_COMPARISON_FILTER —评估点时,请勿使用三个比较参数(z_tolerance、slope_tolerance 和 exceed_tolerance_ratio)。
Boolean
z_tolerance
(可选)

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

Double
slope_tolerance
(可选)

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

Double
exceed_tolerance_ratio
(可选)

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

Double
outlier_cap
(可选)

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

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)

环境

  • 当前工作空间
  • 临时工作空间
  • 范围
  • 输出坐标系
  • 地理变换
  • XY 分辨率
  • XY 容差
  • 输出 XY 属性域
  • Z 分辨率
  • Z 容差
  • 输出 Z 属性域
  • 输出配置关键字
  • 自动提交

许可信息

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

相关主题

  • 表面三角化工具集概述
  • 有关使用 ArcGIS 3D Analyst 扩展模块进行地理处理的基础知识
  • 有关表面的基础知识
  • 了解表面的形状

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明