Introduzione ai GIS GRASS e QGIS (dati supportati e funzionalità) Roberto Antolín Politecnico di Milano Cos'è GRASS? “Geographic Resources Analysis Support System” GIS sviluppato per: trattamento di dati, analisi d'immagini, modellizzazione spaziale, e visualizzazione di dati. Software Libero e codice aperto (FOSS) http://grass.itc.it 2 Tipi di dati supportati Raster 2d e analisi d'immagini 3d voxel per dati volumetrici Dati vettoriali 2d/3d con topologia Dati multidimensionali 3 Geometria e topologia Geometria è veramente 3D Punti Centroidi Linee Bordi ('boundary') Aree* = bordi + centroide Faccia* = area 3D 'Kernel'* = centroide 3D Volume* = faccia + kernel Linea Area (*) Non i tutti i GIS Faccia 4 Interoperabilità Proj.4: Programma proiezioni Ogr/gdal: Libreria conversioni dati Database: PostgreSQL/PostGIS MySQL SQLite ODBC: PostgreSQL, MySQL, ORACLE, MS-Access, MS-SQL Server, ecc. QGIS R-stats 5 Struttura dei dati DATABASE: Contiene tutti i dati di GRASS Tutti proietti in GRASS sono organizzati in “Location” con seguenti sottocartelle chiamate “Mapset” LOCATION: Contiene tutti i dati spaziali di una regione geografica. MAPSET: Utilizzato per l'organizzazione dei dati e distribuirli secondo utenti, gruppi di utenti o sotto-regioni PERMANENT: Mapset che contiene i dati geografici della location a cui appartiene. 6 Struttura dei dati Database di GRASS Location Mapset Geometria ed attributi 7 Struttura raster Memorizzati in matrice numerica in cui ogni elemento rappresenta un pixel con valori interi oppure virgola mobile I diversi dati di una carta raster si distribuiscono in più file residenti in sottodirectory tematiche del mapset: cat: contiene il file con l'elenco delle categorie cell – fcell: contiene i file delle matrice numerica in formato binario cellhd: contiene i file con l'intestazione della carta colr: contiene i file con l'informazione sui colori della carta hist: contiene i file con l'informazione storica della carta: autore, data, ecc... 8 Struttura vettoriali Ogni carta vettoriale è contenuta in una directory (all'interno della cartella 'vector') con lo stesso nome della carta. I diversi dati si distribuiscono in diversi file: cidx: file che contiene l'indice per gestire la topologia coor: file binario con i dati vettoriali e le categorie associate dbln: contiene l'informazione sul tipo di connessione al DB (driver, database, tabella, colonna, ecc...) head: contiene l'intestazione del vettoriale hist: contiene i file con l'informazione storica della carta: autore, data, ecc... topo: file binario con la topologia 9 Database in GRASS Moduli Geometria Attributi Librerie vettoriali Librerie vettoriali Nativo ESRI Shapefile, Arc/Info, DGN, SDTS, TIGER/Line, MapInfo, GML, ecc. OGR PostgreSQL PostGIS ODBC MySQL PostgreSQL PostgreSQL File MySQL MySQL RDBMS dbf DBMI ecc... Oracle Oracle File 10 Come cominciare con GRASS? Schermata di inizio di GRASS (modo grafico) 11 Come cominciare con GRASS? Schermata di inizio di GRASS (modo testo) 12 Creare una nuova location Mediante un file di dati georeferenziati Codici EPSG 13 File EPSG 14 Creare nuova location 15 Creare nuova location 16 Creare nuova location 17 Creare nuova location 18 Creare nuova location 19 Creare nuova location 20 Creare nuova location 21 Creare nuova location 22 Creare nuova location 23 Struttura dei comandi prefisso funzione tipo di commando esempio d.* display visualizzazione d.rast: visualizare raster db.* database gestione di database db.select: ricavare valori da un DB g.* general opzioni generali g.rename: rinominare un i.* imagery proccessamento immagini i.smap: classifica immagini ps.* postscript creazioni di carte in postscript ps.map: creazione di una mapa r.* raster proccessamento di raster r.buffer: creazione di un orlo intorno un oggetto r3.* voxel proccessamento di voxel r3.mapcalc: algebra raster 3d v.* vector proccessamento di vettoriali v.overlay: intersezioni di mape 24 Visualizzazione ed interfaccia utente Linea di comando - Monitor GIS manager (predefinita) NVIZ QGIS JavaGRASS (JGRASS) 25 Linea di comando - Monitor Per visualizzare una carta si deve aprire un monitor Si possono aprire più di uno Quando si lancia un comando si visualizza nel monitor corrente Avviare un monitor d.mon x0 Cambiare monitor corrente d.mon select=x0 Cancellare il contenuto d.erase 26 GIS manager L'altro visualizzatore di GRASS: gis.m & Visualizzare zoom in & out Cancellare zoom a... Agiungere legenda agiungere vettoriale agiungere raster Layer vettoriali e raster Monitor Opzioni di visualizzazione 27 NVIZ NVIZ include supporto a raster, vettoriali, volumi, animazioni, profili, ecc... 28 QGIS: http://www.qgis.org Potente visualizzatore geospaziale che provvede supporto a GRASS. 29 JGRASS: http://www.jgrass.org/cgi-bin/moin.cgi/MainPage 30 Cos'è una 'region' Si intende per regione (oppure 'region') a ciò che fornisce l'informazione su la risoluzione e le dimensioni della carta. predeterminata: definita nella 'location' indipendente di ogni carta corrente: modificata dall'utente mediante zoom, cambio risoluzione, ecc... I moduli vettoriali lavorano su tutta la carta I moduli raster lavorano soltanto sulla regione corrente Come modificare una regione: g.region: Cambia la risoluzione, le coordinate e fissa la regione a quella predefinita. d.zoom: Permette fare zoom 31 Importando i dati in GRASS Sempre importa la carta complessiva Supporta molti tipi di formati raster e vettoriali Vettoriali (v.in.*) OGR: ESRI Shapefile, UK .NTF, SDTS, TIGER, S57, MapInfo File, DGN, VRT, AVCBin, REC, Memory, CSV, GML, ODBC, Pgeo, PostgreSQL/PostGIS, OGDI, ecc... ArcInfo E00 ASCII GPS DXF Raster (r.in.*) GDAL: ArcInfo, CEOS, DOQ, DTED, ENVI, Envisat, Erdas Img/LAN, FAST, (Geo)TIFF, HDF4, SAR, SDTS, ecc... ASCII Bin: binary, BIL, GMT, ecc... Matlab file SRTM 32 Importare vettoriali con OGR http://www.gdal.org/ogr 33 Importare: v.in.ogr Esempio di importazione di un shape file ESRI v.in.ogr \ dsn=”/home3/roberto/grassdb/lago_como/como/vettoriali/strade.shp” \ output=strade snap=-1 min_area=0.0001 input output 34 Visualizzare vettoriali: d.vect Visualizzare: d.mon x0 d.vect strade d.vect comuni d.vect laghi d.vect urbaree 35 Digitalizzare GRASS ha il suo modulo per digitalizzare g.region rast=strade d.vect strade digitalizzare v.digit map=strade -n 36 Network analysis Metodi: Trovare il percorso minimo: v.net.path Connessione ottimale fra nodi: v.net.steiner Calcolare iso-distanze: v.net.iso Problema del 'travelling salesman': v.net.salesman ecc... Permettono lavorare con valori su una tabella di attributi aperto chiuso 37 Network analysis Percorso minimo: d.vect strade d.path strade # oppure # v.net.path 38 Comunicazione con DB Permette importare da un db v.in.db Permette di leggere un vettoriale da una db in modo 'read-only' v.external Permette fare delle 'query' v.select Permette di gestire la tabella di attributi v.db.connet: collega una carta ad una tabella di attributi v.db.addcol, v.db.dropcol: crea/ancella tabella di attributi v.db.addtable, v.db.droptable: crea/cancella tabella di attributi 39 Filtraggio di dati LiDAR GRASS permette il filtraggio di dati LiDAR v.outlier v.lidar.edgedetection v.lidar.growing v.lidar.correction 40 Metodi di interpolazione C'è la possibilità di creare raster da carte vettoriali mediante: Inverso della distanza pesata in 2D: v.surf.idw Spline regolarizate con tensione 2D (con cross validazione): v.surf.rst Spline regolarizate con tensione 3D (con cross validazione): v.vol.rst Spline bilineari e bicubiche con regolarizate di Tychonov: v.surf.bspline Densità del kernel 2D/3D: v.kernel Kriging, modelli predittivi (mediante R-Stats) 41 Importare raster con GDAL http://www.gdal.org/gdal 42 Importare: r.in.dgal 43 Lavorando con raster Visualizzare raster d.rast como_gtiff Carte di aspetto e pendenze r.slope.aspect como_gtiff 44 Algebra con carte raster GRASS lavora in modo algebraico per ogni pixel Si può filtrare DSM r.mapcalc "dsm_400 = if(como_gtiff < 400.0, como_gtiff, null())” Si possono sostrarre due raster r.mapcalc “diff = como_dsm – como_dtm” Si può fare un filtro r.mapcalc “filtro = (diff[0,0] + diff[1,0] + diff[-1,0] + diff[0,1] \ > + diff[1,1] + diff[-1,1] + diff[0,-1] + diff[1,-1] + diff[-1,1])”” Il suo utilizzo può essere itterativo: Si lancia il comando e poi si lavora si specifica l'espresione di seguito al comando si utilizza un file di testo: r.mapcalc < nome_file 45 Algebra con carte raster Operatori logici Funzioni matematiche 46 Analisi raster: altre funzionalità Analisi di DEM: Riempimento di aree di depressione: r.fill.dir Calcolo di linee di flusso: r.flow Tracciamento di flusso: r.drain Analisi di bacini fluviali: r.watershed e r.terraflow Superfici di costo: r.cost Energia: Calcolo della posizione astronomica del sole e calcolo di umbre: r.sunmask Calcolo della quantità di energia: r.sun Linea di visione: r.los Metodi di interpolazione: Da curve di livello 2D: r.surf.contour Bilineare: r.bilinear 47 Esempio Visualizzazione con NVIZ: 48 Processamento di volumi GRASS può lavorare e visualizzare con “volumi” (3D voxel) Funzionalità Importazione/esportazione 3D Interpolazione con spline regolarizzate 3D con tensione Algebra 3D Visualizzazione di volumi con NVIZ: Iso-superfici e profili 49 Un po' di aiuto... Aiuto on-line in HTML g.manual entry=<commando> & Aiuto on-line in formato MAN g.manual -m entry=<commando> 50 Chi utilizza GRASS? 51 Cos'è QGIS? 'Quantum GIS' è un visualizzatore di dati geospaziali: Qualsiasi tipo di formato fornito da GDAL/OGR Formato GRASS Basi di dati WMS (Web Map Service) Non fornisce nessuna funzionalità di analisi L'analisi si fornisce mediante il software GRASS GIS 52 GRASS e QGIS Avviare QGIS dalla linea di comando di GRASS qgis 53 QGIS: interfacia di GRASS modulo di GRASS 54 QGIS: importando da GRASS 55 Visualizzare formato GRASS vettoriale GRASS raster GRASS 'shaded' GRASS 56 Altri tipi di dati Visualizzare diversi layer 57 Altri tipi di dati Vettoriali Raster PostgreSQL/PostGIS Web Map Service 58 Altre funzionalità: GRASS Toolbox di GRASS 59 Altre funzionalità: GRASS Importare/esportare Buffer vettoriale estrazioni di oggeti Gestione di geometria triangolazione 'delaunay, diagrami di 'voronoi' e convex-hull ecc... 60 Altre funzionalità query tabella di attributi 61 Altre funzionalità 62 Grazie tante per l'atenzione! Roberto Antolín Politecnico di Milano roberto antolin at polimi it http://geomatica.como.polimi.it Licenza di questo documento Questo lavoro ha licenza 'Creative Commons License' http://creativecommons.org/licenses/by-sa/2.5/deed.en “Introduzione ai GIS GRASS e QGIS” © 2007 Roberto Antolín, Italia http://geomatica.como.polimi.it “GIS Seminar: The GRASS GIS software” © 2006 Markus Neter, Italia http://mpa.itc.it/markus/ 64