Crear capa de análisis de ubicación de facilidades más cercanas (Network Analyst)

Resumen

Crea una capa de análisis de red de instalación más cercana y establece sus propiedades de análisis. Una capa de análisis de ubicación de instalaciones más cercanas es útil para determinar las instalaciones más cercanas a un incidente según el modo de viaje. La capa se puede crear utilizando un dataset de red local o un servicio alojado en línea o en un portal.

Uso

  • Después de crear la capa de análisis con esta herramienta, puede agregarle objetos de análisis de red usando la herramienta Agregar ubicaciones, resolver el análisis usando la herramienta Resolver y guardar los resultados en el disco usando la herramienta Guardar en archivo de capa.

  • Al utilizar esta herramienta en modelos de geoprocesamiento, si el modelo se ejecuta como herramienta, la capa de análisis de red de salida debe convertirse en parámetro de modelo; de lo contrario, la capa de salida no se agrega al contenido del mapa.

  • En ArcGIS AllSource, los datos de las capas de análisis de red se almacenan en el disco en las clases de entidad de geodatabase de archivos. Al crear una capa de análisis de red en un proyecto, los datos de la capa se crearán en un nuevo dataset de entidades en el entorno de Espacio de trabajo actual. Al crear una capa de análisis de red en un script de Python, primero debe definir explícitamente el entorno del espacio de trabajo en la geodatabase de archivos donde desea que se almacenen los datos de la capa utilizando arcpy.env.workspace = "<path to file gdb>". Cuando se crea la capa, un dataset de entidades nuevo que contiene las clases de entidades de la subcapa correspondiente se agregará a esta geodatabase de archivos.

Parámetros

EtiquetaExplicaciónTipo de datos
Fuente de datos de red

El servicio o dataset de red en el que se realizará el análisis de red. Utilice la dirección URL del portal para un servicio.

Network Dataset Layer;String
Nombre de capa
(Opcional)

El nombre de la capa de análisis de red que se creará.

String
Modo de viaje
(Opcional)

El nombre del modo de viaje que se utilizará en el análisis. El modo de viaje representa un conjunto de parámetros de red como, por ejemplo, restricciones del viaje y las normas sobre cambios de sentido, que determina cómo un peatón, un coche, un camión u otro medio de transporte se desplaza por la red. Los modos de viaje se definen en su fuente de datos de red.

También puede utilizar como entrada del parámetro un objeto arcpy.na.TravelMode y una cadena que contenga la representación JSON válida de un modo de viaje.

String
Dirección del viaje
(Opcional)

Especifica la dirección de viaje entre las instalaciones e incidentes.

La dirección del viaje puede influir en las instalaciones encontradas si la red contiene calles de sentido único o impedancias basadas en la dirección del viaje. Por ejemplo, se puede tardar 10 minutos en viajar desde un determinado incidente hasta una instalación concreta, pero el viaje podría alargarse hasta los 15 minutos si se viajara en la dirección opuesta, desde la instalación hasta el incidente, debido a la presencia de calles de sentido único o a las condiciones del tráfico.

  • Hacia las instalacionesLa dirección de viaje desde los incidentes hasta las instalaciones. Las tiendas minoristas suelen utilizar esta configuración porque les preocupa el tiempo que tardan los compradores (incidentes) en llegar a la tienda (instalación). Esta es la opción predeterminada.
  • Desde las instalacionesLa dirección de viaje desde las instalaciones hasta los incidentes. Los departamentos de bomberos suelen utilizar esta configuración porque les preocupa el tiempo que se tarda en viajar desde la estación de bomberos (instalación) hasta la ubicación de la emergencia (incidente).
String
Valor límite
(Opcional)

El valor de impedancia en el que se debe detener la búsqueda de instalaciones para un determinado incidente, expresado en las unidades del atributo de impedancia que utiliza el valor del Modo de viaje. Este valor límite se puede invalidar por incidente, especificando valores límite individuales en la subcapa de incidentes cuando el parámetro Dirección del viaje se configura en Hacia las instalaciones o por instalación, especificando valores límite individuales en la subcapa de instalaciones cuando el parámetro Dirección del viaje se define como Desde las instalaciones. De forma predeterminada, no se utiliza ningún valor límite en el análisis.

Double
Cantidad de instalaciones a buscar
(Opcional)

