Archivio dei tag QGIS

Idraulica&GIS: quota serbatoio e tracciato condotta di avvicinamento

Nella progettazione di una rete idrica è importante andare ad individuare la posizione più idonea per il/i serbatoio/i a servizio della rete interna ed il tracciato della condotta di avvicinamento.

Questo articolo nasce per puro caso. Qualche giorno fa sistemando la libreria ho ritrovato i miei appunti del corso di Infrastrutture Idrauliche seguito quando ero studente di ingegneria. Insieme a quegli appunti c’era anche la relazione, i calcoli, i grafici ed i disegni del progetto di un acquedotto da discutere all’esame. I primissimi passaggi erano proprio la ricerca del punto migliore in cui posizionare il serbatoio a servizio della rete interna e l’individuazione del tracciato per la condotta di avvicinamento. Di seguito spiegherò come è possibile con QGIS definire queste due variabili progettuali alla base della progettazione di un acquedotto.

NB: l’intento di questo articolo non è quello di essere un tutorial passo passo poichè il suo unico scopo è divulgativo.

All’università ricordo che ci fu data una carta IGM 1:25.000 su cui era individuato il Comune da servire e la sorgente da cui prelevare l’acqua. Con solo questi dati individuammo(parlo al plurale perchè ero in un gruppo di lavoro) la quota del serbatoio ed aiutandoci con le isoipse definimmo il tracciato con il relativo profilo altimetrico. In realtà la parte più scocciante e lunga fu proprio individuare il tracciato e definire il profilo altimetrico perchè andammo ad individuare 3-4 soluzioni. Alla fine scegliemmo quella che ci sembrava meno gravosa dal punto di vista dei costi sia di scavo che di esproprio oltre che per la lunghezza del tracciato in se. Ricordo che per calcolare il profilo altimetrico usammo un applicativo in riga di comando, sembrava il DOS, in cui inserimmo i dati che avevamo rilevato sulla carta IGM e lui alla fine ci disegnò il profilo altimetrico inserendo la distanza progressiva ed assoluta sezione per sezione oltre che la pendenza.

Finito l’excursus romantico andiamo al sodo!

La situazione in avvio di progetto è questa:

  • sorgente a quota 444 metri;
  • quota del serbatoio, calcolata tenendo conto della quota massima del centro abitato da servire, dell’altezza dell’edificio più alto, delle perdite di carico, pari a 430 metri.

In aggiunta a questi dati ed alla carta IGM ho usato il DTM dell’ISPRA con risoluzione di 20 metri per pixel. Ho riclassificato un clip dell’area di studio secondo tre fasce altimetriche:

  • Classe 0: quote comprese tra il minimo altimetrico del clip e quota 427 metri;
  • Classe 1: quote comprese tra 428 e 432 metri;
  • Classe 2: quote comprese tra 433 metri ed il massimo altimetrico del clip.

La classe di mio interesse è la 1 che comprende la quota del serbatoio +/- 2 metri. Sovrapponendo il raster riclassificato con un buffer a 250 metri dal centro abitato sarà possibile individuare l’area migliore per posizionare il serbatoio. I pixel bianchi sono quelli in corrispondenza di aree utili allo scopo.

Individuata l’area migliore per posizionare il serbatoio sono passato alle step successivo: il tracciamento del percorso della condotta di avvicinamento.

Nel video spiego tutti i passaggi che ho effettuato fino all’individuazione del tracciato in se.

Noto il tracciato mi sono servito del plugin qProf per tracciare il profilo altimetrico con distanza progressiva tra cuspidi positive e negative, distanza totale e pendenza dei tratti. E’ importante sapere che il profilo ottenuto è in funzione della risoluzione del DEM da cui ha origine. Se si ha un DEM a 1m/px il risultato sarà sicuramente migliore del mio a 20m/px.

Nel video che segue spiego come ricavare il profilo altimetrico ed esportarlo come csv per essere poi elaborato in un foglio di calcolo.

L’esercizio è finito, alla prossima 🙂

SCARICA QUI I DATI USATI NELL’ARTICOLO

Creare un raster ed un vettore delle fasce altimetriche

Con questo piccolo tutorial mostrerò come è possibile generare un raster ed un vettore di fasce altimetriche.

Materiale necessario:

  • un minimo di manualità nell’ambito GIS;
  • un DEM qualunque. Puoi scaricarne uno gratuitamente anche dai servizi WCS del Geoportale Nazionale;
  • un file .txt vuoto;
  • QGIS+GRASS.

INIZIAMO!

Come prima cosa centriamo l’area di nostro interesse; in questo tutorial farò riferimento all’area del Monte Bianco. Studiamo i metadati del raster e individuiamo la quota minima e la massima.

