Удаление (Eliminate) (Управление данными)
Резюме
Удаляет полигоны путем слияния их с соседними полигонами, имеющими самую большую площадь или самую длинную общую границу. Инструмент Удаление (Eliminate) часто используется для удаления небольших осколочных полигонов, которые являются результатом таких операций наложения, как Пересечение (Intersect) или Объединение (Union).
Рисунок
![]() |
Использование
-
Пространственные объекты, которые будут удалены, определяются путем применения выбранного набора пространственных объектов к полигональному слою. Выбранный набор должен быть определен в предыдущем шаге с помощью инструмента Выбрать в слое по атрибуту (Select Layer by Attribute), инструмента Выбрать в слое по расположению (Select Layer by Location) или путем запроса слоя карты в ArcMap.
-
Входной слой должен содержать выборку, в противном случае инструмент Удаление не выполнится.
-
Исключающее выражение (Exclusion Expression) и Исключающий слой (Exclusion Layer) не являются взаимоисключающими и могут использоваться вместе для обеспечения полного контроля над удаляемыми объектами.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Слой, полигоны которого будут объединены с соседними полигонами. | Feature Layer |
out_feature_class |
Создаваемый класс пространственных объектов. | Feature Class |
selection (дополнительно) |
Опция определяет, какой метод будет использован для удаления пространственных объектов.
| Boolean |
ex_where_clause (дополнительно) | Выражение, используемое для определения входных объектов, которые не должны быть удалены. Синтаксис выражения различается в зависимости от формата данных. Например, если вы производите запрос к файловым базам геоданных или базам геоданных ArcSDE, шейп-файлам или покрытиям, заключите имена полей в двойные кавычки: "ИМЯ_ПОЛЯ" Если вы производите запрос к персональной базе геоданных, заключите поля в квадратные скобки: [ИМЯ_ПОЛЯ] В Python строковые значения заключаются в соответствующие одинарные или двойные кавычки. Чтобы создать строку с кавычками (что часто требуется при написании условия WHERE в выражениях SQL), можно использовать перед кавычками escape-символ (символ обратной косой черты) или заключить всю строку в три пары кавычек. Например, если требуется написать в условии WHERE "CITY_NAME" = 'Чикаго', можно заключить всю строку в двойные кавычки и добавить escape-символ перед внутренними двойными кавычками: " \"CITY_NAME\" = 'Чикаго' ", Или можно заключить всю строку в три пары кавычек и не добавлять escape-символ: """ "CITY_NAME" = 'Чикаго' """, Более подробно о синтаксисе SQL и о том, как он различается между источниками данных, смотрите разделы справки: Литература по SQL для выражений запросов, используемых в ArcGIS. | SQL Expression |
ex_features (дополнительно) |
Входной класс полилинейных или полигональных объектов или слой, определяющие границы полигона, или части входных объектов, которые не нужно удалять. | Feature Layer |
Пример кода
На следующем скрипте окна Python демонстрируется, как использовать инструмент Удаление (Eliminate) с запуском из окна Python в ArcGIS.
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')
Пример скрипта Python для выполнения функции Удаление (Eliminate).
# Name: Eliminate_Example2.py
# Description: Eliminate features based on a selection.
# 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)