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.
Obtener más información sobre la localización de entidades en una 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 de 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 como 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 el valor del parámetro 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}, {travel_mode})
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 que se utilizará 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 (Opcional) | La tolerancia de búsqueda que se utilizará para localizar 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 valor predeterminado es 5.000 metros. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | Linear Unit |
search_criteria [[Source, SnapType],...] (Opcional) | Las fuentes del dataset de red en las que se buscará al calcular las ubicaciones de red y las partes de la geometría (también conocidas como tipos de alineación) que se utilizarán. Por ejemplo, si el dataset de red hace referencia a clases de entidad separadas que representan calles y aceras, puede optar por ubicar entradas en calles pero no en aceras. Las siguientes son las opciones de tipo de alineación disponibles para cada fuente de red:
Las opciones END y MIDDLE se mantienen para la compatibilidad con versiones anteriores. Utilice la opción SHAPE para localizar sus entradas en una fuente de red en particular; de lo contrario, utilice NONE. 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. El valor predeterminado es SHAPE para todas las fuentes de red, excepto para los cruces de invalidación creados al ejecutar la herramienta Disolver red y los cruces de sistema, que tienen un valor predeterminado de NONE. Este parámetro no se utiliza si la fuente de datos de red es un servicio del portal. 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 de cada fuente de red. Por ejemplo, el valor de parámetro [["Streets","SHAPE"],["Streets_ND_Junctions","NONE"]] especifica que se puede buscar en la forma de la fuente Streets, pero no en la fuente Streets_ND_Junctions. Las fuentes de redes que no se incluyan en esta lista utilizarán su tipo de alineación predeterminado. Se recomienda incluir todas las fuentes de redes en la lista y establecer de forma explícita el tipo de alineación de cada una. En los datasets de red de geodatabase, los tipos de alineación se pueden especificar para cada subtipo de la fuente de red. Por ejemplo, si la red tiene un origen llamado Streets y ese origen tiene un subtipo llamado Local Streets, especifique el tipo de alineación de las calles locales que utilizan ["Streets : Local Streets", "SHAPE"]. | Value Table |
match_type (Opcional) | Especifica cómo se asignarán las nuevas ubicaciones de red a las fuentes de red.
El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | 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 creará o actualizará de forma predeterminada. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | 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 creará o actualizará de forma predeterminada. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | 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 creará o actualizará de forma predeterminada. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | 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 creará o actualizará de forma predeterminada. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | 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 creará o actualizará de forma predeterminada. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | 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 creará o actualizará de forma predeterminada. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | 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 campo de salida está en metros. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. | 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 creará o actualizará de forma predeterminada. El parámetro no se utiliza al calcular las ubicaciones para entidades poligonales o de línea. 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 creará o actualizará 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. Los puntos no se colocarán en elementos que estén restringidos en el modo de viaje especificado. Si no se especifica ningún modo de viaje, se utilizarán las restricciones del modo de viaje predeterminado de la red.
| Boolean |
search_query [[Source, Expression],...] (Opcional) | Define una consulta que restringirá la búsqueda a un subconjunto de entidades en la clase de entidad de origen. Esto resulta útil si no desea buscar en entidades que puedan resultar inadecuadas para el análisis. Por ejemplo, puede utilizar la consulta para excluir todas las entidades con una clase de carretera particular. Se puede especificar una expresión SQL separada por clase de entidad de origen del dataset de red. De forma predeterminada, no se utiliza ninguna consulta para ningún origen. Este parámetro no se utiliza si la fuente de datos de red es un servicio del portal. El valor de parámetro se especifica como una lista de listas anidadas. Las listas anidada están compuestas por dos valores que indican el nombre y la expresión SQL de todas las fuentes de red. Para obtener más información sobre la sintaxis SQL, consulte Referencia SQL para las expresiones de consulta utilizadas en ArcGIS. No se aplicará ninguna consulta a ninguna fuente de red no incluida en esta lista. Del mismo modo, una expresión especificada como una cadena vacía también se interpretará como sin consulta. Por ejemplo, el valor del parámetro [["Streets", "\"CFCC\" = 'A15'"], ["Streets_ND_Junctions", ""]] especifica una consulta correspondiente a la clase de entidad de origen Streets para ubicar entradas solamente en calles donde el campo CFCC tiene un valor de A15. No se aplica ninguna consulta a la clase de entidad de origen Streets_ND_Junctions. | Value Table |
travel_mode (Opcional) | El nombre del modo de viaje que se utilizará en el análisis. Si selecciona un modo de viaje, se tendrá en cuenta la configuración del modo de viaje (por ejemplo, las restricciones y los atributos de impedancia) a la hora de calcular los campos de ubicación. Por ejemplo, si el eje de red más cercano a uno de sus puntos de entrada está prohibido para los camiones y el modo de viaje está establecido para camiones, la herramienta Calcular ubicaciones ubicará el punto en el siguiente eje de red más cercano que no esté prohibido para los camiones. Los modos de viaje disponibles dependen del valor del parámetro in_network_dataset. Si una subcapa de una capa de análisis de red se utiliza como entidades de entrada, el parámetro de modo de entrada se debe establecer con el modo de viaje de la capa de análisis de red. | String |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_point_feature_class | Las entidades de entrada actualizadas. | Vista de tabla |
Muestra de código
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"]])
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")
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")
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
try:
#Set environment settings
env.workspace = "C:/Data/SanFrancisco.gdb"
#Set local variables
in_features = "Analysis/FireStations"
network = "Transportation/Streets_ND"
search_tolerance = "2000 Meters"
search_criteria = [["Streets", "SHAPE"], ["Streets_ND_Junctions", "NONE"]]
search_query = [["Streets", '"FREEWAY" = 0'], ["Streets_ND_Junctions", ""]]
#Calculate network locations and store them in defaut field names
arcpy.na.CalculateLocations(in_features, network, search_tolerance,
search_criteria, "MATCH_TO_CLOSEST",
exclude_restricted_elements="EXCLUDE",
search_query=search_query)
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 occurred on line %i" % tb.tb_lineno))
print((str(e)))
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí