Удалить пространственные объекты (Delete Features) (Управление данными)
Резюме
Удаляет все пространственные объекты или выбранный их поднабор из входного набора данных.
Если входные объекты принадлежат классу пространственных объектов или таблице, то будут удалены все строки. Если входные объекты принадлежат слою без выбранных элементов, то будут удалены все объекты.
Использование
-
Если для этого инструмента установлен входной слой с выборкой, будут удалены только выбранные объекты. Чтобы удалить определенные объекты из класса пространственных объектов, конвертируйте класс в слой с помощью инструмента Создать векторный слой (Make Feature Layer), или добавив его на карту в ArcMap. Выборку затем можно применить с помощью инструментов Выбрать в слое по атрибуту (Select Layer by Attribute) или Выбрать в слое по расположению (Select Layer by Location), а также построить запрос к слою на карте или выбрать объекты инструментами выборки в ArcMap.
-
Если входными данными является слой, у которого отсутствует выборка элементов, то будут удалены все объекты слоя. Если класс объектов является входными данными, удаляются все объекты.
Примечание:Удаление всех строк из класса пространственных объектов с большим их количеством может занять много времени. Если вы желаете удалить все строки из такого класса пространственных объектов, воспользуйтесь лучше инструментом Сократить таблицу (Truncate Table). Обратитесь к документации инструмента Сократить таблицу (Truncate Table) и обратите внимание на предостережения по его использованию.
-
Этот инструмент удаляет геометрию и атрибуты Входных объектов (Input Features).
Инструмент использует в работе параметр среды Выходной экстент (Output Extent). Удаляются только те объекты, которые частично или полностью расположены внутри выходного экстента, указанного в параметрах среды. Если входной слой имеет выборку, то будут удалены только те объекты из выборки, которые частично или полностью расположены внутри этого выходного экстента.
-
При работе в ArcMap и использовании слоя с выборками в качестве входных данных, применение этого инструмента в сеансе редактирования позволит отменить операцию Удалить объекты (Delete Features) с помощью функции Отменить/Повторить.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Класс пространственных объектов, шейп-файл или слой с объектами, которые требуется удалить. | Feature Layer |
Пример кода
Пример скрипта Python для инструмента DeleteFeatures с запуском из окна Python в мгновенном режиме.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.CopyFeatures_management("majorrds.shp", "C:/output/output.gdb/majorrds2")
arcpy.DeleteFeatures_management("C:/output/output.gdb/majorrds2")
Пример скрипта Python для выполнения инструмента Удалить объекты (DeleteFeatures), чтобы удалить объекты с учетом выражения.
# Name: DeleteFeatures_Example2.py
# Description: Delete features from a feature class based on an expression
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
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'"
try:
# Execute CopyFeatures to make a new copy of the feature class
arcpy.CopyFeatures_management(inFeatures, outFeatures)
# Execute MakeFeatureLayer
arcpy.MakeFeatureLayer_management(outFeatures, tempLayer)
# Execute SelectLayerByAttribute to determine which features to delete
arcpy.SelectLayerByAttribute_management(tempLayer, "NEW_SELECTION",
expression)
# Execute GetCount and if some features have been selected, then
# execute DeleteFeatures to remove the selected features.
if int(arcpy.GetCount_management(tempLayer).getOutput(0)) > 0:
arcpy.DeleteFeatures_management(tempLayer)
except Exception as e:
# If an error occurred, print line number and error message
import traceback
import sys
tb = sys.exc_info()[2]
print("Line {0}".format(tb.tb_lineno))
print(e.message)
Параметры среды
- Экстент (Extent)
Удаляются только объекты, расположенные внутри или экстента или на его пересечении.