Avez-vous eu l'intention d'essayer la fenêtre Python d'ArcMap <\/SPAN>Python window<\/A>, mais vous ne savez pas comment commencer ? Eh bien, les cinq extraits de code ci-dessous sont un excellent outil pour vous familiariser avec la Python window et le <\/SPAN>module arcpy.mapping<\/A>. Faites une copie d'un fichier MXD et déplacez-le quelque part pour tester ces extraits. Vous verrez bientôt à quel point quelques astuces Python peuvent être utiles pour les tâches de gestion de cartes.<\/SPAN><\/P>Chaque extrait ci-dessous fonctionne avec ArcMap 10.x, un document de carte existant (fichier MXD), le module arcpy.mapping, et Python 2.x.<\/LI><\/UL>Vous n'avez pas besoin de connaître la syntaxe Python pour utiliser ces extraits. Il suffit d'entrer le code dans la Python window et de vérifier les résultats.<\/P>Extrait 1 : Vérifier les requêtes de définition des couches<\/STRONG><\/SPAN><\/P>Supposons que vous devez vérifier si l'une des couches dans votre document de carte a une requête de définition appliquée, et si oui, voir les requêtes de définition. Ouvrir la boîte de dialogue Propriétés de la couche pour chaque couche est pénible.<\/P> <\/P>Solution : Ouvrez plutôt la Python window et exécutez le code ci-dessous. Le nom et la requête de définition de toutes les couches de la carte seront "imprimés" (c'est-à-dire affichés dans la Python window).<\/P>
<\/P>Décomposition du code<\/STRONG><\/SPAN><\/P>La première ligne de code crée une variable appelée mxd<\/STRONG><\/SPAN> qui référence le document de carte ouvert en utilisant le mot-clé CURRENT<\/A>..<\/SPAN><\/LI>La fonction ListLayers<\/A> est utilisée pour créer une liste de toutes les couches dans le document de carte et la boucle for<\/STRONG><\/SPAN> est utilisée pour itérer à travers chaque couche dans la carte.<\/LI>La classe Layer<\/A> possède de nombreuses propriétés<\/A> accessibles, y compris la requête de définition pour une couche. Parce que tous les types de couches ne supportent pas toutes les propriétés, la méthode supports<\/A> est utilisée pour tester quelles propriétés une couche supporte.
La dernière ligne de code affiche (imprime) le nom de chaque couche et sa requête de définition.
Extrait 2 : Réparer les liens cassés
À un moment donné, vous avez probablement déplacé des données cartographiques d'un espace de travail à un autre. Avez-vous déjà vu ces redoutables points d'exclamation rouges ?

Si le chemin vers les couches cartographiques a changé, avec seulement quelques lignes de code vous pouvez rapidement trouver l'ancien chemin d'espace de travail et le remplacer par le nouveau chemin d'espace de travail pour toutes les couches et tables dans votre document de carte en une seule fois. Exécutez les lignes suivantes dans la Python window (assurez-vous de mettre à jour les chemins pour refléter vos anciens et nouveaux espaces de travail).

Décomposition du code
- La première ligne du code est la même que dans l'exemple précédent, créant la variable mxd<\strong> qui référence le document ouvert.
- La méthode
findAndReplaceWorkspacePaths est utilisée pour rechercher les couches qui ont l'ancien espace de travail (premier paramètre) et mettre à jour l'espace vers le nouvel espace (deuxième paramètre) pour toutes les couches et tables dans le document.
La fonction RefreshActiveView est utilisée pour voir les changements dans la table des matières et sur la carte.
Extrait 3 : Identifier les couches avec une source de données cassée
En parlant des points d'exclamation rouges, vous pouvez aussi utiliser arcpy.mapping pour afficher les couches qui ont des liens cassés en utilisant le code ci-dessous.

Décomposition du code
- La première ligne du code crée une variable appelée mxd qui référence le document ouvert, comme dans les exemples précédents.
- Comme dans le premier exemple, la fonction ListLayers crée une liste de toutes les couches dans le document.
- Puis, la boucle for est utilisée pour parcourir chaque couche dans la carte, affichant le nom et la propriété isBroken pour chacune.
Extrait 4 : Inventaire des sources des données des couches
Si vous avez besoin de connaître la source des données pour toutes les couches dans votre carte, mais que vous ne voulez pas ouvrir la boîte Propriétés pour chacune, exécutez simplement les lignes ci-dessous dans la Python window pour afficher les noms et chemins d'espace des couches.

Décomposition du code
- Comme tous les exemples ci-dessus, la première ligne crée la variable mxd, qui référence le document ouvert (vous commencez à comprendre ?).
- Pareillement, la fonction ListLayers crée une liste des couches que vous pouvez parcourir avec une boucle for.
Dans cet exemple, vous affichez les propriétés name et workspacePath pour chaque couche. Comme toutes ne possèdent pas un chemin workspace (par exemple, services web), on utilise la méthode supports .
Extrait 5 : Combiner des documents PDF
C’est peut-être que vous créez un atlas ou que vous avez quelques documents PDF à combiner (comme votre rapport de dépenses et vos reçus). Vous pouvez utiliser arcpy.mapping et la classe PDFDocument class pour manipuler des documents PDF. Exécutez le code ci-dessous pour combiner deux documents PDF.
< / strong >< / span >< / p >
< span >< strong >Décomposition du code< / strong >< / span >< / p >
La première ligne crée une variable appelée < span >< strong >pdf< / strong >< / span > qui référence un document PDF existant.< / li >
La méthode < a href = "http://desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-mapping/pdfdocument-class.htm#M1_GUID-36E69E05-DD9D-4019-8D1D-2664828EF6BB " target = "_blank " rel = "noopener nofollow noreferrer " >appendPages< / a > est utilisée pour ajouter des pages d’un PDF à la fin du PDF référencé.< / li >
Pour enregistrer les modifications, on utilise la méthode < a href = "http://desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-mapping/pdfdocument-class.htm#M1_GUID-36E69E05-DD9D-4019-8D1D-2664828EF6BB " target = "_blank " rel = "noopener nofollow noreferrer " >saveAndClose< / a > .< / li >
< / ul >
< / p >
< span >< strong >Vous voulez en savoir plus ?< / strong >< / span >< / p >
Si vous souhaitez en savoir plus sur l’utilisation de la Python window d’ArcMap ou sur la création de scripts Python autonomes, ces ressources sont recommandées :< / p >
ArcGIS Help : < a title = "Sujet d’aide ArcGIS pour le module arcpy.mapping en Python " href = "http://desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-mapping/updatingandfixingdatasources.htm " target = "_blank " rel = "noopener nofollow noreferrer " >Updating and fixing data sources with arcpy.mapping< / a >< / li >
Tutoriel : < a href = "http://desktop.arcgis.com/en/arcmap/latest/analyze/arcpy-mapping/getting-started-with-arcpy-mapping-tutorial.htm " target = "_blank " rel = "noopener nofollow noreferrer " >Getting Started with arcpy.mapping< / a >< / li >
Cours Web : < a href = "https://www.esri.com/training/catalog/57630437851d31e02a43f210/python-scripting-for-map-automation/ " target = "_blank " rel = "noopener nofollow noreferrer " >Python Script pour l'automatisation des cartesCours dirigé par un instructeur : Creating Python Scripts for ArcGIS
Ce post a été contribué par l'instructrice Esri @Brittney White.