追加事件 (位置参考)

适用于 Location Referencing 许可。

摘要

将其他事件记录从表、图层或要素类追加到现有 ArcGIS Location Referencing 事件要素类。

注:

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

使用情况

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

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

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

    了解有关 ArcGIS Pipeline Referencing 事件数据模型所需字段的详细信息

    了解有关 Roads and Highways 事件数据模型所需字段的详细信息

  • 目标事件值应该是注册到 Location Referencing 的图层或要素类。

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

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

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

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

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

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

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

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

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

    以下初始化示例声明了要使用的 .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
目标事件

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

Feature Layer
字段映射

控制如何将输入事件参数值字段中的属性信息传输到目标事件参数值。

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

Field Mappings
负载类型
(可选)

指定如何将追加事件加载到目标事件要素类中。

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

指定是否将为追加的输入事件记录生成事件 ID。 事件 ID 的生成将仅应用于 Event ID 字段值为空的输入事件记录。

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

指定是否将为正在追加的记录重新生成形状。 仅当输入事件值是要素图层或要素类时,此参数才有效。

  • 选中 - 将重新生成输入事件要素的形状。 这是默认设置。
  • 未选中 - 不会重新生成输入事件要素的形状。
Boolean

派生输出

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

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

Feature Layer
输出结果文件

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

Text File

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

要追加的源事件记录。

Table View
in_target_event

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

Feature Layer
field_mapping

控制如何将 in_dataset 参数值字段中的属性信息传输到 in_target_event 参数值。

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

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

Field Mappings
load_type
(可选)

指定如何将与 in_target_event 记录具有相同事件 ID、测量值或时间性重叠的追加事件,加载到事件要素类中。

  • ADDin_dataset 记录将追加到指定的目标事件要素类。 不会对目标事件记录进行任何更改。
  • RETIRE_OVERLAPSin_dataset 记录将追加到指定的目标事件要素类中,并且将停用任何具有相同测量值或时间性重叠的记录。 如果追加事件超过指定的目标事件要素,则将删除目标事件记录。 仅对线性事件使用此选项。
  • RETIRE_BY_EVENT_IDin_dataset 记录将追加到指定的目标事件要素类中,并且将停用任何具有相同事件 ID 且时间性重叠的记录。 如果追加事件超过具有相同事件 ID 的目标事件记录,则将删除目标事件记录。
  • REPLACE_BY_EVENT_IDin_dataset 记录将追加到指定的目标事件要素类中,并且将替换任何具有相同事件 ID 的记录。
String
generate_event_ids
(可选)

指定是否将为追加的 in_dataset 记录生成事件 ID。 事件 ID 的生成将仅应用于 字段值为空的 in_datasetEvent ID 记录。

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

指定是否将为正在追加的记录重新生成形状。 仅当 in_dataset 值是要素图层或要素类时,此参数才有效。

  • GENERATE_SHAPES将重新生成输入事件要素的形状。 这是默认设置。
  • NO_SHAPES将不会重新生成输入事件要素的形状。
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"

# Execute the tool
arcpy.locref.AppendEvents(in_dataset, in_target_event, field_mapping, load_type, generate_event_ids, generate_shapes)
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"

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

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

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

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

相关主题