追加路径 (位置参考)

适用于 Location Referencing 许可。

摘要

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

注:

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

使用情况

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

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

    • 如果不考虑现有中心线,则此工具将在目标 LRS 数据集中创建中心线,并在目标 LRS 网络中创建路径。
    • 当考虑现有中心线时,此工具可将路径与目标 LRS 数据集中与源路径具有完全几何匹配的现有中心线相关联。 如果追加到路径的中心线没有中心线 ID,则将创建中心线 ID,并添加中心线序列记录。 如果追加路径的位置存在中心线 ID,则将使用已追加路径的路径 ID 来更新现有中心线序列记录。
  • 当选中考虑现有中心线参数时,以下情况将导致错误,必须先解决该错误,然后才能完成工具运行:

    • 追加路径要素需要执行中心线分割。
    • 中心线和路径的 x、y 和 z 几何不匹配。
    • 中心线部分匹配,例如,如果部分中心线超出 x、y 和 z 容差范围。
    • 已追加路径具有与几何相匹配的一条或多条中心线,但某些位置不存在中心线。
    • 检测到重叠中心线。
    • 不存在与已追加路径相匹配的中心线。
  • 输出路径将具有来自输入折线折点的 x、y 和 z 值,但不会追加 m 值。

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

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

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

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

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

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

    了解有关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 停用,并且源路径与目标路径具有不同的路径名称和路径 ID 值,则此工具将失败。

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

  • 如果 LRS 配置有 Address Data Management 解决方案,则默认选中考虑现有中心线参数。

参数

标注说明数据类型
源路径

将从中派生路径的输入。 输入可以为折线要素类、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 线路网络时,才会使用此参数。 字段类型和长度必须与中心线序列表的路径 ID 字段相匹配。

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
加载字段
(可选)

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

  • 路径 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

将从中派生路径的输入。 输入可以为折线要素类、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 线路网络时,才会使用此参数。 字段类型和长度必须与中心线序列表的路径 ID 字段相匹配。

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
load_field
(可选)

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

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

相关主题