Standorte hinzufügen (Network Analyst)

Zusammenfassung

Fügt einem Netzwerkanalyse-Layer ein Netzwerkanalyse-Objekt hinzu. Die Objekte werden bestimmten Sublayern z. B. Stopps und Barrieren hinzugefügt. Objekte werden als Features oder Datensätze eingegeben.

Verwendung

Syntax

AddLocations_na (in_network_analysis_layer, sub_layer, in_table, field_mappings, search_tolerance, {sort_field}, {search_criteria}, {match_type}, {append}, {snap_to_position_along_network}, {snap_offset}, {exclude_restricted_elements}, {search_query})
ParameterErläuterungDatentyp
in_network_analysis_layer

Der Netzwerkanalyse-Layer, dem die Netzwerkanalyse-Objekte hinzugefügt werden.

Network Analyst Layer
sub_layer

Der Sublayer des Netzwerkanalyse-Layers, dem die Netzwerkanalyse-Objekte hinzugefügt werden.

String
in_table

Die Feature-Class oder die Tabelle, die die Quelle für die neuen Netzwerkanalyse-Objekte ist.

Table View
field_mappings

Sets the values for the properties of the network analysis objects. Properties can be set to a constant or mapped to a field from the input feature class or table.

Der Parameterwert wird als eine durch Semikolons getrennte Liste von drei Werten, bestehend aus Eigenschaftenname, Feldname und Standardwert, angegeben. Sie sollten entweder den Feldnamen oder den Standardwert für eine Eigenschaft angeben. Der Parameterwert "Name Adresse #; Attr_Minutes # 2" gibt beispielsweise an, dass die Eigenschaft "Name" vom Feld "Adresse" zugeordnet wird und dass die Eigenschaft "Attr_Minutes" beim Hinzufügen der Eingabe-Features den konstanten Wert 2 haben soll.

Wenn einem Feld eine bestimmte Eigenschaft nicht zugeordnet wird oder die Eigenschaft einen Standardwert hat oder nicht in den Parameterwert eingeschlossen wird, wird die Standardzuordnung verwendet. Wenn Sie die Standardzuordnungen für alle Eigenschaften verwenden möchten, verwenden Sie # für den Parameterwert.

If both the Field and the Default Value are not specified for a property, the resulting network analysis objects will have null values for that property.

Wenn die Daten, die Sie laden, Netzwerkstandorte oder Standortbereiche auf Grundlage des für die Analyse verwendeten Netzwerk-Datasets enthalten, müssen Sie die Netzwerkstandortfelder aus den Eingabe-Features den Netzwerkstandorteigenschaften zuordnen. Ordnen Sie Punktpositionen wie Stopps oder Ereignissen die Eigenschaften "SourceID", "SourceOID", "PosAlong" und "SideOfEdge" zu und ordnen Sie Linien- oder Polygonpositionen wie Polygon-Barrieren die Eigenschaft "Orte" zu. Das Hinzufügen von Netzwerkanalyse-Objekten mithilfe von Netzwerkstandortfeldern erfolgt viel schneller als das Laden die Objekte durch die Geometrie. Das Angeben von Netzwerkstandortfeldern in den Feldzuordnungen funktioniert ähnlich wie die Verwendung des Parameters Netzwerkstandortfelder statt Geometrie verwenden im Werkzeugdialogfeld.

VorsichtVorsicht:

Wenn Sie die Feldzuordnung für einzelne Netzwerkstandorteigenschaften angeben, müssen Sie auch die Feldzuordnungen für die verbleibenden Netzwerkstandorteigenschaften angeben, um Werkzeugausführungsfehler zu vermeiden.

Network Analyst Field Map
search_tolerance

The search tolerance for locating the input features on the network. Features that are outside the search tolerance are left unlocated. The parameter includes a value and units for the tolerance.

Beim Hinzufügen von Standorten zu den Sublayern "Linien-Barrieren" oder "Polygon-Barrieren" wird der Parameter nicht verwendet. In solchen Fällen verwenden Sie "#" als Parameterwert.

Linear Unit
sort_field
(optional)

Ein Feld, in dem die Netzwerkanalyse-Objekte sortiert werden, wenn sie dem Netzwerkanalyse-Layer hinzugefügt werden. Standardmäßig ist es das Feld "ObjectID" in der Eingabe-Feature-Class oder der Tabelle.

Field
search_criteria
[[Quelle, SnapType],...]
(optional)

Specifies which sources in the network dataset will be searched when finding locations and what portions of geometry (also known as snap types) will be used.

