Le blog francophone consacré
aux technologies Esri

Géotraitements - N°4 : Utiliser des séries de valeurs

Nous continuons notre série d'articles sur les géotraitements. Nous avions vu, lors de l'épisode précédent, comment itérer une partie d'un modèle de géotraitement en utilisant des listes. Aujourd'hui, nous allons voir comment itérer l'ensemble d'un modèle sur plusieurs jeux de données en utilisant des séries.

Qu'est ce qu'une série ?

Dans un modèle de géotraitement, un paramètre peut être constitué d'une seule valeur, d'une liste de valeurs ou d'une série de valeurs. Lorsqu'un paramètre contient une série de valeurs, le modèle de géotraitement est exécuté pour chaque valeur de la série. A la différence des listes, les séries permettent d'exécuter la totalité du modèle pour chaque valeur de la série. Pour les listes, seuls les outils situés en aval du paramètre sont exécutés pour chaque valeur de la liste. Ainsi, une seule série peut être utilisée pour définir les itérations d'un modèle mais un modèle peut contenir plusieurs séries.


Dans ce modèle, les outils1, 2 et 3 seront exécutés autant de fois qu'il y aura de valeurs dans le "Paramètre Série".


Définir un paramètre avec une série de valeurs

Pour ajouter une série de valeurs à un paramètre, il suffit de procéder comme ceci :

1) Afficher les propriétés de ce paramètre en cliquant sur la commande "Propriétés" située dans le menu contextuel du paramètre

2) Sélectionner l'onglet Générale puis cocher l'option "Série de valeurs"


3) Cliquer sur OK pour valider vos modifications.


4) Pour indiquer quelle série utiliser pour les itérations de votre modèle, ouvrir les propriétés du modèle (dans le menu Fichier > Propriétés du modèle).

5) Se placer sur l'onglet Itération puis sélection l'option adéquate comme indiqué ci-dessous.


6) Cliquer sur le bouton OK pour valider vos modifications.


Vous pouvez maintenant définir la série de valeurs à utiliser pour les itérations du modèle. Pour définir les noms des classes d'entités en sortie, vous pouvez un mécanisme de numérotation pour identifier les itérations issues des listes ou des séries. Pour cela vous utiliserez, dans la dénomination des classes d'entités en sortie, %i% pour les listes et %n% pour les séries.



Evolution de notre modèle

Nous pouvons donc maintenant modifier notre modèle pour faire en sorte de découper plusieurs sources de données selon plusieurs couches de découpage, en une seule exécution du modèle. Par exemple, on pourra découper toutes les données cadastrales (les parcelles, les bâtiments et les sections) selon deux couches de découpage (le secteur Est et le secteur Ouest).



Le résultat du géotraitement sera alors constitué de 6 (2x3) couches découpées. Les sources de données résultantes auront le suffixe 0 pour le secteur Est et 1 pour le secteur Ouest.


Notre modèle ressemble désormais à ceci :



A bientôt pour la suite …

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

1 comments :

Unknown a dit…

Bonjour,

Tout d'abord, je tiens à vous remercier pour ce blog très riche en renseignements.
Je me permets d'intervenir sur ce sujet assez ancien car en effet, je me suis inspirée de cette article pour faire un modèle builder en itération. Cependant, j'ai une petite remarque: en suivant scrupuleusement vos conseils, je me suis aperçue que la série de valeurs ne correspondait pas à mes besoins. Les résultats: en entrée, une série de valeurs en effet mais en sortie, une seule valeur contrairement à vos images. Il s'agissait en faite de mettre plutôt une liste de valeurs (qui permet d'avoir plusieurs sorties) et c'est grâce à ma curiosité que j'ai pu m'en sortir.
Désormais, j'ai une question à vous posez: dans votre exemple, vous incrémentez un suffixe automatique (un nombre) à chaque sortie. Mon besoin est quant à moi, des sorties portant le même nom que mes entrées avec un suffixe X soit sortie = "entrée_X". Comment faut il faire pour incrémenter automatiquement? Les "%n%" de votre exemple est il approprié uniquement au suffixe chiffré?
Merci d'avance