Résoudre (Network Analyst)

Synthèse

Résout le problème de la couche d’analyse de réseau en fonction de ses emplacements de réseau et de ses propriétés.

Utilisation

  • Lorsque la résolution échoue, les messages d’erreur et d’avertissement fournissent des informations utiles concernant les raisons de l’échec.

  • Veillez à spécifier tous les paramètres sur la couche d’analyse de réseau qui sont nécessaires pour résoudre le problème avant d’exécuter cet outil.

  • L’outil consomme des crédits lorsque la couche d’analyse de réseau référence ArcGIS Online comme source de données réseau. Pour plus d’informations, reportez-vous à la rubrique Crédits.

Paramètres

ÉtiquetteExplicationType de données
Couche d’analyse de réseau en entrée

Couche d’analyse de réseau sur laquelle l’analyse est calculée.

Network Analyst Layer
Ignorer les emplacements non valides
(Facultatif)

Détermine si les emplacements en entrée non valides sont ignorés. En règle générale, les emplacements ne sont pas valides si ils ne peuvent pas être localisés sur le réseau. Lorsque les emplacements non valides sont ignorés, le solveur les ignore et tente de réaliser l’analyse avec les emplacements restants.

  • Activé : les emplacements en entrée non valides sont ignorés et seuls les emplacements valides sont utilisés.
  • Activé : tous les emplacements en entrée sont utilisés. Les emplacements non valides provoquent l’échec de la résolution.

La valeur par défaut correspond au paramètre Ignorer les emplacements non valides lors de la résolution sur la valeur Couche d’analyse de réseau en entrée désignée.

Boolean
Terminer sur une erreur de résolution
(Facultatif)

Détermine si l’outil arrête de s’exécuter et se ferme si une erreur est rencontrée lors de la résolution.

  • Activé : L’outil arrête de s’exécuter et se ferme lorsque le solveur rencontre une erreur. Il s’agit de l’option par défaut.
  • Désactivé : L’outil n’échoue pas et poursuit son exécution lorsque le solveur rencontre une erreur. Tous les messages d’erreur renvoyés par le solveur sont convertis en messages d’avertissement. Utilisez cette option lorsque le traitement en arrière-plan est activé dans l’application.
Boolean
Tolérance de simplification
(Facultatif)

Tolérance qui détermine le degré de simplification pour la géométrie en sortie. Si une tolérance est spécifiée, elle doit être supérieure à zéro. Vous pouvez choisir une unité préférée. L’unité par défaut correspond aux degrés décimaux.

La spécification d’une tolérance de simplification a tendance à réduire le temps nécessaire pour afficher des itinéraires ou des zones de desserte. L’inconvénient de cela, toutefois, est que la simplification de la géométrie supprime des sommets, ce qui peut amoindrir la précision spatiale de la sortie à plus grande échelle.

Étant donné qu’une ligne dotée de seulement deux sommets ne peut pas être simplifiée, ce paramètre n’a aucun effet sur la durée d’affichage d’une sortie composée de segments simples, telle que des itinéraires en lignes droites, les lignes d’une matrice de coût OD ou des lignes de localisation-allocation.

Linear Unit
Débrayages
(Facultatif)

Remarque :

Ce paramètre n’est destiné qu’à un usage interne.

String

Sortie obtenue

ÉtiquetteExplicationType de données
Couche Network Analyst

Couche d’analyse de réseau résolue.

Network Analyst Layer
Erreur résolue

Opérateur booléen indiquant si la résolution a réussi.

Boolean

arcpy.management.Solve(in_network_analysis_layer, {ignore_invalids}, {terminate_on_solve_error}, {simplification_tolerance}, {overrides})
NomExplicationType de données
in_network_analysis_layer

Couche d’analyse de réseau sur laquelle l’analyse est calculée.

Network Analyst Layer
ignore_invalids
(Facultatif)

Détermine si les emplacements en entrée non valides sont ignorés. En règle générale, les emplacements ne sont pas valides si ils ne peuvent pas être localisés sur le réseau. Lorsque les emplacements non valides sont ignorés, le solveur les ignore et tente de réaliser l’analyse avec les emplacements restants.

  • SKIPLes emplacements en entrée non valides sont ignorés et seuls les emplacements valides sont utilisés.
  • HALTTous les emplacements en entrée sont utilisés. Les emplacements non valides provoquent l’échec de la résolution.

La valeur par défaut correspond à la propriété ignoreInvalidLocations de la valeur in_network_analysis_layer désignée.

Boolean
terminate_on_solve_error
(Facultatif)

Détermine si l’outil arrête de s’exécuter et se ferme si une erreur est rencontrée lors de la résolution.

  • TERMINATEL’outil arrête de s’exécuter et se ferme lorsque le solveur rencontre une erreur. Il s’agit de l’option par défaut. Lorsque vous utilisez cette option, l’objet Result n’est pas créé si l’outil se ferme en raison d’une erreur du solveur. Examinez les messages de géotraitement de l’objet ArcPy.
  • CONTINUEL’outil n’échoue pas et poursuit son exécution lorsque le solveur rencontre une erreur. Tous les messages d’erreur renvoyés par le solveur sont convertis en messages d’avertissement. Lorsque vous utilisez cette option, l’objet Result est toujours créé et la propriété maxSeverity de l’objet Result est définie sur 1. Utilisez la méthode getOutput de l’objet Result avec une valeur d’index égale à 1 pour déterminer si le solveur a produit les résultats attendus.
Boolean
simplification_tolerance
(Facultatif)

Tolérance qui détermine le degré de simplification pour la géométrie en sortie. Si une tolérance est spécifiée, elle doit être supérieure à zéro. Vous pouvez choisir une unité préférée. L’unité par défaut correspond aux degrés décimaux.

La spécification d’une tolérance de simplification a tendance à réduire le temps nécessaire pour afficher des itinéraires ou des zones de desserte. L’inconvénient de cela, toutefois, est que la simplification de la géométrie supprime des sommets, ce qui peut amoindrir la précision spatiale de la sortie à plus grande échelle.

Étant donné qu’une ligne dotée de seulement deux sommets ne peut pas être simplifiée, ce paramètre n’a aucun effet sur la durée d’affichage d’une sortie composée de segments simples, telle que des itinéraires en lignes droites, les lignes d’une matrice de coût OD ou des lignes de localisation-allocation.

Linear Unit
overrides
(Facultatif)

Remarque :

Ce paramètre n’est destiné qu’à un usage interne.

String

Sortie obtenue

NomExplicationType de données
output_layer

Couche d’analyse de réseau résolue.

Network Analyst Layer
solve_succeeded

Opérateur booléen indiquant si la résolution a réussi.

Boolean

Exemple de code

Exemple 1 d’utilisation de la fonction Solve (fenêtre Python)

Exécutez l’outil avec tous les paramètres.

arcpy.na.Solve("Route", "HALT", "TERMINATE", "10 Meters")
Exemple 2 d’utilisation de la fonction Solve (processus)

Le script Python autonome suivant illustre l’utilisation de la fonction Solve pour effectuer une analyse de la ressource la plus proche et enregistrer les résultats dans un fichier de couches.

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