Les scripts Arcpy.mapping écrits avec ArcGIS Desktop doivent être modifiés avant de les exécuter dans ArcGIS Pro. Les modifications sont simples et peuvent généralement s’accomplir avec des opérations de recherche et remplacement. Les sections ci-dessous soulignent un grand nombre des modifications importantes apportées à l’API arcpy.mp, ainsi que les nouvelles fonctionnalités.
Python 3
ArcGIS Pro utilise Python 3. Vous pouvez être amené à modifier certaines syntaxes Python standard. Pour plus d’informations, reportez-vous à la rubrique Migration de Python de la version 10.x vers ArcGIS Pro.
Arcpy.mapping est maintenant arcpy.mp
Les modifications introduites avec ArcGIS Pro ont été assez importantes pour mériter une modification de l’espace de nom du module. Le nouveau nom offre une plus grande souplesse en ce qui concerne les fonctionnalités de arcpy.mp. Par exemple, outre l’automatisation de cartes, arcpy.mp fournit également une gestion au niveau du projet et la possibilité de créer des objets, ce qui n’était pas possible dans arcpy.mapping.
Fichier de projet ArcGIS Pro (.aprx)
La première modification, et également la plus évidente, réside dans le fait que arcpy.mp dans ArcGIS Pro doit référencer un fichier de projet (.aprx) au lieu d’une carte (.mxd). Vous devez par conséquent remplacer arcpy.mapping.MapDocument(mxd_path) par arcpy.mp.ArcGISProject(aprx_path). La fonction ArcGISProject renvoie désormais un objet ArcGISProject qui constitue un point d’entrée principal répondant à la plupart des besoins en automatisation arcpy.mp. La classe ArcGISProject comporte également une méthode importDocument qui vous permet d’automatiser l’importation de cartes (.mxd), de globes (.3dd), de scènes (.sxd) et d’autres documents dans un projet.
Un grand nombre de fonctions de liste ont évolué
Un grand nombre de fonctions arcpy.mapping List autonomes sont devenues des méthodes sur les objets appropriés. Grâce à ce changement de conception, il est inutile de référencer constamment la carte en tant que premier paramètre et la nouvelle organisation bénéficie d’un flux orienté objet optimisé. Les exemples suivants montrent comment les fonctions List sont utilisées pour référencer les classes d’étiquettes d’une couche. Elles sont proches en termes de fonctionnalités, mais vous devrez modifier vos scripts ArcGIS Desktop existants.
Cet exemple montre comment référencer les classes d’étiquettes d’une couche avec ArcGIS Desktop.
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd, "Yosemite National Park")[0]
for lyr in arcpy.mapping.ListLayers(mxd, df):
if lyr.supports("SHOWLABLES"):
lblClasses = lyr.labelClasses
Cet exemple montre comment référencer les classes d’étiquettes d’une couche avec ArcGIS Pro.
p = arcpy.mp.ArcGISProject("CURRENT")
m = p.listMaps("Yosemite National Park")[0]
for lyr in m.listLayers():
if lyr.supports("SHOWLABELS"):
lblClasses = lyr.listLabelClasses()
Le diagramme suivant présente certaines des classes les plus courantes qui font partie de arcpy.mp, ainsi que l’emplacement et le nom des fonctions ou des propriétés requises pour référencer une classe en particulier. Ce diagramme n’est qu’un exemple et ne représente pas un ensemble complet d’objets. Les deux principaux points d’entrée vers les objets sont la classe ArcGISProject et la classe LayerFile.
Les fonctions d'exportation ont évolué
Les fonctions d’exportation autonomes sont devenues des méthodes sur les objets Layout, MapFrame, MapSeries et MapView. Ce changement de conception sépare les différents jeux de paramètres disponibles en fonction de l'objet exporté. Par exemple, lorsque vous exportez une vue cartographique, vous devez spécifier la largeur et la hauteur, mais avec une mise en page, la taille est automatiquement prise en compte.
Les fonctions de gestion des couches ont évolué
Les fonctions de gestion des couches autonomes sont devenues des méthodes sur les objets Map et LayerFile Ces méthodes incluent notamment addLayer, addLayerToGroup, insertLayer, moveLayer et removeLayer.
Les fichiers de couche ont changé
Les fichiers de couche créés avec ArcGIS Desktop comportent une extension .lyr et les fichiers de couche créés avec ArcGIS Pro comportent une extension .lyrx. La différence est notable. Les fichiers .lyr antérieurs stockent une seule couche ou un seul groupe de couches au niveau racine, même si un groupe de couches peut renfermer plusieurs couches ou groupes de couches. Les fichiers .lyrx plus récents peuvent stocker plusieurs couches et groupes de couches au niveau racine. La référence à un fichier .lyrx peut maintenant inclure une seule couche ou une liste de couches. Les fichiers .lyrx plus récents peuvent également inclure des tables autonomes. Vous pouvez également exporter les tables autonomes individuelles dans des fichiers .lyrx.
Les nouveaux objets Camera, Map, MapFrame et MapView endossent le rôle de la fenêtre cartographique
La structure ArcGIS Pro a introduit des fonctionnalités qui affectent votre façon d’interagir avec l’affichage de la carte et par conséquent, de nouveaux objets sont introduits. Ces nouveaux objets Camera, Map, MapFrame et MapView ont chacun un rôle spécifique et sont intégrés les uns aux autres, ce qui vous offre un plus grand contrôle pour les différents scénarios.
Un objet Map dans ArcGIS Pro représente une collection de couches géographiques tabulaires et symbolisées et conserve les informations, telles qu’un système de coordonnées, les vues par défaut des données et diverses autres métadonnées. La seule façon de visualiser le contenu d’une carte est dans une fenêtre cartographique, en tant qu’onglet de l’application avec sa propre table des matières, ou dans une fenêtre cartographique sur une mise en page. La même carte peut s’afficher dans plusieurs vues cartographiques ou fenêtres cartographiques. Si une couche est ajoutée à une carte, toutes les vues cartographiques et fenêtres cartographiques qui référencent cette carte afficheront la couche ajoutée. Si vous souhaitez afficher une autre collection de couches ou tables dans différentes vues, vous devez créer et utiliser différentes cartes.
Un objet MapFrame est un élément Layout qui affiche les informations géographiques ajoutées à un objet Map. Il contrôle également la taille et la position de la fenêtre cartographique dans une mise en page. Plusieurs fenêtres cartographiques peuvent référencer la même carte. De même, un objet MapView permet d’afficher le contenu d’une carte.
Comme ArcGIS Pro intègre un affichage 2D et 3D, l’objet Camera est utilisé pour contrôler à la fois l’échelle et l’étendue des cartes 2D et la position de la caméra des cartes 3D dans une fenêtre cartographique.
Nouvel objet Layout
Un projet ArcGIS Pro prend en charge plusieurs mises en page. Par conséquent, un nouvel objet Layout a été ajouté et les mises en page peuvent être référencées à l’aide de la méthode listLayouts sur l’objet ArcGISProject. Chaque mise en page peut présenter des orientations et formats de page différents. Comme dans ArcGIS Desktop, vous pouvez accéder à chaque élément de mise en page à l’aide de la méthode listElements. Chacun de ces éléments possède une propriété visible qui vous permet de désactiver un élément au lieu de le retirer de la page.
L'application s'actualise toujours avec le mot-clé CURRENT
Lorsque vous utilisiez le mot-clé CURRENT dans la fenêtre Python avec ArcGIS Desktop, vous étiez parfois amené à appeler la méthode refreshActiveView pour forcer l’actualisation de l’écran. Ce n’est plus le cas avec ArcGIS Pro. Toutes les modifications apportées aux API arcpy.mp mettent directement à jour ArcGIS Pro.
La mise à jour des sources de données a changé
Les méthodes et paramètres de modification de la source de données d’une couche ou table ont changé. La conception optimisée permet de mieux gérer les connexions aux bases de données, ainsi que les autres sources de données qui peuvent être jointes ou associées. Pour plus d’informations, reportez-vous à la rubrique Mise à jour et correction des sources de données.
Les objets peuvent être créés
Auparavant, avec ArcGIS Desktop, les scripts étaient limités à l’automatisation des éléments existants. À partir de ArcGIS Pro 3.2, de nombreux objets courants peuvent être créés. Cela inclut les méthodes createMap et createLayout sur l’objet ArcGISProject, ainsi que de nombreux constructeurs d’éléments de mise en page, comme createMapFrame, createMapSurroundElement, createGraphicElement, createTextElement et bien d’autres encore. Il est également possible de créer des objets Bookmark à partir de la classe Map. Pour plus d’informations, reportez-vous aux rubriques sur ArcGISProject, Layout et la classe Map.
Vous avez un commentaire à formuler concernant cette rubrique ?