ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

Crear capa de ubicación y asignación

Disponible con una licencia de Network Analyst.

  • Resumen
  • Uso
  • Sintaxis
  • Muestra de código
  • Entornos
  • Información de licenciamiento

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.

  • 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.MakeLocationAllocationLayer(in_network_dataset, out_network_analysis_layer, impedance_attribute, {loc_alloc_from_to}, {loc_alloc_problem_type}, {number_facilities_to_find}, {impedance_cutoff}, {impedance_transformation}, {impedance_parameter}, {target_market_share}, {accumulate_attribute_name}, {UTurn_policy}, {restriction_attribute_name}, {hierarchy}, {output_path_shape}, {default_capacity}, {time_of_day})
ParámetroExplicaciónTipo 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.

  • FACILITY_TO_DEMAND —La dirección de viaje desde las instalaciones hasta los puntos de demanda. 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 hasta la ubicación de la emergencia.
  • DEMAND_TO_FACILITY —La dirección de viaje va desde los puntos de demanda hasta las instalaciones. Las tiendas minoristas suelen utilizar esta configuración porque les preocupa el tiempo que tardan los compradores en llegar a la tienda.

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.

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.

  • MINIMIZE_IMPEDANCE —Esta opción soluciona el problema de la ubicación de un depósito. Selecciona un conjunto de instalaciones de manera tal que la suma total de las impedancias ponderadas (demanda en una ubicación multiplicada por la impedancia de la instalación más cercana) se minimice. Este tipo de problema se conoce comúnmente como problema de mediana P.
  • MAXIMIZE_COVERAGE —Esta opción soluciona el problema de la ubicación de la estación de bomberos. Elige las instalaciones de manera tal que toda o la mayor parte de la demanda esté dentro de un valor límite de impedancia especificado.
  • MAXIMIZE_CAPACITATED_COVERAGE —Esta opción soluciona el problema de ubicación donde las instalaciones tienen capacidad finita. Elige las instalaciones de manera tal que toda o la mayor parte de la demanda se puede servir sin que superan la capacidad de ninguna instalación. Además de respetar la capacidad, selecciona las instalaciones de manera que la suma total de la impedancia ponderada (la demanda asignada a una instalación multiplicada por la impedancia o desde la instalación) se minimiza.
  • MINIMIZE_FACILITIES —Esta opción soluciona el problema de la ubicación de la estación de bomberos. Elige la cantidad mínima de instalaciones necesarias para cubrir toda o la mayor parte de la demanda dentro de un valor límite de impedancia especificado.
  • MAXIMIZE_ATTENDANCE —Esta opción soluciona el problema de la ubicación de la tienda del vecindario donde la proporción de la demanda asignada a la instalación elegida más cercana cae al aumentar la distancia. Se elige el conjunto de instalaciones que maximiza la demanda total asignada. La demanda que sobrepasa el valor límite de impedancia especificado no afecta al conjunto de instalaciones elegido.
  • MAXIMIZE_MARKET_SHARE —Esta opción soluciona el problema de la ubicación de una instalación competitiva. Elige instalaciones para maximizar la cuota de mercado en presencia de instalaciones competitivas. Los conceptos de modelo de gravedad se utilizan para determinar la proporción de la demanda asignada a cada instalación. Se elige el conjunto de instalaciones que maximiza la demanda total asignada.
  • TARGET_MARKET_SHARE —Esta opción soluciona el problema de la ubicación de una instalación competitiva. Elige instalaciones para alcanzar una cuota de mercado objetivo especificada en presencia de instalaciones competitivas. Los conceptos de modelo de gravedad se utilizan para determinar la proporción de la demanda asignada a cada instalación. Se elige la cantidad mínima de instalaciones necesarias para alcanzar la cuota de mercado objetivo especificada.
String
number_facilities_to_find
(Opcional)

Especifica la cantidad de instalaciones que el solucionador debe ubicar.

Las instalaciones con un valor FacilityType de Requerido siempre forman parte 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 un FacilityType con el valor de Elegida 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, invalida 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 2 millas. Puede modelar este comportamiento estableciendo el valor límite 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.

  • LINEAR —La impedancia de red transformada entre la instalación y el punto de demanda es igual a la impedancia de red de la ruta más corta entre ellos. Con esta opción, el parámetro de impedancia siempre se establece en uno. Esta es la opción predeterminada.
  • POWER —La impedancia de red transformada entre la instalación y el punto de demanda es igual a la impedancia de red de la ruta más corta elevada a la potencia especificada por el parámetro de impedancia. Utilice esta opción con un parámetro de impedancia positivo para especificar un peso mayor para las instalaciones cercanas.
  • EXPONENTIAL —La impedancia de red transformada entre la instalación y el punto de demanda es igual a la constante matemática y elevada a la potencia especificada por la impedancia de red de la ruta más corta multiplicada por el parámetro de impedancia. Utilice esta opción con un parámetro de impedancia positivo para especificar un peso muy alto para las instalaciones cercanas.Las transformaciones exponenciales se utilizan normalmente junto con una tolerancia de impedancia.

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 LINEAR. Para las transformaciones de impedancia POWER y EXPONENTIAL, el valor debe ser distinto de cero.

Los puntos de demanda tienen una propiedad ImpedanceParameter que, si se establece, invalida 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 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.

Double
target_market_share
(Opcional)