fasce altimetriche

Note le quote minime e massime apriamo un file .txt ed inseriamo la seguente sintassi:

0 thru 500 = 1
501 thru 1000 = 2
1001 thru 1500 = 3
1501 thru 2000 = 4
2001 thru 2500 = 5
2501 thru 3000 = 6
3001 thru 3500 = 7
3501 thru 4000 = 8
4001 thru 4500 = 9
4501 thru 5000 = 10

In questo esempio ho suddiviso le quote del DEM in 10 classi altimetriche, la prima va da 0 a 500 m, la seconda da 501 a 1000 m e così via. Tu puoi scegliere una suddivisione diversa o la stessa che ho scelto io.

Individuata l’area di interesse e preparato il nostro file di testo, andiamo nella “Processing Toolbox” e digitiamo reclass per visualizzare l’algoritmo di riclassificazione di GRASS. Avviamolo con un doppio click!

fasce altimetriche

A questo punto si aprirà la maschera che segue

fasce altimetriche

Al passo 1 scegliamo il DEM di nostro interesse, al passo 2 scegliamo il file .txt che abbiamo creato in precedenza e clicchiamo quindi su “RUN” al passo 3. Abbiamo ottenuto così il nostro raster con le fasce altimetriche che vai poi tematizzato.

fasce altimetriche

Per generare i rispettivi poligoni andiamo nel menu e clicchiamo su Raster, quindi portiamoci su Conversion e clicchiamo su Poligonize (Raster to Vector). Scegliamo il raster da poligonalizzare, quello venuto fuori dalla riclassificazione, ed avviamo l’algoritmo. A processo ultimato il risultato sarà simile al seguente, ovviamente dovete tematizzare il poligono.

fasce altimetriche

Nel video che segue è spiegato l’intero processo. Condividi l’articolo se ti è piaciuto così potrà essere d’aiuto anche a qualcun altro.


Guarda il Monte Bianco in 3D!


 

3D Open Source

E’ possibile creare una riproduzione 3D di un’area senza spendere 1€? La risposta è si e ve lo mostro con questo tutorial!

Cose necessarie:

  • dimestichezza con la metodologia GIS;
  • dimestichezza con QGIS;
  • applicazione;
  • un po’ di pazienza 😉

Iniziamo!

Recuperiamo una CTR, un DTM ed un DSM. Per questo tutorial ho usato la CTR 1:1000 scaricata nella sezione Open Data del sito del Comune di Napoli; per i due DEM ho attinto alla sezione Open Data del SIT della Città Metropolitana di Napoli. Qualche tempo fa vi ho già mostrato le potenzialità dei DEM da LiDAR.

Lavoriamo prima sui DEM. Come sapete DEM è l’acronimo di Digital Elevation Model, ovvero Modello Digitale di Elevazione; appartengono alla famiglia dei DEM i DTM – Digital Terrain Model, ovvero Modello Digitale del Terreno – ed i DSM – Digital Surface Model, ovvero Modello Digitale delle Superfici. Nei DTM è riportata la morfologia dei luoghi al netto del costruito e della vegetazione; mentre nei DSM è riportata la superficie reale di un’area compresi, quindi, il costruito e la copertura vegetativa.

3d

Confronto tra DTM e DSM

Aprendo il Raster Calculator andiamoci a calcolare la differenza tra i nostri due DEM nel modo che segue.

3d

Operazioni per calcolare il raster differenza tra i DEM

Abbiamo così ottenuto un raster di differenza, un DEM, che comprende le sole quote del costruito e della vegetazione; non è presente quindi la superficie terrestre.

3d

Parte del raster di differenza tra DSM e DTM

Adesso andiamo a lavorare sulla CTR. Il primo passo è quello di unire i file che abbiamo a disposizione che, in questo caso, sono composti da due shapefile: una per la Municipalità 1 e l’altro per la Municipalità 10.

3d

Workflow necessario all’estrazione della linea di costa e dell’edificato

Dall’unione ed attraverso operazioni di select estraiamo la linea di costa e l’edificato. Usiamo quindi il tool lines to polygons per poligonalizzare l’edificato.

3d

Maschera del tool

Il risultato sarà il seguente, in cui ho omesso le operazioni necessarie per correggere la topologia delle linee affinchè si ottenessero poligoni utili al nostro scopo.

3d

A questo punto andiamo ad estrarci i centroidi dei poligoni dell’edificato usando il plugin realcentroids, successivamente creiamo un buffer a 10cm dai centroidi appena ottenuti.

3d

Centroidi dei poligoni dell’edificato

Ora con il tool di Zonal Statistic andiamo ad associare la quota, prelevata dal DEM di differenza tra DSM e DTM, al poligono di buffer appena creato.

3d

Zonal Statistic

Ora con un semplice join tabellare associamo il field della quota, presente nel vettore dei buffer, al vettore dell’edificato poligonalizzato e salviamo il tutto come nuovo shapefile.

3d

Siamo finalmente pronti ad usare Qgis2threejs per creare il nostro 3D dell’area! Se non lo abbiamo ancora fatto scarichiamo il plugin dal repository. Quindi scegliamo il DEM di riferimento nella sezione DEM, poi spuntiamo il tab dell’edificato ed in Height scegliamo il field che contiene l’altezza degli edifici.

3d 3d

Non ci resta che cliccare su Run ed il gioco è fatto! Il risultato sarà una pagina html che potrete caricare su un sito web o far processare da un apposito software di grafica 3D per migliorarne la qualità grafica.

Ecco il risultato della nostra elaborazione, immagine e 3D 😀

 

3d

Scorcio della costa posillipina

Di seguito la video guida 😉

Shapefile o Geodatabase: quale scegliere?

Può capitare di trovarsi di fronte a questo dubbio e non sapere quale “strada” scegliere tra uno shapefile ed un geodatabase. Cercherò brevemente di fare chiarezza ma prima di scendere nel dettaglio è opportuno dare una spiegazione di cosa sia un geodatabase; sarà utile sia a chi ci si imbatte per la prima sia a chi ne ha già avuto esperienza.

geodatabaseImmaginate le vostre elaborazioni geospaziali come fogli su una scrivania, un geodatabase può essere paragonato ad un raccoglitore da scrivania. Sono “strumenti” modulabili, si possono aggiungere vani da impilare su quelli che esistono già per aumentare la capienza del raccoglitore, è possibile inserire etichette in modo da effettuare una ricerca tra i fogli più rapida. E’ un ambiente sicuro che consente di avere tutti i fogli in una stessa posizione, subito a portata di mano.

Uno shapefile invece è uno di quei fogli che avete sulla scrivania. Quando sono troppi vi ritroverete con una scrivania invasa da pile di fogli indistinti e di cui non saprete cosa c’è riportato.

Scendendo un po’ più nel tecnico, un geodatabase, associa ad un database la componente spaziale portando in se quindi tutte le caratteristiche di un database.

Cosa è un database allora?

A database is an organized collection of data.[1] It is the collection of schemas, tables, queries, reports, views, and other objects. The data are typically organized to model aspects of reality in a way that supports processes requiring information, such as modelling the availability of rooms in hotels in a way that supports finding a hotel with vacancies. Fonte Wikipedia

Un databse è quindi un’insieme di dati raccolti in schemi, tabelle, query, report view ed altri oggetti. Tali dati sono organizzati mediante un modello logico che può essere di tipo relazionale oppure gerarchico. Un database inoltre deve essere organizzato con ridondanza minima, non devono esserci cioè dati inutilmente duplicati. Queste sono solo alcune caratteristiche di un databse che vengono sposate in pieno da un geodatabase.

E’ opportuno anche dire cosa è una DBMS. Spesso si confonde un (geo)database con il suo DBMS; il DBMS – DataBase Management System – non è nient’altro che un sistema per la gestione di un database, sia esso di tipo “tradizionale” o di tipo geografico. Ad esso va associato un client che interfacciandosi con il DBMS consente una serie di operazioni sul dato contenuto nel database e gestito dal DBMS. Un esempio di DBMS è Postgresql/PostGIS, mentre uno di client è QGIS.

Ritornando alla domanda di introduzione: è meglio scegliere uno shapefile o un geodatabase? La risposta è dipende! Dipende da quanti dati avete, il tipo di elaborazioni. Anche in base alla quantità di dati contenuta nel nostro vettore, e quindi non solo alla quantità di vettori, possiamo scegliere quale strada intraprendere; qui c’è un video molto interessate su un test di performance tra shapefile e geodatabase.

 

 

Preparazione dei dati per Time Manager

Oggi volevo realizzare un video con delle sequenze di dati temporali usando il plugin Time Manager. Per chi non lo conoscesse questo plugin di QGis permette di fare cose di questo tipo:

Volevo realizzare un video simile per il progetto della Mappa dei professionisti italiani del settore GIS ma ho incontrato qualche difficoltà. Questo plugin legge il campo temporale solo così configuratoCattura

Per cui mi sono armato di pazienza e mi sono messo a cercare un modo per risolvere il mio problema. Ho trovato questo video di PJ Hooker ma purtroppo ho ancora troppo poca dimestichezza con PostGis per cui mi sono messo a smanettare un po’ dietro l’input avuto da Salvatore Fiandaca.

COSA SERVE?

  • QGis;
  • Time Manager;
  • Excel o foglio di calcolo equivalente.

INIZIAMO!

Abbiamo bisogno di un vettoriale che ha il campo data come questo file:1

Così come è il file se lo importate in Time Manager avrete questo errore:

2

La soluzione più rapida che ho trovato è quella di salvare il vettoriale in formato csv, aprirlo in Excel (o foglio di calcolo equivalente) e lavorarci un po’ su. Prima di importare il file in Excel dovrete settare alcune impostazioni per farlo leggere correttamente3

A questo punto avrete la vostra tabella Excel piena piena di dati, individuate la colonna con la data ed impostate la cella in modo che sia in uno dei formati letti da Time Manager, in questo caso sarà yy-mm-dd

4

Salvate il csv

5

E reimportatelo in QGis seguendo la procedura che vi ho fatto già vedere nella parte iniziale di questo tutorial ed otterrete una schermata così

6-rif video xyz

Ora aprite la tabella attributi e potrete confrontare la nuova con la vecchia tabella

7

Adesso vi basta attivare Time Manager, impostarlo correttamente ed il gioco è fatto!

In questo video c’è la procedura integrale, spero sia utile e buona visione! 🙂

 

Il risultato che ho ottenuto con Time Manager? Guarda il video che segue realizzato creando una Heatmap dinamica 🙂

Una mappa per ogni esigenza grazie all’Opengeodata

In questa settimana ho messo on line la Mappa dei professionisti italiani dei GIS, grazie anche all’aiuto di Salvatore Fiandaca e di PjHooker, tutta basata sull’Opengeodata.

L’interesse da parte dei professionisti “gissari” verso questo piccolo progetto è stato alto, in meno di 24 ore sono passato da 28 adesioni a quasi 60 in tutta Italia – domani sera pubblicherò un nuovo aggiornamento con le 75 adesioni ricevute fin’ora – ci sono state anche delle critiche, poche, qualche buon consiglio ed indicazioni e tanto ma tanto entusiasmo ed interesse.

Questo post nasce da una riflessione che facevo ieri mentre con Salvatore cercavamo di risolvere un problema relativo alla geolocalizzazione degli intervistati.

Fino ad allora chi compilava il form inseriva la città di residenza, io importavo il form in un progetto QGIS fatto ad hoc e connesso a PostGIS, da PostGIS facevo il join che mi ha suggerito Salvatore ed ottenevo la posizione degli intervistati sui centroidi dei comuni di residenza. Il problema nasceva quando più persone hanno la residenza nello stesso comune; il risultato del join infatti è la sovrapposizione di più punti che rendono impossibile la corretta consultazione della mappa. In questi casi mi mettevo a spostare a mano i punti, avendo realizzato un buffer dei centroidi a 250 metri, posizionavo manualmente i punti sul confine del buffer. Questa operazione può essere accettabile se i punti sulla mappa sono pochi ma diventa un lavoraccio quando iniziano ad aumentare.

OpengeodataCercando in rete ho scoperto che è possibile collegare i form – solo ora mi accorgo di aver scritto un generico form in precedenza ma quello che ho usato io è un Google Form salvato su Google Drive – a Google My Maps. Così ho passato parte della giornata di ieri a fare una serie di test insieme con Salvatore ed ahinoi sono stati infruttuosi. L’idea era quella di esportare il kml da My Maps e caricarlo in QGIS in modo da tirare fuori il geojson da mettere online. Purtroppo Google, ad ora, consente di esportare i kml creati dai form solo come immagini; su Google Earth ti compare il marker del singolo intervistato ma il kml caricato in QGIS risulta essere solo una tabella senza attributi geografici. Almeno abbiamo capito che in alcuni casi Google prende e non restituisce.

La soluzione al problema ce l’ha data Geocode grazie ad una intuizione di Salvatore. Il nuovo form, già online, oltre alla città di residenza ora chiede anche l’indirizzo esatto e la regione. Grazie a Geocode ed all’Opengeodata ottengo uno shp che convertito in geojson mi consente di posizionare in maniera esatta gli intervistati sulla mappa in maniera automatica.

I contro, uno: se l’intervistato inserisce un indirizzo non corretto oppure omette un dato non compare sulla mappa. Sebbene chi risponde al form ha l’obbligo di compilare i campi con l’asterisco ogni tanto mi capita di vedere persone che aggirano l’obbligo inserendo caratteri a vuoto. I pro: ho ridotto sensibilmente i tempi di lavorazione dei dati e di pubblicazione, ho usato software Open Source non spendendo un euro, ho usato informazioni basate sugli Opengeodata ed in particolare su OpenStreetMap!

