Resumen
Localiza entidades de entrada en la red y agrega campos que describen estas ubicaciones de red a las entidades de entrada. La herramienta se utiliza para almacenar la información de la ubicación de red como atributos de entidad con el fin de cargar rápidamente las entidades como entradas para un 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 no están 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 solo 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
arcpy.na.CalculateLocations(in_point_features, in_network_dataset, search_tolerance, search_criteria, {match_type}, {source_ID_field}, {source_OID_field}, {position_field}, {side_field}, {snap_X_field}, {snap_Y_field}, {distance_field}, {snap_Z_field}, {location_field}, {exclude_restricted_elements}, {search_query})
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 Campo de rangos de ubicación), las entidades de línea y polígono solo 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 la palabra 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. En los datasets de red de geodatabase, los tipos de alineación se pueden especificar para cada subtipo de la fuente de red (["Streets : Local Streets","SHAPE"]). Cuando se calculan las ubicaciones para entidades poligonales o de línea, solo se utiliza el tipo de alineación SHAPE, 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 el 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 el 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) | Especifica si las porciones restringidas de la red se excluyen al localizar entradas. Este parámetro solo 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 corporativas o de archivos, 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, utilice "#" como 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, pero no especifica ninguna expresión para la clase de entidad de origen Streets_ND_Junctions. 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. De forma predeterminada, no se utiliza ninguna consulta. | Value Table |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_point_feature_class | Las entidades de entrada actualizadas. | Vista de tabla |
Muestra de código
Ejemplo 1 de CalculateLocations (ventana de Python)
Calcule las ubicaciones correspondientes a entidades de puntos utilizando solo los parámetros requeridos.
stores = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Analysis/Stores"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(stores, network, "5000 Meters",
[["Streets", "SHAPE"],
["Streets_ND_Junctions", "NONE"]])
Ejemplo 2 de CalculateLocations (ventana de Python)
Calcule ubicaciones correspondientes a entidades de puntos en entidades de calles, excluyendo otras fuentes de red.
warehouses = "C:/Data/Paris.gdb/Analysis/Warehouses"
network = "C:/Data/Paris.gdb/Transportation/ParisMultimodal_ND"
arcpy.na.CalculateLocations(warehouses, network, "5000 Meters",
[["Metro_Lines", "NONE"], ["Streets", "SHAPE"],
["Transfer_Stations", "NONE"], ["Metro_Entrances", "NONE"],
["Metro_Stations", "NONE"], ["ParisMultimodal_ND_Junctions", "NONE"]],
"MATCH_TO_CLOSEST", "SID", "SOID", "PA", "SOE", "SnapX", "SnapY",
"Distance")
Ejemplo 3 de CalculateLocations (ventana de Python)
Calcular ubicaciones para entidades poligonales
parks = "C:/Data/SanFrancisco.gdb/Analysis/Hospitals/Basemap/Parks"
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.CalculateLocations(parks, network, "", [["Streets", "SHAPE"],
["Streets_ND_Junctions", "NONE"]],
location_field="Locations")
Ejemplo 4 de CalculateLocations (script independiente)
El siguiente script de Python muestra cómo utilizar la herramienta CalculateLocations en un script 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."
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí