Résumé
Choisit le ou les meilleurs emplacements à partir d’un ensemble d’emplacements en entrée en attribuant des points de demande aux ressources en entrée de façon à allouer le plus grand nombre de demandes aux ressources et à minimiser le trajet global.
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.
Pour en savoir plus sur la sortie de l'outil SolveLocationAllocation
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 à 27 miles (43,45 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 exclu de l’analyse.
L’utilisation de ce service consomme des crédits. Pour plus d'informations, reportez-vous à Présentation des crédits de service.
Cet outil est conçu pour s’exécuter dans ArcGIS Pro, ArcMap, ArcGlobe et ArcScene, mais pas dans ArcCatalog.
Syntaxe
arcpy.naagol.SolveLocationAllocation(Facilities, Demand_Points, Measurement_Units, {Analysis_Region}, {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}, {Save_Output_Network_Analysis_Layer}, {Overrides}, {Time_Impedance}, {Distance_Impedance}, {Output_Format}, {Ignore_Invalid_Locations})
Paramètre | Explication | Type de données |
Facilities | Indiquez une ou plusieurs ressources parmi lesquelles le solveur doit choisir au cours de l’analyse. Le solveur détermine les meilleures ressources pour l’allocation la plus efficace de la demande en fonction du type de problème et des critères spécifiés. 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. Vous pouvez définir les propriétés des ressources que vous spécifiez, comme leur nom ou le temps de service, à l’aide des attributs 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 Indique 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 estimer l'attractivité, le caractère désirable ou le biais 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. Cutoff Valeur d’impédance à laquelle la recherche des points de demande cesse pour une ressource donnée. Le point de demande ne peut pas être alloué à une ressource située au-delà de la valeur indiquée ici. Cet attribut permet de spécifier une valeur de limite différente pour chaque point de demande. Vous pouvez, par exemple, déterminer que les habitants des zones rurales sont prêts à faire jusqu’à 10 miles (16 kilomètres) pour atteindre une ressource, tandis que les citadins sont uniquement prêts à faire jusqu’à 2 miles (3 kilomètres). Vous pouvez modéliser ce comportement en définissant la valeur Cutoff pour tous les points de demande en zones rurales sur 10 et en définissant la valeur Cutoff des points de demande dans les zones urbaines sur 2. 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 Default Capacity (Capacité par défaut) (Default_Capacity dans Python) pour la ressource donnée. CurbApproach Spécifie la direction dans 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) :
L'attribut CurbApproach est conçu pour opérer avec les deux types de normes de conduite nationale : à droite (États-Unis) et à 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 de voie de circulation entre le véhicule et l’incident, vous choisissez 1 (Côté droit du véhicule) en France et aux États-Unis, mais 2 (Côté gauche du véhicule) au Royaume-Uni. Bearing Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol. En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule. L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point. En savoir plus sur le relèvement et la tolérance de relèvement BearingTol La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing (Relèvement). Si la valeur du champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué. Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst essaie d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon. En savoir plus sur le relèvement et la tolérance de relèvement NavLatency Ce champ n’est utilisé qu’au cours du processus de calcul si Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité. Les unités temporelles du champ NavLatency sont identiques à celles de la propriété timeUnits de l’objet d’analyse. | Feature Set |
Demand_Points | Indiquez un ou plusieurs points de demande. Le solveur détermine les meilleures ressources principalement selon la façon dont elles desservent les points de demande spécifiés ici. Un point de demande est en général un emplacement qui représente les gens ou les choses qui nécessitent les biens et services fournis par vos ressources. Un point de demande peut être un centroïde de code postal pondéré par le nombre de ses résidants ou par la consommation prévue générée par ces personnes. Les points de demande peuvent également représenter des clients d’entreprise. Si vous fournissez des entreprises avec une rotation d’inventaire importante, elles présentent une pondération supérieure à celles ayant un taux de rotation faible. Lorsque vous précisez les points de demande, vous pouvez définir les propriétés pour chacun, comme leur nom ou leur poids, à l’aide des attributs 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 auquel appartient le point de demande. Ce champ est ignoré pour les types de problème Maximize Capacitated Coverage (Optimiser la couverture de capacité), Target Market Share (Part de marché cible) et Maximize Market Share (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, par exemple, la pondération peut indiquer le nombre de personnes au sein de chaque ménage. Cutoff Valeur d’impédance à laquelle la recherche des points de demande cesse pour une ressource donnée. Le point de demande ne peut pas être alloué à une ressource située au-delà de la valeur indiquée ici. Cet attribut permet de spécifier une valeur de limite pour chaque point de demande. Vous pouvez, par exemple, déterminer que les habitants des zones rurales sont prêts à parcourir 10 miles pour atteindre une ressource alors que ceux résidant en zones urbaines sont seulement disposés à parcourir 2 miles. Vous pouvez modéliser ce comportement en définissant la valeur Cutoff pour tous les points de demande en zones rurales sur 10 et en définissant la valeur Cutoff des points de demande dans les zones urbaines sur 2. Les unité de cette valeur attributaire sont spécifiées dans le paramètre Unités de mesure. La valeur de cet attribut remplace la valeur par défaut définie pour l’analyse par le paramètre Default Measurement Cutoff (Limite de mesure par défaut). Par défaut, la valeur est définie sur Null ; cela entraîne l’utilisation de la valeur par défaut définie par le paramètre Default Measurement Cutoff (Limite de mesure par défaut) pour tous les points de demande. ImpedanceTransformation La valeur de cet attribut remplace la valeur par défaut définie pour l’analyse par le paramètre Measurement Transformation Model (Modèle de transformation de mesure). ImpedanceParameter La valeur de cet attribut remplace la valeur par défaut définie pour l’analyse par le paramètre Measurement Transformation Factor (Facteur de transformation de mesure). 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) :
L’attribut CurbApproach est conçu pour fonctionner avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-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 1 (Right side of vehicle [Côté droit du véhicule]) en France et aux États-Unis et 2 (Left side of vehicle [Côté gauche du véhicule]) au Royaume-Uni. Bearing Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol. En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule. L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point. En savoir plus sur le relèvement et la tolérance de relèvement BearingTol La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing (Relèvement). Si la valeur du champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué. Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst essaie d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon. En savoir plus sur le relèvement et la tolérance de relèvement NavLatency Ce champ n’est utilisé qu’au cours du processus de calcul si Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité. Les unités temporelles du champ NavLatency sont identiques à celles de la propriété timeUnits de l’objet d’analyse. | Feature Set |
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 recherche 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.
| String |
Analysis_Region (Facultatif) | Région dans laquelle l’analyse doit être effectuée. 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 seulement si la détection automatique du nom de région n’est pas pertinente pour vos entrées. Pour indiquer une région, utilisez l'une des valeurs suivantes :
| 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) | Le nombre de ressources à rechercher. 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 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 (Choisie) avant le calcul est traitée comme une ressource candidate lors de la recherche. Si le nombre de ressources à trouver est inférieur au nombre minimal de ressources requises, une erreur survient. Number of Facilities to Find (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) | 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. Ce paramètre 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 Demand Points (Points de demande) ont des champs Cutoff qui, s’ils sont paramétrés en conséquence, remplacent le paramètre Default Measurement Cutoff (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 (16 kilomètres) pour atteindre une ressource alors que les citadins sont uniquement disposés à voyager jusqu’à 2 miles (3 kilomètres). En supposant que Measurement Units (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 sur 10 et la valeur du champ Cutoff des points de demande sur 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 de la ressource. 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 identifie 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 Impedance Parameter (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 Measurement Units (Unités de mesure) détermine si le temps ou la distance de trajet est analysé.
La valeur définie pour ce paramètre peut être remplacée, pour un point de demande donné, à l’aide du champ ImpedanceTransformation dans les points de demande en entrée. | 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. La valeur définie pour ce paramètre peut être remplacée, pour un point de demande donné, à l’aide du champ ImpedanceParameter dans les points de demande en entrée. | Double |
Travel_Direction (Facultatif) | Spécifie si les temps ou distances de trajet seront mesurés des ressources aux points de demande ou inversement.
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 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 (ressource) à l’emplacement de l’urgence (point de demande). Un point de vente s’intéresse plus au temps nécessaire aux acheteurs (points de demande) pour atteindre le magasin (ressource) ; 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) | L’heure à laquelle le trajet commence. Cette propriété est ignorée si les Measurement Units (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. 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 Time Zone for Time of Day (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) | Spécifie la 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 à 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 |
Utilisez ce paramètre pour spécifier un ou plusieurs points servant de restrictions temporaires ou représentant un délai ou une distance supplémentaire qui peut ê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 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 Temps de trajet ajouté lorsque l’interruption est franchie. Ce champ est actif uniquement pour les interruptions à coût ajouté si le paramètre Unités de mesure est temporel. 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 Distance ajoutée lorsque l’interruption est franchie. Ce champ est actif uniquement pour les interruptions à coût ajouté si le paramètre Unités de mesure est basé sur la distance. La valeur du 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. AdditionalCost Coût ajouté lorsque l’interruption est franchie. Ce champ est actif uniquement pour les interruptions à coût ajouté si le paramètre Unités de mesure n’est ni temporel ni basé sur la distance. FullEdge Spécifie la façon dont les interruptions ponctuelles de restriction sont appliquées aux tronçons au cours de l’analyse. 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) :
CurbApproach Spécifie le sens de circulation affecté par l’interruption. 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) :
Étant donné que les jonctions sont des points et n’ont pas de côté, les interruptions situées sur des jonctions affectent tous les véhicules quelle que soit l’approche du trottoir. L’attribut CurbApproach fonctionne avec les deux types de normes de conduite nationales : circulation à droite (comme en France et aux États-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, pour atteindre une ressource sans qu’il y ait de voie de circulation entre le véhicule et la ressource, choisissez 1 (côté droit du véhicule) en France et aux États-Unis, mais 2 (côté gauche du véhicule) au Royaume-Uni. Bearing Direction de déplacement d'un point. Les unités sont exprimées en degrés et sont mesurées dans le sens horaire, à partir du nord géographique. Ce champ est utilisé avec le champ BearingTol. En règle générale, les données de relèvement sont automatiquement envoyées à partir d'un périphérique mobile équipé d'un récepteur GPS. Essayez d’inclure des données de relèvement si vous chargez un emplacement en entrée qui se déplace, par exemple un piéton ou un véhicule. L'utilisation de ce champ vous évite d'ajouter des emplacements sur des tronçons incorrects, par exemple lorsqu'un véhicule se rapproche d'une intersection ou d'un passage supérieur. Le relèvement permet également à l'outil de déterminer plus facilement le côté de la rue où se trouve le point. En savoir plus sur le relèvement et la tolérance de relèvement BearingTol La valeur de tolérance de relèvement crée une plage de valeurs de relèvement acceptables lors de la localisation de points qui se déplacent sur un tronçon à l’aide du champ Bearing (Relèvement). Si la valeur du champ Bearing est comprise dans la plage de valeurs acceptables générées à partir de la tolérance de relèvement sur un tronçon, le point peut être ajouté à cet endroit en tant que localisation de réseau. Sinon, le point le plus proche sur le prochain tronçon le plus proche est évalué. Les unités sont exprimées en degrés et la valeur par défaut est 30. Les valeurs doivent être supérieures à zéro et inférieures à 180. Si la valeur est égale à 30, lorsque Network Analyst essaie d’ajouter un emplacement de réseau sur un tronçon, une plage de valeurs de relèvement acceptables est générée à 15 degrés de chaque côté du tronçon (gauche et droite) et dans les deux sens de numérisation du tronçon. En savoir plus sur le relèvement et la tolérance de relèvement NavLatency Ce champ n’est utilisé qu’au cours du processus de calcul si Bearing et BearingTol contiennent également des valeurs ; toutefois, vous n’êtes pas obligé d’entrer une valeur NavLatency, même si Bearing et BearingTol sont renseignés. NavLatency indique le temps censé s’écouler entre le moment où un véhicule se déplaçant envoie des informations GPS à un serveur et le moment où le dispositif de navigation du véhicule reçoit l’itinéraire traité. Les unités temporelles du champ NavLatency sont identiques à celles de la propriété timeUnits de l’objet d’analyse. | Feature Set |
Line_Barriers |
Utilisez ce paramètre pour spécifier 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 Line Barriers (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épasser500. Vous pouvez définir des propriétés de nom et de type d’interruption pour les interruptions linéaires que vous spécifiez en utilisant les attributs suivants : Name Nom de l'interruption. | Feature Set |
Polygon_Barriers |
Utilisez ce paramètre pour spécifier 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 Polygon Barriers (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 toutes les polygones ne peut 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 les attributs suivants : Name Nom de l'interruption. BarrierType Spécifie si l’interruption restreint complètement la circulation ou proportionne le coût de déplacement (tel que le temps ou la distance) lorsqu’elle est franchie. 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. La valeur du champ doit être supérieure à zéro. Ce champ est actif uniquement pour les interruptions à coût proportionné et uniquement si le mode de déplacement pour l’analyse fait appel à un attribut d’impédance basé sur le temps. ScaledDistanceFactor Il s'agit du facteur de multiplication de la distance des rues intersectées par l'interruption. La valeur du champ doit être supérieure à zéro. Ce champ est actif uniquement pour les interruptions à coût proportionné et uniquement si le mode de déplacement pour l’analyse fait appel à un attribut d’impédance basé sur la distance. ScaledCostFactor Il s’agit du facteur de multiplication du coût des rues intersectées par l’interruption. La valeur du champ doit être supérieure à zéro. Ce champ est actif uniquement pour les interruptions à coût proportionné et uniquement si le mode de déplacement utilisé pour l’analyse fait appel à un attribut d’impédance qui n’est basé ni sur le temps, ni sur la distance. | Feature Set |
Use_Hierarchy (Facultatif) | Spécifie si vous souhaitez utiliser une hiérarchie lorsque vous recherchez le plus court chemin entre 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 [Restrictions,...] | Précise 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 Éviter les routes à péage permet d’obtenir un itinéraire qui n’inclut les routes à péage que lorsque cela est absolument inévitable pour se rendre sur le lieu d’un incident ou parvenir à 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. L'outil prend en charge les restrictions suivantes :
| String |
Attribute_Parameter_Values (Facultatif) | Utilisez ce paramètre pour spécifier les valeurs supplémentaires requises par un attribut ou une restriction, par exemple pour indiquer si la restriction interdit, évite ou préfère un déplacement sur des routes soumises à restrictions. 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 Attribute Parameter Values (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 :
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 de 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 de 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 Éviter 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 pour certains utilisateurs. En revanche, d’autres utilisateurs préféreront circuler sur des routes à péage, car il est plus important pour eux d’éviter les embouteillages que de faire l’économie des coûts de péage. Dans ce dernier cas, choisissez 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) | Spécifie 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 Allocation Line Shape (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) | Mode de transport à modéliser dans l’analyse. Les modes de déplacement sont gérés dans ArcGIS Online et peuvent être configurés par l’administrateur de votre organisation pour refléter les processus de l’organisation. Vous devez indiquer le nom d’un mode de déplacement pris en charge par votre organisation. Pour obtenir la liste des noms de modes de déplacement pris en charge, utilisez la connexion au serveur SIG que vous avez utilisée pour accéder à cet outil, puis exécutez GetTravelModes dans la boîte à outils Utilitaires. L’outil GetTravelModes ajoute la table Supported Travel Modes (modes de déplacement pris en charge) à l’application. N’importe quelle valeur du champ Travel Mode Name dans la table des modes de déplacement pris en charge peut être spécifiée en entrée. Vous pouvez également indiquer la valeur du champ Travel Mode Settings en entrée. Cela réduit le temps d’exécution de l’outil, car il n’a pas besoin de rechercher les paramètres en fonction du nom du mode de déplacement. La valeur par défaut, Personnalisé, vous permet de configurer votre propre mode de déplacement à l'aide des paramètres du mode de déplacement personnalisé (Demi-tours aux jonctions, Utiliser la hiérarchie, Restrictions, Valeurs des paramètres d'attributs et Impédance). Les valeurs par défaut des paramètres du mode de trajet personnalisé modélisent les déplacements en voiture. Vous pouvez choisir Custom (Personnalisé) et définir les paramètres du mode de trajet personnalisé répertoriés ci-dessus pour modéliser un piéton qui marche très rapidement ou un camion doté d’une hauteur donnée, d’un poids en particulier et qui transporte des matières dangereuses. Vous pouvez essayer différents paramètres afin d’obtenir les résultats d’analyse qui vous intéressent. Une fois les paramètres d’analyse identifiés, collaborez avec l’administrateur de votre organisation pour enregistrer ces paramètres dans le cadre d’un mode de déplacement nouveau ou existant afin que tous les membres de votre organisation puissent exécuter l’analyse avec les mêmes paramètres. | String |
Impedance (Facultatif) | Spécifie 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. Le temps de trajet est une impédance : une voiture peut mettre une minute à parcourir un mile (1,6 kilomètre) 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. La distance à parcourir peut également être 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.)
Si vous choisissez une impédance temporelle telle que TravelTime, TruckTravelTime, Minutes, TruckMinutes ou WalkTime, le paramètre Measurement Units (Unités de mesure) doit être défini sur une valeur basée sur le temps. En revanche, si vous choisissez une impédance de distance comme Miles ou Kilomètres, le paramètre Unités de mesure doit faire référence à une distance. | String |
Save_Output_Network_Analysis_Layer (Facultatif) | Précise si les paramètres de l’analyse seront enregistrés comme fichier de couche d’analyse réseau. Vous ne pouvez pas utiliser ce fichier directement, même lorsque vous ouvrez le fichier dans une application ArcGIS Desktop telle que ArcMap. Celui-ci doit être envoyé au support technique Esri, qui évaluera la qualité des résultats renvoyés par l’outil.
| Boolean |
Overrides (Facultatif) | Des paramètres supplémentaires pouvant influencer le comportement du solveur lorsque vous recherchez des solutions pour résoudre les problèmes d’analyse du réseau. La valeur de ce paramètre doit être spécifiée au format JSON (JavaScript Object Notation). Une valeur valide, par exemple, a le format suivant : {"overrideSetting1" : "value1", "overrideSetting2" : "value2"}. Le nom du paramètre de remplacement est toujours spécifié entre des guillemets doubles. Les valeurs peuvent être un nombre, une valeur booléenne ou une chaîne. Par défaut, aucune valeur ne doit être spécifiée pour ce paramètre, ce qui signifie qu'il est déconseillé de remplacer les paramètres du solveur. Les valeurs de remplacement sont des paramètres avancés qui ne doivent être utilisés qu'après une analyse approfondie des résultats obtenus avant et après leur application. Vous pouvez obtenir auprès du support technique d’Esri une liste des paramètres de remplacement pris en charge, ainsi que leurs valeurs acceptables, pour chaque solveur. | String |
Time_Impedance (Facultatif) | L’impédance basée sur le temps. Il s’agit d’une valeur représentant le temps de déplacement le long des segments de route ou sur d’autres portions du réseau de transport.
| String |
Distance_Impedance (Facultatif) | L’impédance basée sur la distance est une valeur représentant la distance à parcourir le long des segments de route ou sur d’autres portions du réseau de transport.
| String |
Output_Format (Facultatif) | Spécifie le format dans lequel les entités en sortie sont créées.
Lorsqu’un format de sortie - basé sur un fichier, tel que Fichier JSON ou Fichier GeoJSON, est spécifié, aucune sortie n’est ajoutée à l’affichage puisque l’application (comme ArcMap ou ArcGIS Pro) ne peuvent pas afficher le contenu du fichier de résultats. À la place, le fichier est téléchargé dans un répertoire temporaire sur votre machine. Dans ArcGIS Pro, il est possible de déterminer l’emplacement du fichier téléchargé en affichant la valeur du paramètre Fichier de résultats en sortie dans l’entrée correspondant à l’exécution de l’outil dans l’historique de géotraitement de votre projet. Dans ArcMap, l’emplacement du fichier peut être déterminé via l’option Copier l’emplacement dans le menu contextuel du paramètre Fichier de résultats en sortie de l’entrée correspondant à l’exécution de l’outil dans la fenêtre Résultats du géotraitement. | String |
Ignore_Invalid_Locations (Facultatif) | Détermine si les emplacements en entrée non valides sont ignorés.
| Boolean |
Sortie dérivée
Nom | Explication | Type de données |
Solve_Succeeded | Détermine si le service a réussi à identifier les meilleures ressources. | Boolean |
Output_Allocation_Lines | Ce paramètre permet d’accéder aux lignes qui relient les points de demande aux ressources auxquelles ils ont été alloués. Dans la documentation, ces lignes sont appelées lignes d’allocation. Ces lignes d’allocation incluent des données concernant la demande allouée à partir de chaque point de demande vers la ressource associée. | Feature Set |
Output_Facilities | Ce paramètre permet d’accéder aux ressources choisies, requises et concurrentes, ainsi qu’aux ressources candidates qui n’ont pas été choisies. | Feature Set |
Output_Demand_Points | Ce paramètre permet d’accéder aux points de demande qui ont participé à l’analyse : ceux qui ont été alloués aux ressources et ceux qui n’ont pas été alloués. | Feature Set |
Output_Network_Analysis_Layer | Couche d’analyse de réseau avec des propriétés dont la configuration correspond à celle des paramètres d’outil, pouvant être utilisée pour réaliser d’autres analyses ou des opérations de débogage sur la carte. | File |
Output_Result_File | Fichier .zip contenant les résultats de l’analyse, avec un ou plusieurs fichiers pour chacune des sorties. Le format d’un fichier est spécifié par le paramètre Output Format (Format en sortie). | File |
Output_Network_Analysis_Layer_Package | Paquetage de couche contenant une couche d’analyse de réseau avec les données et les paramètres utilisés dans l’analyse. | File |
Exemple de code
Exemple d’utilisation de l’outil SolveLocationAllocation (script autonome)
Le script Python ci-dessous illustre l’utilisation de l’outil SolveLocationAllocation dans un script.
"""This example shows how to choose the best locations for stores that can service the maximum number of customers."""
import sys
import time
import arcpy
# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"
la_service = "https://logistics.arcgis.com/arcgis/services;World/LocationAllocation;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(la_service)
# Set the variables to call the tool
facilities = "C:/data/Inputs.gdb/Stores"
demand_points = "C:/data/Inputs.gdb/Customers"
output_lines = "C:/data/Results.gdb/AllocationLines"
output_facilities = "C:/data/Results.gdb/Facilities"
output_demand_points = "C:/data/Results.gdb/DemandPoints"
# Call the tool to find two best store locations that can reach a maxmimum number of customers
# with ten minutes of drive time
result = arcpy.SolveLocationAllocation_LocationAllocation(facilities, demand_points, "Minutes",
Problem_Type="Maximize Attendance",
Number_of_Facilities_to_Find=2,
Default_Measurement_Cutoff=10.0)
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))
# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Store the allocation lines that connect customers to allocated stores, the chosen stores,
# and the allocated customer locations to a geodatabase
result.getOutput(1).save(output_lines)
arcpy.analysis.Select(result.getOutput(2), output_facilities, "DemandCount > 0")
result.getOutput(3).save(output_demand_points)
Environnements
Cet outil n'utilise pas d’environnement de géotraitement.