删除要素 (数据管理)

摘要

从输入中删除所有要素或所选要素子集。

删除所有要素或要素子集取决于以下内容:

  • 如果输入为要素类,则将删除所有要素。
  • 如果输入是没有任何选择内容的图层,则将删除所有要素。
  • 如果输入是带有选择内容的图层,则将仅删除所选要素。

使用情况

  • 该工具接受具有选择内容的图层作为输入,且仅会删除所选要素。 要从要素类中删除特定要素,请使用创建要素图层工具将要素类转换为图层,或通过将要素类添加到显示中来执行此操作。 然后,可使用按属性选择图层按位置选择图层工具进行选择,或者通过查询地图图层或使用地图选项卡上选择组中的选择工具交互选择要素进行选择。

  • 注:

    从包含大量要素的要素类中删除所有要素可能需要一些时间。 如果要删除所有要素,请考虑使用截断表工具。 有关使用截断表的重要警告声明,请参阅截断表文档。

  • 该工具将同时删除输入要素值的几何和属性。

  • 此工具支持范围环境。 仅删除位于输出范围环境内或与输出范围环境相交的要素。 如果输入图层包含选定内容,则只删除位于输出范围内或与输出范围相交的选定要素。

参数

标注说明数据类型
输入要素

包含要删除要素的要素类、shapefile 或图层。

Feature Layer

派生输出

标注说明数据类型
输出要素类

已更新的要素类。

Feature Layer

arcpy.management.DeleteFeatures(in_features)
名称说明数据类型
in_features

包含要删除要素的要素类、shapefile 或图层。

Feature Layer

派生输出

名称说明数据类型
out_feature_class

已更新的要素类。

Feature Layer

代码示例

DeleteFeatures 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 DeleteFeatures 函数。

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.CopyFeatures("majorrds.shp", "C:/output/output.gdb/majorrds2")
arcpy.management.DeleteFeatures("C:/output/output.gdb/majorrds2")
DeleteFeatures 示例 2(独立脚本)

以下独立脚本演示了如何使用 DeleteFeatures 函数基于表达式删除要素。

# Description: Delete features from a feature class based on an expression
 
# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
 
# Set local variables
inFeatures = "parcels"
outFeatures = "C:/output/output.gdb/new_parcels"
tempLayer = "parcelsLayer"
expression = arcpy.AddFieldDelimiters(tempLayer, "PARCEL_ID") + " = 'Cemetery'"
 

# Run CopyFeatures to make a new copy of the feature class
arcpy.management.CopyFeatures(inFeatures, outFeatures)
 
# Run MakeFeatureLayer
arcpy.management.MakeFeatureLayer(outFeatures, tempLayer)
 
# Run SelectLayerByAttribute to determine which features to delete
arcpy.management.SelectLayerByAttribute(tempLayer, "NEW_SELECTION", 
                                        expression)
 
# Run GetCount and if some features have been selected, 
#  run DeleteFeatures to remove the selected features.
if int(arcpy.management.GetCount(tempLayer)[0]) > 0:
    arcpy.management.DeleteFeatures(tempLayer)

环境

特殊情况

范围

仅会删除位于范围内或与范围相交的要素。