VehicleRoutingProblemSolverProperties (arcpy.na)
Récapitulatif
Permet d'accéder aux propriétés d'analyse d'une couche Network Analyst de tournée de véhicules. La fonction GetSolverProperties permet d'obtenir un objet VehicleRoutingProblemSolverProperties à partir d'une couche Network Analyst de tournée de véhicules.
Discussion
L'objet VehicleRoutingProblemSolverProperties permet un accès en lecture et en écriture à toutes les propriétés d'analyse d'une couche Network Analyst de tournée de véhicules. L'objet permet de modifier les propriétés d'analyse souhaitées de la couche de tournée de véhicules, et la couche correspondante peut être analysée à nouveau en vue de déterminer les résultats appropriés. Une nouvelle couche de tournée de véhicules peut être créée à l'aide de l'outil de géotraitement Créer une couche d'optimisation des tournées de véhicules. Obtenir l'objet VehicleRoutingProblemSolverProperties à partir d'une nouvelle couche de tournée de véhicules permet de réutiliser la couche existante pour les analyses suivantes plutôt que de créer une couche pour chaque analyse, ce qui peut être un processus lent.
Une fois les propriétés de l'objet VehicleRoutingProblemSolverProperties modifiées, la couche correspondante peut être utilisée immédiatement avec d'autres fonctions et outils de géotraitement. Aucune actualisation ni mise à jour de la couche n'est requise pour respecter les changements effectués par l'intermédiaire de l'objet.
Propriétés
Propriété | Explication | Type de données |
attributeParameters (Lecture/écriture) | Permet d'obtenir ou de définir les attributs paramétrés à utiliser dans l'analyse. La propriété retourne un dictionnaire Python. La clé de dictionnaire est un tuple à deux valeurs comprenant le nom de l'attribut et le nom du paramètre. La valeur de chaque élément du dictionnaire correspond à la valeur du paramètre. 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. Si la hauteur du véhicule est supérieure à 12 pieds, cette restriction prend la valeur True, ce qui restreint le passage par le tunnel. De la même façon, un pont peut comporter un paramètre pour spécifier une restriction de poids. Toute tentative de modification de la propriété attributeParameters en place ne permet pas de mettre à jour les valeurs. Vous devez à la place toujours utiliser un nouvel objet dictionnaire pour définir des valeurs pour la propriété. Les deux blocs de code suivants montrent la différence entre ces deux approches.
| Dictionary |
capacityCount (Lecture/écriture) |
Permet d'obtenir ou de définir le nombre de dimensions de contrainte de capacité requises pour décrire les limites pertinentes des véhicules. | Integer |
defaultDate (Lecture/écriture) | Permet d'obtenir ou de définir la date implicite pour les valeurs de champs de temps dont la date n'est pas spécifiée avec l'heure. Si un champ horaire pour un objet d'ordre, tel que TimeWindowStart1, a une valeur d'heure uniquement, la date est supposée être la valeur de propriété defaultDate. Par exemple, si un ordre a une valeur TimeWindowStart1 de 9h00 et si la valeur defaultDate est définie sur datetime.date(2012, 3, 6), la valeur de temps entière pour le champ est 9h00, le 6 mars 2012. La date par défaut n'a aucun effet sur les valeurs de champs horaires qui ont déjà une date. Le jour de la semaine peut aussi être spécifié en tant que date par défaut à l'aide des dates suivantes :
Par exemple, pour spécifier que la date implicite pour les valeurs de champs horaires doit être mardi, précisez la valeur de propriété comme 1/2/1900. | DateTime |
distanceAttribute (Lecture/écriture) | Permet d'obtenir ou de définir l'attribut de coût de distance utilisé pour définir la longueur le long des éléments du réseau. | String |
distanceFieldUnits (Lecture/écriture) | Permet d'obtenir ou de définir les unités de distance utilisées par les champs de distance des sous-couches et des tables de la couche d'analyse (classes d'analyse de réseau). L'unité n'a pas besoin d'être la même que celle de l'attribut de coût de réseau spécifiée en tant que valeur de propriété timeAttribute. Voici une liste des valeurs possibles :
| String |
excessTransitTimeImportance (Lecture/écriture) | Permet d'obtenir ou définir l'importance de la réduction du temps de transit excessif. Le temps de transit excessif correspond à la quantité de temps dépassant le temps nécessaire pour effectuer le trajet direct entre une paire d'ordres. Le temps excessif découle de pauses ou de trajets vers d'autres ordres ou dépôts entres des visites à des ordres appariés. Voici une liste des valeurs possibles :
| String |
outputPathShape (Lecture/écriture) | Permet d'obtenir ou de définir le type de forme pour les entités d'itinéraires générées en sortie par le solveur. Voici une liste des valeurs possibles :
| String |
restrictions (Lecture/écriture) | Permet d'obtenir ou de définir une liste des attributs de restriction appliqués pour l'analyse. Une liste vide, [], indique qu'aucun attribut de restriction n'est utilisé pour l'analyse. | String |
solverName (Lecture seule) |
Renvoie le nom du solveur qui est référencé par la couche ArcGIS Network Analyst utilisée pour obtenir l'objet des propriétés du solveur. La propriété renvoie toujours la valeur de chaîne Solveur de tournée de véhicules lorsque l'accès se fait à partir d'un objet VehicleRoutingProblemSolverProperties. | String |
timeAttribute (Lecture/écriture) | Permet d'obtenir ou de définir l'attribut de coût de réseau basé sur le temps utilisé pour définir le temps de traversée des éléments du réseau. Cet attribut de coût est réduit au minimum par le solveur lorsqu'il recherche la solution. | String |
timeFieldUnits (Lecture/écriture) | Permet d'obtenir ou de définir l'unité de temps utilisée par les champs temporels des sous-couches et des tables de la couche d'analyse (classes d'analyse de réseau). L'unité n'a pas besoin d'être la même que celle de l'attribut de coût de réseau spécifiée en tant que valeur de propriété timeAttribute. Voici une liste des valeurs possibles :
| String |
timeWindowViolationImportance (Lecture/écriture) | Permet d'obtenir ou de définir l'importance du respect des fenêtres horaire sans entraîner de violations. Une infraction de fenêtre horaire se produit quand un itinéraire arrive à un ordre, un dépôt ou une borne après la fermeture d'une fenêtre horaire. La violation est le laps de temps écoulé entre la fin de la fenêtre horaire et l'heure d'arrivée d'une tournée. Voici une liste des valeurs possibles :
| String |
useHierarchy (Lecture/écriture) | Contrôle l'utilisation de l'attribut de hiérarchie lors de l'analyse. Voici une liste des valeurs possibles :
| String |
uTurns (Lecture/écriture) | Permet d'obtenir ou de définir la stratégie qui indique comment les demi-tours aux jonctions qui pourraient survenir pendant la traversée du réseau entre différents arrêts sont gérés par le solveur. Voici une liste des valeurs possibles :
| String |
Exemple de code
Le script indique comment mettre à jour les propriétés Attribut de distance, Date par défaut, Demi-tours aux jonctions et Type de forme en sortie pour une couche de tournée de véhicules existante dans la table des matières d'ArcMap. Il suppose qu'une couche de tournée de véhicules appelée Itinéraires de livraison des magasins a été créée dans un nouveau document ArcMap d'après le jeu de données réseau du didacticiel pour la région de San Francisco.
#Get the vehicle routing problem layer object from a layer named
#"Store Delivery Routes" in the table of contents
vrpLayer = arcpy.mapping.Layer("Store Delivery Routes")
#Get the solver properties object from the vehicle routing problem layer
solverProps = arcpy.na.GetSolverProperties(vrpLayer)
#Update the properties for the vehicle routing problem layer using the
#solver properties object
solverProps.distanceAttribute = "Meters"
#Set the default date to be Monday
solverProps.defaultDate = datetime.date(1900,1,1)
solverProps.uTurns = "NO_UTURNS"
solverProps.outputPathShape = "STRAIGHT_LINES"