L’itération, parfois appelée boucle ou traitement par lots, 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 traitement individuel.
Remarque :
- Un seul itérateur peut être utilisé par modèle. Le bouton permettant d'ajouter un autre itérateur est désactivé 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 autre modèle et ajoutez seulement l’itérateur et les traitements que vous souhaitez exécuter plusieurs fois, enregistrez-le et ajoutez-le en tant qu’outil de modèle dans le modèle principal. En savoir plus sur l’ajout d’un sous-modèle à un modèle.
- Pour donner un nom unique à la sortie d’un outil connecté à un itérateur, utilisez la substitution de variables en ligne.
ModelBuilder comporte plusieurs itérateurs que vous pouvez utiliser pour itérer des valeurs, jeux de données et espaces de travail différents.
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. | |
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 entités dans une classe d'entités. | |
Itère chaque valeur d'un champ. | |
Itère les champs d’une table. | |
Itère des fichiers dans un dossier. | |
Itère une liste de valeurs. | |
Itère les couches dans une carte. | |
Itère des rasters dans un espace de travail. | |
Itère les lignes d'une table. | |
Itère des tables dans un espace de travail. | |
Itère les espaces de travail d'un dossier. | |
Itère jusqu’à ce qu’une condition devienne vraie ou fausse. |
Ajouter et utiliser un itérateur
Pour ajouter un itérateur à votre modèle, cliquez sur ModelBuilder > Insert (Insérer) > Iterator (Itérateur) et choisissez un itérateur dans la liste. 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.
Double-cliquez sur l’élément d’itérateur à afficher et modifiez ses paramètres. Les itérateurs sont similaires, même si chacun peut avoir des paramètres qui diffèrent de ceux des autres itérateurs. Vous trouverez ci-dessous des explications concernant un itérateur courant, à savoir Iterate Feature Classes (Itérer les classes d’entité).
Elément | Description |
---|---|
Espace de travail | Espace de travail en entrée (par exemple, géodatabase) ou jeu de classes d’entités. |
Caractère générique | Combinaison de * et d’autres caractères pour limiter les résultats. Par exemple, A* signifie que seules les classes d’entités commençant par A sont incluses. Ce paramètre est facultatif. |
Type d'entités | Filtre de type d’entités qui aide à limiter les résultats. Les plus courants sont Point, Line et Polygon. Ce paramètre est facultatif. |
Récursif | Détermine si l’itérateur doit ouvrir les sous-dossiers de l’espace de travail. Ce paramètre est facultatif. |
Classe d’entités en sortie | Variable en sortie qui contient le chemin de la classe d’entités. Vous pouvez utiliser cette variable comme entrée de tous les outils de géotraitement acceptant des couches d’entités ou des classes d’entités. |
Nom | Variable en sortie qui contient le nom de la classe d’entités. Il s'agit d'une chaîne. |
L’itérateur Iterate Feature Classes (Itérer les classes d’entités) nécessite un Input Workspace (Espace de travail en entrée) (la variable nommée Workspace (Espace de travail) dans le graphique ci-dessus) dans lequel toutes les classes d’entités à itérer sont stockées. Trois paramètres supplémentaires, Wildcard (Caractère générique), Feature Type (Type d’entité) et Recursive (Récursif), permettent de restreindre les classes d’entités devant être itérées dans l’espace de travail et de contrôler l’itération dans les sous-dossiers de l’espace de travail.
Le paramètre Iterate Feature Classes (Itérer les classes d’entités) a deux variables en sortie : une classe d’entités et le nom de la classe d’entités. La variable de classe d’entités en sortie peut être connectée à l’outil suivant pour le traitement, et la variable Name (Nom) peut être utilisée pour la substitution de variables en ligne.
Exemple
L’exemple ci-après utilise l’itérateur Iterate Feature Classes (Itérer les classes d’entités) pour projeter toutes les classes d’entités d’un espace de travail vers une nouvelle projection cartographique. Chaque nouvelle classe d’entités créée par l’outil Projeter est nommée en fonction de la valeur Name (Nom) en entrée grâce à la substitution de variables en ligne. En outre, un nouveau champ est ajouté à chaque classe d’entités en sortie. Après avoir ajouté l’itérateur Iterate Feature Classes (Itérer les classes d’entités) dans ModelBuilder, suivez les étapes ci-après :
- Précisez un espace de travail, tel qu'une géodatabase, en vue d'itérer chaque classe d'entités de cet espace de travail.
- Précisez un caractère générique et un type d’entités (dans l’exemple, seules les classes d’entités surfaciques avec un nom commençant par la lettre I seront incluses).
- L’itérateur Iterate Feature Classes (Itérer les classes d’entités) produit deux sorties : la classe d’entités (Output Feature Class (Classe d’entités en sortie)) et le nom de la classe d’entités (Name (Nom)). Connectez la variable Output Feature Class (Classe d’entités en sortie) à l’outil Projeter et utilisez la variable Name (Nom) et la substitution de variables en ligne en vue d’attribuer à chaque sortie de l’outil Projeter le même nom que celui de la classe d’entités en entrée. La sortie de l’outil Projeter est écrite dans une autre géodatabase.
- Connectez la sortie de l’outil Projeter à l’outil Ajouter un champ pour ajouter un nouveau champ.
Vous avez un commentaire à formuler concernant cette rubrique ?