Utilizarea consolei Python în pregătirea unei hărți offline WMS (descărcător de plăcuțe)

Acest studiu explică cum se pot pregăti hărțile offline provenite din WMS/WFS, sau orice alte hărți încărcate în QGIS, prin descărcarea pieselor cu ajutorul unui script din consola Python. Script-ul generează, de asemenea, un mozaic cu toate piesele, pentru utilizarea ulterioară.

Accesarea hărților raster/vector prin Web Mapping Service (WMS) este foarte comună și eficientă. Aceasta are mai multe avantaje, cum ar fi securitatea și stilurile de hartă centralizate și flexibile. Exemple ar fi Google Maps, Yahoo, Bing, MODIS, Landsat, hărțile publicate de NASA, NRSC (India). Dezavantajele/limitările WMS constau în funcționarea prin internet sau intranet. Este posibil să nu aveți în continuu conexiune la internet, mai ales pe timpul achiziției datelor în teren. De asemenea, WMS funcționează lent, comparativ cu orice alt format de imagine offline, cum ar fi GeoTiff, jpg, img, etc

Utilizare QGIS

QGIS oferă un instrument de conectare/accesare a oricărui WMS serviciu. Conexiunea WMS este bazată pe un URL simplu și o dată ce este stabilită conexiunea, harta poate fi văzută în QGIS. Dacă am salva harta suprafeței vizibile în QGIS ca jpg (File > Save as Image) se va crea fișierul world care conține informațiile coordonatelor geografice din anumite regiuni. De exemplu, sample.jpg este harta, iar sample.jpgw conține coordonatele. Asta înseamnă că imaginea descărcată este georeferențiată. În mod manual, puteți descărca plăcuțele în format grilă, și să le utilizați offline ulterior. Descărcarea manuală este posibilă în cazul în care zona este foarte mică, sau atunci când imaginile cu rezoluție scăzută sunt bune.

QGIS with WMS tiles

QGIS cu plăcuțele WMS

Consola Python

Un scenariu scurt a fost scris în „Consola Python” cu ajutorul disponibil pe site-ul oficial al QGIS al Cărții de Rețete a Dezvoltatorului PyQGIS. Script-ul constă, practic, în 4 componente, după cum urmează,

  1. Coordonatele X,Y ale primei plăcuțe (stânga sus și dreapta jos)

  2. Mărimea plăcuței care va fi descărcată (de exemplu 0.001 X 0.001 grade)

  3. Numărul de plăcuțe care vor fi descărcate (calculat pe întreaga suprafață a hărții și dimensiunea plăcuței)

  4. Directorul de ieșire pentru a stoca plăcuțele/fișierele de ieșire

Scriptul rulează în două simple bucle FOR, prima definind limitele hărții vizibile în QGIS și rândurile/coloanele pe care se va executa. O dată marginile hărții fiind setate, harta se va încărca în QGIS. Întârzierea de 3 secunde (în funcție de conexiunea la internet) a fost introdus înainte de a salva harta ca jpg, în directorul definit de utilizator. O dată ce script-ul este executat, toate plăcuțele create în director pot fi încărcate direct în QGIS, ori un singur mozaic este pregătit din Raster > Miscellaneous > Merge or Build Virtual Raster (Catalog). Ambele instrumente generează un mozaic, dar diferența de bază din Merge creează o imagine independentă din plăcuțe, în timp ce rasterul Virtual generează o legătură din toate piesele individuale (sunt necesare plăcuțele).

Python script and directory where tiles are stored

Script-ul Python și directorul unde sunt stocate plăcuțele

Metoda are limitări, deoarece schimbările în harta de pe server nu se reflectă offline (în harta descărcată). În acest caz, utilizatorul va trebui să repete procesul și să genereze noi hărți offline. A doua limitare este că harta offline creată va fi într-un format de imagine; ea nu va putea fi utilizată pentru cartografierea tematică sau clasificarea imaginilor. Cu unele eforturi suplimentare unele hărți pot fi convertite în vectori cu ceva pierderi de date.

Domeniul de aplicare

Mozaicul este generat ca imagine pură, chiar dacă este descărcat de pe harta tematică (7-8 culori). Folosind instrumentele avansate, cum ar fi reclasificarea, stivuirea straturilor/benzilor, aceste rastere pot fi convertite într-un vector poligonal. WMS suportă mai multe cereri, cum ar fi getcapabilities, getmap, getfeatureinfo etc. Folosind atributul getgeatureinfo se pot obține informațiile pentru fiecare poligon. Script-ul poate fi convertit într-un plugin, astfel încât oricine, fără cunoștințe de scripting, va putea folosi script-ul.

Concluzie

Experiențele de mai sus arată că QGIS poate fi folosit la orice nivel avansat. Cu minime cunoștințe de programare, se poate scrie un mic script sau un plug-in, pentru a îmbunătăți calitatea muncii și pentru a salva timp. În cadrul QGIS, accesul la un depozit de plug-in-uri dezvoltate la nivel mondial reprezintă cea mai bună parte a QGIS. Cartea de Rețete a Dezvoltatorului PyQGIS este o bună resursă pentru a scrie un script de prelucrare a datelor raster, lucru care este mult mai ușor acum, grație instrumentelor GDAL.

Autori

Acest articol a fost transmis în mai 2014 de către Prashant Kadgi, care locuiește în Pune (India) și, în prezent, lucrează în calitate de consultant în Servicii GIS APP. Din 2009 el folosește GIS & RS în NRM, silvicultură, e-guvernare, proiecte de dezvoltare de software în diferite regiuni ale Indiei și în lume.