Résumé
Choisit les meilleurs emplacements 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.
Pour en savoir plus sur la sortie de l'emplacement-allocation
Illustration
Utilisation
La boîte de dialogue de cet outil regroupe divers paramètres facultatifs dans les sept catégories suivantes pour vous permettre de mieux les gérer :
- Analyse avancée
- Interruptions
- Mode de déplacement personnalisé
- Paramètres du problème emplacement-allocation
- Jeu de données réseau
- Localisations du réseau
- Sortie
- Fonctionnalités de service
Syntaxe
arcpy.na.SolveLocationAllocation(Facilities, Demand_Points, Measurement_Units, Network_Dataset, Output_Geodatabase, Output_Allocation_Lines_Name, Output_Facilities_Name, Output_Demand_Points_Name, Output_Route_Edges_Name, {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_Policy}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Time_Attribute}, {Time_Attribute_Units}, {Distance_Attribute}, {Distance_Attribute_Units}, {Use_Hierarchy_in_Analysis}, {Restrictions}, {Attribute_Parameter_Values}, {Accumulate_Attributes}, {Maximum_Snap_Tolerance}, {Feature_Locator_WHERE_Clause}, {Allocation_Line_Shape}, {Allocation_Line_Simplification_Tolerance}, {Maximum_Features_Affected_by_Point_Barriers}, {Maximum_Features_Affected_by_Line_Barriers}, {Maximum_Features_Affected_by_Polygon_Barriers}, {Maximum_Facilities}, {Maximum_Facilities_to_Find}, {Maximum_Demand_Points}, {Force_Hierarchy_Beyond_Distance}, {Save_Output_Network_Analysis_Layer}, {Travel_Mode}, {Overrides})
Paramètre | Explication | Type de données |
Facilities | Indiquez une ou plusieurs ressources. 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 : OBJECTID - Champ d'ID géré par le système. SHAPE : champ de géométrie qui indique l’emplacement géographique de la ressource. 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 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. Capacité : le champ Capacité 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 Capacité 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. 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 : OBJECTID - Champ d'ID géré par le système. SHAPE : champ de géométrie qui indique l’emplacement géographique de la ressource. 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 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 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 |
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
L'outil choisit d'utiliser l'attribut de coût de réseau spécifié dans le paramètre Attribut de temps ou Attribut de distance selon que les unités de mesure sélectionnées sont des unités basées sur le temps ou sur la distance. L'outil effectue la conversion d'unités nécessaire lorsque la valeur Unités de mesure diffère des unités de l'attribut de coût de temps ou de distance correspondant. | String |
Network_Dataset | Jeu de données réseau qui fait l'objet d'une analyse. Les jeux de données réseau représentent le plus souvent des réseaux de transport, mais aussi d'autres types de réseaux. Le jeu de données réseau doit présenter au moins un attribut de coût basé sur le temps et un autre basé sur la distance. | Network Dataset Layer |
Output_Geodatabase | Espace de travail en sortie. Cet espace de travail doit déjà exister. L’espace de travail en sortie par défaut est in_memory. | Workspace |
Output_Allocation_Lines_Name | Nom du champ de la classe d'entités en sortie contenant les lignes qui connectent les points de demande à leurs ressources allouées. Sortie de l'outil Résoudre emplacement-allocation décrit la structure de cette classe d'entités en sortie. | String |
Output_Facilities_Name | Nom du champ de la classe d'entités en sortie contenant les ressources. Sortie de l'outil Résoudre emplacement-allocation décrit la structure de cette classe d'entités en sortie. | String |
Output_Demand_Points_Name | Nom du champ de la classe d'entités en sortie contenant les points de demande. Sortie de l'outil Résoudre emplacement-allocation décrit la structure de cette classe d'entités en sortie. | String |
Output_Route_Edges_Name | Nom du champ de la classe d’entités en sortie contenant les tronçons d’itinéraires. Les tronçons d'itinéraires représentent les entités rues individuelles qui sont traversées le long du plus court chemin entre les points de demande et les ressources auxquelles ils sont alloués. Cette sortie est souvent utilisée pour déterminer quels sont les segments de rues qui connaissent le trafic le plus dense lors du trajet en direction des ressources. Cette information peut servir, par exemple, à choisir l'emplacement d'annonces publicitaires ou à développer des routes pour prendre en charge le trafic durant des évacuations. Pour renseigner la classe d'entités RouteEdges, vous devez définir le paramètre Forme de ligne d'allocation sur des lignes réelles. Sortie de l'outil Résoudre emplacement-allocation décrit la structure de cette classe d'entités en sortie. | 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 de 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 Capacité. 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_Policy (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.
La valeur de ce paramètre est remplacée lorsque le paramètre Mode de déplacement (Travel_Mode dans Python) est défini sur une valeur autre que Personnalisé. | String |
Point_Barriers (Facultatif) | Spécifie les interruptions ponctuelles qui sont divisées en deux types : les interruptions ponctuelles de restriction et les interruptions ponctuelles à coût ajouté. Elles restreignent temporairement la traversée de points sur le réseau ou leur ajoutent une impédance. Les interruptions ponctuelles sont définies par un jeu d'entités, et les valeurs attributaires que vous spécifiez pour les entités ponctuelles déterminent s'il s'agit d'interruptions de restriction ou d'interruptions à coût ajouté. Les champs de la table attributaire sont répertoriés et décrits ci-dessous. ObjectID: Champ d'ID géré par le système. Shape: Champ de géométrie qui indique l'emplacement géographique de l'objet d'analyse de réseau. Name: Nom de l'interruption. BarrierType : Spécifie si l'interruption restreint entièrement le trajet ou ajoute un coût de parcours correspondant. Deux options sont disponibles :
Utilisez la valeur 0 pour l'option Restriction et 2 pour Coût ajouté. 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écifie les interruptions linéaires qui restreignent temporairement leur passage. Les interruptions linéaires sont définies par un jeu d'entités. Les champs de la table attributaire sont répertoriés et décrits ci-dessous. ObjectID: Champ d'ID géré par le système. Shape: Champ de géométrie qui indique l'emplacement géographique de l'objet d'analyse de réseau. Name: Nom de l'interruption. | Feature Set |
Polygon_Barriers (Facultatif) | Spécifie les interruptions polygonales qui sont divisées en deux types : les interruptions polygonales de restriction et les interruptions polygonales à coût proportionné. Elles restreignent temporairement la traversée des parties du réseau qu'elles couvrent ou proportionnent leur impédance. Les interruptions polygonales sont définies par un jeu d'entités, et les valeurs attributaires que vous spécifiez pour les entités surfaciques déterminent s'il s'agit d'interruptions de restriction ou d'interruptions à coût proportionné. Les champs de la table attributaire sont répertoriés et décrits ci-dessous. ObjectID: Champ d'ID géré par le système. Shape: Champ de géométrie qui indique l'emplacement géographique de l'objet d'analyse de réseau. Name: Nom de l'interruption. BarrierType : Spécifie si la barrière restreint entièrement le trajet ou proportionne son coût de parcours correspondant. Deux options sont disponibles :
Utilisez la valeur 0 pour l'option Restriction et 1 pour Coût proportionné. 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 |
Time_Attribute (Facultatif) | Définit l’attribut de coût de réseau à utiliser lorsque la valeur des unités de mesure est une unité de temps. L'outil effectue la conversion des unités de temps nécessaire lorsque la valeur des unités de mesure diffère des unités de l'attribut de coût défini ici. En d'autres termes, les unités de temps de l'attribut de coût de réseau et de la limite par défaut ne doivent pas nécessairement être identiques. La valeur de ce paramètre est remplacée lorsque le paramètre Mode de déplacement (Travel_Mode dans Python) est défini sur une valeur autre que Personnalisé. | String |
Time_Attribute_Units (Facultatif) | Unités de l'attribut de temps. Vous pouvez explicitement définir les unités des attributs de temps, mais il est recommandé de ne rien transmettre ou de transmettre "#" et de laisser le solveur déterminer les unités. La valeur de ce paramètre est remplacée lorsque le paramètre Travel_Mode est défini sur une valeur autre que CUSTOM. | String |
Distance_Attribute (Facultatif) | Définit l'attribut de coût de réseau à utiliser lorsque la valeur des unités de mesure est une unité de distance. L'outil effectue la conversion des unités de distance nécessaire lorsque la valeur des unités de mesure diffère des unités de l'attribut de coût défini ici. En d’autres termes, les unités de mesure et les unités de distance de l’attribut de coût de réseau ne doivent pas nécessairement être identiques. La valeur de ce paramètre est remplacée lorsque le paramètre Mode de déplacement (Travel_Mode dans Python) est défini sur une valeur autre que Personnalisé. | String |
Distance_Attribute_Units (Facultatif) | Unités de l'attribut de distance. Vous pouvez explicitement définir les unités des attributs de distance, mais il est recommandé de ne rien transmettre ou de transmettre "#" et de laisser le solveur déterminer les unités. La valeur de ce paramètre est remplacée lorsque le paramètre Travel_Mode est défini sur une valeur autre que CUSTOM. | String |
Use_Hierarchy_in_Analysis (Facultatif) | Indiquez si vous souhaitez utiliser une hiérarchie lorsque vous recherchez les itinéraires les plus courts entre les points.
Le paramètre n'est pas utilisé si aucun attribut de hiérarchie n'est défini dans le jeu de données réseau utilisé pour effectuer l'analyse. Dans ces cas, utilisez "#" comme valeur de paramètre. Vous pouvez utiliser le paramètre Force_Hierarchy_Beyond_Distance pour contraindre le solveur à utiliser la hiérarchie même si l'option Use_Hierarchy_in_Analysis est définie sur False. Ce paramètre est ignoré sauf si le paramètre Travel_Mode est défini sur CUSTOM. Lorsque vous modélisez un mode de marche à pied personnalisé, il est recommandé de désactiver la hiérarchie, car elle est conçue pour les véhicules motorisés. | Boolean |
Restrictions [restriction,...] (Facultatif) | Indique quels attributs de restriction réseau sont respectés lors de l'analyse. La valeur de ce paramètre est remplacée lorsque le paramètre Mode de déplacement (Travel_Mode dans Python) est défini sur une valeur autre que Personnalisé. | String |
Attribute_Parameter_Values (Facultatif) | Spécifie les valeurs de paramètre des attributs de réseau possédant des paramètres. Le jeu d’enregistrements comporte deux colonnes qui permettent d’identifier les paramètres de manière unique et une autre colonne qui spécifie la valeur du paramètre. La valeur de ce paramètre est remplacée lorsque le paramètre Mode de déplacement (Travel_Mode dans Python) est défini sur une valeur autre que Personnalisé. Le jeu d'enregistrements des valeurs de paramètre est associé à des attributs. Les champs de la table attributaire sont répertoriés et décrits ci-dessous. ObjectID: Champ d'ID géré par le système. AttributeName : Nom de l'attribut de réseau dont le paramètre d'attribut est défini par la ligne de table. ParameterName : Nom du paramètre d'attribut dont la valeur est définie par la ligne de table. (Les paramètres de type Objet ne peuvent pas être mis à jour à l’aide de cet outil.) ParameterValue : Valeur à utiliser pour le paramètre d'attribut. Si aucune valeur n'est spécifiée, le paramètre d'attribut est défini comme étant Null. | Record Set |
Accumulate_Attributes [attribute,...] (Facultatif) | Liste des attributs de coût à cumuler lors de l'analyse. Ces attributs d'accumulation sont fournis à titre de référence uniquement. Le solveur utilise uniquement l'attribut de coût spécifié par le paramètre Attribut de temps (Time_Attribute dans Python) ou Attribut de distance (Distance_Attribute dans Python) pour calculer les plus courts chemins. Pour chaque attribut de coût accumulé, un champ Total_[attribut] est ajouté aux itinéraires générés en sortie par le solveur. | String |
Maximum_Snap_Tolerance (Facultatif) | La tolérance de capture maximale spécifie la distance maximale recherchée par Network Analyst pour placer ou replacer un point sur le réseau. Network Analyst recherche des tronçons ou jonctions appropriés et capture le point sur l'élément le plus proche. Si aucun emplacement approprié n'est trouvé dans la tolérance de capture maximale, l'objet est marqué comme étant non localisé. | Linear Unit |
Feature_Locator_WHERE_Clause (Facultatif) | Expression SQL utilisée pour sélectionner un sous-ensemble d'entités source qui limite les éléments de réseau sur lesquels les ressources et les points de demande peuvent être placés. La syntaxe de ce paramètre comprend deux parties : la première est le nom de la classe d'entités source (suivi d'un espace) et la seconde est l'expression SQL. Pour écrire une expression SQL pour deux classes d'entités source ou plus, séparez-les par un point-virgule. Pour éviter que les ressources ne soient placées sur des autoroutes à accès limité, par exemple, écrivez une expression SQL telle que la suivant pour exclure ces entités source : "Streets" "FUNC_CLASS not in('1', '2')". A noter que les interruptions ignorent la clause WHERE du localisateur d'entités lors du chargement. | String |
Allocation_Line_Shape (Facultatif) | 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. Lorsque le paramètre Forme de ligne d'allocation (Allocation_Line_Shape dans Python) est défini sur Lignes réelles sans mesures ou Lignes réelles avec mesures, vous pouvez contrôler davantage la généralisation de la forme d'itinéraire en utilisant la valeur appropriée pour le paramètre Tolérance de simplification des lignes d'allocation(Allocation_Line_Simplification_Tolerance dans Python). | String |
Allocation_Line_Simplification_Tolerance (Facultatif) | Indique dans quelle proportion vous souhaitez simplifier la géométrie des lignes d'allocation. L'outil ignore ce paramètre si le paramètre Forme de ligne d'allocation (Allocation_Line_Shape dans Python) n'est pas défini sur des lignes réelles en sortie. La simplification conserve les points critiques sur un itinéraire, comme les virages dans les intersections, pour définir la forme globale de l'itinéraire et supprimer d'autres points. La distance de simplification que vous spécifiez est le décalage maximal autorisé de la ligne simplifiée par rapport à la ligne d'origine. La simplification d'une ligne diminue le nombre de sommets qui appartiennent à la géométrie de l'itinéraire. Cela permet de réduire le temps d'exécution de l'outil et le temps nécessaire au dessin des lignes. La valeur de ce paramètre est remplacée lorsque le paramètre Mode de déplacement (Travel_Mode dans Python) est défini sur une valeur autre que Personnalisé. | Linear Unit |
Maximum_Features_Affected_by_Point_Barriers (Facultatif) | Limite le nombre d'entités pouvant être affectées par des interruptions ponctuelles. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Features_Affected_by_Line_Barriers (Facultatif) | Limite le nombre d'entités pouvant être affectées par des interruptions linéaires. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Features_Affected_by_Polygon_Barriers (Facultatif) | Limite le nombre d'entités pouvant être affectées par des interruptions polygonales. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Facilities (Facultatif) | Limite le nombre de ressources pouvant être ajoutées à l'analyse d'emplacement-allocation. Ce paramètre est associé au paramètre Ressources. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Facilities_to_Find (Facultatif) | Limite le nombre de ressources pouvant être ajoutées à l'analyse d'emplacement-allocation. Ce paramètre est lié au paramètre Nombre de ressources à rechercher (Number_of_Facilities_to_Find dans Python). Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Maximum_Demand_Points (Facultatif) | Limite le nombre de points de demande pouvant être ajoutés à l'analyse d'emplacement-allocation. Ce paramètre est lié au paramètre Points de demande (Demand_Points dans Python). Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Par exemple, vous pouvez attribuer une valeur faible à ce paramètre pour une version gratuite du service que vous créez et utiliser une valeur plus élevée pour une version payante du service. Une valeur Null indique qu'il n'existe pas de limite. | Long |
Force_Hierarchy_Beyond_Distance (Facultatif) | Indique la valeur de distance au-delà de laquelle le solveur forcera la hiérarchie, même si celle-ci n'est pas activée, lors de la recherche des plus courts chemins entre les ressources et les points de demande. Les unités de ce paramètre sont les mêmes que celles affichées dans le paramètre Unités des attributs de distance (Distance_Attribute_Units dans Python). La recherche des itinéraires les plus courts entre les ressources et les points de demande qui sont éloignés lors de l'utilisation de la hiérarchie du réseau entraîne généralement moins de traitement que le calcul des mêmes itinéraires sans la hiérarchie. Ce paramètre permet de contrôler la charge de traitement lors de l'analyse. Une valeur Null indique que la hiérarchie ne sera jamais activée ; la valeur du paramètre Utiliser la hiérarchie lors de l’analyse (Use_Hierarchy_in_Analysis dans Python) sera toujours respectée. Si le jeu de données réseau en entrée ne prend pas la hiérarchie en charge, une erreur se produit lorsque vous spécifiez une valeur pour ce paramètre. Dans ce cas, vous devez utiliser une valeur Null. Ce paramètre est désactivé, sauf si le jeu de données réseau inclut un attribut de hiérarchie. | Double |
Save_Output_Network_Analysis_Layer (Facultatif) |
Dans tous les cas, les classes d'entités contenant les résultats sont renvoyées. Cependant, un administrateur de serveur peut choisir de générer également une couche d'analyse de réseau pour que la configuration et les résultats de l'outil puissent être débogués à l'aide des commandes de Network Analyst dans l'environnement ArcGIS Desktop. Le processus de débogage peut en être grandement facilité. Dans ArcGIS Desktop, l'emplacement en sortie par défaut de la couche d'analyse de réseau se trouve dans le dossier temporaire. Vous pouvez déterminer l'emplacement du dossier temporaire en évaluant la valeur de l'environnement de géotraitement arcpy.env.scratchFolder. La couche d'analyse de réseau en sortie est stockée en tant que fichier LYR dont le nom commence par _ags_gpna et est suivi d'un GUID alphanumérique. | Boolean |
Travel_Mode (Facultatif) | Choisissez le mode de transport pour l’analyse. CUSTOM est toujours proposé. Pour que les autres modes de déplacement apparaissent, ils doivent être présents dans le jeu de données réseau spécifié dans le paramètre Network_Dataset. (La fonction arcpy.na.GetTravelModes fournit un dictionnaire des objets du mode de déplacement qui sont configurés sur un jeu de données réseau et la propriété name renvoie le nom d’un objet du mode de déplacement.) Un mode de déplacement est défini sur un jeu de données réseau et offre des valeurs de remplacement des paramètres qui, ensemble, modélisent la voiture, le camion, le piéton et d’autres modes de déplacement. En choisissant ici un mode de déplacement, vous n'avez pas besoin de fournir des valeurs pour les paramètres suivants, qui sont remplacés par les valeurs spécifiées dans le jeu de données réseau :
| String |
Overrides (Facultatif) | Spécifiez 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 |
Sortie dérivée
Nom | Explication | Type de données |
Solve_Succeeded | Détermine si le service a réussi à choisir les meilleures ressources. | Booléen |
Output_Allocation_Lines | Lignes qui connectent les points de demande aux ressources auxquelles ils sont alloués. | Classe d'entités |
Output_Facilities | Permet d’accéder aux ressources choisies, requises et concurrentes, ainsi qu’aux ressources candidates qui n’ont pas été choisies. | Classe d'entités |
Output_Demand_Points | Points de demande qui ont participé à l’analyse. | Classe d'entités |
Output_Route_Edges | Représente les segments de route individuels le long de l’itinéraire le plus court entre les points de demande et les ressources auxquelles ils sont alloués. | Classe d'entités |
Output_LocationAllocation_Analysis_Layer | Couche d’analyse d’emplacement-allocation en sortie. | Fichier |
Output_Route_Analysis_Layer | Couche d’analyse d’itinéraires en sortie. | Fichier |
Exemple de code
Exemple 1 d’utilisation de l’outil SolveLocationAllocation (fenêtre Python)
Exécutez l'outil SolveLocationAllocation avec les paramètres requis.
facilities = arcpy.FeatureSet()
facilities.load("Stores")
demandPoints = arcpy.FeatureSet()
demandPoints.load("TractCentroids")
arcpy.na.SolveLocationAllocation(facilities, demandPoints, "Minutes",
"Streets_ND", "in_memory", "Lines",
"OutFacilities", "OutDemandPoints",
"RouteEdges", Number_of_Facilities_to_Find=2)
Exemple 2 d’utilisation de l’outil SolveLocationAllocation (script autonome)
Le script Python autonome suivant illustre l'utilisation de l'outil SolveLocationAllocation dans un script autonome.
# Name: SolveLocationAllocation_Workflow.py
# Description: Find the two stores that are most convenient to your customers.
# The results show which stores were selected and which store is
# most convenient to each customer location.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
try:
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\SanFrancisco.gdb'
env.overwriteOutput = True
#Set local variables
inNetworkDataset = r'Transportation\Streets_ND'
inFacilities = r'Analysis\Stores'
inDemandPoints = r'Analysis\TractCentroids'
outGeodatabase = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\Output.gdb'
outLines = "Lines"
outFacilities = "Facilities"
outDemandPoints = "DemandPoints"
outRouteEdges = "RouteEdges"
measurement_units = "Minutes"
# Run SolveLocationAllocation. Find the best two stores, but don't consider
# stores beyond a 10 minute travel time for a given customer.
arcpy.na.SolveLocationAllocation(inFacilities, inDemandPoints,
measurement_units, inNetworkDataset,
outGeodatabase, outLines, outFacilities,
outDemandPoints, outRouteEdges,
Number_of_Facilities_to_Find=2,
Default_Measurement_Cutoff=10.0)
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occured on line %i" % tb.tb_lineno
print str(e)
Environnements
Informations de licence
- Basic: Requiert Network Analyst
- Standard: Requiert Network Analyst
- Advanced: Requiert Network Analyst