Le permite especificar la cuota de mercado objetivo en porcentaje que desea solucionar cuando el parámetro Tipo de problema de ubicación y asignación está configurado como 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 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.

  • ALLOW_UTURNS —Se permiten los cambios de sentido en los cruces con cualquier cantidad de bordes adyacentes. Este es el valor predeterminado.
  • NO_UTURNS —Los cambios de sentido están prohibidos en todos los cruces, independientemente de la valencia de cruce. Tenga en cuenta, no obstante, que los cambios de sentido 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 cambios de sentido en ella.
  • ALLOW_DEAD_ENDS_ONLY —Los cambios de sentido están prohibidos en todos los cruces, excepto los que tienen solo un borde adyacente (una calle sin salida).
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY —Los cambios de sentido 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 cambios de sentido en estas ubicaciones.
Sugerencia:

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)
  • 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_HIERARCHY —No 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
output_path_shape
(Opcional)
  • NO_LINES —No se generará ninguna forma para la salida del análisis.
  • STRAIGHT_LINES —Las formas de línea de salida serán líneas rectas que conectan las instalaciones de solución con sus puntos de demanda asignados.
String
default_capacity
(Opcional)

Especifica la capacidad predeterminada de las instalaciones cuando el parámetro loc_alloc_problem_type se establece en MAXIMIZE_CAPACITATED_COVERAGE. Este parámetro se ignora para todos los demás tipos de problema.

Las instalaciones tienen una propiedad Capacidad, que, si se establece un valor no nulo, invalida el parámetro default_capacity para ese servicio.

Double
time_of_day
(Opcional)

Indica la hora y fecha de la salida. La hora de la salida puede ser de las instalaciones o de los puntos de demanda, dependiendo de si el viaje es desde la demanda a la instalación o desde instalación a la demanda.

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

Date

Salida derivada

NombreExplicaciónTipo 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 MakeLocationAllocationLayer (ventana de Python)

Ejecutar la herramienta utilizando solo los parámetros requeridos.

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

Ejecutar la herramienta utilizando todos los parámetros.

network = "C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
arcpy.na.MakeLocationAllocationLayer(network, "NewStores", "TravelTime",
                                    "DEMAND_TO_FACILITY", "MAXIMIZE_ATTENDANCE",
                                    3, 5, "POWER", 2, "",
                                    ["TravelTime", "Meters"], "ALLOW_UTURNS",
                                    ["Oneway"], "NO_HIERARCHY",
                                    "STRAIGHT_LINES", "", "9 AM")
Ejemplo 3 de MakeLocationAllocationLayer (flujo de trabajo)

En la siguiente secuencia independiente de comandos de Python se muestra cómo utilizar la herramienta MakeLocationAllocationLayer para elegir las ubicaciones de tienda que generarían la mayor cantidad de negocio 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"
    outNALayerName = "NewStoreLocations"
    impedanceAttribute = "TravelTime"
    inFacilities = "Analysis/CandidateStores"
    requiredFacility = "Analysis/ExistingStore"
    inDemandPoints = "Analysis/TractCentroids"
    outLayerFile = "C:/data/output" + "/" + outNALayerName + ".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.
    outNALayer = arcpy.na.MakeLocationAllocationLayer(inNetworkDataset,
                                                      outNALayerName,
                                                      impedanceAttribute,
                                                      "DEMAND_TO_FACILITY",
                                                      "MAXIMIZE_ATTENDANCE",3,5,
                                                      "LINEAR")
    
    #Get the layer object from the result object. The location-allocation layer
    #can now be referenced using the layer object.
    outNALayer = outNALayer.getOutput(0)
    
    #Get the names of all the sublayers within the location-allocation layer.
    subLayerNames = arcpy.na.GetNAClassNames(outNALayer)
    #Stores the layer names that we will use later
    facilitiesLayerName = subLayerNames["Facilities"]
    demandPointsLayerName = subLayerNames["DemandPoints"]
    
    
    #Load the candidate store locations as facilities using default search
    #tolerance and field mappings.
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, inFacilities, "", "",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Load the existing store location as the required facility. Use the field
    #mappings to set the facility type to requried. We need to append this
    #required facility to existing facilities.
    fieldMappings = arcpy.na.NAClassFieldMappings(outNALayer, facilitiesLayerName)
    fieldMappings["FacilityType"].defaultValue = 1
    arcpy.na.AddLocations(outNALayer, facilitiesLayerName, requiredFacility,
                          fieldMappings, "", append = "APPEND",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Load the tract centroids as demand points using default search tolerance
    #Use the field mappings to map the Weight property from POP2000 field.
    demandFieldMappings = arcpy.na.NAClassFieldMappings(outNALayer,
                                                        demandPointsLayerName)
    demandFieldMappings["Weight"].mappedFieldName = "POP2000"    
    arcpy.na.AddLocations(outNALayer,demandPointsLayerName ,inDemandPoints,
                          demandFieldMappings, "",
                          exclude_restricted_elements = "EXCLUDE")
    
    #Solve the location-allocation layer
    arcpy.na.Solve(outNALayer)
    
    #Save the solved location-allocation 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

  • Espacio de trabajo actual

Información de licenciamiento

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

Temas relacionados

  • Análisis de ubicación y asignación
  • Sobre el análisis de redes con jerarquías
  • Descripción general del conjunto de herramientas Análisis
  • ¿Qué son las capas de análisis de red?

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2021 Esri. | Privacidad | Legal