Débuter avec Python sur ArcGIS est plus facile qu’il n’y paraît. Il n’est pas nécessaire de maîtriser Python pour l’utiliser de manière basique dans notre travail avec ArcGIS.
Tout d’abord il faut savoir qu’il existe plusieurs options pour exécuter nos processus avec un code Python. Nous allons donc commencer par voir les différentes options et comment les choisir en fonction de nos besoins, que ce soit simplement tester une ligne de code ou un morceau de script ou bien l’exécution complète d’un script.
La différence entre exécuter une ligne de code ou exécuter un script, en termes de programmation, c’est que pour la première on fera appel à un INTERPRÉTEUR et que pour le deuxième on fera appel à un COMPILATEUR.
Un interpréteur va exécuter le code instruction par instruction, tandis que le compilateur traduit le code complet du script dans le code machine du système pour créer un fichier exécutable. On pourra exécuter un programme compilé directement sur la machine, tandis que le code non compilé il faudra l’exécuter à l’intérieur d’une autre application possédant l’interpréteur.
Pour voir comment fonctionnent les différentes options nous allons prendre un exemple simple: nous avons une couche de polygones avec les communes du Finistère et nous voulons obtenir une couche de polylignes. Les outils de géotraitement d’ArcGis ont une fonction, FeatureToLine_management, qui fait cette opération.
1- Pyton interprété
Il y a trois moyens d’utiliser Python à travers un interpréteur:
- A partir de Python lui-même, en mode ligne de commande
- A partir de la console Python d’ArcGis
- A partir de la console d’un autre Environnement de Développement Intégré (IDE) comme PyScripter, PythonWin, …
1-A: Ligne de commande Python
Sans ouvrir ArcGis ni un autre logiciel, il suffit d’ouvrir une fenêtre de commande (Dans le lancement de programmes Windows, exécuter -> cmd)
Vous lancez Python en tapant simplement
python
les trois chevrons (>>>) indiquent que vous pouvez entrer votre commande Python.
La première commande sert à charger dans Python les fonctions d’ArcGis. Tapez
import arcpy
C’est tout ce qu’il faut pour pouvoir exécuter notre commande qui transformera nos polygones en polylignes. On rentre alors la commande :
arcpy.FeatureToLine_management (« C:\ArcGis\com29.shp », « C:\ArcGis\com29_lignes.shp »)
La ligne <Result… nous indique que l’opération a été effectuée avec succès et que la nouvelle couche a été créée.
Si on ouvre ArcMap et on affiche cette couche résultante on a:
Remarquez que nous venons de faire un géotraitement d’ArcGis sans avoir ouvert ArcGis et en 5 à 10 fois moins de temps que celui qu’ArcMap met à démarrer…
Bien sûr, il faut connaître la syntaxe et les endroits où sont les fichiers. Bien sûr c’est austère. Mais ce n’est pas quand même si hermétique que ce que vous pensiez.
Passons maintenant un cran au dessus.
1-B: Exécuter la ligne de commande dans la console Python d’ArcMap
On ouvre la console Python en cliquant,dans la fenêtre ArcMap, sur le bouton correspondant
On rentre la ligne de commande pour importer la bibliothèque ArcGis (import arcpy) et on commence à rentrer la deuxième ligne de commande
arcpy.FeatureToLine_management (« C:\ArcGis\com29.shp », « C:\ArcGis\com29_lignes.shp »)
Ici, contrairement à la fenêtre de commande précédente, nous avons une saisie prédictive disponible. Quand vous commencez à taper une fonction, la liste des fonctions s’affiche et vous pouvez simplement cliquer sur celle que vous cherchez:
Quand on commence à rentrer les paramètres de la fonction, une aide descriptive des paramètres s’affiche automatiquement dans la fenêtre de droite:
Si vous avez chargé les couches correspondant aux paramètres dans ArcMap, vous aurez la liste déroulante des couches vous évitant de taper le nom entier.
Quand on exécute la commande, en plus du message <Result… vous observerez qu’un détail des processus est affiché dans la fenêtre de droite.
1-C: A partir de la console d’un autre IDE
Les différents environnements intégrés de développement sont, en principe, destinés à faire des exécutables. Mais, bien sûr, ils possèdent des consoles d’interprétation équivalentes à la console Python d’ArcMap.
Par exemple, PyScripter, vous permet de rentrer et exécuter les deux lignes de commande. La différence se situe sur l’aide à l’écriture des commandes:
En général vous aurez plus de fonctionnalités offertes par un IDE que par la console Python d’ArcMap. Mais si vous restez à l’utilisation de la ligne de commande les deux sont assez équivalents. La différence essentielle est que l’IDE vous permet d’écrire, tester et debugger des scripts Python complets.
2- Phyton compilé et exécuté
Dans les trois exemples précédents, nous entrons une à une les lignes de commande. Chaque commande est interprétée et exécutée.
Mais nous pouvons créer un fichier, contenant toutes les commandes à exécuter, puis nous pouvons demander à une application de le compiler et de l’exécuter. C’est ce que nous appellerons un script.
Nous allons donc créer un fichier texte, avec une extension .py contenant nos deux lignes de commande:
Nous appellerons ce fichier exemple.py
Nous avons quatre possibilités pour exécuter un script Python:
- l’exécuter avec Python
- l’exécuter avec un IDE
- l’exécuter en tant qu’outil dans la toolbox d’ArcGis
- l’exécuter comme bouton de commande d’ArcMap
2-A : Compiler et exécuter avec Python
Si nous ouvrons une fenêtre de commande nous pouvons exécuter le fichier exemple.py directement dans Python, en tapant simplement
python.exe c:\ArcGis\exemple.py
Python compile et exécute les commandes. Aucun message n’est affiché sur le déroulement et la finalisation des fonctions, mais s’il y avait eu une erreur nous aurions eu l’affichage des messages d’erreur.
Cette option est idéale si vous souhaitez exécuter certaines tâches à partir du programmateur de tâches Windows.
2-B : Compiler et exécuter avec un IDE
Bien sûr que l’on peut exécuter un script à partir d’un environnement de développement intégré.
Normalement, on exécute un script Python à partir de l’IDE tant qu’on est en train de le développer. Ceci permet d’utiliser la console pour tester certaines fonctions, ainsi que d’utiliser l’exécution pas à pas pour le débogage, le suivi des valeurs des variables tout au long du processus, etc.
2-C : Créer un outil de la toolbox ArcGis
Une fois créé le script et validé avec votre IDE, vous disposez d’un fichier de script qui peut être stocké et exécuté en tant qu’outil de la Toolbox d’ArcGis.
Pour cela, cliquez-droit sur une de vos toolboxes personnelles, sélectionnez Ajouter -> Script
La fenêtre d’ajout de script s’ouvre:
Donnez un nom (sans espaces ou caractères spéciaux) et une étiquette (vous êtes libre du contenu).
Cliquez sur suivant pour pointer sur le fichier du script.
La troisième fenêtre permet de gérer les paramètres du script. Dans notre cas il n’y a pas de paramètres.
Votre script est maintenant disponibles comme outil dans votre boîte à outils et peu têtre exécuté de la même manière que tous les autres outils.
La fenêtre « Résultats » permet de vérifier la bonne exécution du script.
2-D : Créer un bouton ou une barre d’outils pour ArcMap avec un Addin Python
Nous ne suivrons pas l’exemple de création d’AddIn Python car c’est plus compliqué que les précédents exemples. Le but de créer un bouton est de pouvoir interagir avec le contenu d’ArcMap, avec d’autres scripts ou outils, de gérer des formulaires, etc.. Notre exemple est bien loin de ce que les boutons sont censés faire.
En tout cas, la démarche est la suivante :
Vous utiliserez l’assistant de création d’addins python (téléchargeable ici)
Une fois complétée la définition de l’addin, vous allez créer le fichier d’addin.
Dans le dossier de travail, exécutez le script makeaddin.py en double-cliquant sur ce script. Tous les fichiers et dossiers nécessaires au complément sont copiés dans un fichier de complément compressé dans le dossier de travail. Le nom du fichier est composé du nom du dossier de travail et d’une extension .esriaddin.
Il vous reste à installer l’addin:
Double-cliquez sur le nouveau fichier de complément pour lancer l’utilitaire d’installation des compléments ESRI ArcGIS. Lorsque cet utilitaire est appelé, il analyse le fichier config.xml du fichier de complément, les paramètres de projet saisis lors de la création du complément, et si le complément contient une signature numérique fiable, comme illustré ci-après.
Vous êtes maintenant prêt à utiliser la personnalisation dans l’application ArcGIS for Desktop pour laquelle elle a été conçue. Démarrez l’application bureautique (ArcMap). La barre d’outils ou le menu personnalisé est peut-être déjà visible et prêt à être testé. Dans le cas contraire, dans le menu Personnaliser, cliquez sur Gestionnaire de compléments. La boîte de dialogue Gestionnaire de compléments répertorie les compléments installés qui ciblent l’application en cours. Les informations relatives au complément, comme le nom, la description et l’image, saisies dans les paramètres de projet, doivent s’afficher.