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 et ESRI met à votre disposition une aide complète et pleine d’exemples de code. La lecture d’un article de Mapping Gis ) a largement inspiré ce qui suit.
Nous allons donc voir comment générer un fichier pdf de la carte d’un projet ArcGis (.mxd), sans ouvrir le projet. Supposons que ce document doit être tenu à jour après des mises à jour des données très fréquentes.
Nous vous invitons à consulter l’article ArcGis et Python:avant de faire les premiers pas pour voir plus en détail les différentes options pour exécuter nos processus avec un code Python.
Nous allons voir ici trois des options: par la fenêtre de commande, avec la console Python d’ArcGis et avec la console Python d’un autre IDE.
Mais procédons dans l’ordre. D’abord nous devons trouver le code Python qui nous intéresse.
Recherche de code Python dans l’aide ArcGis
Avec votre navigateur allez à l’adresse http://desktop.arcgis.com/fr/ .
Dans le champ de recherche tapez les mots clés recherchés : mxd to pdf arcpy
Dans le résultat de la recherche vous trouverez ExportToPDF—Help | ArcGIS for Desktop
En cliquant sur ce lien vous aurez la page d’aide pour le code qui nous intéresse : http://desktop.arcgis.com/fr/desktop/latest/analyze/arcpy-mapping/exporttopdf.htm
Vous trouvez, en particulier, deux paragraphes fondamentaux:
La syntaxe Python de la commande
Pour cet exemple vous pouvez tout de suite voir que tout ce qu’il faut pour exécuter la commande c’est le nom du mxd et le nom du fichier pdf à produire.
Exécution à partir de la ligne de commande
Prenons comme exemple une carte simple avec les campings ouverts au public à la date d’aujourd’hui. La couche campings est tenue à jour par un autre traitement. Ce que nous souhaitons c’est de produire le pdf du jour courant. Voici la fenêtre de mise en page du document mxd :
Pour exécuter la commande, on ouvre une fenêtre invite de commande :
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 va générer notre fichier pdf à partir du mxd. On rentre alors la commande :
mxd=arcpy.mapping.MapDocument(r »C:\Quimper\geocodage.mxd »)
arcpy.mapping.ExportToPDF(mxd,r »C:\Quimper\Campings.pdf »)
del mxd
(vous pouvez copier-coller directement les trois lignes ensemble vers la fenêtre d’invite de commandes)
et on obtient immédiatement le fichier pdf
A noter que la date étant du texte dynamique d’ArcMap est bien renseignée avec la date du jour.
Si vous stockez les lignes de commande dans un fichier texte, avec une extension .py, vous pouvez exécuter la totalité de la commande en une seule ligne de commande:
Ouvrez la fenêtre d’invite de commande, puis tapez directement
python.exe campings.py
Vous obtenez le même résultat en pdf.
Exécution à partir de la console Python d’ArcGis
L’avantage d’exécuter le code Python à partir de la console Python d’ArcMap réside surtout dans le fait de bénéficier de l’aide syntaxique.
Comme vous pouvez le voir en consultant la syntaxe de notre commande, il y a toute une série de paramètres optionnels. Par exemple, la définition du fichier pdf en sortie. Par défaut, elle est de 300dpi. Si vous souhaitez qu’elle soit de 600 dpi vous devez ajouter l’option dans la ligne de commande
arcpy.mapping.ExportToPDF(mxd,r »C:\Quimper\Campings.pdf »,resolution=600)
Dans ce cas, il est plus facile d’utiliser la console Python:
On ouvre la console Python en cliquant,dans la fenêtre ArcMap, sur le bouton correspondant
Vous n’avez pas à rentrer la ligne import arcpy dans la console ArcMap.
Dès que vous tapez la commande arcpy.mapping.ExportToPDF, vous verrez apparaître la syntaxe de celle-ci dans la fenêtre de droite:
Une fois exécutée, la commande produit le même fichier pdf que précédemment.
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.