Scripts de géotraitement pour la gestion et la sortie de cartes
Présentation du module de géotraitement arcpy.mapping
Le module arcpy.mapping est une bibliothèque de scripts Python qui vous permet d'ouvrir et de manipuler des cartes ArcMap (.mxd) et des fichiers de couches (.lyr). Les scripts de géotraitement qui utilisent arcpy.mapping peuvent ouvrir des cartes et des couches, interroger et modifier le contenu et imprimer, exporter ou enregistrer le document modifié.
Les fonctions d'un script arcpy.mapping se rapprochent étroitement des opérations réalisées dans l'application ArcMap. Prenons le workflow ArcMap simple suivant :
- Ouvrez la carte située dans C:\GIS\TownCenter_2009.mxd.
- Recherchez les éléments de texte de mise en page qui indiquent GIS Services Division 2009 et modifiez-les en GIS Services Division 2010.
- Exportez la mise en page modifiée au format PDF.
Un script arcpy.mapping exprime ces étapes comme suit :
Ce script simple de recherche et remplacement modifie 2009 en 2010, puis exporte la mise en page vers un fichier PDF.
mxd = arcpy.mapping.MapDocument(r"C:\GIS\TownCenter_2009.mxd") for textElement in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"): if textElement.text == "GIS Services Division 2009": textElement.text = "GIS Services Division 2010" arcpy.mapping.ExportToPDF(mxd, r"C:\GIS\TownCenterUpdate_2010.pdf") del mxd
Le module de géotraitement arcpy.mapping est destiné à toute personne ayant besoin d'automatiser un workflow ArcMap. Bien que cela ressemble à de la programmation et qu'il découle du puissant langage de programmation Python, vous n'avez pas besoin d'être un développeur de logiciels SIG pour créer des scripts arcpy.mapping. L'objectif du module arcpy.mapping est d'automatiser les opérations fastidieuses afin que vous puissiez vous consacrer à vos tâches importantes de création et d'analyse.
Objectif du module arcpy.mapping et scénarios de script typiques
Le module arcpy.mapping a été conçu pour automatiser les workflows de gestion et de sortie de cartes (impression et exportation). Les fonctions qu'il propose sont centrées sur la modification des couches et éléments de mise en page existants ; elles ne sont pas conçues comme un système complet de compilation de cartes. L'environnement interactif et hautement visuel d'ArcMap est le système idéal pour créer de nouvelles cartes, couches et mises en page. Toutefois, lorsqu'elles sont utilisées correctement, les fonctions de modification des couches et des éléments de mise en page du module arcpy.mapping permettent de créer rapidement des cartes. L'utilisation réussie de ces workflows passe par une création attentive de la carte pour préparer les composants utilisés par le script arcpy.mapping, afin que, lorsqu'arcpy.mapping et ArcMap sont utilisés ensemble de façon appropriée, ils fournissent en réalité un système de production de cartes automatisé.
Il est plus facile de comprendre les fonctions d'arcpy.mapping en décrivant certaines des situations qu'il permet de simplifier. Voici quelques unes des nombreuses opérations qu'un script arcpy.mapping peut réaliser :
- créer une liste de cartes dont les couches référencent une certaine source de données ;
- mettre à jour ou réparer les liaisons de sources de données pour toutes les couches d'une carte ;
- créer un rapport sur les informations contenues dans les documents, telles que les couches, les sources de données et le type de couche ;
- enregistrer un groupe de cartes vers une version antérieure d'ArcGIS pour le distribuer à d'autres personnes ;
- ouvrir et analyser le contenu de cartes, en mettant à jour les métadonnées du document (par exemple, les mots-clés, le résumé) en fonction de l'analyse du contenu. Les métadonnées de la carte peuvent ensuite être recherchées et indexées dans l'utilitaire de recherche ArcGIS et sur ArcGIS.com ;
- créer des données géographiques par lot à l'aide de commandes d'exportation de la carte, telles qu'une série d'images GeoTIFF déterminées par une liste d'entités dans la carte ;
- créer différents atlas au format PDF :
- Un atlas thématique avec page de titre, plusieurs pages de carte et n'importe quel nombre de pages supplémentaires pouvant contenir des rapports tabulaires ou des listes de contacts
- Un atlas de référence reposant sur les pages dynamiques
Pour plus d'informations, reportez-vous à la rubrique Création d'atlas avec ArcGIS.
Géotraitement, arcpy.mapping et enrichissement de l'application ArcMap
Le module arcpy.mapping fait partie de la structure de géotraitement. Un script arcpy.mapping peut faire appel à l’un des outils de géotraitement disponibles dans ArcGIS, et tout script écrit à l’aide de arcpy.mapping peut être converti en outil de script de géotraitement à utiliser dans ArcToolbox et ModelBuilder.
En tant que partie intégrante de la structure de géotraitement, le module arcpy.mapping est davantage conçu pour être utilisé comme outil de traitement par lot que comme structure pour personnaliser l'application ArcMap. Comme arcpy.mapping vous permet de créer votre propre système de traitement des cartes, il est juste de dire qu'il s'agit d'une méthode d'enrichissement d'ArcMap avec de nouveaux outils. Mais le géotraitement ne permet pas de personnaliser entièrement l'interface utilisateur d'ArcMap, et l'ensemble complet des objets et fonctions d'ArcMap n'est pas accessible via arcpy.mapping.
Le SDK d'ArcObjects permet d'accéder à l'ensemble complet des objets et fonctions. Le SDK d'ArcObjects et le géotraitement sont complémentaires ; l'un n'annule pas l'autre. 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 automatise des tâches au sein d'une structure qui fonctionne correctement.
Utilisation et déploiement de scripts
Les scripts qui utilisent arcpy.mapping peuvent être déployés et exécutés comme n'importe quel script de géotraitement. La façon dont vous choisissez d'utiliser votre script dépend de quand et comment vous voulez l'exécuter.
- Un script d'exportation d'atlas peut fonctionner correctement comme outil de script. Vous pouvez écrire le script afin d'indiquer les entrées définissant les cartes à inclure et l'emplacement dans lequel exporter le fichier en sortie. L'interface utilisateur des boîtes à outils vous permet de définir les entrées de façon interactive.
- Un script qui imprime une carte à une heure donnée chaque matin est un bon candidat pour s'exécuter comme tâche planifiée de Windows.
- Un script qui répertorie les liaisons de sources de données endommagées peut être exécuté à partir de la fenêtre Python d'ArcMap, dans laquelle vous pouvez facilement voir les messages imprimés à partir d'un script et choisir la procédure à suivre.
Pour obtenir la liste complète des classes et fonctions d'arcpy.mapping, reportez-vous aux rubriques suivantes :