追加路径 (位置参考)

适用于 Location Referencing 许可。

摘要

可将输入折线中的路径追加到 LRS 网络中。

注:

当目标图层为要素服务图层时,此工具的验证结果将写入 ArcGIS Server 目录中的文件。 默认情况下,此文件会在 10 分钟内自动清除,这可能不足以处理所有验证并将其写入正在运行 ArcGIS Pro 的工作站。 对于较大的数据负载,建议您将文件最长保留期限调整为至少一小时。

了解有关在 Manager 中调整此服务器目录设置的更多信息

使用情况

  • 运行此工具需要 LRS 数据集。

    了解有关ArcGIS Pipeline Referencing 中创建 LRS 数据集ArcGIS Roads and Highways 中创建 LRS 数据集的详细信息

  • 选中考虑现有中心线参数时,该工具支持在现有中心线上追加路线。

    • 在不考虑现有中心线的情况下,该工具会在目标 LRS 数据集和目标 LRS 网络中创建中心线。
    • 在考虑现有中心线时,该工具会将目标 LRS 数据集中现有的中心线与源路线的几何形状完全匹配的路线关联起来。 如果您追加到路径的中心线没有 CenterlineID 值,将创建一个中心线并添加中心线序列记录。 如果追加路径的位置上存在 CenterlineID 值,现有中心线序列记录将使用追加的路径的 RouteID 值进行更新。
  • 选中考虑现有中心线参数时,以下条件将导致错误且必须在工具运行完成之前解决:

    • 追加路径要素需要中心线分割。
    • 中心线和路径的 x、y 和 z 几何形状不匹配。
    • 中心线为部分匹配,例如,如果中心线的一部分在 x、y 和 z 容差之外。
    • 追加路径具有与几何相匹配的一条或多条中心线,但有些位置不存在中心线。
    • 检测到重叠的中心线。
    • 没有与追加路径匹配的中心线。
  • 输出路径将具有输入折线顶点的 x、y 和 z 值,但不会追加任何 m 值。

  • 在追加路径之前,创建将用于基础 LRS 网络要素类中的字段映射的任何新字段。

  • 输入折线要素类和目标 LRS 网络的空间参考、x,y 分辨率和 x,y 容差必须相匹配。

  • 本地写入文本日志,说明该工具已运行,并包含有关未通过验证的路径信息。 工具消息提供文本日志的位置,该位置位于临时目录中。

  • 此工具的输出是一个修改后的 LRS 网络,其中追加了路径并创建了中心线要素。

  • 启用冲突预防后,支持以下内容:

    • 如果要追加的路径是新的,则不会为这些路径获取锁。
    • 对于其他负载类型,例如按路径 ID 停用按路径 ID 替换,将自动获取锁(如果可用)。
    • 如果无法获取锁,该工具将无法运行并提供违规锁定的文本文件。
    • 如果在默认版本下工作,当工具成功运行完成后,获取的锁将自动释放。
    • 在子版本中工作时,获取的锁将在工具完成后保持为发布状态。 您必须发布或删除该版本才能释放锁。
    • 如果在子版本中工作并且工具进程因中断而取消,则将获取锁并保持可释放状态为“是”。 锁所有者可以释放锁。

      了解更多有关释放 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 网络的公共设施网络。 如果找到了公共设施网络,则在路由中追加时需要考虑现有中心线,并且在地理处理窗格中会隐藏考虑现有中心线参数复选框。

    了解有关一起管理 Pipeline Referencing 和公共设施网络的更多信息

  • 如果将加载类型参数设置为按路径 ID 替换按路径 ID 停用或者源路径与目标路径的 RouteNameRouteID 值不同,则此工具将失败。

  • 如果针对负载类型参数指定按路径 ID 替换,则任何待替换的路径都将替换路径和中心线序列记录。 将删除路径上的校准点,必须重新创建或重新加载这些校准点。

  • 如果 LRS 配置了地址管理,则默认选中考虑现有中心线参数。

