消除 (数据管理)

摘要

通过将面与具有最大面积或最长公用边界的邻近面合并来消除面。消除通常用于移除叠加操作(如相交联合)所生成的小的狭长面。

插图

Eliminate illustration

用法

语法

Eliminate_management (in_features, out_feature_class, {selection}, {ex_where_clause}, {ex_features})
参数说明数据类型
in_features

其中的面将与邻近面进行合并的图层。

Feature Layer
out_feature_class

要创建的要素类。

Feature Class
selection
(可选)

这些选项可指定将要使用的消除要素的方法。

  • LENGTH通过删除公用边界将所选面与邻近的未选定面合并。该邻近面的公用边界最长。这是默认设置。
  • AREA通过删除公用边界将所选面与邻近的未选定面合并。该邻近面的面积最大。
Boolean
ex_where_clause
(可选)

用于识别不应被消除的输入要素的表达式。

表达式的语法会因数据源的不同而稍有不同。例如,如果要查询文件或 ArcSDE 地理数据库、shapefile 或 coverage,字段名需用双引号:

"MY_FIELD"

如果要查询个人地理数据库,需将字段用方括号括起:

[MY_FIELD]

在 Python 中,字符串用成对的单引号或双引号括起。要创建含有引号的字符串(常见于 SQL 表达式中的 WHERE 子句),可以对引号进行转义(使用反斜线)或对字符串使用三重引号。例如,如果所需的 WHERE 子句为

"CITY_NAME" = 'Chicago'

可以将整个字符串用双引号括起,然后如下所示对内部双引号进行转义:

" \"CITY_NAME\" = 'Chicago' "

或者不进行转义,而将整个字符串用三重引号括起:

""" "CITY_NAME" = 'Chicago' """

有关 SQL 语法及其在不同数据源中的差异的详细信息,请参阅帮助主题在 ArcGIS 中使用查询表达式的 SQL 参考

SQL Expression
ex_features
(可选)

定义不应被消除的面边界(或部分)的输入折线 (polyline)、面要素类或图层。

Feature Layer

代码示例

消除示例(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用“消除”工具。

import arcpy
from arcpy import env
env.workspace = "C:/data/Portland.gdb/Census"
arcpy.MakeFeatureLayer_management("blockgrp", "blocklayer")
arcpy.SelectLayerByAttribute_management("blocklayer", "NEW_SELECTION", 
                                        '"Area_Sq_Miles" < 0.15')
arcpy.Eliminate_management("blocklayer", "C:/output/output.gdb/eliminate_output", 
                           "LENGTH", '"OBJECTID" = 9')
消除示例 2(独立脚本)

以下独立脚本演示了如何使用“消除”工具。

# Name: Eliminate_Example2.py
# Description: Eliminate features based on a selection.
# Author: ESRI
 
# Import system modules
import arcpy
from arcpy import env
 
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Census"
 
# Set local variables
inFeatures = "blockgrp"
tempLayer = "blocklayer"
expression = '"Area_Sq_Miles" < 0.15'
outFeatureClass = "C:/output/output.gdb/eliminate_output"
exclusionExpression = '"OBJECTID" = 9'
 
# Execute MakeFeatureLayer
arcpy.MakeFeatureLayer_management(inFeatures, tempLayer)
 
# Execute SelectLayerByAttribute to define features to be eliminated
arcpy.SelectLayerByAttribute_management(tempLayer, "NEW_SELECTION", expression)
 
# Execute Eliminate
arcpy.Eliminate_management(tempLayer, outFeatureClass, "LENGTH", 
                           exclusionExpression)

环境

相关主题

许可信息

ArcView: 否
ArcEditor: 否
ArcInfo: 是

7/10/2012