概要
ネットワークの接続性とネットワーク データセットの属性情報を再構築します。ネットワーク データセットは、使用されているソースのフィーチャクラスの属性またはフィーチャが編集されると、再構築される必要があります。ソース フィーチャが編集されると、ツールは構築プロセスをより高速に行うために編集された領域のみにおいてネットワークの接続性を確立します。しかし、ネットワーク属性が編集されると、ネットワーク データセットの全範囲が再構築されます。大規模なネットワーク データセットでは、この処理に長い時間がかかります。
使用法
ネットワークの構築時にエラーが発生した場合、ツールは警告を表示します。これらのエラーはネットワークが意図したとおりに動作しない可能性がある潜在的な問題を示しているため、調査して対処する必要があります。
ネットワーク データセットを構築する前に、ネットワーク データセットおよび使用しているソース フィーチャクラスの排他スキーマ ロックが必要です。これにより、使用しているフィーチャクラスへの編集はできません。排他スキーマ ロックが取得できない場合、エラーが発生します。
構文
arcpy.na.BuildNetwork(in_network_dataset)
パラメーター | 説明 | データ タイプ |
in_network_dataset | 構築するネットワーク データセット。 | Network Dataset Layer |
派生した出力
名前 | 説明 | データ タイプ |
out_network_dataset | 更新されたネットワーク データセット。 | ネットワーク データセット レイヤー |
コードのサンプル
すべてのパラメーターを使用してツールを実行します。
network = "C:/Data/Paris.gdb"
arcpy.na.BuildNetwork(network)
次の Python スクリプトは、スタンドアロン スクリプトで BuildNetwork ツールを使用する方法を示しています。
# Name: BuildNetwork_ex02.py
# Description: Build a network dataset.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
import sys
import os
import shutil
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
env.workspace = "C:/data/SanFrancisco.gdb"
#Set local variables
inNetworkDataset = "Transportation/Streets_ND"
#Build the network dataset
arcpy.BuildNetwork_na(inNetworkDataset)
#If there are any build errors, they are recorded in a BuildErrors.txt file
#present in the system temp directory. So copy this file to the directory
#containing this script
#First get the path to the system temp directory
tempDir = os.environ.get("TEMP")
if tempDir:
shutil.copy2(os.path.join(tempDir,"BuildErrors.txt"),sys.path[0])
print("Script completed successfully.")
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print("An error occurred on line %i" % tb.tb_lineno)
print(str(e))
ライセンス情報
- Basic: 次のものが必要 Network Analyst
- Standard: 次のものが必要 Network Analyst
- Advanced: 次のものが必要 Network Analyst