Le principe de Model Builder est de créer des outils de geotraitement, qui sont par définition des outils « batch ». Ceci veut dire qu’il n’y pas d’interaction entre l’utilisateur et le traitement, une fois celui-ci lancé. Vous définissez les données en entrée et vous récupérez les données en sortie.
Il y a des situations où cet aspect est contraignant. Imaginez que vous devez exécuter un modèle en utilisant seulement une partie de l’ensemble des données et si vous utilisez l’outil Clip vous dupliquez les données, ou bien vous voulez sélectionner une zone sur la carte et appliquer votre modèle de géotraitement seulement aux entités complètement contenues dans cette zone. Une autre possibilité, celle que nous allons suivre dans cet exemple, vous utilisez un modèle avec un outil qui nécessite une entrée de point, comme « Champ de vision », et vous voulez entrer manuellement le, ou les, emplacements de l’observateur.
Eh bien, c’est possible de faire ceci avec Model Builder en utilisant un JEU D’ENTITES.
Vous n’avez jamais entendu parler? pas étonnant. Il est vraiment caché!
Le Jeu d’entités va remplacer dans votre modèle une couche en entrée du modèle. En indiquant que ce Jeu d’entités est un paramètre du modèle, au moment du lancement, la fenêtre d’exécution va s’ouvrir et vous aurez la possibilité de saisir manuellement, soit dans la table, soit sur la carte, les éléments en entrée du modèle.
Dans l’exemple que nous allons prendre, vous cliquerez sur les points d’observation que vous souhaitez traiter avec l’outil « Champ de vision », puis vous cliquerez sur le bouton OK et le modèle s’exécutera sur les points rentrés.
Mise en place d’un modèle classique
Nous allons construire un modèle classique avec Model Builder pour calculer le « Champ de vision ». Nous avons besoin d’un MNT et d’une couche de points en entrée. Nous obtiendrons en sortie un raster avec des pixels 1, pour les pixels visibles à partir du, ou des, points d’observation et des pixels 0, pour les pixels non visibles.
L’outil se trouve dans la boîte à outil Spatial Analystr -> Surface -> Champ de vision
On ajoute le raster en entrée :
Là où on ne fait pas dans le classique
Maintenant on va faire quelque chose d’un peu bizarre. On va ajouter une couche quelconque de type point, puis on va lui appliquer une symbologie quelconque et on va la sauver en fichier de couche (layer). Une fois ceci fait, on supprime la couche dans ArcMap.
La seule chose qu’importe est que la couche corresponde au bon type de données (point, ligne, polygone) pour l’outil qu’on utilise. Accessoirement, la symbologie est utilisée au moment de la saisie des points, mais tout le reste (système de coordonnées, etc) n’est pas pris en compte.
Nous faisons cette opération et créons un fichier de couche « observateurs.lyr »
Où l’on finit le modèle
Pour l’instant, dans notre modèle, nous n’avons toujours pas de couche de points en entrée de l’outil « Champ de vision ». Nous allons l’ajouter maintenant.
Nous n’allons pas le faire comme on le ferait avec une couche de points, en cliquant et en la déplaçant dans le modèle. Nous allons créer une variable : cliquez avec le bouton droit n’import’où dans le modèle pour ouvrir le menu contextuel.
Sélectionnez « Créer une variable »
Cherchez et sélectionnez « Jeu d’entités » (Je vous avez bien dit que c’était bien caché!). Il y a pas mal de lignes Jeu … Faites bien attention à choisir la bonne.
Connectez le Jeu d’entités à l’outil.
Vous observerez que le modèle n’est pas prêt à être exécuté. Pour cela, il manque la définition de la symbologie du Jeu d’entités. On va lui attribuer la symbologie du fichier layer créé un peu plus haut.
Cliquez droit sur le Jeu d’entités et sélectionnez Propriétés. Ouvrez l’onglet Type de données et pointez sur le fichier de couche.
Le modèle est maintenant prêt à tourner. Ne vous inquiétez pas de la sortie non définie, c’est une sortie optionnelle de l’outil que nous n’utiliserons pas dans cet exemple.
Dernière étape, définir les paramètres du modèle. Cliquez droit sur les ovales bleus et sélectionnez « Paramètre du modèle ».
Enregistrez votre modèle dans une boîte à outils et fermez-le.
Précision : pour que l’interactivité fonctionne, le modèle ne doit pas être en édition. Il n’est interactif qu’au moment de l’exécution à partir de la Toolbox.
Enfin, on exécute le modèle
Exécutez le modèle à partir de la toolbox.
La fenêtre de paramétrage s’ouvre:
Sur cette fenêtre vous avez un champ d’un nouveau type. Il correspond au modèle de saisie de données, comme dans la fenêtre « Editeur ». En cliquant sur le modèle affiché, le curseur devient un curseur de saisie. En cliquant sur la carte d’ArcMap vous saisissez les points qui seront pris en compte par le modèle.
Une fois terminée la saisie, vous cliquez sur OK pour exécuter le modèle. A la fin du processus, vous obtenez la carte de champ visuel des points saisis.
N’hésitez pas à laisser vos questions!
S’il vous plais comment ajouter un texte d’aide dans l’interface d’exécution du model builder ( comme dans votre exemple au dessous du texte « champdevision » à droite de la fenêtre d’exécution)
merci infiniment.
Dans la fenêtre d’arctoolbox, si vous cliquez-droit pour ouvrir le menu contextuel d’un de vos modèles, vous verrez une option Item Description (désolé je travaille avec la version anglais d’ArcGis. C’est juste en-dessous d’Aide). Cliquez sur cette option et vous verrez une fenêtre avec le fichier XML de métadonnées de l’item.
Cliquez en haut sur Editer (ou Modifier) et vous pourrez remplir les différents champs.
Ce qui apparaît à droite dans la fenêtre d’exécution du modèle c’est le contenu du champ RESUME des métadonnées (pas celui de DESCRIPTION)
Pour chaque paramètre du modèle, vous pouvez entrer une explication qui sera affichée dans la fenêtre de droite quand vous cliquerez sur le paramètre dans la fenêtre d’exécution.
Super ce site et spécialement cet article très intéressant. Je suis entrain de créer un modèle aussi, je vais m’en inspirer du coup.
Le fait de rajouter un jeu d’entité (variable) est obligatoire pour pouvoir appliquer une symbologie par rapport à un .lyr selon toi?
Je cherche après une « union » de plusieurs de plusieurs couches entre elles et une simplification du résultat (sur laquelle je suis toujours entrain de travailler) faire attribuer une symbologie à ma couche finale sortie sur la base d’un .lyr existant. Faisable ?
Super en tout cas, je continue à lire les autres articles
Sylvain
Merci!
Pour appliquer une symbologie existante à une couche résultat d’un modèle:
– cliquer droit sur la couche dans Model Builder, puis Propriétés
Dans la fenêtre de propriétés, clique sur l’onglet Symbologie de la couche (??) Désolé mais je travaille avec la version anglaise et je ne suis jamais sûr de traduire exactement. L’onglet est « Layer Symbologie » en anglais.
On clique sur le bouton répertoire et on va pointer sur le fichier .lyr que l’on souhaite appliquer à la couche en sortie.
Bonne continuation.
Merci pour le retour rapide. C’est bien ce que je viens de voir en fait, plutôt simple si on veut se baser sur une symbologie existante. On peut faire une symbologie directement à partir du MB, où doit-on passer à chaque fois par un .lyr du coup?
Cela j’imagine implique d’avoir a minima les meme champs que la couche qui a servit à la symbologie dans la couche finale?
Pour faire une symbologie dans MB il faut faire du Python. Le plus simple c’est de passer pat un fichier lyr. Et oui, il faut que la couche corresponde aux critères du lyr.
Ok merci. La c’est en dehors de mes compétences, je vais rester sur mon .lyr.
Merci pour ton aide
j’aime bien le site , je suis en train d’essayer de réaliser un modèle, le but est d’afficher 2 couches raster côte à côte au lieu de les superposer, vu qu’ils ont des données en commun.
Merci à vous !