Crear capa de ubicación y asignación (Network Analyst)
Resumen
Crea una capa de análisis de red de ubicación y asignación y establece sus propiedades de análisis. Una capa de análisis de ubicación y asignación es útil para elegir una cantidad dada de instalaciones de un conjunto de posibles ubicaciones tal que una demanda se asigne a las instalaciones de manera óptima y eficiente.
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.
Cuando se utiliza esta herramienta en modelos de geoprocesamiento, si el modelo se ejecuta como una herramienta, la capa de análisis de red de salida debe ser un parámetro de modelo. De lo contrario, la capa de salida no se agregará a la tabla de contenido en ArcMap.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_network_dataset |
El dataset de red en el que se realizará el análisis de ubicación y asignación. | Network Dataset Layer |
out_network_analysis_layer |
Nombre de la capa de análisis de red de ubicación y asignación que se creará. | String |
impedance_attribute |
El atributo de coste que se usará como impedancia en el análisis. | String |
loc_alloc_from_to (Opcional) |
Especifica la dirección de viaje entre las instalaciones y los puntos de demanda cuando se calculan los costes de red.
El uso de esta opción puede afectar la asignación de los puntos de demanda a las instalaciones de una red con restricciones unidireccionales y diferentes impedancias basadas en la dirección del viaje. Por ejemplo, una instalación puede estar a una distancia de viaje de 15 minutos desde el punto de demanda hasta la instalación y de sólo 10 minutos desde la instalación hasta el punto de demanda. Los departamentos de bomberos utilizan habitualmente la configuración Instalación a pedido, puesto que les preocupa el tiempo necesario para viajar desde la estación de bomberos hasta la ubicación de la emergencia. Una tienda está más preocupada por el tiempo que tardan los compradores en alcanzar la tienda; por consiguiente, las tiendas utilizan habitualmente la opción Pedido a instalación. | String |
loc_alloc_problem_type (Opcional) |
El tipo de problema que se resolverá. La elección del tipo de problema depende del tipo de instalación que se está ubicando. Los distintos tipos de instalaciones tienen distintas prioridades y restricciones.
| String |
number_facilities_to_find (Opcional) |
Especifica la cantidad de instalaciones que el solucionador debe ubicar. Las instalaciones con un valor FacilityType de Requerido forman parte siempre de la solución cuando hay más instalaciones para buscar que instalaciones requeridas; las instalaciones sobrantes para elegir se seleccionan entre las instalaciones candidatas. Las instalaciones que tengan el valor FacilityType de Elegido antes de resolver se tratan como instalaciones candidatas en el momento de la resolución. El valor de parámetro no se tiene en cuenta para el tipo de problema MINIMIZE_FACILITIES debido a que el solucionador determina la cantidad mínima de instalaciones a ubicar para maximizar la cobertura. El valor de parámetro se invalida para el tipo de problema TARGET_MARKET_SHARE debido a que el solucionador busca la cantidad mínima de instalaciones necesarias para capturar la cuota de mercado especificada. | Long |
impedance_cutoff (Opcional) |
Valor límite de impedancia especifica la impedancia máxima con la que se puede asignar un punto de demanda a una instalación. La impedancia máxima se mide mediante la trayectoria de menor coste a lo largo de la red. Si un punto de demanda está fuera de la tolerancia, se deja sin asignar. Esta propiedad se podría utilizar para modelar la distancia máxima que las personas están dispuestas a recorrer para visitar las tiendas, o el tiempo máximo que se permite que tarde un departamento de bomberos en alcanzar cualquier punto de la comunidad. Los puntos de demanda tienen una propiedad Cutoff_[Impedance] que, si se establece, anula la propiedad Valor límite de impedancia de la capa de análisis. Quizá descubra que en áreas rurales las personas estén dispuestas a recorrer hasta 10 millas para llegar a una instalación, mientras que los urbanitas solo están dispuestos a recorrer dos millas. Puede modelar este comportamiento estableciendo el valor de tolerancia de impedancia de la capa de análisis en 10 y estableciendo el valor Cutoff_Miles de los puntos de demanda en áreas urbanas en 2. | Double |
impedance_transformation (Opcional) |
Establece la ecuación para transformar el coste de la red entre instalaciones y puntos de demanda. Esta propiedad, unida al parámetro Impedancia, especifica hasta qué punto influye la impedancia de red entre las instalaciones y los puntos de demanda en la elección de instalaciones por parte del solucionador.
Los puntos de demanda tienen una propiedad ImpedanceTransformation que, si se establece, invalida la propiedad Transformación de impedancia de la capa de análisis. Puede determinar la transformación de impedancia pero debe ser distinta para residentes urbanos y rurales. Puede modelar esto configurando la transformación de impedancia para la capa de análisis para que coincida con la de los residentes rurales y configurando la transformación de impedancia para los puntos de demanda en áreas urbanas para que coincidan con la de las urbanizaciones. | String |
impedance_parameter (Opcional) |
Proporciona un valor de parámetro a las ecuaciones especificadas en el parámetro de transformación de impedancia. El valor de parámetro se ignora cuando la transformación de impedancia es de tipo lineal. Para las transformaciones de impedancia exponencial y de potencia, el valor debe ser distinto de cero. Los puntos de demanda tienen una propiedad ImpedanceParameter que, si se establece, anula la propiedad Parámetro de impedancia de la capa de análisis. Quizá determine que el parámetro de impedancia debe ser diferente para los residentes urbanos y rurales. Puede modelar esto estableciendo la transformación de impedancia para que la capa de análisis concuerde con la de los residentes rurales y estableciendo la transformación de impedancia para los puntos de demanda en áreas urbanas de modo que concuerde con la de los urbanitas. | Double |
target_market_share (Opcional) |
Especifica la cuota de mercado objetivo a resolver, en porcentaje, cuando el parámetro de tipo de problema de ubicación y asignación está establecido en TARGET_MARKET_SHARE. Es el porcentaje del peso de demanda total que desea que capturen las instalaciones de solución. El solucionador elige la cantidad mínima de instalaciones necesarias para capturar la cuota de mercado objetivo especificada por este valor numérico. | Double |
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. For each cost attribute that is accumulated, a Total_[Impedance] property is added to the routes that are output by the solver. | String |
UTurn_policy (Opcional) |
Restrinja o permita giros en U en cruces que pudieran ocurrir durante el trazado poligonal de la red entre las paradas.
| 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 |
output_path_shape (Opcional) |
| String |
Ejemplo de código
Ejecutar la herramienta utilizando sólo los parámetros requeridos
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.MakeLocationAllocationLayer_na("Transportation/Streets_ND", "StoreLocations","Minutes")
Ejecutar la herramienta utilizando todos los parámetros
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/SanFrancisco.gdb" arcpy.MakeLocationAllocationLayer_na("Transportation/Streets_ND","NewStores", "Minutes","DEMAND_TO_FACILITY", "MAXIMIZE_ATTENDANCE",3,5,"POWER",2,"", ["Minutes","Meters"],"ALLOW_UTURNS", ["Oneway"],"NO_HIERARCHY","STRAIGHT_LINES")
La siguiente secuencia de comandos de Python independiente muestra cómo utilizar la herramienta MakeLocationAllocationLayer para elegir las ubicaciones de tienda que generarían la mayor cantidad de negocios para una cadena de tiendas.
# Name: MakeLocationAllocationLayer_Workflow.py # Description: Choose the store locations that would generate the most business # for a retail chain. For this scenario we will perform the # location-allocation analysis using maximize attendance problem # type. # 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/SanFrancisco.gdb" env.overwriteOutput = True #Set local variables inNetworkDataset = "Transportation/Streets_ND" outNALayer = "NewStoreLocations" impedanceAttribute = "TravelTime" inFacilities = "Analysis/CandidateStores" inDemandPoints = "Analysis/TractCentroids" outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr" #Create a new location-allocation layer. In this case the demand travels to #the facility. We wish to find 3 potential store locations out of all the #candidate store locations using the maximize attendance model. arcpy.MakeLocationAllocationLayer_na(inNetworkDataset, outNALayer, impedanceAttribute,"DEMAND_TO_FACILITY", "MAXIMIZE_ATTENDANCE",3,5, "LINEAR") #Load the candidate store locations as facilities arcpy.AddLocations_na(outNALayer,"Facilities",inFacilities,"","") #Load the tract centroids as demand points arcpy.AddLocations_na(outNALayer,"Demand Points",inDemandPoints,"","") #Solve the location-allocation layer arcpy.Solve_na(outNALayer) #Save the solved location-allocation layer as a layer file on disk with #relative paths arcpy.SaveToLayerFile_management(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)