Résumé
L'outil Résoudre emplacement-allocation choisit les meilleurs emplacements ou les meilleures allocations dans un ensemble d'emplacements en entrée.
Les entrées de cet outil comprennent les ressources, qui fournissent des biens ou des services, et les points de demande, qui consomment ces biens et services. L'objectif est de localiser les ressources qui approvisionnent le plus efficacement les points de demande. L'outil résout ce problème en analysant les différentes façons dont les points de demande peuvent être alloués aux différentes ressources. La solution est le scénario qui alloue la plus grande demande aux ressources et qui réduit le plus possible le déplacement global. La sortie comprend les ressources de la solution, les points de demande associés à leurs ressources allouées et les lignes reliant les points de demande à leurs ressources.
L'outil emplacement-allocation peut être configuré de manière à résoudre les types de problèmes spécifiques. Voici quelques exemples :
Une chaîne commerciale souhaite voir quels emplacement potentiels de points de vente elle doit développer afin d'attirer 10 % du marché dans la région.
Un service incendie souhaite déterminer les endroits où déployer des casernes afin de couvrir 90 % d'une communauté dans un délai de réaction de quatre minutes.
Un commissariat de police veut prépositionner du personnel en fonction de l'activité criminelle nocturne passée.
Après une tempête, une agence de réponse aux catastrophes souhaite trouver les meilleurs emplacements pour mettre en place des ressources de triage, dotés d'une capacité d'accueil des patients limitée, afin de soigner la population affectée.
Illustration
Utilisation
L'outil choisit les meilleures ressources en fonction du temps de trajet si la valeur du paramètre Unités de mesure est temporelle. Il utilise la distance de trajet si les unités de mesure reposent sur la distance.
Vous devez spécifier au moins une ressource et un point de demande pour exécuter l'outil. Vous pouvez charger jusqu'à 1,000 ressources et 10,000 points de demande.
Vous pouvez ajouter jusqu'à 250 interruptions ponctuelles. Vous pouvez ajouter autant d'interruptions linéaires ou surfaciques que vous voulez, mais les interruptions linéaires ne peuvent pas intersecter plus de 500 entités rues et les interruptions surfaciques ne peuvent pas intersecter plus de 2,000 entités.
Vous pouvez utiliser la hiérarchie routière lors de la résolution d'un problème afin de générer les résultats plus rapidement, mais la solution risque d'être moins optimale.
Que le paramètre Utiliser la hiérarchie soit activé (True) ou non, la hiérarchie est toujours utilisée lorsque la distance en ligne droite entre des paires d'entités représentant des points de demande ou des ressources est supérieure à 50 miles (80,46 kilomètres).
La distance en ligne droite entre des paires d'entités représentant des points de demande ou des ressources ne peut pas être supérieure à 50 miles (80,46 kilomètres) lorsque le Mode de déplacement est défini à la valeur Marche ou lorsqu'il est défini à la valeur Personnalisé et que la restriction Marche est utilisée.
Si la distance entre un point en entrée et sa rue traversable la plus proche est supérieure à 12,42 miles (20 kilomètres), le point est exclus de l'analyse.
Cet outil est conçu pour s'exécuter dans ArcGIS Pro, ArcMap, ArcGlobe et ArcScene, mais pas dans ArcCatalog.
Syntaxe
SolveLocationAllocation_naagol (Facilities, Demand_Points, {Analysis_Region}, Measurement_Units, {Problem_Type}, {Number_of_Facilities_to_Find}, {Default_Measurement_Cutoff}, {Default_Capacity}, {Target_Market_Share}, {Measurement_Transformation_Model}, {Measurement_Transformation_Factor}, {Travel_Direction}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_at_Junctions}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Use_Hierarchy}, {Restrictions}, {Attribute_Parameter_Values}, {Allocation_Line_Shape}, {Travel_Mode}, {Impedance})
Paramètre | Explication | Type de données |
Facilities | Indiquez une ou plusieurs ressources (1,000 au maximum). L'outil choisit les meilleurs emplacements dans l'ensemble de ressources que vous spécifiez ici. Lors d'une analyse de la concurrence, au cours de laquelle vous tentez de localiser les meilleurs emplacements par rapport aux concurrents, les ressources de ces derniers sont également spécifiées ici. Lorsque vous définissez les ressources, vous pouvez définir des propriétés pour chacune, comme le nom ou le type de la ressource, en utilisant des attributs. Vous pouvez spécifier des ressources grâce aux champs suivants : Name : nom de la ressource. Le nom est compris dans celui des lignes d'allocation en sortie si la ressource fait partie de la solution. FacilityType : spécifie si la ressource est une ressource candidate, requise ou concurrente. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :
Weight : pondération relative de la ressource, utilisée pour mesurer l'attractivité, le caractère désirable ou la compensation d'une ressource comparée à un autre. Par exemple, une valeur de 2,0 pourrait obtenir la préférence des clients qui préfèrent, avec un rapport de 2 à 1, faire les courses dans une ressource plutôt que dans une autre. Les facteurs pouvant affecter la pondération de ressource comprennent la surface, le voisinage et l'âge du bâtiment. Les valeurs de pondération autres que 1 sont respectées uniquement par les types de problème Optimiser la part de marché et Part de marché cible. Elles sont ignorées par les autres types de problème. Capacity : le champ Capacity est spécifique au type de problème Optimiser la couverture de capacité ; les autres types de problème ignorent ce champ. La capacité spécifie la proportion de demande pondérée que la ressource peut fournir. Aucune demande excessive n'est allouée à une ressource, même si cette demande se situe dans la limite de mesure par défaut. Toute valeur attribuée au champ Capacity remplace le paramètre Capacité par défaut ( Default_Capacity dans Python) pour la ressource donnée. CurbApproach : spécifie la direction selon laquelle un véhicule peut atteindre ou quitter la ressource. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :
La propriété CurbApproach est conçue pour fonctionner avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux Etats-Unis) et circulation à gauche (Royaume-Uni). Tout d'abord, imaginons une ressource qui se trouve du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder la ressource du côté droit ou du côté gauche du véhicule. Par exemple, si vous souhaitez atteindre une ressource sans laisser une voie de circulation entre le véhicule et l'incident, vous choisissez Côté droit du véhicule (1) en France et aux États-Unis, mais Côté gauche du véhicule (2) au Royaume-Uni. | Feature Set |
Demand_Points |
Indiquez un ou plusieurs points de demande (10,000 au maximum). L'outil choisit les meilleures ressources en grande partie selon la façon dont elles desservent les points de demande spécifiés ici. Lorsque vous définissez les points de demande, vous pouvez définir des propriétés pour chacun, comme le nom ou la pondération du point de demande, en utilisant des attributs. Les points de demande peuvent être spécifiés grâce aux champs suivants : Name : nom du point de demande. Le nom est compris dans celui d'une ou de plusieurs lignes d'allocation en sortie si le point de demande fait partie de la solution. GroupName : nom du groupe dont le point de demande fait partie. Cette propriété est ignorée pour les types de problème Optimiser la couverture de capacité, Part de marché cible et Optimiser la part de marché. Si les points de demande partagent un nom de groupe, le solveur alloue tous les membres du groupe à la même ressource. (Si des contraintes, telles qu'une distance limite, empêchent l'un des points de demande du groupe d'atteindre la même ressource, aucun des points de demande n'est alloué.) Weight : pondération relative du point de demande. Une valeur de 2,0 indique que le point de demande est deux fois plus important qu'un point de demande avec une pondération de 1,0. Si les points de demande représentent des ménages, la pondération pourrait indiquer le nombre de personnes au sein de chaque foyer. Cutoff_Time : le point de demande ne peut pas être alloué à une ressource située au-delà du temps de trajet indiqué ici. La valeur de ce champ remplace la valeur du paramètre Limite de mesure par défaut. Les unités de cette valeur attributaire sont spécifiées dans le paramètre Unités de mesure. La valeur attributaire est référencée pendant l'analyse uniquement lorsque les unités de mesure sont temporelles. La valeur pas défaut est null, ce qui implique l'absence de limite de remplacement. Cutoff_Distance : le point de demande ne peut pas être alloué à une ressource située au-delà de la distance de trajet indiquée ici. La valeur de ce champ remplace la valeur du paramètre Limite de mesure par défaut. Les unités de cette valeur attributaire sont spécifiées dans le paramètre Unités de mesure. La valeur attributaire est référencée pendant l'analyse uniquement lorsque les unités de mesure sont basées sur la distance. La valeur pas défaut est null, ce qui implique l'absence de limite de remplacement. CurbApproach : spécifie la direction dans laquelle un véhicule peut atteindre et quitter le point de demande. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :
La propriété CurbApproach est conçue pour fonctionner avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux Etats-Unis) et circulation à gauche (Royaume-Uni). Tout d'abord, imaginons un point de demande situé du côté gauche d'un véhicule. Il se situe toujours sur la gauche, que le véhicule circule du côté gauche ou du côté droit de la route. Avec les normes de conduite nationales, ce qui peut changer est votre décision d'aborder un point de demande du côté droit ou du côté gauche du véhicule. Par exemple, si vous souhaitez atteindre un point de demande sans laisser une voie de circulation entre le véhicule et le point de demande, vous choisissez Côté droit du véhicule (1) en France et aux États-Unis, mais Côté gauche du véhicule (2) au Royaume-Uni. | Feature Set |
Analysis_Region (Facultatif) | Indiquez la région dans laquelle effectuer l'analyse. Si aucune valeur n'est spécifiée pour ce paramètre, l'outil calcule automatiquement le nom de la région en fonction de l'emplacement des points en entrée. Il est recommandé de définir le nom de la région afin d'accélérer l'exécution de l'outil. Pour indiquer une région, utilisez l'une des valeurs suivantes :
| String |
Measurement_Units | Précisez les unités que vous souhaitez utiliser pour mesurer les temps ou distances de trajet entre des points de demande et des ressources. L'outil choisit les meilleures ressources selon celles qui peuvent atteindre, ou être atteintes par, la plus grande quantité de demande pondérée dans le plus faible temps de trajet. Les lignes d'allocation en sortie indiquent la distance ou le temps de trajet dans des unités différentes, notamment les unités que vous spécifiez pour ce paramètre. Les choix possibles sont les suivants
| String |
Problem_Type (Facultatif) | Spécifie l'objectif de l'analyse d'emplacement-allocation. L'objectif par défaut est la réduction de l'impédance.
| String |
Number_of_Facilities_to_Find (Facultatif) | Indique le nombre de ressources que le solveur doit choisir. La valeur par défaut est 1. Les ressources dont la valeur du champ FacilityType est égale à 1 (Requise) sont toujours choisies en premier. Toute ressource en excédent à choisir est sélectionnée parmi les ressources candidates, qui possèdent un champ FacilityType de valeur 2. Toute ressource ayant une propriété FacilityType de valeur 3 (Choisi) avant le calcul est traitée comme les ressources candidates lors de la recherche. Si le nombre de ressources à trouver est inférieur au nombre minimal de ressources requises, une erreur survient. Nombre de ressources à rechercher est désactivée pour les types de problèmes Minimiser les ressources et Part de marché cible, puisque le solveur détermine le nombre minimal de ressources nécessaire pour remplir les objectifs. | Long |
Default_Measurement_Cutoff (Facultatif) | Spécifie le temps ou la distance de trajet maximal(e) allouée entre un point de demande et la ressource à laquelle il est alloué. Si un point de demande se trouve à l'extérieur de la limite d'une ressource, il ne peut pas être alloué à cette ressource. La valeur pas défaut est Aucun, ce qui implique que la limite ne s'applique pas. Les unités de ce paramètre sont les mêmes que celles spécifiées par le paramètre Unités de mesure. Le temps de trajet ou la limite de distance se mesure par le plus court chemin le long des routes. Cette propriété peut permettre de modéliser la distance maximale que les gens sont disposés à parcourir pour accéder aux magasins ou la durée maximale autorisée pour un service des pompiers pour atteindre toute personne de la communauté. Notez que les points de demande ont des champs Cutoff_Time et Cutoff_Distance qui, s'ils sont paramétrés en conséquence, remplacent le paramètre Limite de mesure par défaut. Vous pouvez par exemple déterminer que les habitants des zones rurales sont disposés à voyager jusqu'à 10 miles pour atteindre une ressource alors que les citadins sont uniquement disposés à voyager jusqu'à 2 miles. Supposant que Unités de mesure est défini en Miles, vous pouvez modéliser ce comportement en définissant la limite de mesure par défaut à 10 et la valeur du champ Cutoff_Distance des points de demande à 2 dans les zones urbaines. | Double |
Default_Capacity (Facultatif) | Cette propriété est spécifique au type de problème Optimiser la couverture de capacité. Il s'agit de la capacité par défaut attribuée à toutes les ressources de l'analyse. Vous pouvez remplacer la capacité par défaut d'une ressource en spécifiant une valeur dans le champ Capacity. La valeur par défaut est 1. | Double |
Target_Market_Share (Facultatif) | Ce paramètre est spécifique au type de problème Part de marché cible. Il s'agit du pourcentage de la pondération de demande totale que vous voulez que les ressources choisies et requises capturent. Le solveur sélectionne le nombre minimal de ressources nécessaire pour capturer la part de marché cible spécifiée ici. La valeur par défaut est 10 pour cent. | Double |
Measurement_Transformation_Model (Facultatif) | Définit l'équation pour la transformation du coût du réseau entre les ressources et les points de demande. Cette propriété, associée avec le Paramètre d'impédance spécifie l'influence de l'impédance du réseau entre les ressources et les points de demande sur le choix de ressources du solveur. Dans la liste d'options de transformation suivante, d désigne les points de demande et f les ressources. Le mot « impédance » désigne la distance ou le temps de trajet le plus court entre deux emplacements. Par conséquent, impedancedf est le plus court chemin (en temps ou distance) entre le point de demande d et la ressource f, et costdf le temps ou la distance de trajet transformé(e) entre la ressource et le point de demande. Le symbole lambda (λ) représente le paramètre d'impédance. Le paramètre Unités de mesure détermine si le temps ou la distance de trajet est analysé.
| String |
Measurement_Transformation_Factor (Facultatif) | Fournit une valeur de paramètre aux équations spécifiées dans le paramètre Modèle de transformation de mesure. La valeur de paramètre est ignorée lorsque la transformation d'impédance est de type linéaire. Pour les transformations d'impédance de puissance et exponentielles, la valeur doit être non nulle. La valeur par défaut est 1. | Double |
Travel_Direction (Facultatif) | Spécifie s'il convient de mesurer les temps ou distances de trajet des ressources aux points de demande ou inversement. La valeur par défaut est la mesure des ressources vers les points de demande.
Les temps et distances de trajet peuvent changer selon la direction de déplacement. Si, entre un point A et un point B, la circulation est moins dense ou le chemin est plus court, en raison de rues à sens unique et d'interdiction de tourner, que si vous vous déplaciez dans la direction inverse. Par exemple, le déplacement entre un point A et un point B peut prendre seulement 10 minutes, et 15 minutes dans la direction inverse. Ces mesures divergentes peuvent avoir une incidence sur les points de demande qui peuvent être attribués à telle ou telle ressources en raison de limites ou, dans les types de problème où la demande est répartie, avoir une incidence sur la quantité de demande qui est capturée. Les services des pompiers mesurent en général des ressources vers les points de demande, car ils s'intéressent à la durée du trajet de la caserne de pompiers à l'emplacement de l'urgence. Un point de vente s'intéresse plus au temps nécessaire aux acheteurs pour atteindre le magasin ; par conséquent, les magasins mesurent en général des points de demande vers les ressources. Feuille de route détermine également la signification de l'heure de début quelconque qui est fournie. Reportez-vous au paramètre Heure du jour pour plus d'informations. | String |
Time_of_Day (Facultatif) | Définissez l'heure à laquelle le trajet commence. Cette propriété est ignorée si les Unités de mesures ne sont pas temporelles. La valeur par défaut est ni temps ni date. Si l'Heure du jour n'est pas précisée, le solveur fait appel à des vitesses génériques, généralement celles provenant des limites de vitesse publiées. Dans la réalité, la circulation évolue constamment, et lorsqu'elle change, les temps de trajet entre ressources et points de demande fluctuent également. Par conséquent, le fait d'indiquer des valeurs de temps et de date différentes sur plusieurs analyses peut avoir une incidence sur la façon dont la demande est allouée aux ressources et sur les ressources choisies dans les résultats. L'heure du jour indique toujours une heure de départ. Cependant, le déplacement peut débuter à une ressource ou un point de demande ; cela dépend de votre choix pour le paramètre Feuille de route. Le paramètre Fuseau horaire de l'heure de la journée spécifie si cette heure et cette date correspondent à l'heure UTC ou au fuseau horaire dans lequel la ressource ou le point de demande se trouve. | Date |
Time_Zone_for_Time_of_Day (Facultatif) | Spécifie le fuseau horaire du paramètre Heure du jour. La valeur par défaut est géographiquement local.
Quel que soit le paramètre Fuseau horaire de l'heure de la journée, l'outil applique les règles suivantes si vos ressources et points de demande sont dans plusieurs fuseaux horaires :
| String |
UTurn_at_Junctions (Facultatif) | Règle de demi-tour aux jonctions. L'autorisation des demi-tours implique que le solveur puisse faire demi-tour au niveau d'une jonction et revenir en arrière par la même rue. Dans la mesure où les jonctions représentent des intersections de rues et des voies sans issue, différents véhicules peuvent faire demi-tour à certaines jonctions mais pas à d'autres, selon que la jonction représente une intersection ou une voie sans issue. Pour en tenir compte, le paramètre de règle de demi-tour est spécifié implicitement par le nombre de tronçons connectés, ou de rues, à la jonction, également connu sous le nom de « valence de jonction ». Les valeurs acceptables pour ce paramètre sont répertoriées ci-dessous ; chacune est suivie d'une description de sa signification en termes de valence de jonction.
Ce paramètre est ignoré, sauf si le paramètre Mode de déplacement est défini sur Personnalisé. | String |
Point_Barriers (Facultatif) |
Spécifiez un ou plusieurs points devant servir de restrictions temporaires ou représentant un délai ou une distance supplémentaire risquant d'être nécessaire pour se déplacer dans les rues sous-jacentes. Par exemple, une interruption ponctuelle peut servir à représenter un arbre tombé dans une rue ou le temps d'attente à un passage à niveau. L'outil impose une limite de 250 points à ajouter comme interruptions. Vous pouvez définir les propriétés des interruptions ponctuelles que vous spécifiez, comme leur nom ou type d'interruption, en utilisant des attributs. Vous pouvez spécifier les interruptions ponctuelles avec les attributs suivants : Name : nom de l'interruption. BarrierType : spécifie si l'interruption ponctuelle restreint complètement la circulation ou ajoute un délai ou une distance lorsqu'elle est traversée. La valeur de cet attribut peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :
Additional_Time : indique le temps de trajet ajouté lorsque l'interruption est franchie. Ce champ est actif uniquement pour les interruptions à coût ajouté et uniquement si les unités de mesure sont temporelles. Cette valeur de champ doit être supérieure ou égale à zéro et ses unités identiques à celles spécifiées dans le paramètre Unités de mesure. Additional_Distance : indique la distance ajoutée lorsque l'interruption est franchie. Ce champ est actif uniquement pour les interruptions à coût ajouté et uniquement si les unités de mesure sont basées sur la distance. La valeur de champ doit être supérieure ou égale à zéro et ses unités identiques à celles spécifiées dans le paramètre Unités de mesure. | Feature Set |
Line_Barriers (Facultatif) | Spécifiez une ou plusieurs lignes interdisant la circulation partout où les lignes intersectent les rues. Par exemple, un défilé ou une manifestation qui bloque la circulation sur plusieurs segments de rue peut être modélisé avec une interruption linéaire. Une interruption linéaire peut également délimiter rapidement un périmètre autour de plusieurs routes et filtrer ainsi les itinéraires possibles en évitant les parties indésirables du réseau de transport. L'outil impose une limite au nombre de rues que vous pouvez restreindre à l'aide du paramètre des interruptions linéaires. Bien qu'aucune limite ne soit imposée au nombre de lignes que vous pouvez spécifier comme interruptions linéaires, le nombre combiné de rues intersectées par toutes les lignes ne peut pas dépasser 500. Vous pouvez définir une propriété de nom pour les interruptions linéaires que vous spécifiez en utilisant les attributs suivants : Name : nom de l'interruption. | Feature Set |
Polygon_Barriers (Facultatif) |
Spécifiez les polygones qui restreignent entièrement la circulation ou adaptez proportionnellement le temps ou la distance nécessaire pour se déplacer dans les rues intersectées par les polygones. Le service impose une limite au nombre de rues que vous pouvez restreindre à l'aide du paramètre des interruptions polygonales. Bien qu'aucune limite ne soit imposée au nombre de polygones que vous pouvez spécifier comme interruptions polygonales, le nombre combiné de rues intersectées par tous les polygones ne doit pas dépasser 2,000. Vous pouvez définir les propriétés des interruptions polygonales que vous spécifiez, comme leur nom ou type d'interruption, en utilisant des attributs. Vous pouvez spécifier les interruptions polygonales avec les attributs suivants : Name : nom de l'interruption. BarrierType : spécifie si l'interruption restreint complètement la circulation ou adapte le temps ou la distance de déplacement lorsqu'elle est traversée. Le champ peut prendre l'une des valeurs entières suivantes (utilisez le code numérique, pas le nom de l'option fourni entre parenthèses) :
ScaledTimeFactor : il s'agit du facteur de multiplication du temps de trajet des rues intersectées par l'interruption. Ce champ est actif uniquement pour les interruptions à coût proportionné et uniquement si les unités de mesure sont temporelles. La valeur du champ doit être supérieure à zéro. ScaledDistanceFactor : il s'agit du facteur de multiplication de la distance des rues intersectées par l'interruption. Cet attribut est actif uniquement pour les interruptions à coût proportionné et uniquement si les unités de mesure sont basées sur la distance. La valeur de l'attribut doit être supérieure à zéro. | Feature Set |
Use_Hierarchy (Facultatif) | Indiquez si vous souhaitez utiliser une hiérarchie lorsque vous recherchez le plus court chemin entre les ressources et les points de demande.
L'outil utilise automatiquement la hiérarchie si la distance en ligne droite entre les ressources et les points de demande est supérieure à 50 milles (80 km), même si ce paramètre indique qu'il ne faut pas utiliser de hiérarchie. | Boolean |
Restrictions (Facultatif) |
Indiquez les restrictions qui doivent être respectées par l'outil lorsque vous recherchez les meilleurs itinéraires entre les ressources et les points de demande. Une restriction représente une préférence ou une exigence relative à un trajet. Dans la plupart des cas, les restrictions sont utilisées pour interdire certaines routes. Par exemple, la restriction Eviter les routes à péage permet d'obtenir un itinéraire qui n'inclut les routes à péage que lorsque cela est strictement inévitable pour visiter un incident ou une ressource. Restriction de hauteur permet de contourner les dégagements qui sont inférieurs à la hauteur de votre véhicule. Si vous transportez des matières corrosives dans votre véhicule, l'utilisation de la restriction Substances dangereuses interdites empêche le transport de ces matériaux sur les routes qui l'interdisent. Voici une liste des restrictions disponibles, ainsi qu'une brève description. L'outil prend en charge les restrictions suivantes :
| String |
Attribute_Parameter_Values (Facultatif) | Spécifiez les valeurs supplémentaires requises par certaines restrictions, telles que le poids d'un véhicule en cas de restriction de poids. Vous pouvez également faire appel au paramètre d'attribut pour spécifier si la restriction interdit, évite ou préfère la circulation sur des routes qui utilisent la restriction. Si la restriction consiste à éviter ou à préférer certaines routes, vous pouvez utiliser ce paramètre pour préciser le degré d'évitement ou de préférence. Par exemple, vous pouvez choisir de ne jamais emprunter de routes à péage, de les éviter autant que possible ou même de les préférer. Si vous spécifiez le paramètre Valeurs des paramètres d’attributs d'une classe d'entités, les noms de champs sur la classe d'entités doivent correspondre aux champs, comme suit : AttributeName : nom de la restriction. ParameterName : nom du paramètre associé à la restriction. Une restriction peut avoir une ou plusieurs valeurs de champs ParameterName selon l'utilisation prévue. ParameterValue : valeur de ParameterName utilisée par l'outil lors de l'évaluation de la restriction. Le paramètre Valeurs des paramètres d'attributs dépend du paramètre Restrictions. Le champ ParameterValue s'applique uniquement si le nom de la restriction est spécifié comme valeur du paramètre Restrictions. Dans le paramètre Valeurs des paramètres d'attributs, chaque restriction (affichée sous la forme AttributeName) se voit attribuer une valeur de champ ParameterName "Utilisation d'une restriction" qui détermine si la restriction interdit, évite ou préfère la circulation sur les routes associées à la restriction et précise le degré d'évitement ou de préférence des routes. Le champ ParameterName "Utilisation d'une restriction" peut se voir attribuer l'une des valeurs de chaîne suivantes ou leurs valeurs numériques équivalentes affichées entre parenthèses :
Dans la plupart des cas, vous pouvez utiliser la valeur PROHIBITED par défaut pour le paramètre Utilisation d'une restriction si la restriction dépend d'une caractéristique du véhicule, telle que sa hauteur. Toutefois, dans certains cas, la valeur du paramètre Utilisation d'une restriction dépend de vos préférences d'itinéraire. Par exemple, pour le paramètre Utilisation d'une restriction, la valeur par défaut de la restriction Eviter les routes à péage est AVOID_MEDIUM. Cela signifie que lorsque cette restriction est utilisée, l'outil essaie de contourner les routes à péage, dans la mesure du possible. AVOID_MEDIUM indique également l'importance d'éviter les routes à péage lorsque vous recherchez le meilleur itinéraire : dans ce cas, la priorité est moyenne. Si vous choisissez AVOID_LOW, il n'est pas important d'éviter les routes à péage ; la sélection de AVOID_HIGH, en revanche, donne une grande importance à ce choix et justifie ainsi la génération par le service d'itinéraires plus longs afin d'éviter les péages. Si vous optez pour PROHIBITED, vous interdisez formellement la circulation sur des routes à péage, ce qui rend impossible la fréquentation d'un tronçon d'une route à péage dans la préparation de l'itinéraire. Gardez à l'esprit que l'évitement ou l'interdiction de routes à péage, et donc l'évitement du paiement de péages, peut constituer un objectif dans certains cas ; en revanche, d'autres préféreront circuler sur des routes à péage, car il leur apparaît plus important d'éviter les embouteillages plutôt que d'économiser sur les coûts de péage. Dans ce dernier cas, vous devez choisir PREFER_LOW, PREFER_MEDIUM ou PREFER_HIGH comme valeur du paramètre Utilisation d'une restriction. Plus la préférence est élevée, plus l'outil devra dévier de son trajet afin d'autoriser la circulation sur les routes associées à la restriction. | Record Set |
Allocation_Line_Shape (Facultatif) | La valeur par défaut est les lignes droites en sortie. Spécifiez le type des entités linéaires générées par l'outil. Le paramètre accepte l’une des valeurs suivantes :
Quelle que soit la valeur que vous choisissez pour le paramètre Forme de ligne d'allocation, l'itinéraire le plus court est toujours déterminé en minimisant le temps ou la distance du trajet, sans jamais utiliser la distance en ligne droite entre les points de demande et les ressources. C'est-à-dire que ce paramètre change uniquement les formes de lignes en sortie, il ne modifie pas la méthode de mesure. | String |
Travel_Mode (Facultatif) | Choisissez le mode de transport à modéliser dans l'analyse.
Pour modéliser un mode de déplacement par camion personnalisé, suivez la procédure ci-dessous.
Pour modéliser un piéton avec une configuration d'itinéraire particulière, suivez la même procédure que pour configurer un mode de déplacement par camion personnalisé, mais avec les différences suivantes :
| String |
Impedance (Facultatif) | Spécifiez l'impédance. Il s'agit d'une valeur représentant l'effort ou le coût de déplacement le long des segments de route ou sur d'autres portions du réseau de transport. La distance à parcourir est une impédance ; la longueur d'une route en kilomètres peut être considérée comme une impédance. En ce sens, la distance à parcourir est la même pour tous les modes : un kilomètre pour un piéton est également un kilomètre pour une voiture. (Ce qui peut changer, ce sont les voies d'accès que les différents modes sont autorisés à emprunter. Cela affecte la distance entre les points et est modélisé par les paramètres du mode de déplacement.) Le temps de trajet peut également être une impédance : une voiture peut mettre une minute à parcourir un mile sur une route déserte. Les temps de trajet peuvent varier selon le mode de déplacement : un piéton peut mettre plus de 20 minutes à parcourir le même mile. Il est par conséquent important de choisir l'impédance appropriée au mode de déplacement que vous modélisez. Choisissez une des valeurs d'impédance suivantes :
La valeur que vous indiquez pour ce paramètre est ignorée, sauf si le paramètre Mode de déplacement est défini sur Personnalisé, qui est la valeur par défaut. Si vous choisissez Temps de trajet, Durée du trajet pour camions ou Durée du trajet à pied, le paramètre Unités de mesure doit être défini sur une valeur temporelle. Si vous choisissez Distance à parcourir pour Impédance, le paramètre Unités de mesure doit être basé sur la distance. | String |
Exemple de code
Exemple d'utilisation de Résoudre emplacement-allocation
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil Résoudre emplacement-allocation dans un script.
import arcpy
import time
import sys
username = "<your user name>"
password = "<your password>"
LA_service = "http://logistics.arcgis.com/arcgis/services;World/LocationAllocation;{0};{1}".format(username, password)
#Add the geoprocessing service as a toolbox. Use an alias when importing
arcpy.ImportToolbox(LA_service, "agol")
#Set the variables to call the tool
facilities = r'C:/data/Inputs.gdb/Stores'
demandPoints = r'C:/data/Inputs.gdb/Customers'
output_lines = r'C:/data/Results.gdb/Lines'
output_facilities = r'C:/data/Results.gdb/Facilities'
output_demandPoints = r'C:/data/Results.gdb/DemandPoints'
#Call the tool
result = arcpy.agol.SolveLocationAllocation(facilities, demandPoints, "Minutes",
Problem_Type="Maximize Attendance",
Number_of_Facilities_to_Find=2,
Default_Measurement_Cutoff=10.0)
#Check the status of the result object every 0.5 seconds
#until it has a value of 4(succeeded) or greater
while result.status < 4:
time.sleep(0.5)
#print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
print "An error occured when running the tool"
print result.getMessages(2)
sys.exit(2)
elif result_severity == 1:
print "Warnings were returned when running the tool"
print result.getMessages(1)
#Get the output routes and save to a local geodatabase
result.getOutput(1).save(output_lines)
result.getOutput(2).save(output_facilities)
result.getOutput(3).save(output_demandPoints)
Environnements
Cet outil n'utilise aucun environnement de géotraitement