追加事件 (位置参考)

适用于 Location Referencing 许可。

摘要

用于将事件记录从表、图层或要素类追加到现有 LRS 事件要素类。

注:

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

使用情况

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

  • 输入事件参数值可以为表、图层或要素类。

  • 目标事件参数值必须为注册到 LRS 的图层或要素类。

  • 将忽略目标事件参数值的选择集和定义查询。

  • 此工具支持点和线要素。 输入事件目标事件参数中的要素类型必须相匹配。

  • 当针对负载类型参数使用添加选项追加新事件时,如果目标事件值已配置 RouteName 字段,则可以使用 RouteName 字段追加事件。

    • 如果输入事件记录的 RouteID 字段为空,但已填充 RouteName 字段,则可以使用 RouteName 字段追加事件。 RouteID 然后,将为这些追加事件自动生成字段。
    • 如果输入事件记录同时填充了 RouteID 字段和 RouteName 字段,则将使用 RouteID 字段追加事件。
  • 如果选中为已加载的事件生成事件 ID GUID 参数,请勿映射字段映射参数中的 EventID 字段,或者确保输入事件的 EventID 字段中存在空值。 如果填充源事件记录中的 EventID 字段并选中为已加载的事件生成事件 ID GUID 参数,则源事件记录 EventID 字段中的值将加载到目标事件中。

  • 如果选中将事件追加到主要路径参数,则输入事件参数值中的记录将追加到存在路径并发的主要路径。 如果沿该路径存在多个并发,则将对输入事件记录进行分割并将其追加到每个并发路径部分的主要路径。 如果路径并发不存在,则输入事件参数值中的记录仍将追加到在输入数据集中指定的路径。

    • 该工具将提供一个事件记录文本文件,这些事件记录与在输入数据集中指定的路径不同,并将追加到主要路径。

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

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

    • 如果可用,则需要追加的事件将自动获取事件锁定。 如果无法获取锁定,该工具将返回错误并提供违规锁定的文本文件。
    • 当选中将事件追加到主要路径参数时,将仅针对目标路径检查事件锁定,目标路线是事件将追加到的最主要路径。 如果无法获取目标路径的锁定,该工具将返回错误并提供违规锁定的文本文件。
    • 在默认版本中工作时,获取的锁定将在工具完成后自动释放。
    • 在授权版本中工作时,获得的锁定将在工具完成后保持为 On Post 状态。 您必须发布或删除该版本才能释放锁定。
    • 当在授权版本中工作时,如果取消工具进程,则获取的锁将保持在可释放状态。

  • 物理间距路径上的路径校准对追加事件产生以下方式影响:

    • 如果跨间距的路径校准差异不为零,则追加事件将在间距处拆分。
    • 如果跨间距的路径校准差异为零,则追加事件将变为多部分事件。

  • 将 ASCII 格式的 .csv 文件与定义 .csv 文件中以逗号分隔的字段的初始化文件 (schema.ini) 配合使用时,可以使用其来追加事件。 架构初始化文件必须包含以下内容:

    • 要初始化的 .csv 文件名和格式
    • 每个列的名称和数据类型
    • 数据类型为文本时使用的最大宽度

    以下初始化示例声明了要使用的 .csv 文件名和格式、用于每个列的字段名称和数据类型(从左到右),以及文本字段的最大宽度。

    schema.ini
    
    [source_events.csv]
    Format=CSVDelimited
    ColNameHeader=True
    Col1=FromDate Date
    Col2=ToDate Date
    Col3=RouteID Text width 255
    Col4=RouteName Text width 255
    Col5=FromMeasure Double
    Col6=ToMeasure Double
    Col7=RdType Long
    Col8=EventID Text width 50

    了解有关添加 ASCII 或文本文件表

  • 旧版本:

    不再支持生成形状参数。

参数

标注说明数据类型
输入事件

将追加到的源事件记录。

Table View
目标事件

源事件记录将追加到的 LRS 事件图层或要素类。

Feature Layer
字段映射

用于控制将输入事件的字段中的属性信息传输到目标事件的方式。

由于源事件记录将追加到具有预定义方案(字段定义)的现有目标事件,因此不允许在目标事件中添加或移除字段。 虽然您可以为每个输出字段设置合并规则,但该工具会忽略这些规则。

Field Mappings
负载类型
(可选)

用于指定将追加事件加载到目标事件中的方式。

  • 源事件记录将追加到指定目标事件。
  • 停用重叠源事件记录将追加到指定目标事件,并且将停用任何具有相同测量值或时间性重叠的记录。 如果追加事件超过指定的目标事件记录,则将删除目标事件记录。 仅对线事件使用此选项。
  • 按事件 ID 停用源事件记录将追加到指定目标事件,并且将停用任何具有相同事件 ID 和时间性重叠的记录。 如果追加事件超过具有相同事件 ID 的目标事件记录,则将删除目标事件记录。
  • 按事件 ID 替换源事件记录将追加到指定目标事件,并且将替换任何具有相同事件 ID 的记录。
String
为加载的事件生成事件 ID GUID
(可选)

指定是否将为正在追加的源事件记录生成事件 ID。 事件 ID 的生成将仅适用于 Event ID 字段中具有空值的源事件记录。

  • 选中 - 将为正在追加的源事件记录生成事件 ID。
  • 未选中 - 将不会为正在追加的源事件记录生成事件 ID。 这是默认设置。
Boolean
生成形状
(可选)
注:

现在,已不再支持此参数。

Boolean
将事件追加到主要路径
(可选)

如果存在路径并发,指定是否将源事件记录追加到主要路径。

  • 选中 - 源事件记录将追加到主要路径。
  • 未选中 - 源事件记录将追加到在输入数据集中指定的路径,不考虑路径优先级。 这是默认设置。

此参数适用于所有加载类型选项:添加停用重叠按事件 ID 停用以及按事件 ID 替换

Boolean

派生输出

标注说明数据类型
输出目标事件

源事件记录将追加到的事件图层或要素类。

Feature Layer
输出结果文件

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

Text File

arcpy.locref.AppendEvents(in_dataset, in_target_event, field_mapping, {load_type}, {generate_event_ids}, {generate_shapes}, {append_to_dominant_route})
名称说明数据类型
in_dataset

将追加到的源事件记录。

Table View
in_target_event

源事件记录将追加到的 LRS 事件图层或要素类。

Feature Layer
field_mapping

用于控制将输入事件的字段中的属性信息传输到目标事件的方式。

由于源事件记录将追加到具有预定义方案(字段定义)的现有目标事件,因此不允许在目标事件中添加或移除字段。 虽然您可以为每个输出字段设置合并规则,但该工具会忽略这些规则。

您可使用 FieldMappings 类来定义此参数。

Field Mappings
load_type
(可选)

用于指定将追加事件加载到目标事件中的方式。

  • ADD源事件记录将追加到指定目标事件。
  • RETIRE_OVERLAPS源事件记录将追加到指定目标事件,并且将停用任何具有相同测量值或时间性重叠的记录。 如果追加事件超过指定的目标事件记录,则将删除目标事件记录。 仅对线事件使用此选项。
  • RETIRE_BY_EVENT_ID源事件记录将追加到指定目标事件,并且将停用任何具有相同事件 ID 和时间性重叠的记录。 如果追加事件超过具有相同事件 ID 的目标事件记录,则将删除目标事件记录。
  • REPLACE_BY_EVENT_ID源事件记录将追加到指定目标事件,并且将替换任何具有相同事件 ID 的记录。
String
generate_event_ids
(可选)

