融合网络 (Network Analyst)

摘要

创建可最大程度减少正确构建输入网络数据集模型所需线要素数目的网络数据集。提高输出网络数据集的效率,便可减少求解分析、绘制结果和生成驾车指示所需的时间。此工具将输出新网络数据集和源要素类;输入网络数据集及其源要素保持不变。

了解有关“融合网络”工作原理的详细信息

插图

融合网络图示

使用情况

  • 此工具不会生成构建的网络。对该数据集执行任何分析前,请先使用构建网络工具构建新创建的网络数据集。

  • 在输出地理数据库工作空间中创建的网络数据集和要素类具有与输入网络数据集相同的要素数据集名称、网络数据集名称和要素类名称。如果输出地理数据库工作空间中已存在具有这些名称的数据集,该工具将无法执行。

  • 源要素类中只有网络数据集使用的字段才会被传递至输出线要素类。字段的示例包括:

    • 高程字段
    • 用于网络属性赋值器中的字段(长度、时间、单向约束、等级等)
    • 用于生成行驶方向的字段(街道名称、盾形路牌等)
  • 如果正在求解的网络数据集不包含 10.1 的任何功能,则会创建 10.0 网络数据集。

参数

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

要融合的网络数据集。

输入网络数据集必须是只有一个边源的文件地理数据库或个人地理数据库网络数据集。允许任意数目的交汇点源和转弯源。边源必须具有:

  • 端点连通性策略
  • 包括“无”或“高程字段”的高程策略

必须先构建输入网络数据集,之后才能在此工具中使用。

Network Dataset Layer
输出地理数据库工作空间

要创建融合的网络数据集的地理数据库工作空间。工作空间必须为 ArcGIS 10 或更高版本地理数据库,并且必须是与输入网络数据集所在的地理数据库不同的地理数据库。

Workspace

派生输出

标注说明数据类型
输出融合网络数据集

网络数据集中包含的线要素越少,网络分析速度就越快。

网络数据集

arcpy.management.DissolveNetwork(in_network_dataset, out_workspace_location)
名称说明数据类型
in_network_dataset

要融合的网络数据集。

输入网络数据集必须是只有一个边源的文件地理数据库或个人地理数据库网络数据集。允许任意数目的交汇点源和转弯源。边源必须具有:

  • 端点连通性策略
  • 包括“无”或“高程字段”的高程策略

必须先构建输入网络数据集,之后才能在此工具中使用。

Network Dataset Layer
out_workspace_location

要创建融合的网络数据集的地理数据库工作空间。工作空间必须为 ArcGIS 10 或更高版本地理数据库,并且必须是与输入网络数据集所在的地理数据库不同的地理数据库。

Workspace

派生输出

名称说明数据类型
out_network_dataset

网络数据集中包含的线要素越少,网络分析速度就越快。

网络数据集

代码示例

融合网络 (DissolveNetwork) 示例 1(Python 窗口)

使用所有参数运行此工具

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
out_gdb = "C:/Data/DissolvedNetwork.gdb"
arcpy.na.DissolveNetwork(network, out_gdb)
融合网络 (DissolveNetwork) 示例 2(工作流)

以下独立 Python 脚本演示了如何使用 DissolveNetwork 工具创建具有更少线要素的新网络数据集。

# Name: DissolveNetwork_Workflow.py
# Description: Creates a new network dataset with reduced number of line
#              features in a new file geodatabase workspace. The network dataset
#              is also built so that it can be used to perform network analyses.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy

try:
    #Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    #Set environment settings
    arcpy.env.workspace = "C:/data/SanFrancisco.gdb"
    arcpy.env.overwriteOutput = True

    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outFolder = "C:/data/output"
    outputGDBName = "SanFranciscoDissolved"

    #Create a new file geodatabase that will contain the dissolved network
    result = arcpy.CreateFileGDB_management(outFolder, outputGDBName)

    #Get the path to the newly created file gdb from the result object.
    outputGDB = result.getOutput(0)

    #Dissolve the network dataset
    result = arcpy.DissolveNetwork_na(inNetworkDataset, outputGDB)

    #Get the path to the dissolved network dataset from the result object
    dissolvedNetworkDataset = result.getOutput(0)

    #The dissolved network dataset is unbuilt. So build the network dataset
    arcpy.BuildNetwork_na(dissolvedNetworkDataset)

    print("Script completed successfully")

except Exception as e:
    print(e)