叠加路径事件 (线性参考)
摘要
将两个事件表叠加起来创建一个输出事件表,以表示输入的并集或交集。
用法
-
可以执行线-线、线-点、点-线以及点-点事件叠加。
-
输入事件和叠加事件均应基于相同的路径参考。
-
输入表可以是 ArcGIS 支持的任何类型的表。输出表可以是 dBASE 文件或地理数据库表。
-
使用创建路径事件图层工具或使用 ArcMap 中的“显示路径事件”命令可在 ArcMap 中显示输出表。
-
如果输入事件和叠加事件属性均为 POINT 类型,则输出事件属性也必须定义为 POINT 类型。
-
如果输入事件和叠加事件属性均为 LINE 类型,则输出事件属性也必须定义为 LINE 类型。
-
如果输入事件或叠加事件属性为 POINT 类型,则在执行 INTERSECT 叠加时必须将输出事件属性定义为 POINT 类型。在执行 UNION 叠加时必须将输出事件属性定义为 LINE 类型。
-
如果输入事件和叠加事件属性均为 POINT 类型,则在执行相交操作时只考虑测量值完全相同的点。不存在搜索容差。
-
路径标识符字段上的属性索引可加快动态分段过程的速度。如果要为动态分段使用输出事件表,建议您选择创建属性索引。
-
在使用此工具之前先使用创建表视图工具有效降低要处理的事件数。
-
如果输入事件或叠加事件没有 ObjectID 字段,在使用此工具之前先使用创建查询表工具添加虚拟 ObjectID 字段。
语法
参数 | 说明 | 数据类型 |
in_table |
输入事件表。 | Table View |
in_event_properties |
输入事件表中由路径位置字段和事件类型组成的参数。
| Route Measure Event Properties |
overlay_table |
叠加事件表。 | Table View |
overlay_event_properties |
叠加事件表中由路径位置字段和事件类型组成的参数。 路径标识符字段 - 包含指明每个事件所沿路径的值的字段。该字段可以是数值或字符。 事件类型 - 叠加事件表中的事件类型(POINT 或 LINE)。
测量始于字段 - 包含测量值的字段。此字段必须是数值字段,并且在事件类型是 POINT 或 LINE 时必填。请注意,在事件类型是 POINT 时,此参数的标注将变为“测量字段”。 测量止于字段 - 包含测量值的字段。此字段必须是数值字段,在事件类型是 LINE 时必填。 | Route Measure Event Properties |
overlay_type |
要执行的叠加的类型。
| String |
out_table |
要创建的表。 | Table |
out_event_properties |
由要写入输出事件表的路径位置字段和事件类型组成的参数。
| Route Measure Event Properties |
zero_length_events (可选) |
指定是否在输出表中保留零长度线事件。此参数只有在输出事件类型为 LINE 时才有效。
| Boolean |
in_fields (可选) |
指定是否将输入和叠加事件表中的所有字段都写入输出事件表。
| Boolean |
build_index (可选) |
指定是否为写入输出事件表的路径标识符字段创建属性索引。
| Boolean |
代码示例
import arcpy from arcpy import env env.workspace = "C:/Data" arcpy.OverlayRouteEvents_lr ("accident.dbf", "rkey POINT mile" , "pavecond.dbf", "rkey LINE fmp tmp", "INTERSECT", \ "accpav", "rkey POINT mile" )
以下 Python 脚本演示了如何在独立 Python 脚本中使用 OverlayRouteEvents 函数。
# NAme: OverlayRouteEvents_Example.py # Description: Point-on-line INTERSECT overlay (both tables are dBASE) # Author: ESRI # Import system modules import arcpy from arcpy import env # Set workspace env.workspace = "C:/Data" # Set local variables in_tbl = "accident.dbf" in_props = "rkey POINT mile" # reused as out event properties ov_tbl = "pavecond.dbf" ov_props = "rkey LINE fmp tmp" out_tbl = "accpav" # Execute OverlayRouteEvents arcpy.OverlayRouteEvents_lr (in_tbl, in_props, ov_tbl, ov_props, "INTERSECT", \ out_tbl, in_props)
以下 Python 脚本演示了如何在独立 Python 脚本中将 OverlayRouteEvents 函数与文件地理数据库数据结合使用。
# Name OverlayRouteEvents_Example2.py # Description: Line-on-line UNION overlay (both tables are in a file geodatabase) # Author: ESRI # Import system modules import arcpy from arcpy import env # Set workspace env.workspace = "C:/Data/Pitt.gdb" # Set local variables in_tbl = "pavecond" in_props = "rkey LINE fmp tmp" # reused as overlay and out event properties ov_tbl = "pavetype" out_tbl = "condtype" # Execute OverlayRouteEvents arcpy.OverlayRouteEvents_lr (in_tbl, in_props, ov_tbl, in_props, "UNION", \ out_tbl, in_props, "NO_ZERO")
以下 Python 脚本演示了如何在独立 Python 脚本中将 OverlayRouteEvents 函数与个人地理数据库数据结合使用。
# Name: OverlayRouteEvents_Example3.py # Description: Line-on-line UNION overlay (both tables are in a personal geodatabase) # Author: ESRI # Import system modules import arcpy from arcpy import env # Set workspace env.workspace = "C:/Data/Pitt.mdb" # Set local variables in_tbl = "pavecond" in_props = "rkey LINE fmp tmp" # reused as overlay and out event properties ov_tbl = "pavetype" out_tbl = "condtype" # Execute OverlayRouteEvents arcpy.OverlayRouteEvents_lr (in_tbl, in_props, ov_tbl, in_props, "UNION", \ out_tbl, in_props, "NO_ZERO")
以下 Python 脚本演示了如何在独立 Python 脚本中将 OverlayRouteEvents 函数与 SDE 数据结合使用。
# Name: OverlayRouteEvents_Example4.py # Description: Point-on-line INTERSECT overlay (both tables are in enterprise geodatabase) # Import system modules import arcoy from arcpy import env # Set workspace env.workspace = "Database Connections/Connection to Jerry.sde" # Set local variables in_tbl = gp.QualifyTableName("accident", wkspc) in_props = "rkey POINT mile" ov_tbl = gp.QualifyTableName("pavecond", wkspc) ov_props = "rkey LINE fmp tmp" out_tbl = "accpav" out_props = "routekey POINT milepost" # names are changed for out table # Execute OverlayRouteEvents arcpy.OverlayRouteEvents_lr (in_tbl, in_props, ov_tbl, ov_props, "INTERSECT", \ out_tbl, out_props)