Questo progetto all'inizio lo avevo pensato come plugin da integrare direttamente in QGIS (dato che la piattaforma è open source), ma dato che l'interpreter di Python di QGIS ha delle limitazioni che non mi andava di affrontare, ho creato uno script indipendente testato con successo usando Python 3.12 (ma anche versioni leggermente più datate di Python dovrebbero andar bene) che si collega al sito di Natural Earth e scarica dei file pubblicamente accessibili contenuti nelle repository del sito, precisamente: dati vettoriali e raster, a diverse scale geografiche. Questi dati ovviamente, possono essere importati in QGIS a scopo didattico, ma anche utili per ingegneri pigri che vogliono iniziare a lavorare su progetti GIS senza dover partire da zero.
In questa
Comunque, per ragioni di comodità nella cartella ho incluso un PE compilato dal source code attraverso Pyinstaller, compatibile con qualsiasi Windows 10 dotato di processore AMD64. Questo PE vi permetterà di ottenere accesso alle funzioni dell'app senza dover installare Python 3.12 o altre dipendenze, con l'unico difetto che dovrete testarlo su VMware o VirtualBox per assicurarvi che sia pulito (alcune persone molto stupide hanno compilato dei malware con Pyinstaller dimenticandosi di proteggerli con un packer: come risultato gli antivirus stanno segnalando come "sospette" tutte le app generate con Pyinstaller. In particolare Avast genera falsi positivi). Tecnicamente il PE è pulito, ma dato che sono uno sconosciuto qua chiunque è legittimato ad avere sospetti.
Passiamo ora alla parte tecnica, cioè a descrivere in modo granulare cosa fa la routine di quest'app:
Lo scopo di quest'app è quello di rilevare un sito che offre sample di dati geospaziali già pronti, ottimizzando ulteriormente i tempi di lavoro degli analisti o dei docenti.
In allegato, la ZIP (NearthQGIS.zip) contenente il source code + PE (.exe) + specs.txt (contenente le dipendenze da installare in caso si scelga di eseguire direttamente il source code piuttosto che il PE): https://github.com/Admin9961/QGIS_automation
Da come potete intuire, l'app funziona solo per Windows (anche dal fatto che sfrutta la variabile %userprofile% per gestire il download, utilizzabile solo su Windows) e non pianifico di rilasciare una versione per Unix perché non è il mio main OS. In quel caso comunque basterebbe lanciare direttamente il .py dopo aver installato le dipendenze indicate, e ridefinire il metodo usato per scaricare e salvare i file.
In questa
.zip
sono inclusi il file .py
originale (codice del programma) che dovrà essere eseguito attraverso Python 3.12 (Windows di base non cel'ha purtroppo), e per funzionare richiederà le dipendenze requests beautifulsoup4 tqdm
, che possono essere installate singolarmente attraverso il comando pip install
.Comunque, per ragioni di comodità nella cartella ho incluso un PE compilato dal source code attraverso Pyinstaller, compatibile con qualsiasi Windows 10 dotato di processore AMD64. Questo PE vi permetterà di ottenere accesso alle funzioni dell'app senza dover installare Python 3.12 o altre dipendenze, con l'unico difetto che dovrete testarlo su VMware o VirtualBox per assicurarvi che sia pulito (alcune persone molto stupide hanno compilato dei malware con Pyinstaller dimenticandosi di proteggerli con un packer: come risultato gli antivirus stanno segnalando come "sospette" tutte le app generate con Pyinstaller. In particolare Avast genera falsi positivi). Tecnicamente il PE è pulito, ma dato che sono uno sconosciuto qua chiunque è legittimato ad avere sospetti.
Passiamo ora alla parte tecnica, cioè a descrivere in modo granulare cosa fa la routine di quest'app:
- All'apertura, l'app invierà una richiesta HTTP con un User-Agent specifico per ottenere e stampare a schermo le generalità del sito web e verificare l'autenticità della fonte;
- Viene proposta una lista comprendente 4 sample da scaricare dal sito, specificandone il peso, espresso in MegaByte (MB), e l'utente deve scegliere quale scaricare;
- Una volta scelto il sample, tqdm gioca la sua parte qua, mostrando una barra d'avanzamento per il download;
- Al termine del download, lo script individua la cartella "Downloads" tramite la variabile %userprofile% presente in Windows, ci salva il file, e poi apre la cartella con il file scaricato e pronto all'uso in faccia all'user. Viene sfruttata una syscall attraverso il modulo subprocess per questo;
Lo scopo di quest'app è quello di rilevare un sito che offre sample di dati geospaziali già pronti, ottimizzando ulteriormente i tempi di lavoro degli analisti o dei docenti.
In allegato, la ZIP (NearthQGIS.zip) contenente il source code + PE (.exe) + specs.txt (contenente le dipendenze da installare in caso si scelga di eseguire direttamente il source code piuttosto che il PE): https://github.com/Admin9961/QGIS_automation
Da come potete intuire, l'app funziona solo per Windows (anche dal fatto che sfrutta la variabile %userprofile% per gestire il download, utilizzabile solo su Windows) e non pianifico di rilasciare una versione per Unix perché non è il mio main OS. In quel caso comunque basterebbe lanciare direttamente il .py dopo aver installato le dipendenze indicate, e ridefinire il metodo usato per scaricare e salvare i file.