参数

标注说明数据类型
源路径

从中派生路径的输入。 输入可以是折线要素类、shapefile、要素服务或 LRS 网络要素类。

Feature Layer
LRS 网络

路径将加载到的目标 LRS 网络。

Feature Layer
路径 ID 字段

输入折线要素类中将映射到 LRS 网络路径 ID 的字段。 字段类型必须与目标 LRS 网络的 RouteID 字段类型相匹配,并且必须是字符串或 GUID 字段类型。 如果其为文本字符串,则字段长度必须小于或等于目标 RouteID 字段的长度。

Field
路径名称字段

输入折线要素类中将映射到 LRS 网络路径名称的字段。 该字段必须是字符串字段,并且字段长度必须小于或等于目标路径名称字段的长度。

Field
开始日期字段
(可选)

输入折线要素类中的日期字段,将映射为 LRS 网络中的起始日期字段值。 如果该字段未映射,则将为所有追加路径提供一个表示开始时间的空值。

Field
结束日期字段
(可选)

输入折线要素类中的日期字段,将映射为 LRS 网络中的结束日期字段值。 如果未映射该字段,则将为所有追加路径提供一个表示结束时间的空值。

Field
线 ID 字段
(可选)

输入折线要素类中将映射到 LRS 网络线 ID 的字段。 此参数仅在目标 LRS 网络是 LRS 线网络时使用。 字段类型和长度必须与中心线序列表的 RouteID 字段类型和长度相匹配。

Field
线名称字段
(可选)

输入折线要素类中的字符串字段,将被映射为 LRS 网络线名称。 此参数仅在目标 LRS 网络是 LRS 线网络时使用。

Field
线顺序字段
(可选)

输入折线要素类中的长整型字段,将被映射为 LRS 网络线顺序。 此参数仅在目标 LRS 网络是 LRS 线网络时使用。

了解更多有关 Pipeline Referencing 中的线网络和线顺序Roads and Highways 中的线网络和线顺序

Field
字段映射
(可选)

控制源路径字段中的属性信息如何传输到输入 LRS 网络。 无法将字段添加到目标 LRS 网络或从目标 LRS 网络中删除,因为源路径的数据已追加到具有预定义模式的现有 LRS 网络。 虽然您可以为每个输出字段设置合并规则,但该工具会忽略这些规则。

Field Mappings
负载类型
(可选)

指定如何将具有相同路径 ID 的测量或时间叠加的追加路径加载到网络要素类中。

  • 追加路径将加载到目标 LRS 网络。 如果源路径中的任何路径 ID 已经存在于目标 LRS 网络中且具有相同的时间,则它将作为重复路径写入输出日志,并且必须在完成加载过程之前更正或过滤掉。 这是默认设置。
  • 按 ID 停用路径追加路径将被加载到目标 LRS 网络中,并且目标 LRS 网络中任何与追加路径具有相同路径 ID 和时间重叠的路径都将被淘汰。 如果追加路径覆盖了具有相同路径 ID 的目标路径,则该目标路径将被删除。
  • 按 ID 替换路径追加路径将被加载到目标 LRS 网络中,并且目标 LRS 网络中任何与追加路径具有相同路径 ID 的路径都将被删除。
String
加载字段
(可选)

指定将用于加载路径的字段。

  • 路径 ID将使用 RouteID 字段加载路径。 这是默认设置。
  • 路径名称将使用 RouteName 字段加载路径。 当加载类型参数设置为添加时,此选项仅适用于在 LRS 网络中配置了 RouteName 的网络。
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

从中派生路径的输入。 输入可以是折线要素类、shapefile、要素服务或 LRS 网络要素类。

Feature Layer
in_lrs_network

路径将加载到的目标 LRS 网络。

Feature Layer
route_id_field

输入折线要素类中将映射到 LRS 网络路径 ID 的字段。 字段类型必须与目标 LRS 网络的 RouteID 字段类型相匹配,并且必须是字符串或 GUID 字段类型。 如果其为文本字符串,则字段长度必须小于或等于目标 RouteID 字段的长度。