Der Parameterwert wird als Liste mit geschachtelten Listen angegeben. Die geschachtelte Liste besteht aus zwei Werten, die den Namen und den Fangtyp für jede Netzwerkquelle angeben. Der Fangtyp wird mit den Schlüsselwörtern "SHAPE", "MIDDLE", "END" oder "NONE" angegeben. Bei Suchen von Standorten wird beispielsweise mit dem Parameterwert [["Straßen", "SHAPE"], ["Streets_ND_Junctions", "NONE"]] angegeben, dass durch die Suche das Shape der Quelle "Straße", aber nicht der Quelle "Streets_ND_Junctions" ermittelt werden kann.

Wenn Sie mehrere Fangtypen für eine einzelne Netzwerkquelle angeben möchten, verwenden Sie eine Kombination der Fangtypschlüsselwörter, die durch einen Unterstrich getrennt werden. MIDDLE_END gibt z. B. an, dass die Standorte in der Mitte oder am Ende der Netzwerkquelle gefangen werden können.

When adding line or polygon network locations, only the Shape snap type is used even if other snap types are specified.

Value Table
match_type
(optional)
  • MATCH_TO_CLOSESTVergleicht die neuen Netzwerkstandorte in Bezug auf die nächstgelegene Quelle unter den verfügbaren Quellen, für die in den Suchkriterien ein Fangtyp angegeben ist. Dies ist die Standardeinstellung.
  • PRIORITYVergleicht die neuen Netzwerkstandorte in Bezug auf die erste Netzwerkquelle, für die in den Suchkriterien ein Fangtyp angegeben ist. Die Quellen werden in der Prioritätsreihenfolge durchsucht und die Suche wird beendet, wenn der Standort innerhalb der Suchtoleranz gefunden wird.

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Boolean
append
(optional)

Specifies whether or not to append new network analysis objects to existing objects.

  • APPENDFügt den bestehenden Objekten im ausgewählten Sublayer die neuen Netzwerkanalyse-Objekte hinzu.
  • CLEARLöscht die vorhandenen Netzwerkanalyse-Objekte und ersetzt diese durch die neuen Objekte.
Boolean
snap_to_position_along_network
(optional)

Specifies that you want to snap the network locations along the network dataset or at some specified offset from the network dataset.

  • NO_SNAP Die Geometrien der Netzwerkstandorte basieren auf den Geometrien der Eingabe-Features. Dies ist in Situationen nützlich, in denen Sie "CurbApproach" verwenden möchten, denn für die Netzwerkstandorte muss bekannt sein, auf welcher Seite der Bordsteinkante sich diese befinden.
  • SNAP Wenn Sie Punkt-Features verwenden, wird der Punkt am Netzwerk gefangen und Sie können "CurbApproach" nicht verwenden. Dies ist nützlich, wenn es egal ist, auf welche Weise sich ein Fahrzeug einem Stopp nähert. Wenn Sie als Eingabe-Features Linien oder Polygone verwenden, müssen Sie diesen Parameterwert verwenden.

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Boolean
snap_offset
(optional)

When snapping a point to the network, you can apply an offset distance. An offset distance of zero means the point will be coincident with the network feature (typically a line). To offset the point from the network feature, enter an offset distance. The offset is in relation to the original point location. That is, if the original point was on the left side, its new location will be offset to the left. If it was originally on the right side, its new location will be offset to the right.

The parameter is not used when adding locations to the Line Barriers or Polygon Barriers sublayers. In such cases, use "#" as the parameter value.

Long
exclude_restricted_elements
(optional)
  • EXCLUDEGibt an, dass die Netzwerkstandorte nur auf passierbaren Teilen des Netzwerks platziert werden. Dies verhindert, dass Netzwerkstandorte auf Elementen platziert werden, die Sie aufgrund von Einschränkungen oder Barrieren nicht erreichen können. Stellen Sie vor dem Hinzufügen der Netzwerkstandorte mithilfe dieser Option sicher, dass Sie bereits alle Einschränkungsbarrieren zum Eingabenetzwerkanalyse-Layer hinzugefügt haben, um die gewünschten Ergebnisse zu erhalten. Beim Hinzufügen von Barrierenobjekten ist dieser Parameter nicht anwendbar. In solchen Fällen verwenden Sie "#" als Parameterwert.
  • INCLUDEGibt an, dass die Netzwerkstandorte auf allen Elementen des Netzwerks platziert werden. Die Netzwerkstandorte, die mit dieser Option hinzugefügt werden, sind – wenn sie auf eingeschränkten Elementen platziert werden – möglicherweise während des Berechnungsprozesses nicht erreichbar.
Boolean
search_query
[[Quelle, Ausdruck],...]
(optional)

Specifies a query to restrict the search to a subset of the features within a source feature class. This is useful if you don't want to find features that may be unsuited for a network location. For example, if you are loading centroids of polygons and don't want to locate on local roads, you can define a query that searches for major roads only.

