Construire un réseau (Network Analyst)

Synthèse

Reconstruit la connexion réseau et les informations attributaires d'un jeu de données réseau. Le jeu de données réseau doit être recréé une fois les mises à jour effectuées dans les attributs ou les entités d’une classe d’entités source participante. Une fois les entités source modifiées, l'outil établit la connectivité d'un réseau uniquement dans les zones modifiées pour accélérer le processus de construction. Toutefois, lorsque les attributs de réseau sont modifiés, l'étendue entière du jeu de données réseau est reconstruite. Cette opération peut durer plusieurs minutes avec des jeux de données réseau volumineux.

En savoir plus l’identification des mises à jour de jeux de données réseau nécessitant une reconstruction

Utilisation

  • Si des erreurs de construction sont détectées lors de la construction du réseau, un message d’avertissement apparaît. Vérifiez et résolvez ces erreurs, qui indiquent des problèmes potentiels susceptibles d’empêcher le bon fonctionnement du réseau.

    En savoir plus sur les erreurs liées à la construction du réseau

  • Avant de créer un jeu de données réseau, un verrouillage de structure exclusif est requis sur le jeu de données réseau et les classes d'entités source participants. Cela signifie que personne ne peut modifier les classes d’entités participantes. Une erreur survient s’il est impossible d’obtenir un verrouillage de structure exclusif.

Paramètres

ÉtiquetteExplicationType de données
Jeu de données réseau en entrée

Jeu de données réseau à créer.

Network Dataset Layer
Forcer la construction complète
(Facultatif)

Indique si le réseau complet est créé ou uniquement les éléments du réseau dans des zones à valider.

  • Activé - L’intégralité du réseau est créée.
  • Désactivé - Seuls les éléments du réseau qui ont été modifiés depuis la dernière construction sont créés. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Jeu de données réseau en entrée mis à jour

Jeu de données réseau mis à jour.

Network Dataset Layer

arcpy.management.BuildNetwork(in_network_dataset, {force_full_build})
NomExplicationType de données
in_network_dataset

Jeu de données réseau à créer.

Network Dataset Layer
force_full_build
(Facultatif)

Indique si le réseau complet est créé ou uniquement les éléments du réseau dans des zones à valider.

  • FORCE_FULL_BUILDL’intégralité du réseau est créée.
  • NO_FORCE_FULL_BUILDSeuls les éléments du réseau qui ont été modifiés depuis la dernière construction sont créés. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

NomExplicationType de données
out_network_dataset

Jeu de données réseau mis à jour.

Network Dataset Layer

Exemple de code

Exemple 1 d'utilisation de l'outil Construire le réseau (fenêtre Python)

Exécutez l’outil avec tous les paramètres.

network = "C:/Data/Paris.gdb/Transportation/ParisMultimodal_ND"
arcpy.na.BuildNetwork(network)
Exemple 2 d’utilisation de l’outil BuildNetwork (script autonome)

Le script Python suivant illustre l’utilisation de la fonction BuildNetwork dans un script autonome.

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