Присоединить маршруты (Location Referencing)

Доступно с лицензией Location Referencing.

Краткая информация

Присоединяет маршруты из входной полилинии в сеть LRS.

Примечание:

Если целевым слоем является слой сервиса объектов, результаты проверки этого инструмента записываются в директорию ArcGIS Server. По умолчанию этот файл автоматически очищается каждые 10 минут, этого может быть недостаточно для обработки всех проверок и их записи в рабочую станцию, запускающую ArcGIS Pro. При больших загрузках данных рекомендуется настроить параметр максимальный возраст файла как минимум на 1 час.

Более подробно о настройке установок серверной директории в Менеджере

Использование

  • Для запуска инструмента необходим набор данных LRS. Чтобы создать набор данных LRS, добавьте точку калибровки, центральную линию и слой красных линий к набору классов объектов; затем запустите инструмент Изменить LRS, указав входную базу геоданных.

  • Этот инструмент создаст центральные линии в целевом наборе данных LRS, а также маршруты в целевой сети LRS.

  • Выходные маршруты получат x-, y- и z-значения из вершин входной полилинии, m-значения присоединены не будут.

  • Если исходный класс полилинейных объектов содержит включенное отслеживание изменений, сопоставьте поля отслеживания изменений источника с полями, которые будут использоваться для отслеживания изменений в сети LRS, в то время как отслеживание изменений отключено в целевом классе.

  • Создайте любые новые поля, которые будут использоваться для сопоставления полей, в лежащем в основе классе сетевых объектов LRS для присоединения маршрутов.

  • Пространственная привязка, разрешение и допуск XY входного класса полилинейных объектов и целевой сети LRS должны совпадать.

  • Локально записывается текстовый журнал, в котором указывается, что инструмент был запущен, и содержится информация о маршрутах, не прошедших проверку. Сообщения инструмента предоставляют местоположение текстового журнала, находящегося во временной директории.

  • Выходными данными этого инструмента является модифицированная сеть LRS, содержащая присоединенные маршруты и созданные объекты центральных линий.

  • Когда включено предотвращение конфликтов, поддерживаются следующие функции:

    • Если присоединяемые маршруты являются новыми, для этих маршрутов блокировки получены не будут.
    • Для других типов загрузок, например, RETIRE_BY_ROUTE_ID и REPLACE_BY_ROUTE_ID, блокировки будут получены автоматически, если они доступны.
    • Если блокировки невозможно получить, инструмент не будет запущен, и будет предоставлен текстовый файл с нарушающими блокировками.
    • При работе в версии по умолчанию полученные блокировки будут автоматически сняты при успешном выполнении инструмента.
    • При работе в дочерней версии полученные блокировки останутся в статусе ON POST после выполнения инструмента. Закрепите или удалите версию, чтобы снять блокировки.
    • При работе в дочерней версии и отмене запуска инструмента из-за прерывания, блокировки будут получены и останутся в статусе возможности снятия, как Да. Снять блокировку может владелец блокировки.

      Более подробно о снятии блокировок в ArcGIS Pipeline Referencing или снятии блокировок в ArcGIS Roads and Highways.

    Более подробно о предотвращении конфликтов в Pipeline Referencing или предотвращении конфликтов в Roads and Highways.

  • Если целевая сеть LRS настроена как линейная сеть с поддержкой ID маршрута из нескольких полей, следующие параметры не обязательны для присоединяемых маршрутов:

    • Поле имени маршрута
    • Поле имени линии

  • Этот инструмент поддерживает предотвращение конфликтов и будет пытаться получать и передавать блокировки.

    Более подробно о предотвращении конфликтов в Pipeline Referencing или о предотвращении конфликтов в Roads and Highways.

  • Инструмент проверяет наличие инженерной сети, настроенной с сетью LRS, в которую загружены маршруты, и если такая инженерная сеть найдена, рассматривает существующие центральные линии при присоединении в маршруты. Если у центральной линии, которую вы присоединяете к маршруту, нет значения CenterlineID, оно будет создано, и будет добавлена запись последовательности центральной линии. Если значение CenterlineID существует при присоединении маршрута, существующая запись последовательности центральных линий будет обновлена значением RouteID присоединенного маршрута.

    Следующие условия предварительной обработки приведут к зарегистрированной ошибке, которая должна быть устранена до того, как можно будет запустить инструмент:

    • Для загрузки объекта маршрута необходимо разбить центральную линию.
    • Геометрия x,y и z центральных линий и маршрутов не совпадают.
    • Центральная линия совпадает частично (например, если часть центральной линии находится вне допуска x, y и z).
    • Присоединенный маршрут содержит одну или несколько целых центральных линий, которые соответствуют геометрии, но есть места, где центральных линий не существует.
    • Выявлены перекрывающиеся центральные линии (в инженерной сети не разрешены перекрывающиеся центральные линии).
    • Нет центральных линий, соответствующих присоединенному маршруту.

    Более подробно о совместном управлении Pipeline Referencing и инженерной сети

  • Может произойти сбой инструмента, если параметр Тип загрузки задан как Заменить по ID маршрута или Исключить по ID маршрута, и исходный маршрут не содержит те же значения RouteName и RouteID, что и целевой маршрут.

Параметры

ПодписьОписаниеТип данных
Исходные маршруты

Входные данные, из которых будут получены маршруты. Входными данными может быть класс, полилинейных объектов, шейп-файл, сервис объектов или класс объектов сети LRS.

Feature Layer
Сеть LRS

Целевая сеть LRS, в которую будут загружены маршруты.

Feature Layer
Поле Id маршрута

Поле во входном классе полилинейных объектов, которое будет сопоставлено с ID маршрутов сети LRS. Тип поля должен соответствовать типу поля RouteID целевой сети LRS и должен быть либо строковым, либо GUID. Если это текстовое поле, его длина должна быть меньше или равна длине поля целевого RouteID.

Field
Поле имени маршрута

Поле во входном классе полилинейных объектов, которое будет сопоставлено с именем маршрута сети LRS. Поле должно быть строковым, и его длина должна быть меньше или равна длине поля имени целевого маршрута.

Field
Поле даты От
(Дополнительный)

Поле даты во входном классе полилинейных объектов, которое будет сопоставлено как значение Поле даты От в сети LRS. Если поле не сопоставлено, для всех присоединенных маршрутов будет предоставлено пустое значение, представляющее начало времени.

Field
Поле даты До
(Дополнительный)

Поле даты во входном классе полилинейных объектов, которое будет сопоставлено как Дата До в сети LRS. Если Дата До не сопоставлена, для всех присоединенных маршрутов будет предоставлено пустое значение, представляющее окончание времени.

Field
Поле ID линии
(Дополнительный)

Поле во входном классе полилинейных объектов, которое будет сопоставлено с ID линии сети LRS. Этот параметр используется, только если целевая сеть LRS является линейной. Тип поля должен совпадать с типом поля RouteID таблицы последовательности центральных линий и должен быть либо текстовыми полем, состоящим ровно из 38 символов, либо типом поля GUID.

Field
Поле имени линии
(Дополнительный)

Строковое поле во входном классе полилинейных объектов, которое будет сопоставлено с именем линии сети LRS. Этот параметр используется, только если целевая сеть LRS является линейной.

Field
Поле порядка линий
(Дополнительный)

Поле типа длинное целое во входном классе полилинейных объектов, которое будет сопоставлено как порядок линий сети LRS. Этот параметр используется, только если целевая сеть LRS является линейной.

Более подробно о линейных сетях и порядке линий в Pipeline Referencing или линейных сетях и порядке линий в Roads and Highways.

Field
Список полей
(Дополнительный)

Управляет тем, как атрибутивная информация в полях исходного маршрута будет перенесена во входную сеть LRS. Поля невозможно добавить или удалить из целевой сети LRS, так как данные исходных маршрутов присоединяются к существующей сети LRS, которая имеет предустановленную схему. Хотя вы можете задать правила слияния для каждого выходного поля, инструмент проигнорирует эти правила.

Field Mappings
Тип загрузки
(Дополнительный)

