ESRI ROMANIA BLOG
Utilizarea ArcPy în fereastra Python: un exemplu practic (Partea 3)
Martie 2025
Autor: Aya Mohamed
Înțelegerea ArcPy
ArcPy este un pachet Python specializat care facilitează analiza datelor geografice, conversia datelor, gestionarea datelor și automatizarea hărților. Acesta oferă o modalitate productivă de a efectua aceste sarcini, punând la dispoziție o experiență Python nativă și bogată, inclusiv completare automată a codului și documentație de referință pentru fiecare funcție, modul și clasă.
Prin utilizarea ArcPy, utilizatorii pot:
- Accesa și rula instrumente de geoprocesare direct din scripturi Python.
- Automatiza sarcinile repetitive pentru a crește eficiența.
- Integra alte biblioteci Python pentru a extinde capabilitățile ArcGIS Pro.
Sintaxa codului și completarea automată
Python în ArcGIS Pro este prevăzut cu o funcție utilă de completare automată a codului. De exemplu, pe măsură ce introduceți cod în prompt, sugestiile pentru funcții și metode vor apărea sub formă de ferestre pop-up. Această funcție ajută la scrierea codului mai eficient și mai precis. Iată cum funcționează:
La tastare, dacă începeți să scrieți arc, o fereastră pop-up va sugera pachetul arcpy. Odată selectat, veți putea utiliza funcțiile ArcPy pentru sarcini geospațiale.
Condițiile specifice în care apare problema
Completarea automată poate economisi timp, poate preveni erorile de tastare și poate ghida utilizatorul către sintaxa corectă.
Notă: Atunci când folosiți fereastra Python din ArcGIS Pro, instrumentele de geoprocesare pot fi rulate fără a importa explicit ArcPy. Totuși, este considerată o bună practică includerea instrucțiunii import arcpy la începutul codului pentru a asigura compatibilitatea atunci când același script este rulat în afara ArcGIS Pro.
Exemplu
Pentru a ilustra mai bine cum se utilizează Python în ArcGIS Pro, să parcurgem un exemplu în care calculăm altitudinea medie pentru diferite zone de utilizare a terenului dintr-o anumită zonă geografică, folosind instrumentul Zonal Statistics din ArcGIS Pro.
Scenariul
Imaginați-vă că aveți două straturi raster:
- Elevation.tif: un Model Digital al Elevației (DEM) care reprezintă date de altitudine (în metri, de exemplu).
- Land_use.tif: un raster de utilizare a terenului care clasifică terenul în diferite zone, precum urban, agricol, forestier etc.
Dorim să calculăm altitudinea medie pentru fiecare zonă de utilizare a terenului din rasterul Land_use.tif, folosind valorile de altitudine din Elevation.tif.
Definirea stratului de altitudine
Folosind următoarea linie de cod, atribuim numele fișierului "Elevation.tif" unei variabile numite elevation_layer:
elevation_layer = "Elevation.tif"
Definirea stratului zonal
În continuare, definim rasterul Land_use.tif. Variabila zone_layer primește fișierul raster "Land_use.tif", care conține datele de utilizare a terenului.
zone_layer = "Land_use.tif"
Instrumentul ZonalStatistics va folosi acest strat pentru a defini zonele în interiorul cărora vor fi calculate statisticile.
Rularea Zonal Statistics
Acum putem rula instrumentul ZonalStatistics din modulul Spatial Analyst al ArcPy. Această funcție calculează statistici pe baza valorilor unui raster în cadrul zonelor specificate.
zonal_stats = arcpy.sa.ZonalStatistics(zone_layer, "class", elevation_layer, "MEAN")
Prezentarea parametrilor utilizați în funcția ZonalStatistics:
zone_layer ("Land_use.tif"): Acesta este rasterul de intrare care definește zonele.
- "class": Acesta este un atribut din stratul Land_use.tif care definește zonele individuale.
- elevation_layer ("Elevation.tif"): Acesta este rasterul ce conține valorile (altitudinile) folosite pentru calcularea statisticilor.
- "MEAN": Specifică tipul de statistică ce urmează a fi calculată. În acest caz, calculăm altitudinea medie în fiecare zonă de utilizare a terenului.
Salvarea rezultatului
Trebuie să salvăm rezultatul operației ZonalStatistics într-o locație specificată. Folosim metoda .save() pentru a salva rezultatul într-un fișier nou:
- zonal_stats_output = "C:/PythonStart/zonal_mean_elevation.tif"
- zonal_stats.save(zonal_stats_output)
- print(f"Zonal statistics saved to: {zonal_stats_output}")
Această secvență definește variabila zonal_stats_output și îi atribuie calea fișierului în care va fi salvat rasterul rezultat.
Credite
Datele utilizate în această lucrare au fost obținute de la echipa Esri Tutorials și sunt guvernate de o licență Creative Commons Atribuire–Distribuire în condiții identice–Necomercial (CC BY-SA-NC).
Puteți găsi versiunea oficială și actualizată aici: Identify infrastructure at risk of landslides.
Puteți găsi alte tutoriale în Galeria de tutoriale Learn ArcGIS.