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

Niveau de licence :BasicStandardAdvanced

Récapitulatif

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.

Utilisation

Syntaxe

UpdateAnalysisLayerAttributeParameter_na (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.

AstuceAstuce:

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

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.

import arcpy
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 Mise à jour du paramètre de l'attribut d'analyse de la couche 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: Find the best route for trucks that avoids low clearance 
#              overpasses or tunnels, avoids toll roads and prefers desginated
#              truck routes. The results are saved to a layer file.
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/SanDiego.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayerName = "BestTruckRoute"
    impedanceAttribute = "TravelTime"
    accumulateAttribute = ['Meters']
    tollRoadRestriction = "Avoid Toll Roads"
    preferTruckRouteRestriction = "National STAA Preferred Route"
    parameterName = "Restriction Usage"
    inStops = "Analysis/Customers"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Make a new route layer. Along with the total travel time, we also want to
    #find out the total distance. So we accumulate "Meters" attribute. We will
    #create the route layer with defaultrestrictions and add the additional 
    #restrictions that we want the routes to honor.
    outNALayer = arcpy.na.MakeRouteLayer(inNetworkDataset, outNALayerName,
                                         impedanceAttribute, "", "", "",
                                         accumulateAttribute,"NO_UTURNS")
    #Get the layer object from the result object. The route layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the route layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    stopsLayerName = subLayerNames["Stops"]
    
    #Modify the restriction attributes for the route layer. We don't want to use
    #Driving an Automobile restriction and wan't to use Driving a Truck,
    #Avoid Toll Roads and National STAA Preferred Route restrictions.
    solverProperties = arcpy.na.GetSolverProperties(outNALayer)
    defaultRestrictions = solverProperties.restrictions
    defaultRestrictions.remove("Driving an Automobile")
    defaultRestrictions += ["Driving a Truck", tollRoadRestriction,
                            preferTruckRouteRestriction]
    solverProperties.restrictions = defaultRestrictions
    
    #Load the Delivery locations as stops using default field mappings
    arcpy.na.AddLocations(outNALayer, stopsLayerName, inStops, "", "")
    
    #As we wish avoid toll roads as much as possible and highly prefer the 
    #designated turck routes, we set the appropriate parameter values for the 
    #Restriction Usage parameter for these two restriction attributes.
    arcpy.na.UpdateAnalysisLayerAttributeParameter(outNALayer, tollRoadRestriction,
                                                   parameterName, "AVOID_HIGH")
    arcpy.na.UpdateAnalysisLayerAttributeParameter(outNALayer,
                                                   preferTruckRouteRestriction,
                                                   parameterName, "PREFER_HIGH")
    
    #Solve the route layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved route layer as a layer file on disk using relative paths
    arcpy.management.SaveToLayerFile(outNALayer,outLayerFile,"RELATIVE")
    
    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 occured on line %i" % tb.tb_lineno
    print str(e)

Environnements

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic: Oui
ArcGIS for Desktop Standard: Oui
ArcGIS for Desktop Advanced: Oui
5/10/2014