Agregar ubicaciones (Network Analyst)

Resumen

Agrega objetos de análisis de red a una capa de análisis de red. Los objetos se agregan a subcapas específicas como Paradas y Barreras. Los objetos se introducen como entidades o registros.

Uso

Sintaxis

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})
ParámetroExplicaciónTipo de datos
in_network_analysis_layer

Capa de análisis de red en la que se incorporarán los objetos de análisis de red.

Network Analyst Layer
sub_layer

La subcapa de la capa de análisis de red a la que se agregarán los objetos de análisis de red.

String
in_table

La clase de entidad o tabla que es la fuente para los nuevos objetos de análisis de red.

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.

El valor de parámetro se especifica como una lista de tres valores separados por punto y coma que contiene el nombre de la propiedad, el nombre de campo y el valor predeterminado. Debe especificar el nombre de campo o el valor predeterminado para una propiedad. Por ejemplo, el valor de parámetro "Name Address #; Attr_Minutes # 2" especifica que la propiedad Name (nombre) se asigna desde el campo Address (dirección) y que la propiedad Attr_Minutes debe tener un valor constante de 2, cuando se agreguen las entidades de entrada.

Si una propiedad específica no se asigna a un campo, tiene un valor predeterminado o no está incluida en el valor de parámetro, tendrá la asignación de campos predeterminada. Si desea usar la asignación de campos predeterminada para todas las propiedades, utilice el valor de parámetro #.

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.

Si los datos que está cargando contienen ubicaciones de red o rangos de ubicaciones basados en el dataset de red utilizado para el análisis, asigne los campos de ubicación de red de las entidades de entrada para las propiedades de ubicación de red. Para ubicaciones de punto como Paradas o Incidentes, asigne las propiedades SourceID, SourceOID, PosAlong y SideOfEdge y, para las ubicaciones de polígono o línea como Barreras de polígono, asigne la propiedad Ubicaciones. Agregar los objetos de análisis de red usando los campos de ubicación de red es mucho más rápido que cargarlos mediante la geometría. Especificar los campos de ubicación de red en las asignaciones de campos es similar a utilizar el parámetro Usar los campos de ubicación de red en lugar de la geometría del cuadro de diálogo de la herramienta.

PrecauciónPrecaución:

Si especifica las asignaciones de campos para cualquiera de las propiedades de ubicación de red, debe especificar las asignaciones de campos para las propiedades de ubicación de red restantes a fin de evitar un error de ejecución de la herramienta.

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.

El parámetro no se utiliza cuando se agregan ubicaciones a las subcapas Barreras de línea o Barreras de polígono. En tales casos, utilice "#" como el valor de parámetro.

Linear Unit
sort_field
(Opcional)

El campo en el que se clasifican los objetos de análisis de red mientras se agregan a la capa de análisis de red. El valor predeterminado es el campo ObjectID en la clase de entidad de entrada o tabla.

Field
search_criteria
[[Source, SnapType],...]
(Opcional)

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.

El valor de parámetro se especifica como una lista con listas anidadas. La lista anidada está compuesta por dos valores que indican el nombre y el tipo de alineación para cada fuente de red. El tipo de alineación se especifica mediante las palabras clave "SHAPE", "MIDDLE", "END" o "NONE". Por ejemplo, cuando se buscan ubicaciones, el valor de parámetro [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]] especifica que se puede buscar en la forma de la fuente Streets (calles) pero no en la fuente Streets_ND_Junctions (calles y cruces).

Para especificar varios tipos de alineación para una única fuente de red, utilice una combinación de las palabras clave de tipo de alineación separadas por un guión bajo. Por ejemplo, MIDDLE_END especifica que las ubicaciones se pueden alinear hacia el medio o el final de la fuente de red.

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
(Opcional)
  • MATCH_TO_CLOSESTHace concordar las nuevas ubicaciones de red con la fuente de red más cercana entre todas las fuentes que tienen un tipo de alineación especificado en los criterios de búsqueda. Esta es la opción predeterminada.
  • PRIORITYHace concordar las nuevas ubicaciones de red con la primera fuente de red que tiene un tipo de alineación especificado en los criterios de búsqueda. Las fuentes se buscan en el orden de prioridad y la búsqueda se detiene cuando se encuentra la ubicación dentro de la tolerancia de búsqueda.

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
(Opcional)

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

  • APPENDAgrega los nuevos objetos de análisis de red al conjunto de objetos existentes en la subcapa seleccionada.
  • CLEARElimina los objetos de análisis de red existentes y los reemplaza con los nuevos objetos.
