Een vorige post<\/A> deelde vijf Python codefragmenten om mappingtaken in ArcMap te automatiseren. Deze post leidt je door hoe je diezelfde taken kunt uitvoeren met behulp van het ArcGIS Pro Python window<\/A>.<\/P>In ArcGIS Pro heet de mappingmodule arcpy.mp<\/A>. Om de onderstaande snippets zelf uit te proberen, maak een kopie van een ArcGIS Pro projectbestand (APRX) en verplaats het ergens voor testdoeleinden. Je hoeft geen ervaren Python-scripter te zijn—voer gewoon de onderstaande code in het Python window in en bekijk de resultaten. <\/P>Je zult snel zien hoe een paar Python-trucs het beheer van kaarten kunnen versnellen.<\/P>Elk snippet hieronder werkt met ArcGIS Pro 1.x, een bestaand projectbestand, arcpy.mp module, en Python 3.x.<\/LI><\/UL>Snippet 1: Controleer Laag Definitie Queries<\/STRONG><\/SPAN><\/P><\/P>Stel dat je moet controleren of er lagen in je ArcGIS Pro project een definitiequery hebben toegepast, en zo ja, die definitiequeries wilt bekijken. Het openen van het Laag Eigenschappen dialoogvenster voor elke laag in elke kaart is vervelend.<\/SPAN><\/P><\/P>Oplossing: Open in plaats daarvan het Python window en voer de onderstaande code uit. De naam en definitiequery van alle lagen worden 22geprint22 (d.w.z. weergegeven in het Python window).<\/SPAN><\/P><\/P>Code Uitleg<\/STRONG><\/SPAN><\/P>De eerste regel code maakt een variabele genaamd aprx<\/STRONG><\/SPAN> die verwijst naar het open project met behulp van de ArcGISProject functie<\/A> met het CURRENT sleutelwoord.<\/SPAN><\/LI>De volgende regel code maakt een variabele genaamd maps <\/STRONG><\/SPAN>met de listMaps methode die een Python lijst van Map objecten in het project teruggeeft.<\/SPAN><\/LI>Een for <\/STRONG><\/SPAN>lus wordt gebruikt om door elke kaart te itereren.<\/SPAN><\/LI>Voor elke kaart wordt de listLayers methode gebruikt om een lijst van de lagen te maken.<\/SPAN><\/LI>Nog een for <\/STRONG><\/SPAN>lus wordt gebruikt om door de lijst van lagen te itereren.<\/SPAN><\/LI>De Layer klasse<\/A> heeft veel eigenschappen die toegankelijk zijn, inclusief de naam en definitiequery van een laag. Omdat niet alle laagtypes alle eigenschappen ondersteunen, wordt de supports methode gebruikt om te testen welke eigenschappen een laag ondersteunt.<\/SPAN><\/LI>De laatste regel code print (toont) de naam van elke kaart, de naam van elke laag, en de definitiequery van elke laag.<\/SPAN><\/LI><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/> een kaartboek maken of misschien heb je een paar PDF-documenten die je moet samenvoegen (zoals je onkostennota en bonnetjes). Je kunt arcpy.mp en de PDFDocument class gebruiken om PDF-documenten te bewerken. Voer de onderstaande code uit om twee PDF-documenten samen te voegen.<\/SPAN><\/P>
In ArcGIS Pro heet de mappingmodule
Je zult snel zien hoe een paar Python-trucs het beheer van kaarten kunnen versnellen.<\/P>
Snippet 1: Controleer Laag Definitie Queries<\/STRONG><\/SPAN><\/P><\/P>Stel dat je moet controleren of er lagen in je ArcGIS Pro project een definitiequery hebben toegepast, en zo ja, die definitiequeries wilt bekijken. Het openen van het Laag Eigenschappen dialoogvenster voor elke laag in elke kaart is vervelend.<\/SPAN><\/P><\/P>Oplossing: Open in plaats daarvan het Python window en voer de onderstaande code uit. De naam en definitiequery van alle lagen worden 22geprint22 (d.w.z. weergegeven in het Python window).<\/SPAN><\/P><\/P>Code Uitleg<\/STRONG><\/SPAN><\/P>De eerste regel code maakt een variabele genaamd aprx<\/STRONG><\/SPAN> die verwijst naar het open project met behulp van de
<\/P>
Code Uitleg<\/STRONG><\/SPAN><\/P>De eerste regel code maakt een variabele genaamd pdf<\/STRONG><\/SPAN> die verwijst naar een bestaand PDF-document.<\/SPAN><\/LI>De appendPages methode wordt gebruikt om pagina's van een PDF toe te voegen aan het einde van het verwezen PDF-bestand.<\/SPAN><\/LI>Om de wijzigingen op te slaan, wordt de saveAndClose methode gebruikt.<\/SPAN><\/LI><\/UL>Wil je meer leren?<\/STRONG><\/SPAN><\/P>Als je meer wilt weten over het werken met het ArcGIS Pro Python-venster of het migreren van Python-scripts van ArcMap naar ArcGIS Pro, bekijk dan deze bronnen:<\/SPAN><\/P>Tutorial: Aan de slag met arcpy.mp<\/A><\/SPAN><\/LI>ArcGIS Help: Migreren van arcpy.mapping naar ArcGIS Pro <\/A><\/SPAN><\/LI><\/UL>Als je een introductie tot ArcGIS Pro wilt, worden deze cursussen aanbevolen:<\/SPAN><\/DIV> <\/DIV>Aan de slag met ArcGIS Pro<\/A><\/SPAN><\/LI>ArcGIS Pro: Essentiële Werkstromen<\/A><\/SPAN><\/LI>Migreren van ArcMap naar ArcGIS Pro<\/A><\/LI><\/UL><\/DIV> Dit bericht is bijgedragen door Esri-instructeur Brittney White. Gevestigd in Washington, D.C., is Brittney's passie om klanten te helpen Esri-technologie te leren kennen en toe te passen in hun eigen werk.<\/SPAN><\/P><\/BODY><\/HTML>
Dit bericht is bijgedragen door Esri-instructeur Brittney White. Gevestigd in Washington, D.C., is Brittney's passie om klanten te helpen Esri-technologie te leren kennen en toe te passen in hun eigen werk.<\/SPAN><\/P><\/BODY><\/HTML>
I also would like to complement with this:
How to return the data source of a layer
import arcpy aprx = arcpy.mp.ArcGISProject('CURRENT') lyr = maps.listLayers()[0] print("The layer's data source of: " + lyr.name + " is " + lyr.dataSource)
Nicely done. I am looking for an iterator to turn on each data layer in an ArcPro document (that is based off of a complex view in SQL Server, export to PNG, and then go to the next layer and do the same thing.
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.