Сгенерировать связи метода Подгонка границ (Редактирование)
Краткая информация
Находит сопоставленные, но не соединяющиеся объекты линий вдоль границ области исходных данных и области смежных данных, и создает связи метода подгонки границ от исходных линий до соответствующих смежных линий.
Рисунок
Использование
-
Линейные объекты из отдельных смежных наборов данных, таких как дороги соседних регионов, могут иметь разрывы или сдвиги вдоль общих границ, например, из-за неправильного сбора данных или по другим причинам. Вы можете исправить проблему подгонки границ между двумя наборами данных единовременно с помощью этого инструмента для генерации связей метода подгонки границ, а затем используя инструмент Подгонка границ объектов (Edgematch Features), чтобы изменить форму объектов для их соединения должным образом. Эти два набора линейных объектов обычно называются исходными объектами и смежными объектами. Этот инструмент используется для поиска не совпадающих, но сопоставляемых исходных и смежных линий на заданном расстоянии поиска и создает линии, представляющие связи метода подгонки границ (также известные, как связи смещения) между ними.
Когда два несоединенных, но сопоставленных объекта вдоль области границы находятся на расстоянии поиска друг от друга, но при этом их конечные точки находятся на большем расстоянии, чем расстояние поиска, они не рассматриваются при подгонке границ.
- Примечание:
Все входные данные должны быть в одной системе координат.
Выходной класс объектов использует ту же систему координат, что и входные данные.
Выходной класс объектов содержит линейные объекты, представляющие связи метода подгонки границ, со следующими полями.
- SRC_FID – идентификатор ID исходного объекта в начальных точках связей.
- ADJ_FID – идентификатор ID смежного объекта в конечных точках связей.
- EM_CONF – значения, представляющие уровень достоверности подгонки границ. Эти значения отвечают за количество кандидатов, находимых в пределах расстояния поиска, за ситуации сопоставления атрибутов и непрерывность между исходными и смежными объектами. Значения лежат в диапазоне от больше 0 до 100, где 100 означает наивысший уровень достоверности. Чем больше значение EM_CONF, тем больше шанс, что связь будет корректной. С примерами можно ознакомиться в разделе О подгонке границ.
-
Параметр Расстояние поиска (Search Distance) используется для поиска кандидатов для сопоставления. Используйте расстояние, достаточное для получения большей части сдвигов между соответствующими объектами, но недостаточно большое, чтобы вызвать ненужную обработку множества кандидатов, что может привести к потенциально неправильным сопоставлениям.
После того, как соответствующие кандидаты были найдены, будут проанализированы характеристики их форм. Сопоставление определяется между между исходными и смежными объектам, чтобы предоставить наилучшую непрерывность. Линия, представляющая связь метода подгонки границ, создается от конца исходной линии до конца сопоставленной смежной линии.
Вы можете отобразить эти связи на карте, как любые другие линейные объекты. Линии могут быть отображены со стрелками на концах, чтобы получить карту, подобную показанной ниже.
Если вы укажете одну или несколько пар полей для параметра Сопоставление полей (Match Fields), пространственно сопоставленные объекты отмечаются рядом со значениями этих полей. Например, представьте, что обновленные и базовые объекты имеют поле STREET_NAME, содержащее названия улиц. Если исходный объект пространственно сопоставляется с двумя смежными объектами, но только один из кандидатов имеет такое же значение STREET_NAME, что и исходный объект, он считается лучшим сопоставлением. Сравнение текстовых строк не чувствительно к регистру, а потому строка First St равна строке first st.
Условия сопоставления атрибутов влияют на значения в поле EM_CONF, как описано выше.
Точность метода подгонки границ зависит от качества данных и сложности двух источников данных вдоль границ.
Вам необходимо минимизировать ошибки данных и выбрать подходящие объекты в качестве входных данных во время предварительной обработки. В общих чертах, лучше убедиться, что объекты внутри входного набора данных являются топологически корректными, имеют допустимую геометрию и являются простыми и не содержат дубликатов; в противном случае, могут возникнуть непредвиденные ошибки.
Рекомендуется просмотреть результаты и внести необходимые изменения. Во время последующей инспекции и обработки, вы можете использовать существующие инструменты Редактирования (Editing) для изменения связей, например, для удаления ненужной связи, изменения связи путем сдвига ее начальной или конечной вершины, или добавления новой связи, если необходимо. Убедитесь, что вы обновили значения SRC_FID и TGT_FID, соответственно.
Синтаксис
Параметр | Объяснение | Тип данных |
source_features |
Линейные объекты как исходные объекты метода подгонки границ. Все связи метода подгонки границ начинаются в исходных объектах. | Feature Layer |
adjacent_features |
Линейные объекты, смежные с исходными объектами. Все связи метода подгонки границ заканчиваются в сопоставленных смежных объектах. | Feature Layer |
out_feature_class |
Выходной класс пространственных объектов, содержащий линии, представляющие связи метода подгонки границ. | Feature Class |
search_distance |
Расстояние, использованное при поиске кандидатов для сопоставления. Расстояние должно быть задано, и оно должно быть больше 0. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта. | Linear unit |
match_fields [[source_field, target_field],...] (дополнительно) |
Поля исходных и целевых объектов, где целевые поля берутся из смежных объектов. Если указано, каждая пара полей проверяется на совпадения для нахождения правильного сопоставления. | Value Table |
Пример кода
Следующий скрипт демонстрирует, как применять функцию GenerateEdgematchLinks с запуском из окна Python.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateEdgematchLinks_edit("countyA_Roads.shp",
"countyB_Roads.shp", "em_Links.shp"
"25 Feet")
Пример скрипта Python является простым примером выполнения функции GenerateEdgematchLinks в автономном режиме.
# Name: GenerateRubbersheetLinks_example_script2.py
# Description: Generates links for rubbersheeting spatial adjustment. The links go
# from base road data to newly updated road data. The links are then
# analyzed for potential errors; they are finally used to adjust the
# base roads (a copy is made) to better align with the updated roads.
# Author: Esri
# -----------------------------------------------------------------------
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.overwriteOutput = True
env.workspace = r"D:\conflationTools\ScriptExamples\data.gdb"
# Set local variables
sourceFeatures = "baseRoads"
targetFeatures = "updateRoads"
grlOutput = "grlinks_out"
grlOutputPts = "grlinks_out_pnt"
search_distance = "300 Feet"
match_fields = "FULLNAME RD_NAME"
qaLocations = "qa_locations"
# Generate rubbersheet links
arcpy.GenerateRubbersheetLinks_edit(sourceFeatures, targetFeatures, grlOutput, search_distance, match_fields)
# ====================================================================================
# Note 1: The result of GenerateRubbersheetLinks may contain errors; see tool reference.
# Inspection and editing may be necessary to ensure correct links before using
# them for rubbersheeting.
#
# One of the common errors are intersecting or touching links. Their locations
# can be found by the process below.
# ====================================================================================
# Find locations where links intersect or touch; the result contains coincident points
arcpy.Intersect_analysis(grlOutput, qaLocations, "", "", "POINT")
# Delete coincident points
arcpy.DeleteIdentical_management(qaLocations, "Shape")
# ====================================================================================
# Note 2: At this point you can manually inspect locations in qaLocations; delete or
# modify links as needed.
# ====================================================================================
# Make a copy of the sourceFeatures for rubbersheeting
arcpy.CopyFeatures_management(sourceFeatures, "sourceFeatures_Copy")
# Use the links for rubbersheeting
arcpy.RubbersheetFeatures_edit("sourceFeatures_Copy", grlOutput, grlOutputPts, "LINEAR")