Field
route_name_field

输入折线要素类中将映射到 LRS 网络路径名称的字段。 该字段必须是字符串字段,并且字段长度必须小于或等于目标路径名称字段的长度。

Field
from_date_field
(可选)

输入折线要素类中的日期字段,将映射为 LRS 网络中的 from_date_field 值。 如果该字段未映射,则将为所有追加路径提供一个表示开始时间的空值。

Field
to_date_field
(可选)

输入折线要素类中的日期字段,将映射为 LRS 网络中的 to_date_field 值。 如果未映射该字段,则将为所有追加路径提供一个表示结束时间的空值。

Field
line_id_field
(可选)

输入折线要素类中将映射到 LRS 网络线 ID 的字段。 此参数仅在目标 LRS 网络是 LRS 线网络时使用。 字段类型和长度必须与中心线序列表的 RouteID 字段类型和长度相匹配。

Field
line_name_field
(可选)

输入折线要素类中的字符串字段,将被映射为 LRS 网络线名称。 此参数仅在目标 LRS 网络是 LRS 线网络时使用。

Field
line_order_field
(可选)

输入折线要素类中的长整型字段,将被映射为 LRS 网络线顺序。 此参数仅在目标 LRS 网络是 LRS 线网络时使用。

了解更多有关 Pipeline Referencing 中的线网络和线顺序Roads and Highways 中的线网络和线顺序

Field
field_map
(可选)

控制源路径字段中的属性信息如何传输到输入 LRS 网络。 无法将字段添加到目标 LRS 网络或从目标 LRS 网络中删除,因为源路径的数据已追加到具有预定义模式的现有 LRS 网络(字段属性)。 虽然您可以为每个输出字段设置合并规则,但该工具会忽略这些规则。 您可使用 ArcPyFieldMappings 类来定义此参数。

Field Mappings
load_type
(可选)

指定如何将具有相同路径 ID 的测量或时间叠加的追加路径加载到网络要素类中。

  • ADD追加路径将加载到目标 LRS 网络。 如果源路径中的任何路径 ID 已经存在于目标 LRS 网络中且具有相同的时间,则它将作为重复路径写入输出日志,并且必须在完成加载过程之前更正或过滤掉。 这是默认设置。
  • RETIRE_BY_ROUTE_ID追加路径将被加载到目标 LRS 网络中,并且目标 LRS 网络中任何与追加路径具有相同路径 ID 和时间重叠的路径都将被淘汰。 如果追加路径覆盖了具有相同路径 ID 的目标路径,则该目标路径将被删除。
  • REPLACE_BY_ROUTE_ID追加路径将被加载到目标 LRS 网络中,并且目标 LRS 网络中任何与追加路径具有相同路径 ID 的路径都将被删除。
String
load_field
(可选)

指定将用于加载路径的字段。

  • ROUTE_ID将使用 RouteID 字段加载路径。 这是默认设置。
  • ROUTE_NAME将使用 RouteName 字段加载路径。 当 load_type 参数设置为 ADD 时,此选项仅适用于在 LRS 网络中配置了 RouteName 的网络。
String
consider_existing_centerlines
(可选)

指定是否使用现有中心线追加路线。

  • CONSIDER将使用现有中心线追加路线,不会创建新的中心线。
  • DO_NOT_CONSIDER将为追加的路线创建新的中心线。 这是默认设置。
Boolean

派生输出

名称说明数据类型
out_lrs_network

更新的 LRS 网络要素图层。

Feature Layer
out_details_file

详细说明工具所做更改的文本文件。

Text File

代码示例

AppendRoutes 示例 1(Python 窗口)

以下演示了如何在 Python 窗口中使用 AppendRoutes 函数将路径追加到现有 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 函数用作用户生成的路径 ID 网络的独立 Python 脚本。

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

相关主题