Calcular ubicaciones (Network Analyst)
Resumen
Agrega campos a las entidades de entrada que contienen la ubicación de red de las entidades. La herramienta se utiliza para almacenar la información de la ubicación de red como atributos de entidad para poder cargar rápidamente las entidades como entradas para una capa de análisis de red.
Uso
-
Esta herramienta se utiliza para calcular los campos de ubicación que pueden ser entradas para la herramienta Agregar ubicaciones. Se debe utilizar en las entidades que se usarán más de una vez como entradas de una capa de análisis de red. Una vez calculadas las ubicaciones, se puede utilizar el parámetro Usar los campos de ubicación de red en lugar de la geometría de la herramienta Agregar ubicaciones para cargar rápidamente las entidades como ubicaciones de red.
-
También puede usar esta herramienta para volver a calcular las ubicaciones de red que están no ubicadas en la capa de análisis de red mediante un conjunto de opciones de búsqueda distinto. Por ejemplo, si las paradas en la capa de análisis de red de ruta se agregaron inicialmente con una tolerancia de búsqueda de 500 metros y sólo algunas de las paradas quedaron no ubicadas, puede seleccionar las paradas no ubicadas, por ejemplo, usando la herramienta Seleccionar capa por atributo y volver a ejecutar esta herramienta especificando la subcapa de las paradas como las Entidades de entrada con una tolerancia de búsqueda mayor.
-
La herramienta se ejecuta considerablemente más rápido si las clases de entidad utilizadas como fuentes de red en el dataset de red tienen un índice espacial válido y actualizado.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_point_features |
Las entidades de entrada para las que se calcularán las ubicaciones de red. Debido a que la información de ubicación de red está almacenada en un campo blob (especificado en el parámetro del campo de rangos de ubicación), las entidades de línea y polígono sólo son compatibles con las clases de entidad de geodatabase. | Table View |
in_network_dataset |
The network dataset used to calculate the locations. Si una subcapa de una capa de análisis de red se utiliza como entidades de entrada, el parámetro se debe establecer en el dataset de red al que hace referencia la capa de análisis de red. | Network Dataset Layer |
search_tolerance |
La tolerancia de búsqueda para ubicar las entidades de entrada en la red. Las entidades que se encuentran fuera de la tolerancia de búsqueda quedan no ubicadas. El parámetro incluye un valor y unidades para la tolerancia. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. En tales casos, utilice "#" como el valor de parámetro. | Linear unit |
search_criteria [[Source, SnapType],...] |
Especifica en qué fuentes del dataset de red se buscará para encontrar las ubicaciones y qué partes de la geometría (también conocidas como tipos de alineación) se utilizarán. 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. For geodatabase network datasets, the snap types can be specified for each subtype of the network source. When calculating locations for line or polygon features, only the Shape snap type is used even if other snap types are specified. | Value Table |
match_type (Opcional) |
The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. | Boolean |
source_ID_field (Opcional) |
Name of the field to be created or updated with the source ID of the computed network location. A field called "SourceID" is created or updated by default. The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. | Field |
source_OID_field (Opcional) |
Name of the field to be created or updated with the source OID of the computed network location. A field called "SourceOID" is created or updated by default. The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. | Field |
position_field (Opcional) |
Name of the field to be created or updated with the percent along of the computed network location. A field called "PosAlong" is created or updated by default. The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. | Field |
side_field (Opcional) |
Name of the field to be created or updated with the side of edge on which the point feature is located on the computed network location. A field called "SideOfEdge" is created or updated by default. The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. | Field |
snap_x_field (Opcional) |
Name of the field to be created or updated with the x-coordinate of the computed network location. A field called "SnapX" is created or updated by default. The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. | Field |
snap_y_field (Opcional) |
Name of the field to be created or updated with the y-coordinate of the computed network location. A field called "SnapY" is created or updated by default. The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. | Field |
distance_field (Opcional) |
Name of the field to be created or updated with the distance of the point feature from the computed network location. A field called "Distance" is created or updated by default. The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. | Field |
snap_Z_field (Opcional) |
Name of the field to be created or updated with the z-coordinate of the computed network location. A field called "SnapZ" is created or updated by default. The parameter is not used when calculating locations for line or polygon features. In such cases, use "#" as the parameter value. Cuando se calculan ubicaciones para entidades de puntos, el parámetro se utiliza sólo cuando el dataset de red de entrada es compatible con la conectividad basada en los valores de las coordenadas z de las fuentes de red. En todos los otros casos, utilice "#" como el valor de parámetro. | Field |
location_field (Opcional) |
Name of the field to be created or updated with the location ranges of the computed network locations for the line or polygon features. A field called "Locations" is created or updated by default. El parámetro se utiliza sólo cuando se calculan las ubicaciones para entidades de línea o polígono. Para las entidades de puntos de entrada, utilice "#" como el valor de parámetro. | Field |
exclude_restricted_elements (Opcional) |
Este parámetro sólo se aplica cuando las entidades de entrada son de la subcapa de una capa de análisis de red y no son objetos de barrera. En todos los otros casos, utilice "#" como el valor de parámetro.
| 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
Calcular ubicaciones para entidades de puntos utilizando sólo los parámetros requeridos.
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.CalculateLocations_na("Analysis/Stores","Transportation/Streets_ND", "5000 Meters",[["Streets","SHAPE"], ["Streets_ND_Junctions","NONE"]])
Calcular ubicaciones para entidades de puntos en un subtipo de una fuente de red.
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb" arcpy.CalculateLocations_na( "Analysis/Warehouses","Transportation/ParisNet","5000 Meters", [["Streets : Highways","NONE"],["Streets : Major Roads","NONE"], ["Streets : Local Streets","SHAPE"],["ParisNet_Junctions", "NONE"]], "MATCH_TO_CLOSEST","SID","SOID","PA","SOE","SnapX","SnapY","Distance", "","","","")
Calcular ubicaciones para entidades poligonales.
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.CalculateLocations_na("Basemap/Parks","Transportation/Streets_ND","", [["Streets","SHAPE"], ["Streets_ND_Junctions","NONE"]], location_field="Locations")
La siguiente secuencia de comandos de Python muestra cómo usar la herramienta CalculateLocations en una secuencia de comandos independiente.
# Name: CalculateLocations_ex04.py # Description: Calculate network locations for fire stations. Make sure that the # fire stations are not located on the freeways. # Requirements: Network Analyst Extension #Import system modules import arcpy from arcpy import env #Check out the Network Analyst extension license arcpy.CheckOutExtension("Network") #Set environment settings env.workspace = "C:/data/SanFrancisco.gdb" #Set local variables inFeatures = "Analysis/FireStations" inNetworkDataset = "Transportation/Streets_ND" searchTolerance = "2000 Meters" searchCriteria = [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]] searchQuery = [["Streets",'"FREEWAY" = 0'],["Streets_ND_Junctions",""]] #Calculate network locations and store them in defaut field names arcpy.CalculateLocations_na(inFeatures,inNetworkDataset,searchTolerance, searchCriteria,"MATCH_TO_CLOSEST", exclude_restricted_elements="EXCLUDE", search_query=searchQuery) print "Script completed successfully."