El número de instalaciones más próximas que se buscarán por incidente. Se puede invalidar este valor predeterminado especificando un valor individual para la propiedad TargetFacilityCount en la subcapa de incidentes. El número predeterminado de instalaciones a encontrar es uno.

Long
Hora del día
(Opcional)

La hora y la fecha en la cual comenzarán y terminarán las rutas. La interpretación de este valor depende de si Uso de hora del día se ha configurado como hora de inicio o fin de la ruta.

Si elige un atributo de impedancia con base en el tráfico, la solución se generará dadas las condiciones de tráfico dinámicas a la hora del día que se especifica a continuación. Una fecha y hora se puede especificar como 14/5/2012 10:30 a.m.

Configure el análisis para utilizar una de las fechas especiales siguientes para modelar un día de la semana o la fecha actual en lugar de una fecha estática específica:

  • Hoy, 30/12/1899
  • Domingo, 31/12/1899
  • Lunes, 1/1/1900
  • Martes, 2/1/1900
  • Miércoles, 3/1/1900
  • Jueves, 4/1/1900
  • Viernes, 5/1/1900
  • Sábado, 6/1/1900

Más información sobre cómo se utilizan e interpretan las fechas y horas en un análisis de red

Date
Zona horaria
(Opcional)

La zona horaria del parámetro Hora del día.

  • Hora local en ubicacionesEl parámetro Hora del día se refiere a la zona horaria en la cual se encuentran las instalaciones o los incidentes. Esta es la opción predeterminada.
    • Si Uso de hora del día está definido como Hora de inicio y la Dirección del viaje está definida como Desde las instalaciones, esta será la zona horaria de las instalaciones.
    • Si Uso de hora del día está definido como Hora de inicio y la Dirección del viaje está definida como Hacia las instalaciones, esta será la zona horaria de los incidentes.
    • Si Uso de hora del día está definido como Hora de finalización y la Dirección del viaje está definida como Desde las instalaciones, esta será la zona horaria de los incidentes.
    • Si Uso de hora del día está definido como Hora de finalización y la Dirección del viaje está definida como Hacia las instalaciones, esta será la zona horaria de las instalaciones.
  • UTCEl parámetro Hora del día se refiere al tiempo universal coordinado (UTC). Seleccione esta opción si desea encontrar qué es lo más próximo en una hora específica, como en instante presente, pero no está seguro de la zona horaria en la que se encuentran las instalaciones o los incidentes.
String
Uso en hora del día
(Opcional)

Especifica si el valor del parámetro Hora del día representa la hora de llegada o salida de las rutas.

  • Tiempo inicialEl valor del parámetro Hora del día se interpreta como la hora de salida de la instalación o incidente. Esta es la opción predeterminada.Cuando se elige esta configuración, el parámetro Hora del día indica que el solucionador encontrará la mejor ruta dada una hora de salida.
  • Tiempo finalEl valor del parámetro Hora del día se interpreta como la hora de llegada a la instalación o incidente.Esta opción es útil si desea conocer a qué hora debe salir de una ubicación para llegar al destino a la hora especificada en el parámetro Hora del día.
String
Forma de línea
(Opcional)

Especifica el tipo de forma que se utilizará para las entidades de ruta que genere el análisis.

Independientemente del tipo de forma de salida que especificado, la mejor ruta siempre se determina por la impedancia de la red y no por la distancia euclidiana. Esto significa que solo las formas de la ruta son diferentes, no los elementos transitables subyacentes de la red.

  • A lo largo de la redLas rutas de salida tendrán la misma forma que las fuentes de red subyacentes. La salida incluye mediciones de ruta para la referenciación lineal. Las mediciones aumentan desde la primera parada y registran la impedancia acumulada para llegar a una posición determinada.
  • Sin líneasNo se generará ninguna forma para las rutas de salida.
  • Líneas rectasLa forma de la ruta de salida será una línea recta simple entre las paradas.
String
Atributos acumulados
(Opcional)

Lista de los atributos de coste que se acumularán durante el análisis. Estos atributos acumulados solo se utilizan como referencia; el solucionador solo utiliza el atributo de coste empleado en el modo de viaje indicado al solucionar el análisis.

Para cada atributo de coste acumulado, se rellena una propiedad Total_ [Impedancia] en las entidades de salida del análisis de red.