L’importanza dell’Opengeodata forse a molti ancora sfugge ma ci sono una infinità di servizi che possono essere sviluppati grazie a loro ed a prezzi abbordabilissimi sia per chi li fornisce che per chi li sfrutta. Un esempio, tutto made in Italy, è il videogioco basato sulla realtà aumentata Father.io, che ha superato del 651% l’obiettivo che si era posto su Indiegogo; il singolo player si sposta su una mappa ed indovinate quale mappa? Ovviamente la mappa di OpenStreetMap quindi basata su Opengeodata!

Purtroppo in Italia si è ancora affezionati al concetto, errato, che un prodotto generato o basato su software Open Source non è altrettanto buono quanto uno a pagamento. Ma si sta cambiando direzione per fortuna e forse non tutti se ne sono accorti!  Analizzando i dati di Google Trends, inserendo come chiavi di ricerca QGIS ed ArcGIS si nota come dall’inizio della crisi economica il programma ESRI abbia iniziato a perdere posizioni in Italia a favore di QGIS, con un sorpasso netto di quest’ultimo a cavallo tra il 2013 ed il 2014.

Un esempio pratico è il Geoportale della Regione Basilicata tutto basato su tecnologia Open Source ed indovinate quale è la regione italiana con il maggior numero di ricerche con chiave QGIS? Date un occhio alla mappa!

Studio sull’utilizzo di una infrastruttura ciclabile con QGIS

La scorsa settimana mi ero ripromesso di analizzare il flusso dei ciclisti sulla ciclabile del lungomare di Napoli in vista delle polemiche nate da un piccolo gruppo di persone che vorrebbero toglierla dall’attuale posizione; tra le motivazione si adduceva anche lo scarso utilizzo della stessa.

In questo piccolo articolo si farà una analisi geostatistica dell’uso di quella infrastruttura grazie ai dati forniti dall’Assessorato alle infrastrutture, lavori pubblici e mobilità del Comune di Napoli. Questi dati in particolare fanno riferimento all’European Cycling Challenge 2015 e mostrano gli spostamenti dei partecipanti al challenge, spostamenti monitorati grazie all’applicazione ufficiale della competizione.

I dati su cui si è lavorato sono in formato csv e riportano l’insieme dei punti traccia dei singoli spostamenti.

ciclabile qgis

La prima cosa che è stata fatta quindi è importare il csv in QGIS 2.8 e generare lo shapefile con cui fare le nostre valutazioni.

ciclabile qgis

La domanda a cui si è voluto rispondere è la seguente: la ciclabile del lungomare è realmente utilizzata?

A sinistra vedete uno scorcio della nuvola di punti. Così come è non è possibile fare alcuna valutazione per cui si sono rese necessarie successive elaborazioni. Le elaborazioni che sono state fatte sono la realizzazione di una mappa di calore (heatmap) e, grazie alle query spaziali, si è cercato di rispondere alla domanda di cui sopra oltre che andare a fare qualche indagine ulteriore come l’individuazione del viaggio più breve e di quello più lungo.

Per poter generare una mappa di calore corretta i dati sono stati resi congruenti allo spirito del challenge andando ad eliminare, grazie ad operazioni di selezione sugli attributi, i viaggi superiori a 25km (limite massimo ammesso dal challenge che è mirato ai ciclisti urbani), i viaggi effettuati su autostrada e tangenziale (è evidente che qualche buontempone ha lasciato attiva l’applicazione quando transitava su infrastrutture stradali con mezzi diversi dalla bicicletta), i viaggi lunghi meno di 500m ed i soli punti traccia presenti sulle infrastrutture ferroviare. Un dato interessante è infatti stato quello relativo all’intermodalità bici-treno che è stata anche molto usata da chi ha partecipato alla competizione. Una volta effettuata questa pulizia sono stati tirati fuori i primi dati: poco più di un migliaio sono stati i viaggi effettuati ed in media sono stati percorsi circa 6km a viaggio.

A pulizia effettuata è stata possibile generare la heatmap.

ciclabile qgis

Heatmap: quadro generale

ciclabile qgis

Heatmap: Vomero, zona alta

ciclabile qgis

Heatmap: zona stazione e porto

ciclabile qgis

Heatmap: Posillipo, zona alta, e lungomare

ciclabile qgis

Heatmap: particolare del lungomare

Come si può notare la densità di punti è alta/altissima sia sulla stessa ciclabile, abbiamo quindi una prima risposta ma non basta, sia in altre zone cittadine come quelle alte (spesso si sente dire che Napoli non è adatta alla bicicletta perchè sono presenti le colline del Vomero e di Posillipo) e la zona stazione centrale/Corso Umberto I; proprio su quest’ultimo asse stradale è in corso di realizzazione una nuova ciclabile.

