Présentation rapide de l'utilisation des itérateurs
L'itération, parfois appelée boucle, consiste à répéter plusieurs fois un processus avec plus ou moins d'automatisation. L'itération s'avère très importante, car l'automatisation réduit le temps et l'effort requis pour effectuer des tâches répétitives. Grâce à l'itération qu'offre ModelBuilder, un processus peut être exécuté plusieurs fois avec des données ou des paramètres différents dans chaque itération. L'itération que propose ModelBuilder est également souple, car elle peut porter sur un modèle entier ou sur un outil ou un processus individuel.
Itérateur |
Description |
---|---|
Exécute une itération sur une valeur de début et une valeur de fin en fonction d'une valeur donnée. Il se comporte comme tout itérateur Pour de n'importe quel langage de programmation/script. Il exécute l'itération sur un nombre défini d'éléments. |
|
Fonctionne exactement comme l'instruction "while" dans tout script/langage de programmation, et qui s'exécute tant qu'une condition est soit true, soit false pour l'entrée ou le jeu d'entrées. |
|
Itère des entités dans une classe d'entités. |
|
Itère les lignes d'une table. |
|
Itère chaque valeur d'un champ. |
|
Itère une liste de valeurs. |
|
Itère des jeux de données dans un espace de travail ou un jeu de données d'entité. |
|
Itère des classes d'entités dans un espace de travail ou un jeu de données d'entité. |
|
Itère des fichiers dans un dossier. |
|
Itère des rasters dans un espace de travail ou un catalogue d'images. |
|
Itère des tables dans un espace de travail. |
|
Itère les espaces de travail d'un dossier. |
Fonctionnement d'un itérateur
Chaque itérateur est doté d'un ensemble de paramètres qui peuvent varier d'un itérateur à un autre, mais la structure globale de tous les outils d'itération est très similaire. Ci-dessous figure une explication d'un itérateur courant, à savoir Itérer les classes d'entité.
L'itérateur Itérer les classes d'entité nécessite un espace de travail en entrée dans lequel toutes les classes d'entités à itérer sont stockées. Deux paramètres supplémentaires, Caractère générique et Type d'entité, permettent de restreindre les classes d'entités devant être itérées dans l'espace de travail :
- Le paramètre Caractère générique limite les classes d'entités en fonction de leur nom.
- Le paramètre Type d'entité limite les classes d'entités en fonction de leur type : annotation, arc, dimension, tronçon, jonction, étiquette, ligne, nœud, point, polygone, région, itinéraire ou TIC.
Le paramètre Récursive permet de contrôler l'itération sur des classes d'entités dans des sous-dossiers de l'espace de travail.
Le paramètre Itérer les classes d'entité a deux variables en sortie : la classe d'entités en sortie et le nom de la classe d'entités. La classe d'entités en sortie peut être connectée à l'outil suivant pour le traitement, et la variable Nom peut être utilisée pour la substitution de variables en ligne. Par exemple, si l'outil Zone tampon a été ajouté au modèle, et si la variable Classe d'entités a été connectée à l'outil, chaque classe d'entités de l'espace de travail sera bufférisée.
Itérateur en entrée et en sortie
Vous trouverez ci-dessous une liste d'itérateurs et leurs entrées et leurs sorties associées. Plusieurs itérateurs ont une Valeur ou un Nom comme deuxième sortie, utilisable pour la substitution de variable en ligne.
Itérateur |
Entrée |
Sortie 1 |
Sortie 2 |
---|---|---|---|
Valeurs |
Valeur |
- |
|
Valeurs |
Valeur booléenne - Vrai ou Faux |
- |
|
Entités |
Entité |
Valeur |
|
Table |
Enregistrement |
Valeur |
|
Table |
Valeur du champ |
- |
|
Valeurs |
Valeur |
- |
|
espace de travail ou jeu de données d'entité |
Jeu de données |
Nom |
|
espace de travail ou jeu de données d'entité |
Classe d'entités |
Nom |
|
Dossier |
Fichier |
Nom |
|
Espace de travail ou catalogue d’images |
Jeu de données raster |
Nom |
|
Espace de travail |
Table |
Nom |
|
Dossier |
Espace de travail |
Nom |
- Un seul itérateur peut être utilisé par modèle. Les options d'ajout d'un autre itérateur sont désactivées si un itérateur existe dans le modèle.
- Si un itérateur est ajouté à un modèle, tous les outils du modèle itèrent chaque valeur de l'itérateur. Si vous ne souhaitez pas exécuter chacun des outils que le modèle comprend pour chaque valeur itérée, créez un sous-modèle/modèle dans le modèle/modèle imbriqué qui contient uniquement l'itérateur et ajoutez-le comme outil de modèle dans le modèle principal.
- Si un modèle contenant un itérateur est exporté vers un script Python, le script ne comprend pas la logique d'itération. Vous pouvez ajouter la logique de liste de Python au script pour obtenir un effet similaire.
- L'utilisation d'un itérateur définit une valeur par défaut de -1 dans les options Itération des Propriétés du modèle, ce qui signifie que le modèle s'exécute un nombre illimité de fois ou correspond au nombre d'entrées d'un itérateur (et non à un nombre prédéfini).
- La sortie d'un outil connecté à l'itérateur peut avoir (le cas échéant) un nom unique pour chaque itération afin d'éviter tout risque d'écrasement
- en faisant appel à la variable système %n%, par exemple, C:\Scratch\scratch.gdb\output_%n%.
- en faisant appel à la sortie Nom ou Valeur de l'itérateur utilisée dans le modèle comme variable en ligne, par exemple, C:\Scratch\scratch.gdb\output_%Name%, C:\Scratch\scratch.gdb\output_%Value%.
- en faisant appel à une autre variable du modèle comme variable en ligne ; par exemple, avec une variable XYZ, le nom de la sortie peut être C:\Scratch\scratch.gdb\output_%Name%, C:\Scratch\scratch.gdb\output_%Value%. Cette variable ne doit pas contenir de valeur constante, mais une valeur qui change à chaque itération, pour éviter que le fichier ne soit écrasé à chaque itération.
- Les sorties de l'outil avec l'option Ajouter à la carte activée sont ajoutées à l'affichage dans ArcMap à l'aide du nom de variable. Si vous souhaitez ajouter à la carte la sortie de chaque itération dans ArcMap avec le nom de l'outil en sortie plutôt que celui de la variable :
- Connectez la sortie à afficher à l'outil Recueillir des valeurs.
- Cliquez avec le bouton droit sur la sortie de Recueillir des valeurs et activez l'option Ajouter à la carte.
- Si le modèle est destiné à être exécuté à partir de la boîte de dialogue d'outil du modèle, définissez Recueillir des valeurs comme paramètre de modèle, car seuls les paramètres de modèle en sortie sont ajoutés à la carte.
Les itérateurs remplacent l'option des séries de la boîte de dialogue Propriétés du modèle qui était disponible dans les versions ArcGIS antérieures à la version 10.