Este parámetro no está disponible si la fuente de datos de red es un servicio de ArcGIS Online o si la fuente de datos de red es un servicio en una versión de Portal for ArcGIS que no admite la acumulación.

String
Generar indicaciones al resolver
(Opcional)

Especifica si se generarán indicaciones.

  • Activado: se generarán indicaciones paso a paso al resolver.
  • Desactivado: no se generarán indicaciones paso a paso al resolver. Esta es la opción predeterminada.

En el caso de un análisis en el que no sea necesario generar indicaciones paso a paso, dejar esta opción desactivada hará que se reduzca el tiempo que se tarda en resolver el análisis.

Boolean
Ignorar ubicaciones no válidas en la hora de la resolución
(Opcional)

Especifica si se ignorarán las ubicaciones de entrada no válidas. Por lo general, las ubicaciones no son válidas si no se pueden ubicar en la red. Cuando se ignoran las ubicaciones no válidas, el solucionador las omitirá e intentará realizar el análisis utilizando las ubicaciones restantes.

  • Activado: se ignorarán las ubicaciones de entrada no válidas y solo se utilizarán las ubicaciones válidas. Esta es la opción predeterminada.
  • Desactivado: se usarán todas las ubicaciones de entrada. Las ubicaciones no válidas harán que el análisis falle.
Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Capa de Network Analyst

La capa de análisis de red recién creada.

Network Analyst Layer

arcpy.management.MakeClosestFacilityAnalysisLayer(network_data_source, {layer_name}, {travel_mode}, {travel_direction}, {cutoff}, {number_of_facilities_to_find}, {time_of_day}, {time_zone}, {time_of_day_usage}, {line_shape}, {accumulate_attributes}, {generate_directions_on_solve}, {ignore_invalid_locations})
NombreExplicaciónTipo de datos
network_data_source

El servicio o dataset de red en el que se realizará el análisis de red. Utilice la dirección URL del portal para un servicio.

Network Dataset Layer;String
layer_name
(Opcional)

El nombre de la capa de análisis de red que se creará.

String
travel_mode
(Opcional)

El nombre del modo de viaje que se utilizará en el análisis. El modo de viaje representa un conjunto de parámetros de red como, por ejemplo, restricciones del viaje y las normas sobre cambios de sentido, que determina cómo un peatón, un coche, un camión u otro medio de transporte se desplaza por la red. Los modos de viaje se definen en su fuente de datos de red.

También puede utilizar como entrada del parámetro un objeto arcpy.na.TravelMode y una cadena que contenga la representación JSON válida de un modo de viaje.

String
travel_direction
(Opcional)

Especifica la dirección de viaje entre las instalaciones e incidentes.

  • TO_FACILITIESLa dirección de viaje desde los incidentes hasta las instalaciones. Las tiendas minoristas suelen utilizar esta configuración porque les preocupa el tiempo que tardan los compradores (incidentes) en llegar a la tienda (instalación). Esta es la opción predeterminada.
  • FROM_FACILITIESLa dirección de viaje desde las instalaciones hasta los incidentes. Los departamentos de bomberos suelen utilizar esta configuración porque les preocupa el tiempo que se tarda en viajar desde la estación de bomberos (instalación) hasta la ubicación de la emergencia (incidente).

La dirección del viaje puede influir en las instalaciones encontradas si la red contiene calles de sentido único o impedancias basadas en la dirección del viaje. Por ejemplo, se puede tardar 10 minutos en viajar desde un determinado incidente hasta una instalación concreta, pero el viaje podría alargarse hasta los 15 minutos si se viajara en la dirección opuesta, desde la instalación hasta el incidente, debido a la presencia de calles de sentido único o a las condiciones del tráfico.

String
cutoff
(Opcional)

El valor de impedancia en el que se debe detener la búsqueda de instalaciones para un determinado incidente, expresado en las unidades del atributo de impedancia que utiliza en el valor de travel_mode. Este valor límite se puede invalidar por incidente, especificando valores límite individuales en la subcapa de incidentes en el caso de travel_direction = 'TO_FACILITIES', o por instalación, especificando valores límite individuales en la subcapa de instalaciones en el caso de travel_direction = 'FROM_FACILITIES'. De forma predeterminada, no se utiliza ningún valor límite en el análisis.

