Краткая информация
Производит перемещение точек или вершин, чтобы их местоположение совпадало с местоположением вершин, ребер или конечных точек других объектов. Правила замыкания могут быть установлены для управления тем, каким образом входные вершины будут замыкаться на ближайшие вершины, ребра или конечные точки в указанном радиусе.
Иллюстрация
Использование
Параметр Параметры замыкания (Snap Environment) позволит произвести замыкание вершин входных объектов к вершинам, ребрам или конечным точкам других слоев или классов объектов. Когда используется несколько правил замыкания, то порядок их важности будет уменьшаться по мере продвижения вниз в диалоговом окне инструмента или слева направо в коде скрипта.
Вершины входных объектов будут замкнуты на ближайших вершинах, ребрах или конечных точках, расположенных в указанном радиусе поиска.
В параметре Параметры замыкания (Snap Environment) вы можете указать несколько правил разных типов (END | VERTEX | EDGE) для одного и того же слоя или класса пространственных объектов.
Если в качестве входных данных используется слой или класс пространственных объектов с выборкой, то замыкание будет произведено только для выбранных объектов.
При выполнении замыкания вершин объектов в классе объектов на вершины объектов этого же класса, как правило, вершины с меньшим значением Object ID или Feature ID будут замкнуты на вершинах объектов с более высоким значением в поле ObjectID (OBJECTID) или FID(для шейп-файлов). Например, если точки, в которых OBJECTID=1 и OBJECTID=2 будут расположены в пределах допуска замыкания, то точка, в которой OBJECTID=1 будет замкнута (т. е., совмещена) с точкой, в которой OBJECTID=2 (а не наоборот).
Синтаксис
Snap_edit (in_features, snap_environment)
Параметр | Объяснение | Тип данных |
in_features | Входные объекты, вершины которых будут замкнуты на вершинах, ребрах или конечных точках других объектов. Входными объектами могут быть точки, мультиточки, линии или полигоны. | Feature Layer |
snap_environment [[Features, Type, Distance],...] | Укажите классы объектов или векторные слои, содержащие объекты, к которым будет выполняться замыкание. Параметры замыкания:
Типы параметра замыкания:
| Value Table |
Пример кода
Пример 1 (окно Python)
Ниже приводится код скрипта в окно Python, в котором используется инструмент Замкнуть (Snap).
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Snap_edit("climate.shp", [["Habitat_Analysis.gdb/vegtype", "VERTEX", "30 Feet"], ["Habitat_Analysis.gdb/vegtype", "EDGE", "20 Feet"]])
Пример 2 (автономный скрипт)
Производит замыкание вершин полигонов климатических зон на вершины полигонов слоя растительности для того, чтобы их границы совпадали
# Name: Snap.py
# Description: Snap climate regions boundary to vegetation layer boundary
# to ensure common boundary is coincident
# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Make backup copy of climate regions feature class, since modification with
# the Editing tools below is permanent
climate = "climate.shp"
climateBackup = "C:/output/Output.gdb/climateBackup"
arcpy.CopyFeatures_management(climate, climateBackup)
# Densify climate regions feature class to make sure there are enough vertices
# to match detail of vegetation layer when layers are snapped
arcpy.Densify_edit(climate, "DISTANCE", "10 Feet")
# Snap climate regions feature class to vegetation layer vertices and edge
veg = "Habitat_Analysis.gdb/vegtype"
# first, snap climate region vertices to the nearest vegetation layer vertex within 30 Feet
snapEnv1 = [veg, "VERTEX", "30 Feet"]
# second, snap climate region vertices to the nearest vegetation layer edge within 20 Feet
snapEnv2 = [veg, "EDGE", "20 Feet"]
arcpy.Snap_edit(climate, [snapEnv1, snapEnv2])
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Нет
- ArcGIS Desktop Standard: Да
- ArcGIS Desktop Advanced: Да