Указывает, как присоединённые маршруты с измерениями или перекрытиями временности с ID маршрутов, идентичными записям Целевой сети, будут загружены в класс сетевых объектов.

  • ДобавитьПрисоединенные маршруты будут загружены в целевую сеть LRS. Если ID исходного маршрута уже существует в целевой сети LRS с такой временностью, он будет записан в выходной журнал как дублирующийся маршрут и должен быть исправлен или отфильтрован до завершения процесса загрузки. Это значение по умолчанию
  • Исключить по ID маршрутаПрисоединенные маршруты будут загружены в целевую сеть LRS, и любые маршруты в целевой сети LRS, имеющие такой же ID и перекрытие временности, как присоединенные маршруты, будут удалены. Если добавленный маршрут заслоняет целевой маршрут с тем же идентификатором маршрута, целевой маршрут будет удален.
  • Заменить по ID маршрутаПрисоединенные маршруты будут загружены в целевую сеть LRS, и любые маршруты в целевой сети LRS, имеющие такой же ID, как и присоединенные маршруты, будут удалены.
String

Производные выходные данные

ПодписьОписаниеТип данных
Сеть LRS

Обновленный векторный слой сети LRS.

Feature Layer
Выходной файл результатов

Текстовый файл, в котором подробно описаны изменения, внесенные инструментом.

Text File

arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, {from_date_field}, {to_date_field}, {line_id_field}, {line_name_field}, {line_order_field}, {field_map}, {load_type})
ИмяОписаниеТип данных
source_routes

Входные данные, из которых будут получены маршруты. Входными данными может быть класс, полилинейных объектов, шейп-файл, сервис объектов или класс объектов сети LRS.

Feature Layer
in_lrs_network

Целевая сеть LRS, в которую будут загружены маршруты.

Feature Layer
route_id_field

Поле во входном классе полилинейных объектов, которое будет сопоставлено с ID маршрутов сети LRS. Тип поля должен соответствовать типу поля RouteID целевой сети LRS и должен быть либо строковым, либо GUID. Если это текстовое поле, его длина должна быть меньше или равна длине поля целевого RouteID.

Field
route_name_field

Поле во входном классе полилинейных объектов, которое будет сопоставлено с именем маршрута сети LRS. Поле должно быть строковым, и его длина должна быть меньше или равна длине поля имени целевого маршрута.

Field
from_date_field
(Дополнительный)

Поле даты во входном классе полилинейных объектов, которое будет сопоставлено как значение Поле даты От в сети LRS. Если поле не сопоставлено, для всех присоединенных маршрутов будет предоставлено пустое значение, представляющее начало времени.

Field
to_date_field
(Дополнительный)

Поле даты во входном классе полилинейных объектов, которое будет сопоставлено как Дата До в сети LRS. Если Дата До не сопоставлена, для всех присоединенных маршрутов будет предоставлено пустое значение, представляющее окончание времени.

Field
line_id_field
(Дополнительный)

Поле во входном классе полилинейных объектов, которое будет сопоставлено с ID линии сети LRS. Этот параметр используется, только если целевая сеть LRS является линейной. Тип поля должен совпадать с типом поля RouteID таблицы последовательности центральных линий и должен быть либо текстовыми полем, состоящим ровно из 38 символов, либо типом поля GUID.

Field
line_name_field
(Дополнительный)

Строковое поле во входном классе полилинейных объектов, которое будет сопоставлено с именем линии сети LRS. Этот параметр используется, только если целевая сеть LRS является линейной.

Field
line_order_field
(Дополнительный)

Поле типа длинное целое во входном классе полилинейных объектов, которое будет сопоставлено как порядок линий сети LRS. Этот параметр используется, только если целевая сеть LRS является линейной.

Более подробно о линейных сетях и порядке линий в Pipeline Referencing или линейных сетях и порядке линий в Roads and Highways.

Field
field_map
(Дополнительный)

Управляет тем, как атрибутивная информация в полях исходного маршрута будет перенесена во входную сеть LRS. Поля невозможно добавить или удалить из целевой сети LRS, так как данные исходных маршрутов присоединяются к существующей сети LRS, которая имеет предустановленную схему (определения полей). Хотя вы можете задать правила слияния для каждого выходного поля, инструмент проигнорирует эти правила. Для задания этого параметра можно использовать ArcPy класс FieldMappings.

Field Mappings
load_type
(Дополнительный)