Double
number_of_facilities_to_find
(Opcional)

El número de instalaciones más próximas que se buscarán por incidente. Se puede invalidar este valor predeterminado especificando un valor individual para la propiedad TargetFacilityCount en la subcapa de incidentes. El número predeterminado de instalaciones a encontrar es uno.

Long
time_of_day
(Opcional)

La hora y la fecha en la cual comenzarán y terminarán las rutas. La interpretación de este valor depende de si time_of_day_usage se ha configurado como hora de inicio o fin de la ruta.

Si elige un atributo de impedancia con base en el tráfico, la solución se generará dadas las condiciones de tráfico dinámicas a la hora del día que se especifica a continuación. Una fecha y hora se puede especificar como 14/5/2012 10:30 a.m.

Configure el análisis para utilizar una de las fechas especiales siguientes para modelar un día de la semana o la fecha actual en lugar de una fecha estática específica:

  • Hoy, 30/12/1899
  • Domingo, 31/12/1899
  • Lunes, 1/1/1900
  • Martes, 2/1/1900
  • Miércoles, 3/1/1900
  • Jueves, 4/1/1900
  • Viernes, 5/1/1900
  • Sábado, 6/1/1900

Más información sobre cómo se utilizan e interpretan las fechas y horas en un análisis de red

Date
time_zone
(Opcional)

Especifica la zona horaria para el parámetro time_of_day.

  • LOCAL_TIME_AT_LOCATIONSEl parámetro time_of_day hace referencia a la zona horaria en la cual se encuentran las instalaciones o los incidentes. Esta es la opción predeterminada.
    • Si time_of_day_usage está definido como START_TIME y travel_direction está definida como FROM_FACILITIES, esta será la zona horaria de las instalaciones.
    • Si time_of_day_usage está definido como START_TIME y travel_direction está definida como TO_FACILITIES, esta será la zona horaria de los incidentes.
    • Si time_of_day_usage está definido como END_TIME y travel_direction está definida como FROM_FACILITIES, esta será la zona horaria de los incidentes.
    • Si time_of_day_usage está definido como END_TIME y travel_direction está definida como TO_FACILITIES, esta será la zona horaria de las instalaciones.
  • UTCEl parámetro time_of_day se refiere al tiempo universal coordinado (UTC). Seleccione esta opción si desea encontrar qué es lo más próximo en una hora específica, como en instante presente, pero no está seguro de la zona horaria en la que se encuentran las instalaciones o los incidentes.
String
time_of_day_usage
(Opcional)

Especifica si el valor del parámetro time_of_day representa la hora de llegada o salida de las rutas.

  • START_TIMEEl valor del parámetro time_of_day se interpreta como la hora de salida de la instalación o incidente. Esta es la opción predeterminada.Cuando se elige esta configuración, el valor del parámetro time_of_day indica que el solucionador encontrará la mejor ruta dada una hora de salida.
  • END_TIMEEl valor del parámetro time_of_day se interpreta como la hora de llegada a la instalación o incidente.Esta opción es útil si desea conocer a qué hora debe salir de una ubicación para llegar al destino a la hora especificada en el parámetro time_of_day.
String
line_shape
(Opcional)

Especifica el tipo de forma que se utilizará para las entidades de ruta que genere el análisis.

Independientemente del tipo de forma de salida que especificado, la mejor ruta siempre se determina por la impedancia de la red y no por la distancia euclidiana. Esto significa que solo las formas de la ruta son diferentes, no los elementos transitables subyacentes de la red.

  • ALONG_NETWORKLas rutas de salida tendrán la misma forma que las fuentes de red subyacentes. La salida incluye mediciones de ruta para la referenciación lineal. Las mediciones aumentan desde la primera parada y registran la impedancia acumulada para llegar a una posición determinada.
  • NO_LINESNo se generará ninguna forma para las rutas de salida.
  • STRAIGHT_LINESLa forma de la ruta de salida será una línea recta simple entre las paradas.
String
accumulate_attributes
[accumulate_attributes,...]
(Opcional)

Lista de los atributos de coste que se acumularán durante el análisis. Estos atributos acumulados solo se utilizan como referencia; el solucionador solo utiliza el atributo de coste empleado en el modo de viaje indicado al solucionar el análisis.

Para cada atributo de coste acumulado, se rellena una propiedad Total_ [Impedancia] en las entidades de salida del análisis de red.

Este parámetro no está disponible si la fuente de datos de red es un servicio de ArcGIS Online o si la fuente de datos de red es un servicio en una versión de Portal for ArcGIS que no admite la acumulación.

String
generate_directions_on_solve
(Opcional)

Especifica si se generarán indicaciones al ejecutar el análisis.

  • DIRECTIONSSe generarán indicaciones paso a paso al resolver.
  • NO_DIRECTIONSNo se generarán indicaciones paso a paso al resolver. Esta es la opción predeterminada.

En el caso de un análisis en el que no sea necesario generar indicaciones paso a paso, use la opción predeterminada NO_DIRECTIONS para reducir el tiempo que se tarda en resolver el análisis.

Boolean
ignore_invalid_locations
(Opcional)

Especifica si se ignorarán las ubicaciones de entrada no válidas. Por lo general, las ubicaciones no son válidas si no se pueden ubicar en la red. Cuando se ignoran las ubicaciones no válidas, el solucionador las omitirá e intentará realizar el análisis utilizando las ubicaciones restantes.

  • SKIPSe ignorarán las ubicaciones de entrada no válidas y solo se utilizarán las ubicaciones válidas. Esta es la opción predeterminada.
  • HALTSe usarán todas las ubicaciones de entrada. Las ubicaciones no válidas harán que el análisis falle.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
out_network_analysis_layer

La capa de análisis de red recién creada.

Network Analyst Layer

Muestra de código

Ejemplo 1 de MakeClosestFacilityAnalysisLayer (ventana de Python)

Ejecute la herramienta utilizando solo los parámetros requeridos.

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeClosestFacilityAnalysisLayer(network, "ClosestFireStations")
Ejemplo 2 de MakeClosestFacilityAnalysisLayer (ventana de Python)

Ejecutar la herramienta utilizando todos los parámetros.

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeClosestFacilityAnalysisLayer(network, "ClosestHospitals",
                                "Driving Time", "TO_FACILITIES", 5, 3,
                                "1/1/1900 9:00 AM", "UTC", "START_TIME",
                                "ALONG_NETWORK", ["Meters", "TravelTime"])
Ejemplo 3 de MakeClosestFacilityAnalysisLayer (secuencia de comandos independiente)

En la siguiente secuencia independiente de comandos de Python se muestra cómo utilizar la función MakeClosestFacilityAnalysisLayer para encontrar el almacén más cercano desde las ubicaciones de tienda.

# Name: MakeClosestFacilityAnalysisLayer_Workflow.py
# Description: Find the closest warehouse from the store locations and save the
#              results to a layer file on disk.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env
import os

try:
    #Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    #Set environment settings
    output_dir = "C:/Data"
    #The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    #Set local variables
    input_gdb = "C:/Data/Paris.gdb"
    network = os.path.join(input_gdb, "Transportation", "ParisMultimodal_ND")
    layer_name = "ClosestWarehouse"
    travel_mode = "Driving Time"
    facilities = os.path.join(input_gdb, "Analysis", "Warehouses")
    incidents = os.path.join(input_gdb, "Analysis", "Stores")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Create a new closest facility analysis layer. 
    result_object = arcpy.na.MakeClosestFacilityAnalysisLayer(network,
                                    layer_name, travel_mode, "TO_FACILITIES",
                                    number_of_facilities_to_find=1)

    #Get the layer object from the result object. The closest facility layer can
    #now be referenced using the layer object.
    layer_object = result_object.getOutput(0)

    #Get the names of all the sublayers within the closest facility layer.
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    #Stores the layer names that we will use later
    facilities_layer_name = sublayer_names["Facilities"]
    incidents_layer_name = sublayer_names["Incidents"]

    #Load the warehouses as Facilities using the default field mappings and
    #search tolerance
    arcpy.na.AddLocations(layer_object, facilities_layer_name,
                            facilities, "", "")

    #Load the stores as Incidents. Map the Name property from the NOM field
    #using field mappings
    field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
                                                    incidents_layer_name)
    field_mappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(layer_object, incidents_layer_name, incidents,
                          field_mappings, "")

    #Solve the closest facility layer
    arcpy.na.Solve(layer_object)

    #Save the solved closest facility layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

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