Automatisation avec ModelBuilder et Python
Toute tâche répétée chaque semaine mérite d'être automatisée. ModelBuilder le permet sans code ; Python va plus loin.
- construire un modèle ModelBuilder avec paramètres ;
- itérer sur une liste de couches ou de valeurs ;
- lancer un premier script ArcPy dans la fenêtre Python ;
- automatiser l'export de cartes.
20.1 ModelBuilder
Ouvrez ModelBuilder depuis la barre Standard ou Geoprocessing › ModelBuilder. Glissez des outils depuis ArcToolbox, reliez données et outils, puis exécutez. Clic droit sur une variable › Model Parameter pour qu'elle soit demandée au lancement. Enregistrez le modèle dans une boîte à outils personnelle (.tbx).

Les itérateurs (menu Insert › Iterators du modèle) répètent un traitement : pour chaque classe d'entités d'une géodatabase, pour chaque valeur d'un champ, etc.
20.2 Python et ArcPy
ArcPy est le module Python d'ArcGIS [33]. Dans ArcMap 10.x, il fonctionne avec Python 2.7 et donne accès à tous les outils de géotraitement ainsi qu'au module arcpy.mapping pour manipuler les documents de carte. La fenêtre Python s'ouvre depuis la barre Standard.
# Exporter une carte 3W par province (ArcMap 10.x, Python 2.7)
import arcpy
mxd = arcpy.mapping.MapDocument(r"D:\Livret_SIG\05_Gabarits\3W_Province.mxd")
df = arcpy.mapping.ListDataFrames(mxd)[0]
lyr = arcpy.mapping.ListLayers(mxd, "Provinces", df)[0]
for prov in ["Nord-Kivu", "Sud-Kivu", "Tshopo"]:
lyr.definitionQuery = "Province = '{0}'".format(prov)
df.extent = lyr.getExtent()
sortie = r"D:\Livret_SIG\06_Sorties\20261018_{0}_3W.pdf".format(prov.replace("-", ""))
arcpy.mapping.ExportToPDF(mxd, sortie, resolution=300)
print("Exporte : " + sortie)
del mxd |
Objectif. Produire trois cartes en une exécution.
Étapes
- Construisez un modèle qui joint le tableau 3W nettoyé aux zones de santé et exporte la couche.
- Rendez le tableau d'entrée paramétrable.
- Adaptez le script ci-dessus à votre gabarit et lancez-le dans la fenêtre Python.
- Vérifiez les trois PDF et leur nommage.