ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Aide
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS Desktop

Un SIG professionnel complet

ArcGIS Enterprise

SIG dans votre entreprise

ArcGIS for Developers

Outils de création d'applications de localisation

ArcGIS Solutions

Modèles d'applications et de cartes gratuits pour votre secteur d'activité

ArcGIS Marketplace

Téléchargez des applications et des données pour votre organisation.

  • Documentation
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

ArcMap

  • Accueil
  • Commencer
  • Carte
  • Analyser
  • Gérer les données
  • Outils
  • Extensions

Créer une couche emplacement-allocation

Disponible avec une licence Network Analyst.

  • Résumé
  • Utilisation
  • Syntaxe
  • Exemple de code
  • Environnements
  • Informations de licence

Résumé

Crée une couche d'analyse de réseau emplacement-attribution et définit ses propriétés d'analyse. Une couche d'analyse d'emplacement-allocation est utile pour sélectionner un nombre donné de ressources dans un ensemble de localisations potentielles de manière qu'une demande soit allouée aux ressources de façon optimale et efficace.

Utilisation

  • Après avoir créé la couche d'analyse avec cet outil, vous pouvez ajouter des objets d'analyse de réseau à l'aide de l'outil Ajouter des localisations, résoudre l'analyse à l'aide de l'outil Calculer et enregistrer les résultats sur le disque à l'aide de l'outil Enregistrer dans un fichier de couche.

  • Lorsque vous utilisez cet outil dans des modèles de géotraitement, si le modèle est exécuté en tant qu'outil, la couche d'analyse de réseau en sortie doit être convertie en paramètre de modèle. Dans le cas contraire, la couche en sortie n'est pas ajoutée au contenu de la carte.

Syntaxe

MakeLocationAllocationLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {loc_alloc_from_to}, {loc_alloc_problem_type}, {number_facilities_to_find}, {impedance_cutoff}, {impedance_transformation}, {impedance_parameter}, {target_market_share}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {output_path_shape}, {default_capacity}, {time_of_day})
ParamètreExplicationType de données
in_network_dataset

Jeu d'entités réseau sur lequel l'analyse emplacement-allocation s'effectue.

Network Dataset Layer
out_network_analysis_layer

Nom de la couche d'analyse de réseau emplacement-allocation à créer.

String
impedance_attribute

L'attribut de coût à utiliser comme impédance dans l'analyse.

String
loc_alloc_from_to
(Facultatif)

Précise la direction de déplacement entre ressources et points de demande lors du calcul des coûts du réseau.

  • FACILITY_TO_DEMAND —La direction de déplacement va des ressources vers les points de demande. Les services des pompiers utilisent en général ce paramètre, car ils s'intéressent à la durée du trajet entre la caserne et le site d'intervention.
  • DEMAND_TO_FACILITY —La direction de déplacement va des points de demande vers les ressources. Les points de vente de détail utilisent couramment ce paramètre, car ils s'intéressent au temps nécessaire aux acheteurs pour atteindre le magasin.

Cette option peut affecter l'attribution des points de demande aux ressources d'un réseau avec des restrictions unilatérales et des impédances différentes selon la direction de déplacement. Par exemple, une ressource peut être située à 15 minutes de trajet en circulant du point de demande à la ressource, mais uniquement à 10 minutes en circulant en sens inverse.

String
loc_alloc_problem_type
(Facultatif)