La sfida è quantificare il flusso di ciclisti che ha interessato la ciclabile.

Siccome nè sul sito della Città Metropolitana di Napoli e nè su quello del Comune di Napoli è disponibile un grafo stradale, mi sono rivolto a OpenStreetMap. Ho potuto scaricare con licenza Creative Commons Attribuzione – Condividi allo stesso modo 2.0 (CC-BY-SA) il grafo stradale della città di Napoli che contiene anche il dato relativo al nome della strada visualizzata.

ciclabile qgis

Grafo stradale di OpenStreetMap

Grazie a quel grafo, ripulito da autostrade, superstrade e tratti ferroviari, ho potuto portare a termine le elaborazioni che seguono e dare una risposta alle domande di cui sopra.

La prima cosa che ho fatto è realizzare un buffer del grafo stradale, ipotizzando che tutte le strade di Napoli siano larghe 3m; è una approssimazione indubbiamente ma è utile a questa analisi.

Successivamente ho effettuato uno spatial join tra il buffer creato in precedenza e la nuvola di punti traccia, quindi ho lanciato una query chiedendo di visualizzare solo le strade con una densità di punti maggiore a 5000 ed il risultato è stato che la ciclabile, tutta nella sua interezza da via Partenope a Bagnoli, ha avuto il join count maggiore, circa 18.000 punti. Come si può vedere quindi anche dalle immagini che seguono la risposta alla prima domanda è si, non solo la ciclabile del lungomare è usata ma è tutto il suo percorso.

Questo slideshow richiede JavaScript.

Inoltre si può individuare il viaggio più breve, poco più di 500m

ciclabile qgis

Ed il viaggio più lungo, poco meno di 25Km

ciclabile qgis

Possiamo metterci una pietra sopra: la ciclabilità a Napoli è possibile, la ciclabile è una utile infrastruttura che pur con tutti i suoi limiti è migliorabile, non va eliminata ma va anzi ramificata quanto più possibile.

Di seguito trovate un interessantissimo video su come è possibile animare una mappa di calore rendendola dinamica, appena potrò voglio proprio riprodurre la stessa mappa statica che avete visto in questo articolo in una dinamica.

 

Al link che segue è possibile scaricare la pubblicazione presentata alla TIS2017

SCARICA LA PUBBLICAZIONE

Usare i file Lidar con QGis: articolo + esercitazione

LIDAR (acronimo dall’inglese Light Detection and Ranging[1] o Laser Imaging Detection and Ranging) è una tecnica di telerilevamento che permette di determinare la distanza di un oggetto o di una superficie utilizzando un impulso laser, oltre a determinare la concentrazione di specie chimiche nell’atmosfera[1] e nelle distese d’acqua.

Definizione di Wikipedia

In questi giorni mi è capitato di dover lavorare su dei file Lidar, è stata la prima volta che mi sono imbattuto in questo tipo di file e innanzitutto ringrazio i ragazzi di GIS ITALIA per il preziosissimo supporto, senza di loro forse ancora stavo ad impazzire per capire come sfruttarli al meglio.

Viste le difficoltà che ho incontrato ho deciso di scrivere questo articolo che magari potrà tornare utile a qualcuno.

Questo articolo sarà in effetti un tutorial con annessa esercitazione; infatti, oltre a descrivere il procedimento che ho eseguito, inserirò alcuni dei file di base che potrete usare per ripercorrere il procedimento e magari fissarlo meglio in testa.

I file di output della strumentazione LiDAR sono generalmente nuvole di punti del tipo, ad esempio, “.xyz” parte di loro potete scaricarli da qui: DOWNLOAD FILE LIDAR

Ho usato l’ultima versione di QGis LTR per questo lavoro, potete scaricarla da qui.

Iniziamo!

I file che dobbiamo caricare, come dicevo prima, hanno l’estensioni .xyz per cui non possiamo caricarli con un semplice “Add layer” ma ci toccherà usare una strada un po’ diversa. Se provate ad aprire con il blocco note di Windows uno di questi file, noterete che è composto da 3 colonne: le prime due riportano le coordinate e la terza l’altezza. In pratica questi file sono composti da un insieme di punti, ognuno con coordinate proprie ed altezza. I file che ho usato hanno in se solo queste informazioni ma al loro interno se ne possono immagazzinare molte altre come densità, esposizione e tutto ciò che si riesce a “captare” con la tecnica LiDAR.

Detto ciò il primo passo da fare è proprio guardare uno di quei file per “capire come è fatto dentro”, in questo modo ci risulterà semplice capire il procedimento che andrò a descrivere. Con QGis aperto andate in Layer>Add Layer>Add Delimited Text Layer, come riportato in figura.

