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.

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 se 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 se utiliza en el Modo de viaje elegido. Este valor límite se puede invalidar por incidente, especificando valores límite individuales en la subcapa de incidentes cuando la Dirección del viaje es Hacia las instalaciones o por instalación, especificando valores límite individuales en la subcapa de instalaciones cuando la Dirección del viaje es 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 deben comenzar y terminar 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 eligió 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.

En lugar de usar una fecha determinada, también se puede especificar un día de la semana utilizando las siguientes fechas:

  • 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

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 inicialHora 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, Hora del día indica que el solucionador debe encontrar la mejor ruta dada una hora de salida.
  • Tiempo finalHora 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 salir de una ubicación para que llegue al destino en la hora especificada en la Hora del día.
String
Forma de línea
(Opcional)

Especifica el tipo de forma para las entidades de ruta que son la salida del análisis.

Sin importar el tipo de forma de salida elegido, la mejor ruta siempre se determina mediante la impedancia de red, nunca según 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 al ejecutar el análisis.

  • Activado: indica que las indicaciones paso a paso se generarán al resolver.
  • Desactivado: indica que las indicaciones paso a paso no se generarán 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 bastante 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.na.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 se 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 se utiliza en el travel_mode elegido. 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 deben comenzar y terminar 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 eligió 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.

En lugar de usar una fecha determinada, también se puede especificar un día de la semana utilizando las siguientes fechas:

  • 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

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á definido 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á definido 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á definido 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á definido como TO_FACILITIES, esta será la zona horaria de las instalaciones.
  • UTCEl parámetro time_of_day hace referencia a la hora universal coordinada (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_TIMEtime_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, time_of_day indica que el solucionador debe encontrar la mejor ruta dada una hora de salida.
  • END_TIMEtime_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 salir de una ubicación para que llegue al destino en la hora especificada en time_of_day.
String
line_shape
(Opcional)

Especifica el tipo de forma para las entidades de ruta que son la salida del análisis.

Sin importar el tipo de forma de salida elegido, la mejor ruta siempre se determina mediante la impedancia de red, nunca según 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.

  • DIRECTIONSIndica que las indicaciones paso a paso se generarán al resolver.
  • NO_DIRECTIONSIndica que las indicaciones paso a paso no se generarán 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 considerablemente 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)

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

Entornos

Casos especiales

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí