追加路径 (位置参考)

适用于 Location Referencing 许可。

摘要

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

注:

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

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

使用情况

  • 运行此工具需要 LRS 数据集。 要创建 LRS 数据集,请将校准点、中心线和红线图层添加到要素数据集;然后以地理数据库作为输入运行修改 LRS 工具。

  • 此工具将在目标 LRS 数据集中创建中心线,并在目标 LRS 网络中创建路径。

  • 输出路径将具有来自输入折线折点的 x、y 和 z 值,但不会追加 m 值。

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

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

  • 将在本地编写一个文本日志,说明该工具已运行,并包含有关验证失败的路径的信息。 工具消息将提供文本日志的位置,该位置位于临时目录中。

  • 此工具的输出是经过修改的 LRS 网络,该网络具有追加的路径和创建的中心线要素。

  • 此工具支持冲突预防,并将尝试获取和转移锁。

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

    • 如果要追加的路径为新路径,则不会为这些路径获取锁。
    • 对于其他负载类型,例如 RETIRE_BY_ROUTE_IDREPLACE_BY_ROUTE_ID,将自动获取锁(如果可用)。
    • 如果无法获取锁,则该工具将不会运行并将提供有问题的锁的文本文件。
    • 如果在默认版本中工作,则当该工具成功完成运行时,将自动释放所获取的锁。
    • 如果在子版本中工作,则当该工具完成后,获取的锁将保持在 ON POST 状态。 请发布或删除版本以释放锁。
    • 如果在子版本中工作并且工具的运行因中断而取消,则将获取锁并保持可释放状态为“是”。 锁拥有者可以释放锁。

      了解有关ArcGIS Pipeline Referencing 中释放锁或者ArcGIS Roads and Highways 中释放锁的详细信息。

    了解有关 Pipeline Referencing 中的冲突预防Roads and Highways 中的冲突预防的详细信息。

  • 如果目标 LRS 网络配置为支持多字段路径 ID 的线路网络,则追加路径无需以下参数:

    • 路径名称字段
    • 线路名称字段

  • 该工具将检查配置有要加载路径的 LRS 网络的公共设施网络,如果找到此类公共设施网络,则在追加路径时,需要考虑现有中心线。 如果追加到路径的中心线没有 CenterlineID 值,则将创建该值并添加中心线序列记录。 如果追加路径的位置上存在 CenterlineID 值,则将使用已追加路径的 RouteID 值更新现有中心线序列记录。

    以下预处理条件将导致记录的错误,必须先解决该错误,然后才能完成工具运行:

    • 加载路径要素需要中心线分割。
    • 中心线和路径的 x、y 和 z 几何不匹配。
    • 中心线部分匹配(例如,如果部分中心线超出 x、y 和 z 容差范围)。
    • 已追加路径具有与几何相匹配的一条或多条完整中心线,但某些位置不存在中心线。
    • 检测到重叠中心线(公共设施网络不允许重叠中心线)。
    • 不存在与已追加路径相匹配的中心线。

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

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

  • 如果选中按路径 ID 替换选项,则任何被替换的路径都将替换路径和中心线序列记录。 将删除路径上的校准点,并且需要重新创建或重新加载这些校准点。

参数

标注说明数据类型
源路径

将从中派生路径的输入。 输入可以为折线要素类、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 网络中添加或移除字段。 虽然可以为每个输出字段设置合并规则,但该工具将忽略这些规则。

Field Mappings
负载类型
(可选)

指定将具有测量或时间重叠的相应已追加路径加载到网络要素类中的方式,这些已追加路径与目标网络记录具有相同的路径 ID。

  • 添加会将已追加路径加载到目标 LRS 网络中。 如果源路径中的任何路径 ID 已存在于具有相同时间的目标 LRS 网络中,则其将作为重复路径写入输出日志,并且在完成加载过程之前,必须对其进行更正或将其过滤掉。 这是默认设置。
  • 按路径 ID 停用会将已追加路径加载到目标 LRS 网络中,并且将停用目标 LRS 网络中与已追加路径具有相同路径 ID 和时间重叠的任何路径。 如果已追加路径遮盖具有相同路径 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

将从中派生路径的输入。 输入可以为折线要素类、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 网络中的起始日期字段值。 如果未映射该字段,则将为所有已追加路径提供表示开始时间的空值。

Field
to_date_field
(可选)

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

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 网络中添加或移除字段。 虽然可以为每个输出字段设置合并规则,但该工具将忽略这些规则。 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

派生输出

名称说明数据类型
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 those routes where an overlap occurs.
# Requires: ArcGIS Location Referencing

# 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)
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, Route_ID, Route_Name, From_Date, To_Date, Line_ID, Line_Name, Line_Order, None, "ADD")

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

相关主题