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 sin ubicar, 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 | El dataset de red utilizado para calcular las ubicaciones. 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.
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. Para los datasets de red de geodatabase, los tipos de alineación se pueden especificar para cada subtipo de la fuente de red. Cuando se calculan las ubicaciones para entidades poligonales o de línea, solo se utiliza el tipo de alineación Forma, incluso si se especifican otros tipos de alineación. Las fuentes de redes que no se incluyan en esta lista utilizarán su tipo de alineación predeterminado. Lo más seguro es incluir todas las fuentes de redes en la lista y establecer de forma explícita el tipo de alineación para cada una. | Value Table |
match_type (Opcional) |
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. | Boolean |
source_ID_field (Opcional) | El nombre del campo que se creará o actualizará con la Id de origen de la ubicación de red calculada. Un campo llamado SourceID se crea o actualiza de forma predeterminada. 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. | Field |
source_OID_field (Opcional) | El nombre del campo que se creará o actualizará con la OID de origen de la ubicación de red calculada. Un campo llamado SourceOID se crea o actualiza de forma predeterminada. 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. | Field |
position_field (Opcional) | El nombre del campo que se creará o actualizará con el porcentaje a lo largo de la ubicación de red calculada. Un campo llamado PosAlong se crea o actualiza de forma predeterminada. 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. | Field |
side_field (Opcional) | El nombre del campo que se creará o actualizará con el lado del eje en el que se ubica la entidad de punto en la ubicación de red calculada. Un campo llamado SideOfEdge se crea o actualiza de forma predeterminada. 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. | Field |
snap_X_field (Opcional) | El nombre del campo que se creará o actualizará con la coordenada x de la ubicación de red calculada. Un campo llamado SnapX se crea o actualiza de forma predeterminada. 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. | Field |
snap_Y_field (Opcional) | El nombre del campo que se creará o actualizará con la coordenada y de la ubicación de red calculada. Un campo llamado SnapY se crea o actualiza de forma predeterminada. 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. | Field |
distance_field (Opcional) | El nombre del campo que se creará o actualizará con la distancia de la entidad de punto desde la ubicación de red calculada. Un campo llamado Distance se crea o actualiza de forma predeterminada. 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. | Field |
snap_Z_field (Opcional) | El nombre del campo que se creará o actualizará con la coordenada z de la ubicación de red calculada. Un campo llamado SnapZ se crea o actualiza de forma predeterminada. 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. 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) | El nombre del campo que se creará o actualizará con los rangos de ubicación de las ubicaciones de red calculadas para las entidades de línea o polígono. Un campo llamado Locations se crea o actualiza de forma predeterminada. 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) | Especifica una consulta para restringir la búsqueda a un subconjunto de entidades dentro de la clase de entidad de origen. Esto resulta útil si no desea encontrar entidades que puedan resultar inadecuadas para una ubicación de red. Por ejemplo, si está cargando centroides de polígonos y no desea buscar en carreteras locales, puede definir una consulta que busque solo en carreteras principales. 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.na.CalculateLocations("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.na.CalculateLocations(
"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.na.CalculateLocations("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.na.CalculateLocations(inFeatures,inNetworkDataset,searchTolerance,
searchCriteria,"MATCH_TO_CLOSEST",
exclude_restricted_elements="EXCLUDE",
search_query=searchQuery)
print "Script completed successfully."