指定是否将为正在追加的源事件记录生成事件 ID。 事件 ID 的生成将仅适用于 Event ID 字段中具有空值的源事件记录。

  • GENERATE_EVENT_IDS将为正在追加的源事件记录生成事件 ID。
  • NO_GENERATE_EVENT_IDS将不会为正在追加的源事件记录生成事件 ID。 这是默认设置。
Boolean
generate_shapes
(可选)
注:

现在,已不再支持此参数。

Boolean
append_to_dominant_route
(可选)

如果存在路径并发,指定是否将 in_dataset 记录追加到主要路径。

  • APPEND_TO_DOMINANT_ROUTE源事件记录将追加到主要路径。
  • NO_APPEND_TO_DOMINANT_ROUTE源事件记录将追加到在输入数据集中指定的路径,不考虑路径优先级。 这是默认设置。

此参数适用于所有 load_type 选项:ADDRETIRE_OVERLAPSRETIRE_BY_EVENT_IDREPLACE_BY_EVENT_ID

Boolean

派生输出

名称说明数据类型
out_target_event

源事件记录将追加到的事件图层或要素类。

Feature Layer
out_details_file

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

Text File

代码示例

AppendEvents 示例 1(Python 窗口)

演示如何在 Python 窗口中使用 AppendEvents 函数将事件记录追加到现有事件要素类。

# Name: AppendEvents_ex1_pro.py
# Description: Append event records into an existing Location Referencing event feature class.
# Requires: ArcGIS Location Referencing

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

# Set tool variables
# Source Event Table in fgdb
in_dataset = "PTMS_Add"

# Target Event Feature Class in fgdb
in_target_event = "LRSE_PTMS"

#Map fields between target and source
field_mapping = r'AADT "AADT" true true false 4 Long 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,AADT,-1,-1;YEAR_ "YEAR_" true true false 2 Short 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,YEAR_,-1,-1;Cosite "Cosite" true true false 6 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,Cosite,0,6;Classd "Classd" true true false 3 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,Classd,0,3;SECTION_ "SECTION_" true true false 8 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,SECTION_,0,8;COMM "COMM" true true false 254 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,COMM,0,254;Active "Active" true true false 1 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,Active,0,1;Sitetype "Sitetype" true true false 11 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,Sitetype,0,11;KFCTR "KFCTR" true true false 8 Double 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,KFCTR,-1,-1;DFCTR "DFCTR" true true false 8 Double 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,DFCTR,-1,-1;TFCTR "TFCTR" true true false 8 Double 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,TFCTR,-1,-1;LOCATION "LOCATION" true true false 8 Double 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,LOCATION,-1,-1;FromDate "FromDate" true true false 8 Date 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,FromDate,-1,-1;ToDate "ToDate" true true false 8 Date 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,ToDate,-1,-1;EventID "EventID" true true false 50 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,EventID,0,50;RouteName "RouteName" true true false 255 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,RouteName,0,255'

load_type = "ADD"

generate_event_ids = "NO_GENERATE_EVENT_IDS"

generate_shapes = "GENERATE_SHAPES"

append_to_dominant_route = "NO_APPEND_TO_DOMINANT_ROUTE"

# Execute the tool
arcpy.locref.AppendEvents(in_dataset, in_target_event, field_mapping, load_type, generate_event_ids, None, append_to_dominant_route)
AppendEvents 示例 2(独立脚本)

演示如何在独立 Python 脚本中使用 AppendEvents 函数将事件记录追加到现有事件要素类。 将事件追加到主要路径。

# Name: AppendEvents_StandAlonePython_Example.py
# Description: Append event records into an existing event feature class.
# Requires: ArcGIS Location Referencing

# Import arcpy module
import arcpy

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

# Set tool variables
# Source Event Table in fgdb
in_dataset = r"C:\Pipeline.gdb\LRS\PTMS_Add"

# Target Event Feature Class in fgdb
in_target_event = r"C:\Pipeline.gdb\LRS\LRSE_PTMS"

#Map fields between target and source
field_mapping = r"AADT \"AADT\" true true false 4 Long 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,AADT,-1,-1;YEAR_ \"YEAR_\" true true false 2 Short 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,YEAR_,-1,-1;Cosite \"Cosite\" true true false 6 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,Cosite,0,6;Classd \"Classd\" true true false 3 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,Classd,0,3;SECTION_ \"SECTION_\" true true false 8 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,SECTION_,0,8;COMM \"COMM\" true true false 254 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,COMM,0,254;Active \"Active\" true true false 1 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,Active,0,1;Sitetype \"Sitetype\" true true false 11 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,Sitetype,0,11;KFCTR \"KFCTR\" true true false 8 Double 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,KFCTR,-1,-1;DFCTR \"DFCTR\" true true false 8 Double 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,DFCTR,-1,-1;TFCTR \"TFCTR\" true true false 8 Double 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,TFCTR,-1,-1;LOCATION \"LOCATION\" true true false 8 Double 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,LOCATION,-1,-1;FromDate \"FromDate\" true true false 8 Date 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,FromDate,-1,-1;ToDate \"ToDate\" true true false 8 Date 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,ToDate,-1,-1;EventID \"EventID\" true true false 50 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,EventID,0,50;RouteName \"RouteName\" true true false 255 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,RouteName,0,255"

load_type = "REPLACE_BY_EVENT_ID"

generate_event_ids = "NO_GENERATE_EVENT_IDS"

generate_shapes = "GENERATE_SHAPES"

append_to_dominant_route = "APPEND_TO_DOMINANT_ROUTE"

# Execute the tool
arcpy.locref.AppendEvents(in_dataset, in_target_event, field_mapping, load_type, generate_event_ids, None, append_to_dominant_route)

# Check in license
arcpy.CheckInExtension("LocationReferencing")
AppendEvents 示例 3(独立脚本)

演示如何在独立 Python 脚本中使用 AppendEvents 函数将事件记录追加到要素服务。

# Name: AppendEvents_Pro_Ex3.py
# Description: Append events using a feature service. It is recommended to work in a version and post to the default version.
# Requires: ArcGIS Location Referencing

# Import arcpy module
import arcpy

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

# Set tool variables
in_dataset = r"C:\LocationReferencing\LR.gdb\LRS\LineEvent"
field_mapping = r'FROMDATE "From Date" true true false 8 Date 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\LineEvent,FROMDATE,-1,-1;TODATE "To Date" true true false 8 Date 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\LineEvent,TODATE,-1,-1;EVENTID "Event ID" true true false 50 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\LineEvent,EVENTID,0,50;ROUTEID "Route ID" true true false 255 Text 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\LineEvent,ROUTEID,0,255;RouteName "RouteName" true true false 255 Text 0 0,First,#,C:\Pipeline.gdb\LRS\PTMS_Add,RouteName,0,255;FROMMEASURE "From Measure" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\LineEvent,FROMMEASURE,-1,-1;TOMEASURE "To Measure" true true false 0 Double 0 0,First,#,C:\LocationReferencing\LR.gdb\LRS\LineEvent,TOMEASURE,-1,-1'
load_type = "ADD"
generate_event_ids = "NO_GENERATE_EVENT_IDS"
generate_shapes = "GENERATE_SHAPES"
append_to_dominant_route = "NO_APPEND_TO_DOMINANT_ROUTE"

# Target event is in a feature service. Sign in to portal is required to access the feature service. 
arcpy.SignInToPortal('https://yourdomain.com/portal', 'username', 'password')

# Map the target event from the feature service. In the feature service, 34 corresponds to the target event.
in_target_event = r"https://yourdomain.com/server/rest/services/FeatureServiceName/FeatureServer/34"

# Execute the tool
arcpy.locref.AppendEvents(in_dataset, in_target_event, field_mapping, load_type, generate_event_ids, None, append_to_dominant_route)

# Check in license
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)

相关主题