Solucionar (Network Analyst)
Resumen
Resuelve el problema de capa de análisis de red en base a las propiedades y las ubicaciones de red.
Uso
-
Cuando la solución falla, los mensajes de advertencia y error proporcionan información útil acerca de las razones de la falla.
-
Asegúrese de especificar todos los parámetros en la capa de análisis de red necesarios para resolver el problema antes de ejecutar esta herramienta.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_network_analysis_layer |
La capa de análisis de red en la que se calculará el análisis. | Network Analyst Layer |
ignore_invalids (Opcional) |
| Boolean |
terminate_on_solve_error (Opcional) |
| Boolean |
simplification_tolerance (Opcional) |
La tolerancia que determina el grado de simplificación para su geometría de salida. Si se especifica una tolerancia, debe ser mayor que cero. Puede elegir una unidad preferida; la predeterminada es grados decimales. Especificar una tolerancia de simplificación tiende a reducir el tiempo que lleva renderizar las rutas o áreas de servicio. La desventaja, sin embargo, es que simplificar la geometría elimina los vértices, que pueden aminorar la exactitud espacial de la salida a escalas mayores. Debido a que una línea con solo dos vértices no se puede simplificar más, este parámetro no afecta a los tiempos de dibujo de la salida de un segmento, como las rutas en línea recta, las líneas de matriz de coste OD y las líneas de ubicación y asignación. | Linear unit |
Ejemplo de código
Ejecuta la herramienta utilizando todos los parámetros.
import arcpy
arcpy.na.Solve("Route","HALT","TERMINATE", "10 Meters")
La siguiente secuencia de comandos de Python independiente muestra cómo se puede utilizar la herramienta Solucionar para realizar un análisis de instalación más cercana y guardar los resultados en un archivo de capa.
# Name: Solve_Workflow.py
# Description: Solve a closest facility analysis to 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)