Exemple d'utilisation d'un itérateur dans un modèle
Pour illustrer l'utilisation d'un itérateur, l'exemple de modèle ci-dessous fait appel à l'itérateur Itérer les classes d'entité pour projeter chaque classe d'entités dans un espace de travail, nommer de manière dynamique chaque sortie de l'outil Projeter en fonction du nom en entrée à l'aide de la substitution de variable en ligne et ajouter un nouveau champ à chaque classe d'entités.
- Un espace de travail en entrée est spécifié pour l'itérateur Itérer les classes d'entité en vue d'itérer chaque classe d'entités de cet espace de travail.
- Les classes d'entités à itérer sont restreintes au moyen d'un caractère générique et d'un type d'entités (seules les classes d'entités surfaciques avec un nom commençant par I seront itérées).
- L'itérateur Itérer les classes d'entité produit deux sorties : la classe d'entités qui a fait l'objet de l'itération et son nom. La variable de classe d'entités est connectée en tant qu'entrée à l'outil Projeter et la variable de nom de la classe d'entités permet d'effectuer la substitution de variable en ligne en vue d'attribuer de manière dynamique à chaque sortie de l'outil Projeter le même nom que la classe d'entités en entrée.
- Un nouveau champ est ajouté à chaque classe d'entités en connectant l'outil Ajouter un champ.
Remarque :
- 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.
Rubriques connexes
7/10/2012