lidar

Ora viene la parte delicata, fate molta attenzione! Cliccato su Add Delimited Text Layer avrete davanti a voi la seguente schermata:

lidar

Andate su Browse, scegliete il file e caricatelo così come viene spiegato nella prossima schermata.

lidar

Vi sarete accorti che questo tipo di file vanno caricati uno per uno, è una delle parti noiose di questa operazione… Caricato il file avrete difronte a voi la schermata che segue:

  • 4
  1. selezionate Regular expression delimiter, come avrete potuto notare c’è dello spazio tra le colonne che definiscono i singoli file;
  2. andate in Expression ed inserite gli spazi presenti tra le colonne, in questo caso sono due ma in altri file su cui ho lavorato sono meno o anche più. Vi dicevo di studiarvi il file proprio per capire come sono delimitate le colonne;
  3. ora bisogna indicare quali sono le colonne che portano con se longitudine e latitudine, se avrete inserito gli spazi correttamente potrete sceglierle dal menù a tendina che compare;
  4. importante, no, IMPORTANTISSIMO! Togliete la spunta da First record as field names. Questo perchè in questo caso i field non hanno nome e fin dal primo riportano coordinate ed altezza, se non togliete quella spunta perderete il primo record, il primo punto in elenco in pratica non verrà riportato. Ora potete cliccare su OK.

Vi verrà richiesto di inserire il sistema di riferimento come riportato in seguito.

lidar

Fatto ciò avrete la vostra bella nuvola di punti in QGis, procedete con i passaggi precedenti per caricare tutti i file che vi ho passato in modo da averli tutti attivi per le prossime operazioni.

Che ci facciamo con questi file?

Possiamo farci una bella interpolazione per estrarci le curve di livello, un hillshade, uno slope, un relief e tanto altro ancora! Come prima cosa facciamo una interpolazione usando l’apposito plugin, vi comparirà la schermata che segue:

lidar

  1. scegliete il layer;
  2. indicate la colonna con l’attributo altezza;
  3. aggiungete il file(se ne può aggiungere più di uno ripetendo i passaggi 1 e 2);
  4. indicate le dimensioni del singolo pixel. Ho inserito 1×1 perchè i file che ho usato hanno il passo di 1m, cioè i punti contigui distano tra loro 1m; in pratica tutto ciò che è più piccolo di 1m non è stato “letto” dallo scanner. Ora cliccate su OK e vi comparirà quello che segue:

lidar

Questa è una porzione di Nisida opportunamente tematizzata, ora unite tutti i LiDAR per ottenere quello che segue:

lidar

Ora proviamo ad estrarre le curve di livello. Andate in Raster>Extraction>Countour, definite la cartella in cui salvare lo shape ed inserite la distanza tra le curve, 1m in questo caso, spuntate Attribute name e cliccate su OK.

 

lidar_9lidar

 

Otterrete un file così:

lidar

Come vedete il file risulta essere un po’ “sporco” in mare, questo è dovuto ad alcuni errori dello scanner causati dalla rifrazione delle onde oppure, come noterete, in alcuni casi sono presenti i contorni delle barche.

Se volete potete divertirvi ad ottenere isoipse a distanze superiori oppure potete sbizzarrirvi con i vari tools di elaborazioni raster di QGis, qui di seguito un po’ di elaborazioni che ho fatto:

lidar

Isoipse a 5m

Hillshade

Hillshade

lidar_14

Relief

lidar_15

Slope

 

Tutto questo mi è servito per rielaborare in 3D l’area di Posillipo, questo che segue è il video che ho realizzato con ArcScene dopo aver ottenuto la TIN dell’area. Spero che questo articolo vi sia stato utile.


NB: i dati LiDAR utilizzati in questo articolo sono liberamente scaricabili dal SIT della Città Metropolitana di Napoli, sezione OpenData. I file, originariamente in formato grid, sono stati convertiti in nuvola di punti per scopi didattici e per renderli quanto più simili possibili all’output di una strumentazione LiDAR.

Come georeferenziare un raster che non ha punti noti

In questi giorni mi sono trovato nella situazione di dover georiferire un pdf. Purtroppo il pdf di partenza non aveva punti noti, quindi una volta trasformato in raster, come spiego qui, mi sono trovato difronte al problema di come fare a georeferenziarlo. Poco male!

Cosa ci serve per questa semplice operazione:

  • raster senza punti noti;
  • cartografia georiferita dell’area di interesse;
  • QGIS o software similare;
  • pazienza (conditio sine qua non!);
  • attenzione (conditio sine qua non!).

