Vous vous décidez à vous lancer? C’est le moment de mettre tous les atouts de votre côté. C’est déjà assez compliqué d’apprendre un nouveau langage, il est inutile d’en rajouter des embûches! Voilà une check-list et quelques conseils pour démarrer en douceur.Tout d’abord, si vous êtes habitué à la programmation et que Python ou un autre langage ne vous fait ni chaud ni froid, jetez simplement un œil aux quelques pièges décrits ci-après et attaquez directement le tutoriel Python de votre choix.
Par contre si vous vous lancez à reculons, commencez par vous convaincre qu’il n’est pas nécessaire de dominer Python pour l’utiliser pour nos travaux avec ArcGis. Il est tout à fait possible d’enchaîner des traitements dans un script Python en ne connaissant que les bases du langage.
Se débarrasser de la syntaxe
Tout d’abord on va s’appuyer sur les fonctions de code prédictif et d’aide de la console Python ou d’un environnement de développement intégré. Ceci vous permet d’avoir les syntaxes exactes sans avoir à les connaître par cœur.
Si vous ne l’avez pas lu, jetez un coup d’œil à notre article ArcGis et Python :avant de faire vos premiers pas pour comprendre la différence entre les consoles python qui vous permettent d’écrire et exécuter une seule ligne de commande à la fois, et les éditeurs de scripts.
Dans ArcGis vous avez par défaut installée la Console Python. Par contre vous n’avez pas d’environnement de développement intégré par défaut. Vous devrez donc en installer un. Sur le support d’installation d’ArcGis vous avez PythonWin. Vous pouvez donc l’installer à partir du support ArrGis. Si vous n’avez pas le support sous la main, vous pouvez l’installer à partir de cette adresse.
L’utilisation d’un IDE vous fournit:
- Un éditeur avec complétion de code
- La mise en surbrillance de la syntaxe
- Des modèles de codes
- Un explorateur de codes pour les fonctions et les classes
- Des outils de test et de débogage des scripts
Ici nous allons installer un autre IDE, PyScripter. Vous pouvez le télécharger à cette adresse.
Pourquoi celui-ci? Parce qu’il faut en choisir un et qu’à l’usage ils se valent tous. Par contre il est plus facile de s’y retrouver dans le premier gros problème dans lequel vous pouvez tomber. Ne vous précipitez pas sur les pages de téléchargement! Lisez les lignes qui suivent…
32 bits ou 64 bits???
Si vous avez une machine 32 bits, pas de souci. Vous ne pouvez avoir que des versions logicielles 32 bits.
Par contre, si vous avez une machine 64 bits, selon les installations choisies vous pouvez vous retrouver avec des versions logicielles 32 ou 64 pour un même logiciel. Par exemple Python! Et quand vous allez sur la page de téléchargement de PyScripter ou PythonWin, la première chose que vous aurez à faire c’est de choisir entre la version 32 ou 64 bits. Comme c’est ArcGis qui installe Python, en général vous ne savez pas quelle version vous avez. Eh oui, car pour ArcGis Desktop la version normalement installée, même sur une machine 64 bits, c’est la version 32 bits de Python! Par contre, si vous installez le Geopresseur 64 bits, ArcGis vous installe la version Python 64 bits…
Donc, quelle version j’ai?
Ouvrez ArcMap, cliquez sur le bouton Console Python et rentrez les deux lignes suivantes:
import sys
print(sys.version)
Vous verrez alors non seulement si c’est 32 ou 64 bits, mais aussi le numéro de version (2.7.x). Vous en aurez besoin, si vous installez PyScrypter, au moment du lancement car si vous le lancez avec l’option par défaut, il utilisera la dernière version disponible de Python (3.4). Par contre pour ArcGis il faut absolument utiliser la version 2.7
Pour les curieux qui veulent savoir pourquoi, voici un lien sur la page Python.
Voilà! Maintenant vous avez toutes les infos qu’il faut pour télécharger votre IDE et puis pour pouvoir l’exécuter pour ArcGis.
Comment procéder avec votre IDE?
Quand vous ouvrez PyScripter vous avez l’interface suivante:
Le but c’est d’écrire un script qui sera exécuté dans ArcGis. Le script, la succession de lignes de code enchaînant les différentes opérations et traitements, sera écrit dans la fenêtre principale.
La fenêtre du bas, correspond à la console Python. Elle vous permet de rentrer une ligne de code et de l’exécuter immédiatement. Ceci vous permet de tester le code avant de l’ajouter dans la fenêtre principale.
Une fois terminé et validé, vous allez inclure le script dans la Toolbox d’ArcGis ou vous allez créer un add-in ArcGis. En principe PyScripter ne vous servira que pendant la phase de développement du script.
Gagnez du temps : Récupérez les exemples de code
Une fois que vous avez trouvé quel outil vous voulez utiliser, allez dans l’Aide d’ArcGis et tapez le nom de l’outil. Dans l’article précédent nous avons utilisé comme exemple l’outil FeatureToLine. Voici ce que l’on trouve en bas de la page d’aide de l’outil (et ceci est vrai pour tous les outils):
Vous avez toujours un exemple de ligne de commande avec toutes les options, ainsi qu’un petit script ou l’on peut voir comment inclure cet outil dans un véritable script. N’hésitez pas à vous « inspirer » en copiant-collant les exemples.
Quelques spécificités de Python pour ArcGis
Voici quelques éléments que vous ne trouverez pas dans les livres ou tutoriels Python classiques.
1- Pour que votre script puisse utiliser les outils ArcGis, démarrez tous vos scripts avec la ligne
import arcpy
2- Les outils ArcGis respectent une règle de dénomination stricte
arcpy. le nom de l’outil _ le nom de la toolbox qui le contient
Par exemple arcpy.FeatureToLine_management
3-Dans l’affichage de la syntaxe d’un outils, ses paramètres sont affichés entre parenthèses. Si le paramètre est obligatoire il sera entouré par des <>, s’il est optionnel par des {}. Si l’outil a plusieurs paramètres optionnels et vous voulez, par exemple, renseigner le quatrième paramètre optionnel, vous êtes obligé de renseigner les trois précédents, même avec des chaînes vides.
4-Faites attention avec les chemins des fichiers. Si vous utilisez des \ dans les chemins, ça va poser problème car Python utilise ce symbole dans sa syntaxe. Vous pouvez opter par des / à la place des \ (« C:/ArcGis/Data »), ou vous pouvez doubler les \\ dans les chemins (« C;\\ArcGis\\Data »). Vous pouvez aussi faire précéder la chaîne contenant un chemin de fichier par un r ( r »C;\ArcGis\Data »).