Utiliser des boucles de rétroaction

Dans ModelBuilder, la sortie d’un traitement peut être utilisée comme entrée d’un traitement antérieur. Cela porte le nom de rétroaction, car vous renvoyez une sortie comme entrée d’un traitement antérieur.

Créer une boucle de rétroaction

Vous pouvez créer une boucle de rétroaction en connectant une variable en sortie d’un traitement à la variable en entrée du même traitement. Pour établir cette connexion, cliquez et maintenez le bouton de la souris enfoncé sur la variable en sortie, déplacez le pointeur sur la variable en entrée, puis relâchez le bouton de la souris lorsque le pointeur se trouve sur la variable en entrée. Le modèle crée automatiquement une ligne de connecteur de rétroaction en pointillés bleus lorsque la sortie est correctement connectée à l’entrée. À chaque itération de l’outil, la variable en sortie est utilisée comme entrée pour l’itération suivante.

Comme le modèle génère un jeu de données en sortie pour chaque itération, il est important que chaque nom en sortie soit unique pour chaque itération, de sorte que l’itération précédente ne soit pas écrasée. Pour attribuer un nom unique à chaque itération en sortie, ajoutez le chemin en sortie avec la substitution de variables en ligne, comme indiqué dans l’exemple ci-dessous.

Utiliser une boucle de rétroaction pour créer plusieurs anneaux de zone tampon

L’exemple de modèle ci-dessous explique comment utiliser l’outil Buffer (Zone tampon) et une boucle de rétroaction pour créer plusieurs anneaux de zone tampon de manière itérative.

Utiliser une boucle de rétroaction
L’outil Buffer (Zone tampon) et une boucle de rétroaction sont utilisés conjointement.

  1. Pour exécuter la boucle de rétroaction un certain nombre de fois, utilisez l’outil For (Pendant). Saisissez une valeur adéquate dans les champs From Value (Valeur de départ), To Value (Valeur d’arrivée) et By Value (Valeur d’intervalle).

    Par exemple, pour itérer le modèle quatre fois, définissez le paramètre From Value (Valeur de départ) sur 1, le paramètre To Value (Valeur d’arrivée) sur 4, et le paramètre By Value (Valeur d’intervalle) sur 1.

  2. Faites de la sortie de l’outil For (Pendant) une condition préalable pour l’outil suivant.

    Cela garantit que le nombre d'itérations est disponible avant l'exécution de l'outil suivant.

  3. Pour éviter d’écraser la sortie de chaque itération, ajoutez le nom en sortie avec la variable en ligne %Value%.

    Lorsque le modèle s’exécute, %Value% est remplacé par le chiffre de la valeur en sortie de l’outil For (Pendant).

  4. Connectez la sortie de l’outil Buffer (Zone tampon) à la variable en entrée comme rétroaction, de façon à ce que la zone tampon en sortie précédente soit utilisée comme entrée dans l’itération suivante.
  5. Connectez la sortie de l’outil Buffer (Zone tampon) à l’outil Collect Values (Recueillir des valeurs).
  6. Pour exécuter un modèle avec une boucle de rétroaction à partir de la fenêtre Geoprocessing (Géotraitement), connectez la sortie finale du modèle à l’outil Collect Values (Recueillir des valeurs). Faites de la sortie de l’outil Collect Values (Recueillir des valeurs) un paramètre de modèle, de manière à ce que les sorties de rétroaction soient ajoutées à la carte.
  7. Exécutez le modèle.