Le blog francophone consacré
aux technologies Esri

Géotraitements - N°2 : Changement de types

Le modèle de géotraitement que nous avons commencé lors du précédent épisode, ajoute à la couche découpée un champ REFERENCE dont la valeur est calculée en fonction de la chaîne saisie par l'utilisateur. Cette référence est le nom du secteur utilisé pour effectuer le découpage.

L'idée est maintenant d'améliorer ceci en évitant à l'utilisateur de saisir le nom du secteur en allant de chercher directement à partir du nom de la source de données de la couche de découpage. Ainsi, si ma couche de découpage est stockée dans "c:\sig\secteur_nord.shp" le nom du secteur sera automatique fixée à "secteur_nord" ce qui rendra mon modèle encore plus générique.

Changer le type d'un paramètre

Le problème qui se pose alors est de pouvoir récupérer le paramètre en entrée qui est de type "Feature Class" et de le convertir en une valeur de type "Expression" (paramètre entrant de l'outil "Calculer un champ".


Pour résoudre ce genre de problème, le plus simple est d'écrire un script Python (VBScript, Javascript ou encore Perl) qui permettra de réaliser la transformation puis d'intégrer ce script en tant qu'outil dans notre modèle.

Dans notre cas le script Python pourra s'écrire de la manière suivante :


Vous remarquerez l'utilisation des méthodes GetParameterAsText() et SetParameterAsText() qui permettent de manipuler les différents types de variables comme des chaînes de caractères ce qui simplifie largement les choses.

Le script est disponible ici.


Ajouter un script Python dans un modèle de géotraitement

Pour ajouter un script dans un modèle, il faut suivre les étapes suivantes :

1) Ajouter le script dans une boîte à outils



2) Spécifier le nom (nom interne) et l'étiquette (nom externe) de l'outil


3) Définir le chemin d'accès au script


4) Définir le nom "Classe d'entités" et le type du paramètre en entrée "Feature Class"


5) Définir le nom "Expression" et le type du paramètre en sortie "String". Vous préciserez également qu'il est de type "Derived" c'est à dire non définie par l'utilisateur ainsi qu'une valeur par défaut (ici "valeur") pour pouvoir valider le modèle durant la phase de conception.


6) Cliquer enfin sur le bouton "Terminer".


L'outil est maintenant créé.


Après en avoir fait éventuellement une sauvegarde, éditez maintenant votre modèle puis supprimez le paramètre "Secteur". Faites ensuite glisser dans votre modèle en le nouvel outil en mettant en relation avec le paramètre "Couche de découpage" d'une part et le paramètre "Expression" de l'outil "Calculer un champ".

Votre modèle doit désormais ressembler à ceci :


Lors de son exécution, seulement deux informations sont maintenant demandées et le nom du secteur est automatiquement calculé.


A bientôt pour la suite …

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

1 comments :

Anonyme a dit…

Merci :)