Hacer una capa de la matriz de coste OD (Network Analyst)
Resumen
Crea una capa de análisis de red de matriz de coste origen-destino (OD) y establece sus propiedades de análisis. Una capa de análisis de matriz de coste OD es útil para representar una matriz de costes que oscilan desde un conjunto de ubicaciones de origen hasta un conjunto de ubicaciones de destino.
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 matriz de coste OD. | Network Dataset Layer |
out_network_analysis_layer |
Nombre de la capa de análisis de red de matriz de coste OD que se creará. | String |
impedance_attribute |
El atributo de coste que se usará como impedancia en el análisis. | String |
default_cutoff (Opcional) |
Valor de impedancia predeterminado en el cual detener la búsqueda de destinos para un origen determinado. Si la impedancia acumulada supera el valor límite, el trazado poligonal se detiene. El valor predeterminado se puede invalidar especificando el valor límite en los orígenes. | Double |
default_number_destinations_to_find (Opcional) |
Cantidad predeterminada de destinos a encontrar para cada origen. Se puede invalidar el valor predeterminado especificando un valor para la propiedad TargetDestinationCount en los orígenes. | 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. 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 |
hierarchy_settings (Opcional) |
Legado: 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) |
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 sólo las formas de las rutas son diferentes, y no el trazado poligonal subyacente de la red. | 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/Paris.gdb" arcpy.MakeODCostMatrixLayer_na("Transportation/ParisNet","DrivetimeCosts", "Drivetime")
Ejecutar la herramienta utilizando todos los parámetros
import arcpy arcpy.env.workspace = "C:/ArcTutor/Network Analyst/Tutorial/Paris.gdb" arcpy.MakeODCostMatrixLayer_na("Transportation/ParisNet","DrivetimeCosts", "Drivetime",10,20,["Meters","Drivetime"], "NO_UTURNS",["Oneway"],"USE_HIERARCHY","", "NO_LINES")
La siguiente secuencia de comandos de Python independiente muestra cómo se puede utilizar la herramienta MakeODCostMatrixLayer para crear una matriz de coste origen-destino para la entrega de productos desde el depósito hasta todas las tiendas dentro de un tiempo de viaje de 10 minutos.
# Name: MakeODCostMatrixLayer_Workflow.py # Description: Create an origin-destination cost matrix for delivery of goods # from the warehouses to all stores within a 10-minute drive time # and save the results to a layer file on disk. Such a matrix can # be used as an input for logistics, delivery and routing analyses. # 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" outNALayer = "WarehouseToStoreDrivetimeMatrix" impedanceAttribute = "Drivetime" accumulateAttributeName = ["Meters"] inOrgins = "Analysis/Warehouses" inDestinations = "Analysis/Stores" fieldMappings = "Name NOM #" outLayerFile = "C:/data/output" + "/" + outNALayer + ".lyr" #Create a new OD Cost matrix layer. We wish to find all stores within a 10 #minute cutoff. Apart from finding the drive time to the stores, we also #want to find the total distance. So we will accumulate the "Meters" #impedance attribute. arcpy.MakeODCostMatrixLayer_na(inNetworkDataset, outNALayer, impedanceAttribute, 10, "", accumulateAttributeName) #Load the warehouse locations as origins using a default field map that maps #the Name property using a name field from warehouse features. arcpy.AddLocations_na(outNALayer, "Origins", inOrgins, "","1000 Meters") #Load the store locations as destinations mapping the NOM field from stores #features as Name property arcpy.AddLocations_na(outNALayer, "Destinations", inDestinations, fieldMappings,"1000 Meters") #Solve the OD cost matrix layer arcpy.Solve_na(outNALayer) #Save the solved OD cost matrix 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)