填充备用 ID 字段 (Network Analyst)

摘要

为通过备用 ID 来引用网络中边的转弯要素类创建并填充附加字段。 如果以改变边源的 ObjectID 值的方式进行编辑,则备用 ID 有助于保持转弯要素的完整性。

了解有关网络数据集中转弯的详细信息

使用情况

  • 转弯要素类中的 Edge#FID 字段引用网络中边源中线要素的 ObjectID。 但是,ObjectID 由系统管理,并且可以在某些编辑操作期间发生变化。 为了确保转弯要素在完成此类编辑工作流后仍保留对边要素的正确引用,请使用以下工作流:

    1. 在每个网络边源要素类中创建并填充唯一的 ID 字段。 或者,使用数据提供者在数据中包含的唯一 ID 字段(如果存在)。
    2. 运行填充备用 ID 字段工具以在网络数据集的转弯要素类中创建并填充一组备用 ID 字段 (AltID#)。 该工具将使用来自边源的指定唯一 ID 字段值填充备用 ID 字段,除 Edge#FID 字段外,还通过备用 ID 字段将每个转弯要素链接到相应的边源要素。
    3. 执行可能改变边源的 ObjectID 的编辑操作。
    4. 运行按备用 ID 字段更新工具以使用备用 ID 字段值更新转弯要素类中的 Edge#FID 字段,查找相应边源要素的 ObjectID 值。

  • 该工具将创建并填充新的 AltID# 字段,其中 # 是每个转弯的最大边数。 例如,对于支持最多三条边的转弯的转弯要素类,该工具将创建并填充 AltID1AltID2AltID3 字段。

参数

标注说明数据类型
输入网络数据集

为转弯要素类创建备用 ID 字段时所在的网络数据集。 将为所有作为转弯源添加到网络数据集中的转弯要素类创建字段。

Network Dataset Layer
备用 ID 字段名

网络数据集中边要素源的备用 ID 字段名称。 对于转弯引用的所有边要素源,其备用 ID 字段的名称必须相同。

String

派生输出

标注说明数据类型
更新的输入网络数据集

更新后的网络数据集。

Network Dataset Layer

arcpy.na.PopulateAlternateIDFields(in_network_dataset, alternate_ID_field_name)
名称说明数据类型
in_network_dataset

为转弯要素类创建备用 ID 字段时所在的网络数据集。 将为所有作为转弯源添加到网络数据集中的转弯要素类创建字段。

Network Dataset Layer
alternate_ID_field_name

网络数据集中边要素源的备用 ID 字段名称。 对于转弯引用的所有边要素源,其备用 ID 字段的名称必须相同。

String

派生输出

名称说明数据类型
out_network_dataset

更新后的网络数据集。

Network Dataset Layer

代码示例

PopulateAlternateIDFields 示例 1(Python 窗口)

使用所有参数运行此工具

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.PopulateAlternateIDFields(network, "ID")
PopulateAlternateIDFields 示例 2(独立脚本)

以下 Python 脚本演示了如何在独立脚本中使用 PopulateAlternateIDFields 函数。

# Name: PopulateAlternateIDFields_ex02.py
# Description: Create and populate the alternate ID fields for all turn sources
#              in the network dataset.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env

#Set environment settings
env.workspace = "C:/data/SanFrancisco.gdb/Transportation"

#Set local variables
inNetworkDataset = "Streets_ND"
altIDFieldName = "ID"

#Populate alternate IDs on all turn sources in the network dataset
arcpy.PopulateAlternateIDFields_na(inNetworkDataset,altIDFieldName)

print("Script completed successfully.")

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题