Structure du géotraitement
La structure de géotraitement est l'ensemble des fenêtres et boîtes de dialogue qui permettent de gérer et d'exécuter des outils. Ce document se concentre sur les concepts sous-jacents de cette structure, plutôt que sur sa mécanique.
L'idée principale du géotraitement est de vous permettre de transformer rapidement et facilement vos idées en nouveau logiciel pouvant être exécuté, géré, modifié, documenté, et partagé avec la communauté d'utilisateurs d'ArcGIS. "Logiciel", dans ce cas, signifie "quelque chose qui demande à ArcGIS de faire ce que vous voulez". Par exemple, vous avez créé un nouveau logiciel de modèle de géotraitement grâce à un langage de programmation visuel facile d'utilisation, ModelBuilder.
Nous allons nous attacher à vous montrer que le géotraitement est une méthode de création de logiciels utiles. Nous espérons ainsi améliorer votre compréhension de la raison d'être et de l'utilité du géotraitement.
Pour créer un nouveau logiciel, quel qu'en soit le type, deux éléments sont indispensables :
- Un langage formel qui opère sur les données capturées dans le système.
- Une structure pour la création, la gestion et l'exécution du logiciel, basée sur ce langage. Elle comprend des éléments tels que les éditeurs, les navigateurs et les outils de documentation.
Le langage de géotraitement est sa collection d'outils. La structure de géotraitement est un petit ensemble d'interfaces utilisateur intégrées, destinées à organiser et gérer des outils existants et à créer des outils. Les composants de base de la structure, présentés dans la rubrique Présentation rapide du géotraitement, sont les suivants :
- la fenêtre Rechercher, qui permet de rechercher et d'exécuter des outils et la fenêtre Catalogue, qui permet d'accéder aux boîtes à outils pour gérer et exécuter les outils correspondants ;
- la boîte de dialogue de l'outil, qui permet de renseigner les paramètres de l'outil et de l'exécuter de manière interactive ;
- la fenêtre Python, qui permet d'exécuter un outil en tapant ses paramètres ;
- la fenêtre ModelBuilder, qui permet d'enchaîner des séquences d'outils ;
- des méthodes permettant de créer des scripts et de les ajouter aux boîtes à outils.
Modèles de géotraitement et ModelBuilder
La boîte de dialogue de l'outil vous permet d'exécuter un seul outil. Cela revient à exécuter une seule instruction dans un langage de programmation. Même si l'exécution d'un seul outil est pratique, le système ne serait pas très utile si vous ne pouviez pas enchaîner plusieurs outils, utiliser le résultat de l'un dans un autre, tout comme le fait un langage de programmation.
Dans la structure de géotraitement, la fenêtre ModelBuilder permet de transformer rapidement et facilement les idées en logiciel, en enchaînant des éléments du langage de géotraitement (les outils) dans une séquence. Il est important de se rendre compte que les modèles sont des logiciels, puisqu'ils demandent à l'ordinateur de faire quelque chose. Le langage de programmation est visuel (ce que vous voyez dans ModelBuilder) plutôt que textuel, comme un langage de programmation traditionnel.
Il est important de noter que les modèles sont des outils. Ils se comportent exactement comme tous les autres outils du système. Vous pouvez les exécuter dans la fenêtre de la boîte de dialogue ou à partir de la fenêtre Python. Les modèles étant des outils, vous pouvez les incorporer à des modèles. En fait, plusieurs des outils système fournis avec ArcGIS sont des modèles.
Les modèles peuvent être aussi complexes que vous le souhaitez. Vous pouvez utiliser autant d'outils système ou personnalisés que vous le voulez dans un modèle, y compris d'autres modèles que vous avez écrits (puisque les modèles sont simplement des outils). Vous pouvez également utiliser des boucles et des conditions pour contrôler le flux logique d'un modèle.
Les modèles peuvent être extrêmement simples tout en étant productifs. Vous pouvez créer un modèle qui contient un seul outil, mais intègre certains de ses paramètres. Par exemple, l'outil Zone tampon utilise six paramètres, mais pour votre ensemble de tâches actuel, vous savez que trois de ces paramètres seront toujours les mêmes. Plutôt que de renseigner ces paramètres à chaque exécution de l'outil Zone tampon, vous pouvez créer un modèle rapidement et définir ces trois paramètres, l'enregistrer en tant qu'outil MyBuffer et utiliser sa boîte de dialogue plutôt que celle de Zone Tampon. Il se peut que vous n'utilisiez MaZoneTampon que quelques fois avant de le supprimer, mais vous n'aurez rien perdu, car sa création aura été rapide et sa productivité élevée.
Script
Vous pouvez aussi utiliser un langage de script pour créer le logiciel. Un programme qui utilise un langage de script s'appelle un script. Dans le monde de la programmation de logiciels, les langages sont répartis en deux grandes catégories : les langages système et les langages de script. Les langages système sont par exemple C++ et .NET, qui servent à créer des applications intégralement, à l'aide de primitives de bas niveau et des ressources brutes de l'ordinateur. Les langages de script, tels que Python et Perl, servent à coller ensemble des applications, à l'aide de fonctions intégrées de haut niveau de l'ordinateur et en masquant les rouages avec lesquels un programmeur de langage de système doit jongler. Comparés aux langages système, les langages de script sont plus faciles à apprendre et à utiliser. Il suffit de comprendre les bases de la programmation pour être productif.
Dans la structure de géotraitement, les scripts sont analogues aux modèles dans la mesure où ils peuvent servir à créer des outils. Les modèles sont créés à partir d'un langage de programmation visuel (ModelBuilder) et les scripts à partir d'un langage textuel et d'éditeurs de texte.
Tout comme les modèles, les scripts sont des outils. A l'aide d'un assistant détaillé, vous pouvez introduire un script dans une boîte à outils personnalisée et l'utiliser simplement comme un autre outil dans un modèle ou dans un autre script. Certains des outils système sont des scripts. Techniquement, vous pouvez écrire un script et ne pas l'introduire dans une boîte à outils, auquel cas ce n'est pas un outil, mais juste un script autonome sur le disque.
Vous pouvez avoir plusieurs raisons de faire appel à un script :
- A un moment donné, vous pouvez avoir besoin d'une logique de programmation plus évoluée, comme l'exécution conditionnelle et la gestion avancée des erreurs, de structures de données plus sophistiquées (dictionnaires et listes), ou de plus de fonctionnalités, comme des fonctions de chaîne, de calcul et de manipulation de fichier. De nombreux langages de script ont été étoffés avec des bibliothèques tierces concernant le calcul et les statistiques avancés, l'automatisation du Web, des requêtes de base de données et des utilitaires système avancés.
- Certaines fonctions de géotraitement de bas niveau sont disponibles uniquement dans les scripts. Par exemple, les curseurs vous permettent de faire une boucle dans les enregistrements d'une table, de lire ou d'écrire des lignes et d'insérer de nouvelles lignes. Certaines fonctions permettent d'accéder aux propriétés des données ArcGIS, comme l'étendue d'une classe d'entités ou les diverses propriétés des champs de table.
- Les scripts sont parfaits pour encapsuler d'autres logiciels. C'est ce que l'on appelle le collage d'applications. Par exemple, vous avez un modèle qui produit en sortie un fichier de texte simple de propriétaires de parcelles et d'adresses concernées par un changement de l'ordonnance de la répartition en zones, et vous voulez lancer un autre programme qui lise ce fichier texte et crée des lettres de notification officielles pour les propriétaires des parcelles affectées. Vous pouvez faire appel à un script pour encapsuler ce programme de création de lettres, introduire ce script dans une boîte à outils et l'utiliser directement dans le modèle.
- Les scripts peuvent être exécutés à l'extérieur d'ArcGIS. Autrement dit, vous pouvez exécuter directement le script à partir de l'invite du système d'exploitation. (Le site-package ArcPy doit tout de même être installé sur la machine, puisque vous avez besoin d'accéder aux outils de géotraitement.)
Une structure de création et de gestion de logiciel
La structure de géotraitement a été conçue pour vous permettre de matérialiser rapidement et facilement vos idées en un nouveau logiciel qui peut être géré par le système et partagé entre plusieurs utilisateurs.
Le géotraitement est un langage composé d'opérateurs, ou outils, qui opèrent sur les données au sein d'ArcGIS (tables, classes d'entités, rasters, TIN, et ainsi de suite) et effectuent des tâches qui sont nécessaires pour la manipulation et l'analyse des informations géographiques à travers une grande diversité de disciplines.
Vous pouvez créer rapidement et facilement un logiciel sous la forme de modèles et de scripts. Ces nouveaux outils effectuent des tâches qui ne font pas partie du kit ArcGIS standard. Par exemple, aucun menu, bouton ou objet de programmation dans ArcGIS n'exécute le modèle simple Projeter et Découper illustré dans la rubrique Qu'est-ce que le géotraitement ?.
Les outils sont gérés par la structure de géotraitement, ce qui signifie que vous n'avez pas besoin de le faire. Ce détail, qui n'est pas évident à première vue, a son importance.
- Tous les outils, qu'il s'agisse d'outils système ou d'outils personnalisés (écrits par l'utilisateur), sont accessibles via leur boîte à outils. Imaginez une situation différente, dans laquelle l'utilisateur aurait accès aux modèles, aux scripts et aux outils personnalisés et système grâce à différentes interfaces et méthodes. Ce serait extrêmement difficile à utiliser et à gérer. En géotraitement, tous les éléments sont créés et gérés de la même façon, qu'il s'agisse d'outils de composant, d'outils de modèle ou d'outils de script.
- Les outils sont tous documentés de la même manière. Une fois l'outil créé, vous pouvez créer sa documentation dans la fenêtre Catalogue afin qu'il soit répertorié et que le système puisse le rechercher. Cette méthode évite de laisser l'utilisateur gérer seul les normes de documentation et la gestion de la documentation.
- Les outils ont tous la même interface utilisateur : la boîte de dialogue. Elles sont créées automatiquement à partir des paramètres de l'outil. Vous n'avez aucune programmation d'interface utilisateur à faire. Cette méthode évite de laisser le créateur de l'outil gérer seul la conception et la programmation de l'interface utilisateur.
Les outils peuvent être partagés facilement. Une boîte à outils avec tous ses outils et jeux d'outils est contenue soit dans un fichier enregistré sur le disque avec une extension .tbx, soit dans une géodatabase. Quiconque a accès au fichier ou à la géodatabase peut en exécuter les outils.
Le point important est que vos outils font partie intégrante de la structure de géotraitement, où ils ont une documentation cohérente, une interface utilisateur, des méthodes d'accès et des méthodes du partage.
Géotraitement et ArcObjects
ArcObjects est la bibliothèque étendue d'objets de programmation de bas niveau livrée dans le kit de développement de logiciel (SDK) d'ArcGIS. Les développeurs utilisent ArcObjects pour créer des applications ou étendre les fonctionnalités existantes des applications ArcGIS. (Pour l'anecdote, la plupart des outils système et toute la structure de géotraitement ont été développés à l'aide d'ArcObjects.) Comme le géotraitement, le SDK d'ArcObjects permet de créer de nouveaux logiciels.
Le SDK d'ArcObjects et le géotraitement sont complémentaires. En règle générale, ArcObjects est utilisé pour enrichir ArcGIS grâce à un nouveau comportement, alors que le géotraitement est destiné à automatiser des tâches. ArcObjects permet, par exemple, d'ajouter des interfaces utilisateur, d'ajouter un comportement personnalisé aux classes d'entités ou de créer une représentation cartographique spéciale. Le géotraitement permet de créer un logiciel (modèles et scripts) qui automatise les tâches au sein d'une structure qui fonctionne correctement.
ArcObjects doit être utilisé avec un langage de programmation système, dans lequel le programmeur doit accéder aux primitives de bas niveau pour implémenter une logique et des algorithmes complexes. C'est pourquoi ArcObjects contient des milliers d'objets et de requêtes différentes, pour permettre au programmeur une maîtrise totale. ArcObjects étant utilisé avec un langage de programmation système, il nécessite une connaissance approfondie de la programmation, beaucoup plus que le géotraitement, avec ses modèles et scripts.
Inversement, le géotraitement est une fonction universelle qui peut être utilisée et déployée par tous les utilisateurs de SIG pour automatiser leur travail, créer des méthodes et des procédures réutilisables et précises, et modéliser d'importants processus géographiques.