Resolver (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.

  • La herramienta consumirá créditos cuando la capa de análisis de red haga referencia a ArcGIS Online como la fuente de datos de red. Para obtener más información, consulte Créditos.

Parámetros

EtiquetaExplicaciónTipo de datos
Capa de análisis de red de entrada

La capa de análisis de red en la que se calculará el análisis.

Network Analyst Layer
Ignorar ubicaciones no válidas
(Opcional)

Especifica si se ignorarán las ubicaciones de entrada no válidas. Por lo general, las ubicaciones no son válidas si no se pueden ubicar en la red. Cuando se ignoran las ubicaciones no válidas, el solucionador las omitirá e intentará realizar el análisis utilizando las ubicaciones restantes.

  • Activado: se ignorarán las ubicaciones de entrada no válidas y solo se utilizarán las ubicaciones válidas.
  • Desactivado: se usarán todas las ubicaciones de entrada. Cualquier ubicación no válida hará que la resolución falle.

El valor predeterminado coincidirá con la configuración de Ignorar ubicaciones no válidas en la hora de la resolución en el valor de Capa de análisis de red de entrada designado.

Boolean
Finalizar al solucionar el error
(Opcional)

Especifica si la herramienta dejará de ejecutarse y finalizará si se encuentra un error durante la resolución.

  • Marcada: la herramienta dejará de ejecutarse y finalizará cuando el solucionador encuentre un error. Esta es la opción predeterminada.
  • Desactivada: la herramienta seguirá ejecutándose aunque el solucionador encuentre un error. Todos los mensajes de error devueltos por el solucionador se convertirán en mensajes de advertencia. Utilice esta opción cuando el procesamiento en segundo plano esté habilitado en la aplicación.
Boolean
Tolerancia de simplificación
(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 tiene efecto en los tiempos de dibujo para salida de segmento único, como rutas de línea recta, líneas de matriz de coste OD y líneas de ubicación y asignación.

Linear Unit
Invalidaciones
(Opcional)

Nota:

Este parámetro es solo para uso interno.

String

Salida derivada

EtiquetaExplicaciónTipo de datos
Capa de Network Analyst

La capa de análisis de red resuelta.

Network Analyst Layer
La operación de solución se realizó correctamente

Un booleano que indica si la solución tuvo éxito.

Boolean

arcpy.management.Solve(in_network_analysis_layer, {ignore_invalids}, {terminate_on_solve_error}, {simplification_tolerance}, {overrides})
NombreExplicaciónTipo 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)

Especifica si se ignorarán las ubicaciones de entrada no válidas. Por lo general, las ubicaciones no son válidas si no se pueden ubicar en la red. Cuando se ignoran las ubicaciones no válidas, el solucionador las omitirá e intentará realizar el análisis utilizando las ubicaciones restantes.

  • SKIPSe ignorarán las ubicaciones de entrada no válidas y solo se utilizarán las ubicaciones válidas.
  • HALTSe usarán todas las ubicaciones de entrada. Cualquier ubicación no válida hará que la resolución falle.

El valor predeterminado coincidirá con la propiedad ignoreInvalidLocations del valor in_network_analysis_layer designado.

Boolean
terminate_on_solve_error
(Opcional)

Especifica si la herramienta dejará de ejecutarse y finalizará si se encuentra un error durante la resolución.

  • TERMINATELa herramienta dejará de ejecutarse y finalizará cuando el solucionador encuentre un error. Esta es la opción predeterminada. Al usar esta opción, el objeto de Result no se crea cuando la herramienta se finaliza debido a un error del solucionador. Revise los mensajes de geoprocesamiento del objeto de ArcPy.
  • CONTINUELa herramienta seguirá ejecutándose aunque el solucionador encuentre un error. Todos los mensajes de error devueltos por el solucionador se convertirán en mensajes de advertencia. Al usar esta opción, el objeto de Result se crea siempre y la propiedad maxSeverity del objeto de Result se establece en 1. Utilice el método getOutput del objeto de Result con un valor de índice de 1 para determinar si la resolución se realizó correctamente.
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 tiene efecto en los tiempos de dibujo para salida de segmento único, como rutas de línea recta, líneas de matriz de coste OD y líneas de ubicación y asignación.

Linear Unit
overrides
(Opcional)

Nota:

Este parámetro es solo para uso interno.

String

Salida derivada

NombreExplicaciónTipo de datos
output_layer

La capa de análisis de red resuelta.

Network Analyst Layer
solve_succeeded

Un booleano que indica si la solución tuvo éxito.

Boolean

Muestra de código

Ejemplo 1 de Solucionar (ventana de Python)

Ejecute la herramienta utilizando todos los parámetros.

arcpy.na.Solve("Route", "HALT", "TERMINATE", "10 Meters")
Ejemplo 2 de Solucionar (flujo de trabajo)

La siguiente secuencia de comandos independiente de Python muestra cómo se puede utilizar la función Solve 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
import os

try:
    #Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")
    
    #Set environment settings
    output_dir = "C:/Data"
    #The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    #Set local variables
    input_gdb = "C:/Data/Paris.gdb"
    network = os.path.join(input_gdb, "Transportation", "ParisMultimodal_ND")
    layer_name = "ClosestWarehouse"
    travel_mode = "Driving Time"
    facilities = os.path.join(input_gdb, "Analysis", "Warehouses")
    incidents = os.path.join(input_gdb, "Analysis", "Stores")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Create a new closest facility analysis layer.
    result_object = arcpy.na.MakeClosestFacilityAnalysisLayer(network,
                                            layer_name, travel_mode,
                                            "TO_FACILITIES",
                                            number_of_facilities_to_find=1)

    #Get the layer object from the result object. The closest facility layer can
    #now be referenced using the layer object.
    layer_object = result_object.getOutput(0)

    #Get the names of all the sublayers within the closest facility layer.
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    #Stores the layer names that we will use later
    facilities_layer_name = sublayer_names["Facilities"]
    incidents_layer_name = sublayer_names["Incidents"]

    #Load the warehouses as Facilities using the default field mappings and
    #search tolerance
    arcpy.na.AddLocations(layer_object, facilities_layer_name,
                            facilities, "", "")

    #Load the stores as Incidents. Map the Name property from the NOM field
    #using field mappings
    field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
                                                    incidents_layer_name)
    field_mappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(layer_object, incidents_layer_name, incidents,
                          field_mappings, "")

    #Solve the closest facility layer
    arcpy.na.Solve(layer_object)

    #Save the solved closest facility layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

    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))