Mise à jour du paramètre d'attribut d'analyse de la couche (Network Analyst)

Résumé

Met à jour la valeur d'un paramètre d'attribut de réseau dans une couche d'analyse de réseau. Cet outil permet de mettre à jour la valeur d'un paramètre attributaire pour une couche d'analyse de réseau avant l'analyse avec l'outil Rechercher. Il garantit que l’opération d’analyse utilise la valeur spécifiée du paramètre d’attribut pour produire des résultats appropriés.

Héritage :

C'est un outil déconseillé. Plutôt que de mettre à jour individuellement les valeurs des paramètres d'attributs de votre couche d'analyse de réseau durant l'analyse, vous devriez plutôt définir les valeurs des paramètres d'attributs à l'avance en configurant les modes de déplacement sur votre source de données réseau. Pendant l'analyse, il vous suffit de choisir le mode de déplacement approprié.

Utilisation

  • Les attributs de réseau paramétrés permettent de modéliser un aspect dynamique de la valeur d'un attribut. Par exemple, un tunnel avec une restriction de hauteur de 12 pieds peut être modélisé à l'aide d'un paramètre. Dans ce cas, la hauteur du véhicule en pieds doit être spécifiée en tant que valeur de paramètre. Cette restriction est alors égale à "vrai" si la hauteur du véhicule est supérieure à 12 pieds. De la même façon, un pont peut comporter un paramètre pour spécifier une restriction de poids.

  • Cet outil doit être utilisé uniquement avec des couches d'analyse de réseau ayant des attributs de réseau avec des paramètres définis dessus.

  • Cet outil permet de modifier à plusieurs reprises la valeur d'un paramètre existant avant de résoudre une couche d'analyse de réseau.

Syntaxe

arcpy.na.UpdateAnalysisLayerAttributeParameter(in_network_analysis_layer, parameterized_attribute, attribute_parameter_name, {attribute_parameter_value})
ParamètreExplicationType de données
in_network_analysis_layer

Couche d'analyse de réseau pour laquelle la valeur du paramètre attributaire doit être mise à jour.

Network Analyst Layer
parameterized_attribute

Attribut de réseau dont le paramètre doit être mis à jour.

String
attribute_parameter_name

Paramètre de l'attribut de réseau devant être mis à jour. Les paramètres de type Objet ne peuvent pas être mis à jour à l'aide de l'outil.

String
attribute_parameter_value
(Facultatif)

Valeur à définir pour le paramètre d'attribut. Il peut s'agir d'une chaîne, d'un nombre, d'une date ou d'une valeur booléenne (vrai, faux). Si la valeur n'est pas spécifiée, la valeur du paramètre d'attribut est définie comme étant Null.

Si le paramètre attributaire a un type d'utilisation de restriction, la valeur peut être spécifiée en tant que mot clé de chaîne ou valeur numérique. Le mot-clé de chaîne ou la valeur numérique détermine si l'attribut de restriction interdit, évite ou préfère les éléments de réseau auxquels il est associé. En outre, le degré auquel les éléments de réseau sont évités ou préférés peut être défini en choisissant le mot clé HIGH, MEDIUM ou LOW. Les mots-clés suivants sont pris en charge :

  • PROHIBITED
  • AVOID_HIGH
  • AVOID_MEDIUM
  • AVOID_LOW
  • PREFER_LOW
  • PREFER_MEDIUM
  • PREFER_HIGH

Les valeurs numériques supérieures à un ont pour conséquence que les éléments restreints sont évités. Plus le nombre est élevé, plus les éléments sont évités. Les valeurs numériques entre zéro et un ont pour conséquence que les éléments restreints sont préférés. Plus le nombre est réduit, plus les éléments restreints sont préférés. Les nombres négatifs interdisent les éléments restreints.

Astuce :

Si la valeur du paramètre contient un tableau, séparez les éléments du tableau à l'aide du caractère de séparation localisé. Par exemple, aux Etats-Unis, vous utiliseriez très probablement la virgule pour séparer les éléments. Ainsi, un tableau de trois nombres pourrait avoir l'aspect suivant : "5,10,15".

String

Sortie dérivée

NomExplicationType de données
output_layer

Couche d’analyse de réseau mise à jour.

Couche Network Analyst

Exemple de code

Exemple 1 d'utilisation de l'outil Mise à jour du paramètre de l'attribut d'analyse de la couche (fenêtre Python)

Exécute l'outil avec tous les paramètres.

arcpy.na.UpdateAnalysisLayerAttributeParameter("Route", "Height Restriction",
                                               "Vehicle Height (feet)", 12.0)
Exemple 2 d'utilisation de l'outil Mise à jour du paramètre de l'attribut d'analyse de la couche (workflow)

Le script Python autonome suivant illustre l'utilisation de l'outil UpdateAnalysisLayerAttributeParameter pour trouver le meilleur itinéraire pour les camions qui évite les passages supérieurs ou les tunnels, qui évite les routes à péages et préfèrent les itinéraires spéciaux pour les camions.

# Name: UpdateAnalysisLayerAttributeParameter_Workflow.py
# Description: Use the network dataset's length and height restriction attribute
#               parameters to find a route suitable for transporting a large
#               wind turbine blade. The results are saved to a layer file.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env
import os

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
    output_dir = "C:/Data"
    #The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    #Set local variables
    input_gdb = "C:/Data/SanDiego.gdb"
    network = os.path.join(input_gdb, "Transportation", "Streets_ND")
    layer_name = "WindTurbineRoute"
    impedance = "Meters"
    restrictions = ["Driving a Truck", "Height Restriction", "Oneway",
            "Length Restriction", "National STAA and Locally Preferred Routes"]
    seaport = os.path.join(input_gdb, "Analysis", "Port")
    wind_farm = os.path.join(input_gdb, "Analysis", "WindFarm")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Make a new route layer. Use restriction attributes relevant to trucking
    #oversize loads
    result_object = arcpy.na.MakeRouteLayer(network, layer_name, impedance,
                                        restriction_attribute_name=restrictions)

    #Get the layer object from the result object. The route layer can
    #now be referenced using the layer object.
    layer_object = result_object.getOutput(0)

    #Set the vehicle height and length attribute parameters to the dimensions of
    #the wind turbine transport truck. If these dimensions exceed the limits
    #associated with a street feature, that street will be restricted, and the
    #resulting route will avoid it.
    arcpy.na.UpdateAnalysisLayerAttributeParameter(layer_object,
                        "Height Restriction", "Vehicle Height (feet)", 13.25)
    arcpy.na.UpdateAnalysisLayerAttributeParameter(layer_object,
                        "Length Restriction", "Vehicle Length (feet)", 80)

    #Load the origin and destination points as Stops in the Route
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    stops_layer_name = sublayer_names["Stops"]
    arcpy.na.AddLocations(layer_object, stops_layer_name, seaport, "", "")
    arcpy.na.AddLocations(layer_object, stops_layer_name, wind_farm, "", "",
                            append="APPEND")

    #Solve the route layer
    arcpy.na.Solve(layer_object)

    #Save the solved route layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

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

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui