Location-Allocation-Layer erstellen (Network Analyst)
Zusammenfassung
Erstellt einen Location-Allocation-Netzwerkanalyse-Layer und legt seine Analyseeigenschaften fest. Ein Location-Allocation-Analyse-Layer ist nützlich, wenn Sie eine definierte Anzahl an Einrichtungen aus einem Satz potenzieller Standorte auswählen, so dass den Einrichtungen auf optimale und effiziente Weise ein Bedarf zugeordnet wird.
Verwendung
Nachdem Sie den Analyse-Layer mit diesem Werkzeug erstellt haben, können Sie diesem mithilfe des Werkzeugs Standorte hinzufügen Netzwerk-Analyseobjekte hinzufügen, die Analyse mithilfe des Werkzeugs Berechnen berechnen und die Ergebnisse mithilfe des Werkzeugs In Layer-Datei speichern auf einem Datenträger speichern.
Wenn Sie das Werkzeug in Geoverarbeitungsmodellen verwenden und das Modell als Werkzeug ausgeführt wird, muss der Ausgabenetzwerkanalyse-Layer als Modellparameter festgelegt werden. Ansonsten wird der Ausgabe-Layer dem Inhaltsverzeichnis in ArcMap nicht hinzugefügt.
Syntax
Parameter | Erläuterung | Datentyp |
in_network_dataset |
Das Netzwerk-Dataset, für das die Location-Allocation-Analyse ausgeführt wird. | Network Dataset Layer |
out_network_analysis_layer |
Name des zu erstellenden Location-Allocation-Netzwerkanalyse-Layers. | String |
impedance_attribute |
Das Kostenattribut, das in der Analyse als Impedanz verwendet wird. | String |
loc_alloc_from_to (optional) |
Gibt beim Berechnen der Netzwerkkosten die Fahrtrichtung zwischen Einrichtungen und Bedarfspunkten an.
Die Verwendung dieser Option kann sich in einem Netzwerk mit Beschränkungen für Einbahnstraßen und unterschiedlichen Impedanzen basierend auf der Fahrtrichtung auf die Zuordnung der Bedarfspunkte zu den Einrichtungen auswirken. Zum Beispiel kann die Fahrtzeit vom Bedarfspunkt zur Einrichtung 15 Minuten betragen, die Fahrt in der entgegengesetzten Richtung möglicherweise jedoch nur 10 Minuten. Feuerwehren verwenden im Allgemeinen die Einstellung Einrichtung zu Nachfrage, da es hier darauf ankommt, wie lange es dauert, von der Feuerwache zum Einsatzort zu fahren. Ein Einzelhandelsgeschäft ist eher daran interessiert, wie lange die Käufer brauchen, um den Laden zu erreichen. Daher verwenden Läden für gewöhnlich die Option Nachfrage zu Einrichtung. | String |
loc_alloc_problem_type (optional) |
Der Problemtyp, der berechnet wird. Die Auswahl des Problemtyps hängt von der Art der gesuchten Einrichtung ab. Die Einrichtungen weisen je nach Art unterschiedliche Prioritäten und Einschränkungen auf.
| String |
number_facilities_to_find (optional) |
Gibt die Anzahl von Einrichtungen an, die der Solver suchen soll. Die Einrichtungen mit dem FacilityType-Wert "Erforderlich" sind stets Teil der Lösung, wenn mehr Einrichtungen gesucht werden, als erforderliche Einrichtungen vorhanden sind. Alle zusätzlich auszuwählenden Einrichtungen werden aus geeigneten Einrichtungen ausgewählt. Alle Einrichtungen mit dem FacilityType-Wert "Ausgewählt" werden vom Solver als geeignete Einrichtung behandelt. Der Parameterwert wird für den Problemtyp "MINIMIZE_FACILITIES" nicht berücksichtigt, da der Solver die Mindestanzahl von zu suchenden Einrichtungen zur Maximierung der Flächendeckung festlegt. Der Parameterwert wird für den Problemtyp "TARGET_MARKET_SHARE" überschrieben, da der Solver nach der Mindestanzahl von Einrichtungen sucht, die erforderlich ist, um den angegebenen Marktanteil zu erreichen. | Long |
impedance_cutoff (optional) |
Mit "Impedanz-Grenzwert" wird die maximale Impedanz angegeben, bei dem einer Einrichtung ein Bedarfspunkt zugeordnet werden kann. Die maximale Impedanz wird an der kostengünstigsten Route im Netzwerk gemessen. Wenn ein Bedarfspunkt außerhalb des Grenzwerts liegt, wird er nicht zugeordnet. Diese Eigenschaft kann verwendet werden, um die maximale Entfernung zu modellieren, die Kunden eines Geschäfts als Fahrtstrecke akzeptieren würden, oder zur Vorgabe der maximalen Zeitspanne, innerhalb derer die Feuerwehr alle Bewohner einer Gemeinde erreichen soll. Wenn die Eigenschaft "Cutoff_ [Impedance]" eines Bedarfspunkts festgelegt wurde, überschreibt dieser Wert die Eigenschaft Impedanz-Grenzwert des Analyse-Layers. Sie stellen möglicherweise fest, dass die Bevölkerung in ländlichen Gegenden bereit ist, bis zu 10 Meilen zu fahren, um eine Einrichtung zu erreichen, während Städter nur höchstens 2 Meilen fahren möchten. Sie können dieses Verhalten modellieren, indem Sie den Impedanz-Grenzwert des Analyse-Layers auf 10 festlegen und den Wert "Cutoff_Miles" der Bedarfspunkte in städtischen Gebieten auf 2 festlegen. | Double |
impedance_transformation (optional) |
Diese Eigenschaft legt die Gleichung fest, die zum Umrechnen der Netzwerkkosten zwischen Einrichtungen und Bedarfspunkten verwendet wird. Diese Eigenschaft gibt in Verbindung mit dem Impedanz-Parameter an, wie stark sich die Netzwerk-Impedanz zwischen Einrichtungen und Bedarfspunkten auf die Auswahl von Einrichtungen durch den Solver auswirkt.
Wenn die Eigenschaft "ImpedanceTransformation" eines Bedarfspunkts festgelegt wurde, überschreibt dieser Wert die Eigenschaft "ImpedanceTransformation" des Analyse-Layers. Sie möchten möglicherweise festlegen, dass für städtische und ländliche Bevölkerungsteile eine andere Impedanz-Transformation verwendet werden soll. Sie können dies modellieren, indem Sie die Eigenschaft "ImpedanceTransformation" für den Analyse-Layer so festlegen, dass sie das Verhalten der ländlichen Bevölkerung darstellt, und die Eigenschaft "ImpedanceTransformation" der Bedarfspunkte in städtischen Gebieten so festlegen, dass die dem Verhalten der Städter entspricht. | String |
impedance_parameter (optional) |
Stellt einen Parameterwert für die im Parameter "Impedanz-Transformation" angegebenen Gleichungen bereit. Der Parameterwert wird ignoriert, wenn die Impedanz-Transformation den Typ "Linear" aufweist. Für Potenz- und Exponential-Impedanz-Transformationen muss der Wert ungleich Null sein. Wenn die Eigenschaft "Impedanz-Parameter" eines Bedarfspunkts festgelegt wurde, überschreibt dieser Wert die Eigenschaft Impedanz-Parameter des Analyse-Layers. Sie legen möglicherweise fest, dass für städtische und ländliche Bevölkerungsteile ein anderer Impedanzparameter verwendet werden soll. Sie können dies modellieren, indem Sie die Eigenschaft "Impedanz-Transformation" für den Analyse-Layer so festlegen, dass sie das Verhalten der ländlichen Bevölkerung darstellt, und die Eigenschaft "Impedanz-Transformation" der Bedarfspunkte in städtischen Gebieten so festlegen, dass die dem Verhalten der Städter entspricht. | Double |
target_market_share (optional) |
Gibt den Zielmarktanteil in Prozent für die Berechnung an, wenn der Parameter für den Location-Allocation-Problemtyp auf TARGET_MARKET_SHARE festgelegt wird. Es ist der Prozentsatz der gesamten Bedarfsgewichtung, die von Lösungseinrichtungen abgedeckt werden soll. Der Solver wählt die Mindestanzahl von Einrichtungen aus, die erforderlich ist, um den durch diesen numerischen Wert angegebenen angestrebten Marktanteil zu erreichen. | Double |
accumulate_attribute_name [accumulate_attribute_name,...] (optional) |
Liste der Kostenattribute, die während der Analyse akkumuliert werden sollen. Diese Akkumulationsattribute dienen ausschließlich zu Referenzzwecken. Der Solver verwendet nur das mit dem Parameter "Impedanz-Attribut" angegebene Kostenattribut zum Berechnen der Route. For each cost attribute that is accumulated, a Total_[Impedance] property is added to the routes that are output by the solver. | String |
UTurn_policy (optional) |
Wenden an Knoten, die beim Durchlaufen des Netzwerks zwischen Stopps auftreten, sind zulässig oder nicht.
| String |
restriction_attribute_name [restriction_attribute_name,...] (optional) |
Liste von Restriktionsattributen, die während der Analyse angewendet werden. | String |
hierarchy (optional) |
Der Parameter wird nicht verwenden, wenn für das Netzwerk-Dataset, das zum Ausführen der Analyse verwendet wird, kein Hierarchieattribut definiert wird. In solchen Fällen verwenden Sie "#" als Parameterwert. | Boolean |
output_path_shape (optional) |
| String |
Codebeispiel
Ausführen des Werkzeugs, wenn nur die erforderlichen Parameter verwendet werden
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.MakeLocationAllocationLayer_na("Transportation/Streets_ND", "StoreLocations","Minutes")
Ausführen des Werkzeugs unter Verwendung aller Parameter
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.MakeLocationAllocationLayer_na("Transportation/Streets_ND","NewStores", "Minutes","DEMAND_TO_FACILITY", "MAXIMIZE_ATTENDANCE",3,5,"POWER",2,"", ["Minutes","Meters"],"ALLOW_UTURNS", ["Oneway"],"NO_HIERARCHY","STRAIGHT_LINES")
Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie das Werkzeug "MakeLocationAllocationLayer" verwendet werden kann, um die Ladenstandorte auszuwählen, die den größten Umsatz für eine Einzelhandelskette generieren.
# 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" outNALayer = "NewStoreLocations" impedanceAttribute = "TravelTime" inFacilities = "Analysis/CandidateStores" inDemandPoints = "Analysis/TractCentroids" outLayerFile = "C:/data/output" + "/" + outNALayer + ".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. arcpy.MakeLocationAllocationLayer_na(inNetworkDataset, outNALayer, impedanceAttribute,"DEMAND_TO_FACILITY", "MAXIMIZE_ATTENDANCE",3,5, "LINEAR") #Load the candidate store locations as facilities arcpy.AddLocations_na(outNALayer,"Facilities",inFacilities,"","") #Load the tract centroids as demand points arcpy.AddLocations_na(outNALayer,"Demand Points",inDemandPoints,"","") #Solve the location-allocation layer arcpy.Solve_na(outNALayer) #Save the solved location-allocation layer as a layer file on disk with #relative paths arcpy.SaveToLayerFile_management(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 occured on line %i" % tb.tb_lineno print str(e)