Указывает, как присоединённые маршруты с измерениями или перекрытиями временности с ID маршрутов, идентичными записям Целевой сети, будут загружены в класс сетевых объектов.

  • ADDПрисоединенные маршруты будут загружены в целевую сеть LRS. Если ID исходного маршрута уже существует в целевой сети LRS с такой временностью, он будет записан в выходной журнал как дублирующийся маршрут и должен быть исправлен или отфильтрован до завершения процесса загрузки. Это значение по умолчанию
  • RETIRE_BY_ROUTE_IDПрисоединенные маршруты будут загружены в целевую сеть LRS, и любые маршруты в целевой сети LRS, имеющие такой же ID и перекрытие временности, как присоединенные маршруты, будут удалены. Если добавленный маршрут заслоняет целевой маршрут с тем же идентификатором маршрута, целевой маршрут будет удален.
  • REPLACE_BY_ROUTE_IDПрисоединенные маршруты будут загружены в целевую сеть LRS, и любые маршруты в целевой сети LRS, имеющие такой же ID, как и присоединенные маршруты, будут удалены.
String

Производные выходные данные

ИмяОписаниеТип данных
out_lrs_network

Обновленный векторный слой сети LRS.

Feature Layer
out_details_file

Текстовый файл, в котором подробно описаны изменения, внесенные инструментом.

Text File

Пример кода

AppendRoutes, пример 1 (окно Python)

Следующее демонстрирует, как использовать функцию AppendRoutes в окне Python, чтобы присоединить маршруты к существующей сети LRS Network, заменяя маршруты, в которых есть перекрытия.

# Name: AppendRoutes_ex1.py
# Description: Append routes into an existing LRS Network, replacing those routes where an overlap occurs.
# Requires: ArcGIS Location Referencing

# Check out license
arcpy.CheckOutExtension("LocationReferencing")

# Set tool variables
source_routes = r"C:\Data\UPDM.gdb\LRS\EngineeringNetwork"
in_lrs_network = r"C:\Data\NY_Data.gdb\LRS\P_Integrity\P_EngineeringNetwork"
route_id_field = "RouteId"
route_name_field = "RouteName"
from_date_field = "FromDate"
to_date_field = "ToDate"
line_id_field = "LineId"
line_name_field = "LineName"
line_order_field = "LineOrder"
field_map = None
load_type = "REPLACE_BY_ROUTE_ID"

# Execute the tool
arcpy.locref.AppendRoutes(source_routes, in_lrs_network, route_id_field, route_name_field, from_date_field, to_date_field, line_id_field, line_name_field, line_order_field, field_map, load_type)

# Check in license
arcpy.CheckInExtension('LocationReferencing')
AppendRoutes, пример 2 (автономный скрипт)

Следующее демонстрирует, как использовать функцию AppendRoutes как автономный скрипт Python.

# Name: AppendRoutes_ex2.py
# Description: Append records into an existing network feature class without performing any attribute field mapping.
# Requires: ArcGIS Location Referencing

# Import arcpy module
import arcpy

# Check out license
arcpy.CheckOutExtension("LocationReferencing")

# Local variables:
SourceRoutes = r"C:\Data\UPDM.gdb\LRS\EngineeringNetwork"
TargetNetwork = r"C:\Data\NY_Data.gdb\LRS\P_Integrity\P_EngineeringNetwork"
Route_ID = "RouteId"
Route_Name = "RouteName"
From_Date = "FromDate"
To_Date = "ToDate"
Line_ID = "LineId"
Line_Name = "LineName"
Line_Order = "LineOrder"

# Process: Append Routes
arcpy.locref.AppendRoutes(SourceRoutes, TargetNetwork, "RouteId", "RouteName", "FromDate", "ToDate", "LineId", "LineName", "LineOrder", None, "ADD")

# Check in license
arcpy.CheckInExtension('LocationReferencing')
AppendRoutes, пример 3 (автономный скрипт)

Следующее демонстрирует, как использовать функцию AppendRoutes как автономный скрипт Python для сети с пользовательским ID маршрутов.

# Name: AppendRoutes_ex3.py
# Description: Append records into an existing usergenerated routeId network feature class in a stand-alone script.
# Source fields : RS and RN, Target fields : RouteSystem and RouteNumber
# Requires: ArcGIS Location Referencing 

# Import arcpy module
import arcpy

