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.
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.
Sintaxis
arcpy.na.MakeClosestFacilityLayer(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ámetro | Explicación | Tipo 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.
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. | String |
default_cutoff (Opcional) | Valor de impedancia predeterminado en el cual detener la búsqueda de instalaciones para un incidente determinado. Se puede invalidar este valor predeterminado especificando el valor límite de los incidentes cuando la dirección del trayecto es desde incidentes a instalaciones o especificando el valor límite de las instalaciones cuando la dirección del trayecto es desde instalaciones a incidentes. | 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 a modo de referencia; el solucionador solo utiliza los atributos de coste especificados por el parámetro Atributo de impedancia para calcular la ruta. Para cada atributo de coste acumulado, se agrega una propiedad Total_[Impedance] a las rutas generadas por el solucionador. | String |
UTurn_policy (Opcional) | Política de cambios de sentido en los cruces. Permitir cambios de sentido 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, depende de que el cruce sea una intersección o un callejón sin salida. Para dar cabida a esta situación, el parámetro de la política de cambios de sentido se especifica implícitamente por la cantidad de ejes que se conectan en el cruce, lo 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.
Si necesita una política más definida respecto a la política de cambios de sentido, 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) |
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) | 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.
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 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:
| 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.
| String |
Salida derivada
Nombre | Explicación | Tipo de datos |
output_layer | La capa de análisis de red recién creada. | Capa de Network Analyst |
Muestra de código
Ejemplo 1 de MakeClosestFacilityLayer (ventana de Python)
Ejecutar la herramienta utilizando solo los parámetros requeridos.
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeClosestFacilityLayer(network, "ClosestFireStations", "TravelTime")
Ejemplo 2 de MakeClosestFacilityLayer (ventana de Python)
Ejecutar la herramienta utilizando todos los parámetros.
network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeClosestFacilityLayer(network, "ClosestHospitals", "TravelTime",
"TRAVEL_TO", 5 ,3, ["Meters", "TravelTime"],
"ALLOW_UTURNS", ["Oneway"], "USE_HIERARCHY",
"", "TRUE_LINES_WITH_MEASURES")
Ejemplo 3 de MakeClosestFacilityLayer (flujo de trabajo)
En la siguiente secuencia independiente de comandos de Python se muestra cómo utilizar la herramienta MakeClosestFacilityLayer para encontrar el almacén 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
import os
try:
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = r"C:/data/Paris.gdb"
env.overwriteOutput = True
#Set local variables
inNetworkDataset = r"Transportation/ParisMultimodal_ND"
outNALayerName = "ClosestWarehouse"
impedanceAttribute = "Drivetime"
accumulateAttributeName = ["Meters"]
inFacilities = r"Analysis/Warehouses"
inIncidents = r"Analysis/Stores"
outLayerFile = os.path.join(r"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.
NAResultObject = 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 = NAResultObject.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 occurred on line %i" % tb.tb_lineno
print str(e)
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí