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

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

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

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

Примечание:

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

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

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

  • Для запуска инструмента необходим набор данных LRS.

    Узнайте больше о создании набора данных LRS в ArcGIS Pipeline Referencing или создании набора данных LRS в ArcGIS Roads and Highways.

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

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

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

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

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

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

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

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

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

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

  • Если входной класс объектов содержит кривые, они будут уплотнены.

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

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

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

  • При присоединении новых маршрутов с использованием значение Добавить для параметра Тип загрузки, если целевая сеть LRS имеет настроенное имя маршрута, маршруты будут присоединены при помощи имени маршрута. Если ID маршрутов пусты, для присоединенных маршрутов ID строятся автоматически.

  • Инструмент проверяет, что значения порядка линии больше нуля и имеют шаг 100 с потоком и направлением маршрутов в линии. Неправильные значения порядка линии могут привести к сбою работы инструмента. Выходной текстовый файл сообщает о неправильных значениях порядка линии как об ошибках. После исправления ошибок инструмент успешно запустится.

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

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

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

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

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

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

Параметры

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

Входные данные, из которых будут получены маршруты. Входными данными может быть класс, полилинейных объектов, шейп-файл, сервис объектов или класс объектов сети 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 таблицы последовательности центральных линий.

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
Поле загрузки
(Дополнительный)

Указывает поле, которое будет использоваться для загрузки маршрутов.

  • ID маршрутаМаршруты будут загружены с использованием поля RouteID. Это значение по умолчанию
  • Имя маршрутаМаршруты будут загружены с использованием поля RouteName. Эта опция доступна, только для сетей с RouteName, настроенным в сети LRS для типа загрузки Добавить (load_type = "ADD" в Python).
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}, {load_field})
ИмяОписаниеТип данных
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 таблицы последовательности центральных линий.

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
load_field
(Дополнительный)

Указывает поле, которое будет использоваться для загрузки маршрутов.

  • ROUTE_IDМаршруты будут загружены с использованием поля RouteID. Это значение по умолчанию
  • ROUTE_NAMEМаршруты будут загружены с использованием поля RouteName. Эта опция доступна, только для сетей с RouteName, настроенным в сети LRS для типа загрузки Добавить (load_type = "ADD" в Python).
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 routes where an overlap occurs.
# Requires: ArcGIS Location Referencing

# Set current workspace
arcpy.env.workspace= r"C:\DOT.gdb"

# Set tool variables
source_routes = r"C:\Data\Input.gdb\RoutestoAppend"
in_lrs_network = r"C:\Data\DOT.gdb\LRS\StateRoutes"
route_id_field = "RouteId"
route_name_field = None
from_date_field = "FromDate"
to_date_field = "ToDate"
line_id_field = None
line_name_field = None
line_order_field = None
field_map = None
load_type = "REPLACE_BY_ROUTE_ID"
load_field = None

# 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,load_field)
AppendRoutes, пример 2 (автономный скрипт)

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

# Name: AppendRoutes_ex2.py
# Description: Appending new routes into an existing LRS network using Route Name in python stand alone script.
# Requires: ArcGIS Location Referencing

# Import arcpy module
import arcpy

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


# Set tool variables:
source_routes = r"C:\Data\Input.gdb\RoutestoAppend"
in_lrs_network = r"C:\Data\pipelinereferencing.gdb\LRS\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 = "ADD"
load_field = "RouteName"


# Process: Append Routes
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,load_field)

# 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:
source_routes = r"C:\Data\DOT.gdb\LRS\RoutestoAppend"
in_lrs_network = r"C:\Data\DOT.gdb\LRS\StateRoutes"
route_id_field = "RouteId"
route_name_field = None
from_date_field = "FromDate"
to_date_field = "ToDate"
line_id_field = None
line_name_field = None
line_order_field = None
load_type = "ADD"
load_field = None

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

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

fldmap2 = arcpy.FieldMap()
fldmap2.addInputField(source_routes, "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(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, fieldMappings, load_type,load_field)


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

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

# Name: AppendRoutes_Pro_Ex4.py
# Description: Append routes using a feature service in a stand-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.
source_routes = r"C:\LocationReferencing\LR.gdb\LRS\routes"
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 = "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"
load_field = None

## 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.
in_lrs_network = r"https://yourdomain.com/server/rest/services/FeatureServiceName/FeatureServer/18"

# Process: Append Routes.
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_mapping, load_type,load_field)

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

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

  • Basic: Обязательно ArcGIS Location Referencing (ArcGIS Pipeline Referencing или ArcGIS Roads and Highways)
  • Standard: Обязательно ArcGIS Location Referencing (ArcGIS Pipeline Referencing или ArcGIS Roads and Highways)
  • Advanced: Обязательно ArcGIS Location Referencing (ArcGIS Pipeline Referencing или ArcGIS Roads and Highways)

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