Présentation rapide de l'utilisation d'itérateurs pour l'itération (boucle)
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 classes d'entités. |
|
Itère des classes d'entités dans un espace de travail ou un jeu de classes d'entités. |
|
Itère des fichiers dans un dossier. |
|
Itère des rasters dans un espace de travail ou un catalogue raster. |
|
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 classes d'entités |
Jeu de données |
Nom |
|
espace de travail ou jeu de classes d'entités |
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 |
Name |
|
Dossier |
Espace de travail |
Name |
- 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 d'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 porter (le cas échéant) un nom unique pour chaque itération, pour éviter tout risque d'écrasement lors de
- l'utilisation de la variable système %n%, par exemple, C:\Sctatch\scratch.gdb\output_%n%.
- l'utilisation de la sortie Name ou Value de l'itérateur utilisée dans le modèle comme variable en ligne, par exemple, C:\Sctatch\scratch.gdb\output_%Name%, C:\Sctatch\scratch.gdb\output_%Value%.
- l'utilisation d'une autre variable dans le modèle en tant que variable en ligne. Par exemple, si une variable XYZ est présente, le nom de la sortie peut être C:\Scratch\scratch.gdb\output_%XYZ%. (Cette variable ne doit pas utiliser une valeur constante.)
- Les sorties de l'outil dont l'option Ajouter à l'affichage est activée sont ajoutées à l'affichage dans ArcMap à l'aide du nom de la variable. Si vous souhaitez ajouter les sorties de toutes les itérations à afficher dans ArcMap avec le nom de la sortie unique au lieu du nom de la variable, connectez la sortie à afficher à l'outil Recueillir les valeurs, puis cliquez avec le bouton droit sur la sortie de Recueillir les valeurs pour activer l'option Ajouter à la carte. Si vous lancez l'exécution d'un modèle à partir de la boîte de dialogue de l'outil, définissez la sortie de Recueillir les valeurs comme étant un paramètre de modèle, car seuls les paramètres de modèle de 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.