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

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

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

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

Примечание:

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

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

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

  • Этот инструмент поддерживает присоединение маршрутов на существующих центральных линиях, если включен параметр Учитывать существующие центральные линии.

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

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

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

  • Пространственная привязка, разрешение по x,y и допуск по x,y входного класса полилинейных объектов и целевой сети 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 настроена как линейная сеть с поддержкой многопольного идентификатора маршрута, для добавления маршрутов не требуются следующие параметры:

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

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

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

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

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

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

  • Если LRS настроен с помощью решения Address Data Management, по умолчанию включен параметр Учитывать существующие центральные линии.

Параметры

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

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

Feature Layer
Сеть LRS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ID маршрутаМаршруты будут загружены с использованием поля ID маршрута. Используется по умолчанию.
  • Имя маршрутаМаршруты будут загружены с использованием поля названия маршрута. Эта опция доступна только для сетей с именем маршрута, настроенным в сети LRS, если для параметра Тип загрузки установлено значение Добавить.
String
Учитывать существующие центральные линии
(Дополнительный)

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

  • Отмечено — маршруты будут добавлены с использованием существующих центральных линий, новые центральные линии создаваться не будут.
  • Не отмечено — для добавленных маршрутов будут созданы новые центральные линии. Используется по умолчанию.

Boolean

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

ПодписьОписаниеТип данных
Сеть 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}, {consider_existing_centerlines})
ИмяОписаниеТип данных
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. Если поле не сопоставлено, для всех добавленных маршрутов будет задано значение null начала времени.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ROUTE_IDМаршруты будут загружены с использованием поля ID маршрута. Используется по умолчанию.
  • ROUTE_NAMEМаршруты будут загружены с использованием поля названия маршрута. Эта опция доступна только для сетей с именем маршрута, настроенным в сети LRS, если для параметра load_type установлено значение ADD.
String
consider_existing_centerlines
(Дополнительный)

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

  • CONSIDERМаршруты будут добавлены с использованием существующих центральных линий, новые центральные линии создаваться не будут.
  • DO_NOT_CONSIDERДля добавленных маршрутов будут созданы новые центральные линии. Используется по умолчанию.
Boolean

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

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

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

Feature Layer
out_details_file

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

Text File

Пример кода

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

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

# 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
consider_existing_centerlines = "DO_NOT_CONSIDER"

# Run 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, consider_existing_centerlines)
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. Existing centerlines are considered.
# 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"
consider_existing_centerlines = "CONSIDER"


# 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, consider_existing_centerlines)

# 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
consider_existing_centerlines = "DO_NOT_CONSIDER"

# 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)

# Run 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, consider_existing_centerlines)


# 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
consider_existing_centerlines = "DO_NOT_CONSIDER"

## 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"

# Run 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, consider_existing_centerlines)

# 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)

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