Boolean
snap_to_position_along_network
(Opcional)

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

  • NO_SNAP Las geometrías de las ubicaciones de red están basadas en las geometrías de las entidades de entrada. Esto es útil si desea utilizar la aproximación a borde que requiere que las ubicaciones de red sepan en qué lado del eje se encuentran.
  • SNAP Si tiene entidades de puntos, el punto se alineará a la red y no podrá utilizar aproximación a borde. Esto es útil si no le interesa cómo un vehículo se acerca a una parada. Si las entidades de entrada son líneas o polígonos, utilice este valor de parámetro.

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
(Opcional)

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
(Opcional)
  • EXCLUDEEspecifica que las ubicaciones de red sólo se colocan en porciones trazables de la red. Esto evita situar ubicaciones de red sobre elementos a los que no puede acceder debido a restricciones o barreras. Antes de agregar las ubicaciones de red con esta opción, asegúrese de haber agregado todas las barreras de restricción a la capa de entrada de análisis de red para obtener los resultados esperados. Este parámetro no se aplica cuando se agregan objetos de barrera. En tales casos, utilice "#" como el valor de parámetro.
  • INCLUDEEspecifica que las ubicaciones de red se colocan en todos los elementos de la red. Las ubicaciones de red que se agregan con esta opción pueden ser inalcanzables durante el proceso de resolución si se colocan en elementos restringidos.
Boolean
search_query
[[Source, Expression],...]
(Opcional)

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.

El valor de parámetro se especifica como una lista con listas anidadas. La lista anidada está compuesta por dos valores que indican el nombre y la expresión SQL para todas las fuentes de red. La sintaxis de la expresión SQL difiere levemente según el tipo de clase de entidad de origen de la red. Por ejemplo, si está consultando clases de entidad de origen almacenadas en geodatabases de archivos o de ArcSDE, shapefiles o SDC, encierre los nombres de campo entre comillas dobles: "CFCC". Si está consultando clases de entidad de origen almacenadas en geodatabases personales, encierre los campos entre corchetes: [CFCC].

Si no desea especificar una consulta para una fuente en particular, utilice "#" como el valor para la expresión SQL o excluya el nombre de la fuente y la expresión SQL del valor de parámetro. Si no desea especificar una consulta para todas las fuentes de red, use "#" como el valor de parámetro.

Por ejemplo, el valor de parámetro [["Streets","\"CFCC\" = 'A15'"], ["Streets_ND_Junctions",""]] especifica una expresión SQL para la clase de entidad de origen Streets (calles) pero ninguna expresión para la clase de entidad de origen Streets_ND_Junctions (calles y cruces). Tenga en cuenta que las comillas dobles utilizadas para encerrar el nombre del campo CFCC se separan mediante barras invertidas para evitar un error de análisis del intérprete de Python.

Value Table

Ejemplo de código

Ejemplo 1 de AddLocations (ventana de Python)

Ejecutar la herramienta utilizando sólo los parámetros requeridos

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.AddLocations_na("Route","Stops","Analysis/Hospital","","")
Ejemplo 2 de AddLocations (ventana de Python)

Ejecutar la herramienta utilizando todos los parámetros

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",""]])


Ejemplo 3 de AddLocations (flujo de trabajo)

La siguiente secuencia de comandos de Python independiente muestra cómo utilizar la herramienta AddLocations para cargar orígenes y destinos en la capa de Matriz de coste OD.

# 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)
    

Entornos

Temas relacionados

Información de licencia

ArcView: Sí
ArcEditor: Sí
ArcInfo: Sí

7/11/2012