Skip To Content

Migration d'arcpy.mapping vers ArcGIS Pro

Les scripts Arcpy.mapping créés avec ArcGIS Desktop doivent être modifiés avant de s'exécuter dans ArcGIS Pro. Les modifications sont simples et logiques et peuvent presque 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 qui ont été ajoutées.

Python 3

Il est important de ne pas oublier qu'ArcGIS Pro utilise Python 3. Il est possible que vous soyez amené à modifier certaines syntaxes Python standard. Si vous souhaitez exécuter des scripts Python autonomes, vous devez installer Python 64 bits.

Arcpy.mapping s'appelle désormais arcpy.mp

Comme vous le verrez ci-dessous, 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 également une plus grande souplesse en ce qui concerne les fonctionnalités qu'arcpy.mp peut offrir. Par exemple, outre l'automatisation de cartes, arcpy.mp peut également fournir une gestion au niveau du projet.

Fichier de projet ArcGIS Pro (.aprx)

La première modification, et également la plus évidente, réside dans le fait qu'arcpy.mp dans ArcGIS Pro doit référencer un fichier de projet (.aprx) au lieu d'un document ArcMap (.mxd). Par conséquent, arcpy.mapping.MapDocument(mxd_path) doit être remplacé par arcpy.mp.ArcGISProject(aprx_path). La fonction ArcGISProject renvoie un objet ArcGISProject qui constitue un point d'entrée principal répondant à la plupart des arcpy.mp besoins en automatisation. Les deux objets sont similaires, mais la collection de méthodes et de propriétés est différente. La méthode nommée importMapDocument constitue une différence importante. Elle vous permet d'automatiser l'importation de documents ArcMap (.mxd), ArcGlobe (.3dd) et ArcScene (.sdx) 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 le document ArcMap 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 de liste sont utilisées pour référencer les classes d'étiquettes d'une couche. Elles sont très 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 les classes qui font partie d'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.Vue d'ensemble arcpy.mp OMD

Les fonctions d'exportation ont évolué

Les fonctions d'exportation autonomes sont devenues des méthodes sur les objets Layout et MapFrame. 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 un objet Layout, il n'est pas logique d'inclure les informations du fichier de géoréférencement.

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. Les méthodes sont 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/ou 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 nouveaux objets Map, MapFrame et Camera endossent le rôle de la fenêtre cartographique

La structure ArcGIS Pro a introduit de nouvelles 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 Map, MapFrame et Camera ont chacun un rôle spécifique et sont étroitement intégrés les uns aux autres.

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'un objet map est dans une fenêtre cartographique, en tant qu'onglet de l'application avec sa propre table des matières, ou dans un objet mapframe sur une mise en page. Le même objet map 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 sa taille et sa position dans une mise en page. Plusieurs éléments MapFrame peuvent référencer le même objet Map.

Comme l'application 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 un objet MapFrame.

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 à l'API arcpy.mp actualisent directement l'application.

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 considérablement changé. Cette 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 d'aide Mise à jour et correction des sources de données.