Замкнуть (Snap) (Редактирование)
Краткая информация
Производит перемещение точек или вершин, чтобы их местоположение совпадало с местоположением вершин, ребер или конечных точек других объектов. Правила замыкания могут быть установлены для управления тем, каким образом входные вершины будут замыкаться на ближайшие вершины, ребра или конечные точки в указанном радиусе.
Рисунок
Использование
-
Параметр Параметры замыкания (Snap Environment) позволит произвести замыкание вершин входных объектов к вершинам, ребрам или конечным точкам других слоев или классов объектов. Когда используется несколько правил замыкания, то порядок их важности будет уменьшаться по мере продвижения вниз в диалоговом окне инструмента или слева направо в коде скрипта.
-
Вершины входных объектов будут замкнуты на ближайших вершинах, ребрах или конечных точках, расположенных в указанном радиусе поиска.
-
В параметре Параметры замыкания (Snap Environment) вы можете указать несколько правил разных типов (END | VERTEX | EDGE) для одного и того же слоя или класса пространственных объектов.
-
Если в качестве входных данных используется слой или класс пространственных объектов с выборкой, то замыкание будет произведено только для выбранных объектов.
-
При выполнении замыкания вершин объектов класса пространственных объектов на вершины объектов этого же класса объектов, как правило, вершины объектов с меньшим значением ObjectID будут замкнуты на вершинах объектов с более высоким значением ObjectID. Например, если точки OBJECTID 1 и OBJECTID 2 будут расположены на расстоянии замыкания, то точка с OBJECTID 1 будет замкнута (т. е., перемещена) на точку с OBJECTID 2 (а не наоборот). Используйте инструмент Сортировать (Sort) для изменения значения идентификатора объекта, чтобы управлять процессом замыкания.
-
Когда инструмент используется в ArcMap, то для параметров среды замыкания (Snap Environment) приложения будут использоваться значения параметра Параметры замыкания (Snap Environment), который при необходимости может быть изменен.
Этот инструмент изменяет входные данные. Более подробно о стратегиях предотвращения неожиданных изменений данных см. в разделе Инструменты, не создающие выходных данных (Tools with no outputs).
Данный инструмент может использоваться для устранения расхождений между разделяемыми или общими границами между двумя наборами данных. Это можно будет сделать путем замыкания вершин на одной границе к вершинам, ребрам или конечным точкам на другой. Если во входных объектах не будет достаточно вершин для точного повторения контура смежной границы, то во входном объекте могут быть добавлены вершины с помощью инструмента Уплотнить (Densify), чтобы обеспечить необходимый уровень детальности.
Синтаксис
Параметр | Объяснение | Тип данных |
in_features |
Входные объекты, вершины которых будут замкнуты на вершинах, ребрах или конечных точках других объектов. Входными объектами могут быть точки, мультиточки, линии или полигоны. | Feature Layer |
snap_environment [[Features, Type, Distance],...] |
Параметры замыкания:
Типы параметра замыкания:
Примечание: Если в поле Параметры замыкания (Snap Environment) в графе Расстояние не будут указаны единицы измерения (т. е., '10' вместо '10 Meters'), то по умолчанию будут использоваться линейные или угловые единицы измерения системы координат входных объектов. Если входные объекты будут определены в системе координат проекции, то будут использоваться линейные единицы измерения. | Value Table |
Пример кода
Ниже приводится код скрипта в окно 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"]])
Производит замыкание вершин полигонов климатических зон на вершины полигонов слоя растительности для того, чтобы их границы совпадали
# Name: Snap.py
# Description: Snap climate regions boundary to vegetation layer boundary
# to ensure common boundary is coincident
# Author: ESRI
# 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])