Il processo per georeferenziare un raster è abbastanza simile nei vari programmi presenti in commercio. In questo piccolo tutorial userò QGIS ma più che il programma è importante conoscere il metodo ed il metodo che userò è quello dei GCP – Ground Control Points.

Avviamo QGIS, carichiamo uno shp che riproduce l’area a cui fa riferimento il raster e attiviamo la funzione “Georeferencer”

georeferenziare un raster

Si aprirà una finestra come questa:

2

A questo punto caricate il raster da georiferire andando o in File > Open raster o cliccando sull’icona a scacchiera in alto a sinistra. A raster caricato scegliete un’area e fate uno zoom in modo da inserire il primo GCP. Io in genere inserisco 5 – 10 punti ben distribuiti su tutto il territorio rappresentato dal raster, come riferimenti conviene prendere gli edifici ma fate attenzione a controllare che l’edificio che avete scelto sul raster sia presente nello shape file.

add_point

Andate adesso o in Edit > Add point oppure cliccate sull’apposita icona presente a destra dell’icona con l’ingranaggio e inserite il primo punto.

Cattura

Vi comparirà una finestra come quella di sopra, cliccate su “From map canvas“, individuate il punto che avete scelto del raster sullo shape file, selezionate il punto e quindi cliccate su “Ok“. Avrete un risultato come quello che segue:

Cattura

Come vedete nella parte bassa dell’applicazione è stato aggiunto un punto. Iterate questo procedimento per altre 5 – 10 volte in modo da ottenere una buona distribuzione di GCP.

Cattura

Ora andate in Setting > Transformation setting, si aprirà una finestra come quella che segue in cui potete andare ad inserire i dati necessari alla georeferenziazione. Non mi soffermerò sui vari tipi di trasformazione che varranno analizzati in un altro articolo. Lo shape su cui ho preso i riferimenti per il raster ha come SRS il WGS84/UTM zone 33N, cioè l’EPSG 33633; ho quindi selezionato il sistema di riferimento e ho cliccato su “Ok” come riporta l’immagine che segue.

Cattura

Abbiamo quasi finito. Non ci resta che cliccare su File > Start georeferencing oppure sull’icona con la freccia verde presente in alto a sinistra. Verrà eseguita la georeferenziazione ed il risultato sarà quello che segue:

Cattura

A questo punto chiudete pure Georeferencer, a voi la scelta di salvare o meno i GCP ottenuti, se dovete lavorare di nuovo sul raster vi conviene tenerli così non perdete tempo a georiferire di nuovo il tutto.

Come importare un dwg in QGis

Dovevo rieseguire questa operazione che non effettuavo da un po’ e siccome non ricordavo se e come fosse possibile mi sono messo alla ricerca di informazioni in rete. Leggendo qua e là mi è tornato in mente il metodo più sbrigativo e semplice per effettuare l’import e ho così deciso di buttare giù questo piccolo articolo sperando che possa essere d’aiuto a chi come me si scervellava da un po’ sul come si potesse fare.

Innanzitutto c’è da dire che QGis non permette l’importazione di dwg poichè i dwg sono un formato proprietario di Autodesk ma è possibile usare i dxf. Quindi come risolviamo il problema? Acquistiamo una versione lite di AutoCAD o scarichiamo una demo? Poco pratico secondo me. La via più veloce, semplice ed economica è l’accoppiata QGis e DraftSight. DraftSight è un programma simile ad AutoCAD ma totalmente gratuito ed ampiamente sfruttabile in ambito professionale.

La prima cosa da fare è scaricare DraftSight. Terminati tutti i passaggi necessari per l’installazione avviate il programma cliccando direttamente sul dwg in questione.

dwg in qgis

dwg aperto in DraftSight

Ora andate in File/Salva con nome oppure usate la combinazione di tasti CTRL+MAIUSC+S, oppure ancora vi portate nella barra di comando e digitate _SAVEAS e vi si aprirà la classica finestra di salvataggio dei file. Dal menù a tendina scegliete l’estensione con cui volete salvare il vostro file; .dxf in questo caso.

dwg in qgis

A questo punto non vi resta che avviare il caro QGis, fare un drag&drop e seguire le indicazioni che vi compaiono a video, io ho scelto di aprire tutti i vettori presenti nell’ex dwg.

dwg in qgis

Ed ecco quindi che siete riusciti ad importare il vostro dwg, oramai dxf, in QGis! Durante le fasi di apertura del dxf comparirà un messaggio in cui QGis ci dice che imposterà un sistema di riferimento di deault, il WGS84, per cui se non dovesse essere quello giusto per voi ricordatevi di impostare quello che più vi fa comodo.

dwg in qgis

dwg aperto in QGis