Der Parameterwert wird als Liste mit geschachtelten Listen angegeben. Die geschachtelte Liste besteht aus zwei Werten, die den Namen und den SQL-Ausdruck für alle Netzwerkquellen angeben. Die Syntax für den SQL-Ausdruck hängt vom Typ der Netzwerk-Quell-Feature-Class ab. Wenn Sie beispielsweise Quell-Feature-Classes abfragen, die in File- oder ArcSDE-Geodatabases, Shapefiles oder SDC gespeichert sind, müssen Sie die Feldnamen in doppelte Anführungszeichen einschließen "CFCC". Wenn Sie in Personal-Geodatabases gespeicherte Quell-Feature-Classes abfragen, müssen Sie die Felder in eckige Klammern einschließen: [CFCC].

Wenn Sie keine Abfrage für eine bestimmte Quelle angeben möchten, verwenden Sie "#" als Wert für den SQL-Ausdruck oder schließen Sie den Quellennamen und den SQL-Ausdruck aus dem Parameterwert aus. Wenn Sie keine Abfrage für alle Netzwerkquellen angeben möchten, können Sie "#" als Parameterwert verwenden.

So wird beispielsweise mit dem Parameterwert [["Straßen","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]] ein SQL-Ausdruck für die Straßen-Quell-Feature-Class und kein Ausdruck für die Streets_ND_Junctions-Quell-Feature-Class angegeben. Beachten Sie, dass die doppelten Anführungszeichen, mit denen der Feldname CFCC eingeschlossen wird, mit umgekehrten Schrägstrichzeichen als Escape-Zeichen versehen sind, um Analysefehler beim Python-Interpreter zu vermeiden.

Value Table

Codebeispiel

AddLocations – Beispiel 1 (Python-Fenster)

Ausführen des Werkzeugs, wenn nur die erforderlichen Parameter verwendet werden

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.AddLocations_na("Route","Stops","Analysis/Hospital","","")
AddLocations – Beispiel 2 (Python-Fenster)

Ausführen des Werkzeugs unter Verwendung aller Parameter

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.AddLocations_na("Route","Stops","Analysis/Hospital",
                      "Name Name #;Attr_Minutes VisitTime 0;CurbApproach # 0",
                      "2 Miles","FID",
                      [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]],
                      "MATCH_TO_CLOSEST","CLEAR","SNAP","10 Feet","EXCLUDE",
                      [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]])


AddLocations Beispiel 3 (Workflow)

Mit dem folgenden eigenständigen Python-Skript wird veranschaulicht, wie das Werkzeug "AddLocations" verwendet werden kann, um Ursprünge und Ziele in einen Start-Ziel-Kostenmatrix-Layer zu laden.

# Name: AddLocations_Workflow.py
# Description: The scenario shows how to calculate a travel time matrix between 
#              store features. Use the Add Locations tool to load origins and 
#              destinations into an OD Cost Matrix layer.Since the origins and 
#              destinations are same in this case, the origins are first loaded 
#              from the store features using their geometry and the destinations
#              are loaded from the origins using network location fields to 
#              speed up the load times. 
# 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 = "StoreTravelTimeMatrix"
    impedanceAttribute = "TravelTime"
    inFeatures = "Analysis/Stores"
    searchTolerance = "500 Meters"
    searchQuery = [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]]
    originsLayer = outNALayer + "/" + "Origins"
    fieldMappings = "Name Name #; SourceID SourceID #;SourceOID SourceOID #;" \
                    + "PosAlong PosAlong #;SideOfEdge SideOfEdge #"
    outLayer = "C:/data/output" + "/" + outNALayer + ".lyr"
    
    #Create a new OD cost matrix analysis layer. For this scenario, the default 
    #value for all the remaining parameters statisfies the analysis requirements
    arcpy.MakeODCostMatrixLayer_na(inNetworkDataset, outNALayer, 
                                   impedanceAttribute)
    
    #Load store features as origins using the geometry of store features.
    #Ensure that the stores are not located on freeways by using a search query.
    #The OD cost matrix layer created previously is referred using its name. 
    arcpy.AddLocations_na(outNALayer,"Origins",inFeatures,"",searchTolerance,
                          search_query = searchQuery)
    
    #Load origins as destinations using the network locations fields from 
    #origins. This is much faster than loading destinations from the store 
    #features using their geometry as their network locations have already been
    #calculated while loading them origins.
    arcpy.AddLocations_na(outNALayer,"Destinations",originsLayer,fieldMappings,
                          "")
    
    #Solve the od cost matrix layer. Halt the execution if there is an 
    #invalid location 
    arcpy.Solve_na(outNALayer,"HALT")
    
    #Save the solved na layer as a layer file on disk with relative paths
    arcpy.SaveToLayerFile_management(outNALayer,outLayer,"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)
    

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Ja
ArcEditor: Ja
ArcInfo: Ja

7/10/2012