Type de problème à résoudre. Le choix du type de problème dépend du genre de ressource localisée. Différents genres de ressources ont des priorités et des contraintes différentes.

  • MINIMIZE_IMPEDANCE —Cette option résout le problème de l'emplacement de l'entrepôt. Elle sélectionne un ensemble de ressources de manière à minimiser la somme des impédances pondérées (demande à un emplacement multipliée par la ressource la plus proche). Ce type de problème est souvent désigné par le nom de problème P Médian.
  • MAXIMIZE_COVERAGE —Cette option résout le problème de l'emplacement de la caserne de pompiers. Elle sélectionne des ressources de manière que l'intégralité ou le plus grand nombre de demandes se trouve dans une limite d'impédance précisée.
  • MAXIMIZE_CAPACITATED_COVERAGE —Cette option résout le problème de l'emplacement dans lequel les ressources ont une capacité limitée. Elle choisit des ressources afin que l'intégralité ou une grande partie de la demande puisse être satisfaite sans dépasser la capacité des ressources. En outre, elle sélectionne les ressources afin que la somme totale des impédances pondérées (demande allouée à une ressource multipliée par l'impédance vers ou depuis la ressource) soit minimisée.
  • MINIMIZE_FACILITIES —Cette option résout le problème de l'emplacement de la caserne de pompiers. Elle sélectionne le nombre minimal de ressources nécessaires pour couvrir toutes les demandes (ou le plus grand nombre) dans une limite d’impédance spécifiée.
  • MAXIMIZE_ATTENDANCE —Cette option résout le problème de l'emplacement d'un magasin de voisinage où la proportion de demande allouée à la ressource la plus proche sélectionnée diminue avec l'augmentation de la distance. L'ensemble de ressources qui maximisent la demande allouée est sélectionné. Une demande située plus loin que la limite d'impédance spécifiée n'affecte pas l'ensemble de ressources sélectionné.
  • MAXIMIZE_MARKET_SHARE —Cette option résout le problème de l'emplacement de ressource compétitif. Elle sélectionne des ressources pour maximiser la part de marché en présence de ressources compétitives. Les concepts de modèle gravitaire permettent de déterminer la proportion de demande allouée à chaque ressource. L'ensemble de ressources qui maximise la demande allouée est sélectionné.
  • TARGET_MARKET_SHARE —Cette option résout le problème de l'emplacement de ressource compétitif. Elle sélectionne des ressources permettant d'atteindre une part de marché cible spécifiée dans la présence de ressources compétitives. Les concepts de modèle gravitaire permettent de déterminer la proportion de demande allouée à chaque ressource. Le nombre minimal de ressources nécessaire pour atteindre la part de marché cible spécifiée est sélectionné.
String
number_facilities_to_find
(Facultatif)

Spécifie le nombre des ressources que le solveur doit localiser.

Les ressources présentant une propriété FacilityType de valeur Requis font toujours partie de la solution lorsque le nombre de ressources à rechercher est supérieur au nombre de ressources requises ; toutes les ressources à sélectionner supplémentaires sont choisies parmi les ressources candidates.

Toute ressource ayant une propriété FacilityType de valeur Choix avant le calcul est traitée comme les ressources candidates lors de la recherche.

La valeur du paramètre n'est pas prise en compte pour le type de problème MINIMIZE_FACILITIES, puisque le solveur détermine le nombre minimum de ressources à localiser pour optimiser la couverture.

La valeur du paramètre est remplacée pour le type de problème TARGET_MARKET_SHARE, car le solveur recherche le nombre minimum de ressources requises pour capturer la part de marché spécifiée.

Long
impedance_cutoff
(Facultatif)

La limite d'impédance spécifie l'impédance maximale à laquelle un point de demande peut être alloué à une ressource. L'impédance maximale est mesurée par le chemin de moindre coût le long du réseau. Si un point de demande est situé à l'extérieur de la limite, il reste non alloué. Cette propriété peut permettre de modéliser la distance maximale que les gens sont disposés à parcourir pour accéder à vos magasins ou la durée maximale autorisée pour un service des pompiers pour atteindre toute personne de la communauté.

Les points de demande présentent une propriété Cutoff_[Impédance] qui, si elle est définie, remplace la propriété Limite d'impédance de la couche d'analyse. 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. Vous pouvez modéliser ce comportement en définissant la valeur de limite d'impédance de la couche d'analyse sur 10 et en définissant la valeur Cutoff_Miles des points de demande sur 2 dans les zones urbaines.

Double
impedance_transformation
(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.

  • LINEAR —L'impédance de réseau transformée entre la ressource et le point de demande est identique à l'impédance de réseau du plus court chemin. Avec cette option, le paramètre d'impédance a toujours la valeur un. Il s'agit de l'option par défaut.
  • POWER —L'impédance de réseau transformée entre la ressource et le point de demande est égale à l'impédance de réseau du plus court chemin élevée à la puissance indiquée par le paramètre d'impédance. Cette option avec un paramètre d'impédance positif permet de spécifier la plus haute pondération aux ressources proches.
  • EXPONENTIAL —L'impédance de réseau transformée entre la ressource et le point de demande est égale à la constante mathématique e élevée à la puissance indiquée par l'impédance de réseau du plus court chemin multipliée par le paramètre d'impédance. Cette option avec un paramètre d'impédance positif permet de spécifier une pondération très élevée pour les ressources proches.Les transformations exponentielles sont généralement utilisées conjointement avec une limite d'impédance.

Les points de demande disposent d'une propriété ImpedanceTransformation qui, si elle est définie, remplace la propriété Transformation d'impédance de la couche d'analyse. Vous pouvez déterminer une transformation d'impédance différente pour les résidents urbains et ruraux. Vous pouvez modéliser ceci en définissant la transformation d'impédance pour la couche d'analyse de manière à correspondre à celle des résidents ruraux et en définissant la transformation d'impédance pour les points de demande dans les zones urbaines de manière à correspondre à celle des citadins.

String
impedance_parameter
(Facultatif)

Fournit une valeur de paramètre aux équations spécifiées dans le paramètre de transformation d'impédance. La valeur de paramètre est ignorée lorsque la transformation d'impédance est de type LINEAR. Pour les transformations d'impédance POWER et EXPONENTIAL, la valeur doit être non nulle.

Les points de demande disposent d'une propriété ImpedanceParameter qui, si elle est définie, remplace la propriété Paramètre d'impédance de la couche d'analyse. Vous pouvez déterminer un paramètre d'impédance différent pour les résidents urbains et ruraux. Vous pouvez modéliser ceci en définissant la transformation d'impédance pour la couche d'analyse de manière à correspondre à celle des résidents ruraux et en définissant la transformation d'impédance pour les points de demande dans les zones urbaines de manière à correspondre à celle des citadins.

Double
target_market_share
(Facultatif)

Spécifie la part de marché cible en pourcentage pour laquelle effectuer l'analyse lorsque le paramètre Type de problème emplacement-allocation a la valeur TARGET_MARKET_SHARE. Il s'agit du pourcentage de la pondération de demande totale à capturer par vos ressources de solution. Le solveur sélectionne le nombre minimal de ressources requis pour capturer la part de marché cible spécifiée par cette valeur numérique.

Double
accumulate_attribute_name
[accumulate_attribute_name,...]
(Facultatif)

Liste des attributs de coût à cumuler lors de l'analyse. Ces attributs d'accumulation sont destinés à servir à titre de référence uniquement ; le solveur utilise uniquement l'attribut de coût spécifié par le paramètre de l'attribut Impédance pour calculer l'itinéraire.

Pour chaque attribut de coût accumulé, une propriété Total_[Impédance] est ajoutée aux itinéraires générés en sortie par le solveur.

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 à 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.

  • ALLOW_UTURNS —Les demi-tours sont autorisés aux jonctions comportant un nombre quelconque de tronçons connectés. Il s'agit de la valeur par défaut.
  • NO_UTURNS —Les demi-tours sont interdits à toutes les jonctions, indépendamment de la valence de jonction. Notez toutefois que les demi-tours restent autorisés aux emplacements réseau même lorsque ce paramètre est sélectionné ; en revanche, vous pouvez configurer la propriété CurbApproach des emplacements réseau individuels pour y interdire les demi-tours également.
  • ALLOW_DEAD_ENDS_ONLY —Les demi-tours sont interdits au niveau de toutes les jonctions, sauf celles ayant un seul tronçon adjacent (voie sans issue).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY —Les demi-tours sont interdits aux jonctions où deux tronçons adjacents se rencontrent, mais sont autorisés aux intersections (jonctions avec au moins trois tronçons adjacents) et aux voies sans issue (jonctions avec exactement un tronçon adjacent). Souvent, les réseaux comportent des jonctions superflues au milieu de segments de route. Cette option empêche des véhicules de faire des demi-tours à ces emplacements.
Astuce:

Si la définition de votre règle de demi-tour n'est pas suffisamment précise, envisagez d'ajouter un évaluateur de délai de tournant global à un attribut de coût de réseau ou de modifier ses paramètres, le cas échéant, en veillant tout particulièrement à la configuration des tournants inversés. Pensez également à définir la propriété CurbApproach de vos localisations réseau.

String
restriction_attribute_name
[restriction_attribute_name,...]
(Facultatif)

Liste des attributs de restriction à appliquer lors de l'analyse.

String
hierarchy
(Facultatif)
  • USE_HIERARCHY — Utilise l'attribut de hiérarchie pour l'analyse. L'utilisation d'une hiérarchie implique une préférence du solveur pour les tronçons d'ordre supérieur par rapport aux tronçons d'ordre inférieur. Les recherches hiérarchiques sont plus rapides et permettent de simuler la préférence d'un chauffeur de circuler sur des autoroutes au lieu de routes locales si possible, même si cela implique un trajet plus long. Cette option est valide uniquement si le jeu de données réseau en entrée comporte un attribut de hiérarchie.
  • NO_HIERARCHY —N'utilise pas l'attribut de hiérarchie pour l'analyse. Un itinéraire exact est alors obtenu pour le jeu de données réseau.

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.

Boolean
output_path_shape
(Facultatif)
  • NO_LINES —Aucune ligne n'est créée pour l'analyse en sortie.
  • STRAIGHT_LINES —Les formes de ligne en sortie sont des lignes droites qui connectent les ressources de solution à leurs points de demande alloués.
String
default_capacity
(Facultatif)

Spécifie la capacité par défaut des ressources lorsque le paramètre loc_alloc_problem_type est défini sur MAXIMIZE_CAPACITATED_COVERAGE. Ce paramètre est ignoré pour tous les autres types de problème.

La propriété de capacité des ressources, si elle est définie sur une valeur non nulle, a priorité sur le paramètre default_capacity de cette ressource.

Double
time_of_day
(Facultatif)

Indique l'heure et la date de départ. L'heure de départ peut être définie à partir des ressources ou des points de demande, selon que le trajet s'effectue de la demande vers la ressource ou de la ressource vers la demande.

Si vous avez choisi un attribut d'impédance basé sur la circulation, l'analyse est effectuée selon des conditions de circulation dynamiques correspondant à l'heure du jour spécifiée ici. Une date et une heure peuvent être spécifiées sous la forme 5/14/2012 10:30 AM.

Au lieu d'utiliser une date particulière, un jour de la semaine peut être spécifié à l'aide des dates suivantes :

  • Aujourd'hui - 12/30/1899
  • Dimanche - 12/31/1899
  • Lundi - 1/1/1900
  • Mardi - 1/2/1900
  • Mercredi - 1/3/1900
  • Jeudi - 1/4/1900
  • Vendredi - 1/5/1900
  • Samedi - 1/6/1900
Par exemple, pour préciser que le trajet doit commencer mardi à 17:00, spécifiez la valeur de paramètre sous la forme 1/2/1900 5:00 PM.

Date

Sortie dérivée

NomExplicationType de données
output_layer

Exemple de code

Exemple 1 d'utilisation de l'outil Créer une couche emplacement-attribution (fenêtre Python)

Exécute l'outil uniquement avec les paramètres requis.

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeLocationAllocationLayer(network, "StoreLocations", "TravelTime")
Exemple 2 d'utilisation de l'outil Créer une couche emplacement-attribution (fenêtre Python)

Exécutez l'outil avec tous les paramètres.

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeLocationAllocationLayer(network, "NewStores", "TravelTime",
                                    "DEMAND_TO_FACILITY", "MAXIMIZE_ATTENDANCE",
                                    3, 5, "POWER", 2, "",
                                    ["TravelTime", "Meters"], "ALLOW_UTURNS",
                                    ["Oneway"], "NO_HIERARCHY",
                                    "STRAIGHT_LINES", "", "9 AM")
Exemple 3 de Créer une couche emplacement-attribution (workflow)

Le script Python autonome illustre l'utilisation de l'outil Créer une couche emplacement-attribution pour sélectionner les emplacements de magasin qui généreraient la plus grande activité pour une chaîne de magasins.

# Name: MakeLocationAllocationLayer_Workflow.py
# Description: Choose the store locations that would generate the most business 
#              for a retail chain. For this scenario we will perform the 
#              location-allocation analysis using maximize attendance problem 
#              type. 
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    outNALayerName = "NewStoreLocations"
    impedanceAttribute = "TravelTime"
    inFacilities = "Analysis/CandidateStores"
    requiredFacility = "Analysis/ExistingStore"
    inDemandPoints = "Analysis/TractCentroids"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Create a new location-allocation layer. In this case the demand travels to
    #the facility. We wish to find 3 potential store locations out of all the
    #candidate store locations using the maximize attendance model.
    outNALayer = arcpy.na.MakeLocationAllocationLayer(inNetworkDataset,
                                                      outNALayerName,
                                                      impedanceAttribute,
                                                      "DEMAND_TO_FACILITY",
                                                      "MAXIMIZE_ATTENDANCE",3,5,
                                                      "LINEAR")
    
    #Get the layer object from the result object. The location-allocation layer
    #can now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the location-allocation layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]
    demandPointsLayerName = subLayerNames["DemandPoints"]
    
    
    #Load the candidate store locations as facilities using default search
    #tolerance and field mappings.
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Load the existing store location as the required facility. Use the field
    #mappings to set the facility type to requried. We need to append this
    #required facility to existing facilities.
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, facilitiesLayerName)
    fieldMappings["FacilityType"].defaultValue = 1
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, requiredFacility,
                          fieldMappings, "", append = "APPEND",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Load the tract centroids as demand points using default search tolerance
    #Use the field mappings to map the Weight property from POP2000 field.
    demandFieldMappings = arcpy.na.NAClassFieldMappings(outNALayer,
                                                        demandPointsLayerName)
    demandFieldMappings["Weight"].mappedFieldName = "POP2000"    
    arcpy.na.AddLocations(outNALayer,demandPointsLayerName ,inDemandPoints,
                          demandFieldMappings, "",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Solve the location-allocation layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved location-allocation layer as a layer file on disk with 
    #relative paths
    arcpy.management.SaveToLayerFile(outNALayer,outLayerFile,"RELATIVE")
    
    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occurred on line %i" % tb.tb_lineno
    print str(e)

Environnements

  • Espace de travail courant

Informations de licence

  • ArcGIS Desktop Basic: Oui
  • ArcGIS Desktop Standard: Oui
  • ArcGIS Desktop Advanced: Oui

Rubriques connexes

  • Analyse d'emplacement-allocation
  • A propos de l'analyse de réseau avec une hiérarchie
  • Vue d'ensemble du jeu d'outils Analyse
  • Que sont les couches d'analyse de réseau ?

ArcGIS Desktop

  • Accueil
  • Documentation
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog d’Esri
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
Donnez-nous votre avis.
Copyright © 2019 Esri. | Confidentialité | Légal