Mise à jour du paramètre d’attribut d’analyse de la couche (ArcGIS Network Analyst)
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
-
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.
-
Les nouveaux paramètres attributaires peuvent être créés à partir de la boîte de dialogue des propriétés de jeu de données réseau dans la fenêtre Catalogue ou dans ArcCatalog.
Syntaxe
Paramètre | Explication | Type 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 :
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 |
Exemple de code
Exécute l'outil avec tous les paramètres.
import arcpy
arcpy.na.UpdateAnalysisLayerAttributeParameter("Route", "Height Restriction",
"Vehicle Height (feet)", 12.0)
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)