# Check out license
arcpy.CheckOutExtension("LocationReferencing")

# Local variables:
SourceRoutes = r"C:\Data\DOT.gdb\LRS\RoutestoAppend"
TargetNetwork = r"C:\Data\DOT.gdb\LRS\StateRoutes"
RouteId = "RouteId"
RouteName = ""
FromDate = "FromDate"
ToDate = "ToDate"
LineId = ""
LineName = ""
LineOrder = ""
loadtype = "ADD"

# Define field mappings object
fieldMappings = arcpy.FieldMappings()  

# Add input fields
fldmap1 = arcpy.FieldMap()
fldmap1.addInputField(SourceRoutes, "RS")

fldmap2 = arcpy.FieldMap()
fldmap2.addInputField(SourceRoutes, "RN")

# Set output fields
fld1 = fldmap1.outputField  
fld1.name = "RouteSystem"
fld1.aliasName = "RouteSystem"
fldmap1.outputField = fld1

fld2 = fldmap2.outputField  
fld2.name = "RouteNumber"
fld2.aliasName = "RouteNumber"
fldmap2.outputField = fld2

# Add output fields to field mappings object
fieldMappings.addFieldMap(fldmap1)
fieldMappings.addFieldMap(fldmap2)

# Execute: Append Routes
arcpy.locref.AppendRoutes(SourceRoutes, TargetNetwork, RouteId, RouteName, FromDate, ToDate, LineId, LineName, LineOrder, fieldMappings, loadtype)

# Check in license
arcpy.CheckInExtension('LocationReferencing')
AppendRoutes, пример 4 (автономный скрипт)

Следующее демонстрирует, как использовать функцию AppendRoutes как автономный скрипт Python в сервисе объектов.

# Name: AppendRoutes_Pro_Ex4.py
# Description: Append routes using a feature service in a standa-alone script. It is recommended to work in a version and post it into the default version.
# Requires: ArcGIS Location Referencing

# Import arcpy module.
import arcpy

# Check out any necessary licenses.
arcpy.CheckOutExtension("LocationReferencing")

# Set tool variables.
sourceroute = r"C:\LocationReferencing\LR.gdb\LRS\routes"
route_name_field = "ROUTENAME"
from_date_field = "FROMDATE"
to_date_field = "TODATE"
line_id_field = "LINEID"
line_name_field = "LINENAME"
line_order_field = "ORDERID"
field_mapping = r'CREATIONUSER "Creation User" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CREATIONUSER,0,50;DATECREATED "Date Created" true true false 8 Date 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,DATECREATED,-1,-1;DATEMODIFIED "Date Modified" true true false 8 Date 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,DATEMODIFIED,-1,-1;LASTUSER "Last User" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,LASTUSER,0,50;EVENTSOURCE "Event Source" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,EVENTSOURCE,0,50;LEGACYID "Legacy ID" true true false 38 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,LEGACYID,0,38;ENGFROMM "ENGFROMM" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,ENGFROMM,-1,-1;ENGTOM "ENGTOM" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,ENGTOM,-1,-1;OBJECTSTATUS "Object Status" true true false 20 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,OBJECTSTATUS,0,20;CONTINFROMM "Continuous from Measure" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CONTINFROMM,-1,-1;CONTINTOM "Continuous to Measure" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\routes,CONTINTOM,-1,-1'
load_type = "REPLACE_BY_ROUTE_ID"

## Target Route  is in feature service. Signing in portal is required to access the feature service.
arcpy.SignInToPortal('https://yourdomain.com/portal', 'username', 'password')

## Map the target route network from the feature service.Here, 18 corresponds to the target route network.
targetroute_network = r"https://yourdomain.com/server/rest/services/FeatureServiceName/FeatureServer/18"

# Process: Append Routes.
arcpy.locref.AppendRoutes(sourceroute, targetroute_network, route_id_field, route_name_field, from_date_field, to_date_field, line_id_field, line_name_field, line_order_field, field_mapping, load_type)

# Check in licenses
arcpy.CheckInExtension('LocationReferencing')

Информация о лицензиях

  • Basic: Обязательно ArcGIS Location Referencing
  • Standard: Обязательно ArcGIS Location Referencing
  • Advanced: Обязательно ArcGIS Location Referencing

Связанные разделы