Hacer la capa de instalaciones más cercanas (Network Analyst)

Nivel de licencia:BasicStandardAdvanced

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 instalación más cercana es útil para determinar la o las instalaciones más cercanas a un incidente basadas en un coste de red específico.

NotaNota:

Las herramientas Buscar instalaciones más cercanas y Make Closest Facility Layer son similares, pero están diseñadas para diferentes propósitos. Utilice Buscar instalaciones más cercanas si está configurando un servicio de geoprocesamiento; va a simplificar el proceso de instalación. De lo contrario utilice Hacer la capa de instalaciones más cercanas.

Para crear un servicio de instalaciones más cercanas utilizando Buscar instalaciones más cercanas, solo se necesita configurar una herramienta; después se puede publicar directamente como servicio. En cambio, debe crear un modelo con la herramienta Hacer la capa de instalaciones más cercanas, conectarla debidamente a otras herramientas, y publicar el modelo para crear un servicio de geoprocesamiento de instalaciones más cercanas. Consulte Información general de los ejemplos de servicio de geoprocesamiento de Network Analyst para ver cómo se configura un servicio de instalación más próxima con datos de tutoriales. Otra opción que se puede considerar es el servicio Instalación más cercana de ArcGIS Online. Es un servicio que se ejecuta como herramienta de geoprocesamiento dentro de ArcMap, está accesible desde otras aplicaciones e incluye datos de carreteras de alta calidad de una parte importante del mundo.

Uso

Sintaxis

MakeClosestFacilityLayer_na (in_network_dataset, out_network_analysis_layer, impedance_attribute, {travel_from_to}, {default_cutoff}, {default_number_facilities_to_find}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {hierarchy_settings}, {output_path_shape}, {time_of_day}, {time_of_day_usage})
ParámetroExplicaciónTipo de datos
in_network_dataset

El dataset de red en el que se realizará el análisis de instalación más cercana.

Network Dataset Layer
out_network_analysis_layer

Nombre de la capa de análisis de red de instalación más cercana que se creará.

String
impedance_attribute

El atributo de coste que se usará como impedancia en el análisis.

String
travel_from_to
(Opcional)

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

  • TRAVEL_FROMLa dirección de viaje desde las instalaciones hasta los incidentes.
  • TRAVEL_TOLa dirección de viaje desde los incidentes hasta las instalaciones.

Utilizando esta opción se pueden encontrar distintas instalaciones en una red con restricciones unidireccionales e impedancias diferentes basadas en la dirección del viaje. Por ejemplo, una instalación puede estar a una distancia de viaje de 10 minutos desde el incidente al viajar desde el incidente hasta la instalación, pero viajar desde la instalación hasta el incidente, puede llevar 15 minutos debido a que hay un tiempo de viaje distinto en esa dirección.

Los departamentos de bomberos generalmente utilizan la configuración TRAVEL_FROM ya que les interesa el tiempo que toma viajar desde la estación de bomberos (instalación) hasta la ubicación de la emergencia (incidente). A una tienda (instalación) le interesa más el tiempo que les toma a los compradores (incidentes) llegar a la tienda; por lo tanto, las tiendas generalmente usan la opción TRAVEL_TO.

String
default_cutoff
(Opcional)

Valor de impedancia predeterminado en el cual detener la búsqueda de instalaciones para un incidente determinado. Se puede invalidar el valor predeterminado especificando el valor límite de los incidentes cuando se utiliza la opción TRAVEL_TO o especificando el valor límite de las instalaciones cuando se usa la opción TRAVEL_FROM.

Double
default_number_facilities_to_find
(Opcional)

Cantidad predeterminada de entidades más cercanas que se buscarán por incidente. Se puede invalidar el valor predeterminado especificando un valor para la propiedad TargetFacilityCount en los incidentes.

Long
accumulate_attribute_name
[accumulate_attribute_name,...]
(Opcional)

Lista de los atributos de coste que se acumularán durante el análisis. Estos atributos de acumulación se usan específicamente de referencia; el solucionador utiliza los atributos de coste especificados por el parámetro de atributos Impedancia para calcular la ruta.

Para cada atributo de coste acumulado, se agrega una propiedad Total_[Impedancia] a las rutas generadas por el solucionador.

String
UTurn_policy
(Opcional)

Política de giro en U en los cruces. Permitir giros en U implica que el solucionador puede dar la vuelta en un cruce y regresar por la misma calle. Debido a que los cruces representan intersecciones de calles y callejones sin salida, los diferentes vehículos pueden ser capaces de dar la vuelta en algunos cruces, pero no en otros. Ello depende de que el cruce sea una intersección o un callejón sin salida. Para acomodar, el parámetro de la política del giro en U se especifica implícitamente por la cantidad de bordes que se conectan en el cruce, que se conoce como valencia de cruce. Los valores aceptables para este parámetro se enumeran a continuación; cada uno seguido de una descripción de su significado en términos de valencia de cruce.

  • ALLOW_UTURNSSe permiten los giros en U en los cruces con cualquier cantidad de bordes adyacentes. Este es el valor predeterminado.
  • NO_UTURNSLos giros en U están prohibidos en todos los cruces, independientemente de la valencia de cruce. Tenga en cuenta, sin embargo, que los giros en U seguirán estando permitidos en las ubicaciones de red aunque haya elegido esta configuración; sin embargo, también puede establecer la propiedad CurbApproach de cada ubicación de red individual para prohibir los giros en U en ella.
  • ALLOW_DEAD_ENDS_ONLYLos giros en U están prohibidos en todos los cruces, excepto los que tienen solo un borde adyacente (una calle sin salida).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLYLos giros en U están prohibidos en los cruces donde se encuentran dos bordes adyacentes pero están permitidos en las intersecciones (cruces con tres o más bordes adyacentes) o calles sin salida (cruces con exactamente un borde adyacente). A menudo, las redes tienen cruces extraños en medio de segmentos de carretera. Esta opción evita que los vehículos hagan giros en U en estas ubicaciones.
SugerenciaSugerencia:

Si necesita una política más definida respecto a la política de giros en U, considere agregar un evaluador de retraso de giro global con un atributo de coste de red, o ajustar su configuración si existe, y prestar especial atención a la configuración de los giros de 180 grados. Asimismo, examine la configuración de la propiedad CurbApproach de las ubicaciones de la red.

String
restriction_attribute_name
[restriction_attribute_name,...]
(Opcional)

Lista de atributos de restricción que se aplicarán durante el análisis.

String
hierarchy
(Opcional)
  • USE_HIERARCHY Usa el atributo de jerarquía para el análisis. Utilizar una jerarquía hace que el solucionador prefiera bordes de orden superior en lugar de bordes de orden inferior. Las soluciones jerárquicas son más rápidas y se pueden utilizar para simular la preferencia de un conductor que prefiere viajar por autovías en lugar de carreteras locales cuando es posible, incluso si eso significa un viaje más largo. Esta opción es válida solo si el dataset de red de entrada tiene atributos de jerarquía.
  • NO_HIERARCHYNo usa el atributo de jerarquía para el análisis. No utilizar una jerarquía produce una ruta exacta para el dataset de red.

El parámetro no se utiliza si no se definen atributos de jerarquía en el dataset de red utilizado para realizar el análisis. En tales casos, utilice "#" como el valor de parámetro.

Boolean
hierarchy_settings
(Opcional)

HerenciaHerencia:

Antes de la versión 10, este parámetro le permitía cambiar los rangos de jerarquía para su análisis de los rangos de jerarquía predeterminados establecidos en el dataset de red. En la versión 10, este parámetro ya no es compatible y se debe especificar como una cadena de caracteres vacía. Si desea cambiar los rangos de jerarquía para su análisis, actualice los rangos de jerarquía predeterminados en el dataset de red.

Network Analyst Hierarchy Settings
output_path_shape
(Opcional)

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

  • TRUE_LINES_WITH_MEASURESLas rutas de salida tendrán la misma forma que las fuentes de red subyacentes. Además, la salida incluye mediciones de salida para la referencia lineal. Las mediciones aumentan desde la primera parada y registran la impedancia acumulativa para alcanzar una posición determinada.
  • TRUE_LINES_WITHOUT_MEASURESLas rutas de salida tendrán la misma forma que las fuentes de red subyacentes.
  • STRAIGHT_LINESLa forma de la ruta de salida será una línea recta simple entre cada incidente e instalación asociado.
  • NO_LINESNo se generará ninguna forma para las rutas de salida.

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 las rutas son diferentes, y no el trazado poligonal subyacente de la red.

String
time_of_day
(Opcional)

Especifica 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 está establecido en START_TIME o END_TIME.

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, 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
Por ejemplo, para especificar que viajar debería empezar a 5:00 p.m. el martes, especifique el valor de parámetro como 1/2/1900 5:00 p.m.

Date
time_of_day_usage
(Opcional)

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

  • START_TIMEHora del día se interpreta como la hora de salida de la instalación o incidente.Cuando se elige START_TIME, Hora del día indica que el solucionador debe encontrar la mejor ruta dada una hora de salida. NOT_USED se puede elegir si un valor no está especificado en el parámetro Hora del día.
  • END_TIMEHora 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.
  • NOT_USEDCuando la Hora del día no tiene un valor, NOT_USED es la única elección. Cuando la Hora del día tiene un valor, NOT_USED no está disponible.
String

Ejemplo de código

Ejemplo 1 de MakeClosestFacilityLayer (ventana de Python)

Ejecutar la herramienta utilizando solo los parámetros requeridos.

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeClosestFacilityLayer("Transportation/Streets_ND",
                                  "ClosestFireStations","Minutes")
Ejemplo 2 de MakeClosestFacilityLayer (ventana de Python)

Ejecutar la herramienta utilizando todos los parámetros.

import arcpy
arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb"
arcpy.na.MakeClosestFacilityLayer("Transportation/Streets_ND",
                                  "ClosestHospitals","Minutes","TRAVEL_TO",5,3,
                                  ["Meters","Minutes"],"ALLOW_UTURNS",
                                  ["Oneway"],"USE_HIERARCHY","",
                                  "TRUE_LINES_WITH_MEASURES")
Ejemplo 3 de MakeClosestFacilityLayer (flujo de trabajo)

La siguiente secuencia de comandos de Python independiente muestra cómo utilizar la herramienta MakeClosestFacilityLayer para encontrar el depósito más cercano desde las ubicaciones de tienda.

# Name: MakeClosestFacilityLayer_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

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/Paris.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/ParisMultimodal_ND"
    outNALayerName = "ClosestWarehouse"
    impedanceAttribute = "Drivetime"
    accumulateAttributeName = ["Meters"]
    inFacilities = "Analysis/Warehouses"
    inIncidents = "Analysis/Stores"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".lyr"
    
    #Create a new closest facility analysis layer. Apart from finding the drive 
    #time to the closest warehouse, we also want to find the total distance. So
    #we will accumulate the "Meters" impedance attribute.
    outNALayer = arcpy.na.MakeClosestFacilityLayer(inNetworkDataset,outNALayerName,
                                                   impedanceAttribute,"TRAVEL_TO",
                                                   "",1, accumulateAttributeName,
                                                   "NO_UTURNS")
    
    #Get the layer object from the result object. The closest facility layer can 
    #now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the closest facility layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]
    incidentsLayerName = subLayerNames["Incidents"]
    
    #Load the warehouses as Facilities using the default field mappings and 
    #search tolerance
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "")
    
    #Load the Stores as Incidents. Map the Name property from the NOM field
    #using field mappings
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, incidentsLayerName)
    fieldMappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(outNALayer, incidentsLayerName, inIncidents,
                          fieldMappings,"")
    
    #Solve the closest facility layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved closest facility layer as a layer file on disk with 
    #relative paths
    arcpy.management.SaveToLayerFile(outNALayer,outLayerFile,"RELATIVE")
    
    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 occured on line %i" % tb.tb_lineno
    print str(e)

Entornos

Temas relacionados

Información sobre licencias

ArcGIS for Desktop Basic: Sí
ArcGIS for Desktop Standard: Sí
ArcGIS for Desktop Advanced: Sí
5/10/2014