GRASS GIS generalità ed approfondimento Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Università degli Studi di Trento GRASS versione 6.2 I sistemi di trattamento delle informazioni territoriali Free Software/Open Source Data viewer GIS Analysis DBMS WebGIS Interoperability QGIS Thuban OpenEV GRASS GRASS/R-stats JGRASS JUMP uDIG PostgreSQL/PostGIS MySQL UMN Mapserver GeoServer GDAL/OGR PROJ4 Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale GRASS GRASS GIS (Geographic Resources Analysis Support System) è un Geographic Information System (GIS) o Sistema Informativo Territoriale (SIT) Ha funzionalità per la gestione di ●raster; ●vettori (con topologia); ●image processing; ●gestione di oggetti grafici. E' distribuito sotto GNU General Public License (GPL). Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale La storia di GRASS GRASS ha subito un continuo sviluppo dal 1982 (in realtà è stato distribuito al pubblico solo nel 1989 ma la vera grande diffusione l’ha avuta con l’avvento di Internet negli anni 90) ed ha coinvolto un gran numero di Uffici federali degli USA, Università e Compagnie private: NASA, NOAA, USDA, the National Park Service, the U.S. Census Bureau, USGS. Lo sviluppo del progetto GRASS e gli aggiornamenti che via via si realizzavano sono stati portati avanti dall’ideatore originario lo U.S. Army Corps of Engineers e in particolar modo dal CERL (Construction Engineering Research Laboratory) Champaign, Illinois fino alla versione 4.1 nel 1992, alla quale aggiunse cinque aggiornamenti e varie patches fino al 1995. Dal 1997 il progetto è stato portato avanti dal GRASS Research Group della Baylor University, Waco (Texas), U.S.A. che ha rilasciato la versione la 4.2. Sotto il coordinamento dell’USA-CERL e di altri siti di sviluppo, il GRASS Research Group ha continuato ad aggiornare GRASS finché ha passato il testimone ad un gruppo di ricercatori dell’Università di Hannover coordinato da Markus Neteler che ha curato lo sviluppo della versione 5. Attualmente lo sviluppo continua ad essere coordinato da Neteler presso l’ITC di Trento ed è uscita la versione 6.0. Continua inoltre lo sviluppo e la versione più aggiornata è la 6.1 che useremo nel corso. A causa della repentina crescita e popolarità di GRASS, il “Development Team” è diventato un team internazionale che conta sviluppatori in tutto il mondo. Lo sviluppo sta producendo nuove versioni di GRASS, correzione dei bugs, nuovi manuali e documentazione. Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Diffusione di GRASS GRASS si è diffuso nell'ultimo decennio soprattutto in ambito accademico ma la potenza e flessibilità del sistema e nelle ultime versioni, la migliorata facilità di installazione e di d’uso e ancora l’esistenza di versioni di Linux di facile installazione ed utilizzo l’hanno reso appetibile anche per gli utilizzatori professionali e le P.A. Agli inizi GRASS era disponibile solo in ambiente Unix o Unix like significativamente diffuso in ambito accademico ed era di indubbio interesse per la possibilità di intervenire direttamente sul codice sorgente. I primi utilizzatori professionali e delle P.A. non conoscevano Unix (a parte gli utenti ARC/INFO) e necessitavano invece di strumenti in grado di svolgere un numero limitato di operazioni in ambienti più conosciuti come Dos o Windows. La disponibilità del codice sorgente recava loro pochi vantaggi (non erano in grado di manipolarlo od anche soltanto di interpretarlo); la documentazione disponibile era in lingua inglese e non c’erano tutorial; la limitata diffusione dei collegamenti internet spesso non consentiva di consultare la già allora nutrita mailing list degli utilizzatori di GRASS; la limitata velocità di collegamento rendeva impensabile scaricare i file di GRASS con i collegamenti allora esistenti. Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Storia di GRASS e release 1989: Civil Internet 1994: WWW born GRASS 1.0 1984 U.S. Army (19841995) GRASS 4.1 GRASS 4.2 1993 Ma n u 1997 al 1998 co de m an a Marco Ciolli - Paolo Zatelli 1999 ge m en 1997 Universit y of Baylor GRASS 4.2.1/4.3 1998 Universit ät Hannover PD GRASS 5.0 GRASS Development Team (1997 oggi) 2001 ITC-irst GP L' e d t Au to m at Dipartimento di Ingegneria Civile e Ambientale GRASS 5.1/5.7 ed co 2001 de m an GRASS 6.0 ag em en t( CV S) 2005 GRASS 6.2.1 2006 Marco Ciolli - Paolo Zatelli Costo di GRASS Useless, but interesting. GRASS 5.0.3: Total Physical Source Lines of Code (SLOC) = 772,827 Development Effort Estimate, Person-Years (Person-Months) = 215.53 (2,586.41) Total Estimated Cost to Develop = $ 29,115,753 GRASS 5.3.0: Total Physical Source Lines of Code (SLOC) = 918,816 Development Effort Estimate, Person-Years (Person-Months) = 258.48 (3,101.71) Total Estimated Cost to Develop = $ 34,916,572 GRASS 5.7.0/6.0: Total Physical Source Lines of Code (SLOC) = 333,939 Development Effort Estimate, Person-Years (Person-Months) = 89.31 (1,071.67) Total Estimated Cost to Develop = $ 12,064,022 modificato da: http://grass.itc.it/pipermail/grass5/2004-August/015127.html Linux Kernel 2.4.27: Total Physical Source Lines of Code (SLOC) = 3,511,066 Development Effort Estimate, Person-Years (Person-Months) = 1,056.19 (12,674.25) Total Estimated Cost to Develop = $ 142,676,539 Debian 2.2 (Potato) [some time in 2001]: Total Physical Source Lines of Code (SLOC) = 55,201,526 Development Effort Estimate, Person-Years (Person-Months) = 14,005.78 (168,069.41) Total Estimated Cost to Develop = $1.9 billion Dipartimento di Ingegneria Civile e Ambientale GRASS e sistemi operativi GRASS è sviluppato in ambiente UNIX (Linux) e portato su altri sistemi, tra cui: ●UNIX-like (Solaris, IRIX, Linux, BSD) con interfaccia grafica e terminale in XWindows; ●MS-Windows (NT/2000/XP con Cygwin); ●MacOS X; ●Java (JGRASS, sperimentale). Le differenze riguardano soprattutto l'efficenza e stabilità dei sistemi operativi a prescindere da GRASS. Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Binario o sorgente? GRASS è distribuito come binario linux (in vari formati: Debian-.deb, SuSE-.rpm),MacOSX, MS Windows/Cygwin oppure come sorgente. ● Vantaggi Svantaggi Binario Facilità e velocità di installazione Usa parametri standard, è generato periodicamente Sorgente Possibilità di personalizzazione, Si deve configurare e disporre uso della versione più aggiornata delle librerie development Per utenti non esperti è consigliabile il binario precompilato, per chi è in grado di configurare e personalizzare il codice può essere meglio utilizzare il sorgente. Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Live CD E' possibile sperimentare l'utilizzo di GRASS sul proprio computer senza installare nulla, utilizzando un live CD per: Linux ●GRASS ITA DVD 1.0 The GRASS reference Italian DVD: fornito in questo corso ●GIS Knoppix: http://www.gisix.fukengrueven.com/ ●GISIX: http://www.geomancers.net/projects-int.html ●Freeduc-cd: http://www.ofset.org/freeduc-cd ●AIT StarCD: http://www.star.ait.ac.th/~yann/starcd/ ●GEOLivre Linux: http://www.geolivre.org.br/ ●Geomorphix: http://www.geomorphix.org/modules/news/ Windows XP 1. the XliveGRASS-CD: GRASS 6.0 (dati su HD o penna USB) https://www.geographie.uni-freiburg.de/~mlechner/xlivegrass/ 2. the CygwinGRASS-Install-CD: installa GRASS 6.0 da CD https://www.geographie.uni-freiburg.de/~mlechner/CygwinGRASS/ Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli GRASS sotto Linux Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli GRASS sotto Windows/Cygnus Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli GRASS sotto Mac OS X Dipartimento di Ingegneria Civile e Ambientale Requisiti di sistema Standard PC o workstation con sistema operativo UNIX-like con X-Windows (Openwin, KDE, GNOME, fvwm2, ...), es: ●Linux (Intel o PowerPC) ●iPAQ/Linux ●Solaris (SPARC o Intel) ●HP-UX (HP PA-RISC) ●FreeBSD (Intel, Alpha AXP) ●Mac OS X (PowerPC) o MS-Windows (NT/2000/XP con Cygwin). NB è possibile installare più sistemi operativi su partizioni diverse dello stesso disco (es Linux+Windows). Lo spazio disco richiesto è 20-180MB per i binari di GRASS, a seconda della piattaforma hardware; circa 50MB per i sorgenti di GRASS. Al momento della compilazione è necessario avere almeno 600MB circa liberi su disco; spazio per i dati. Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Altri sistemi GRASS si interfaccia facilmente con altri sistemi Open Source per avere: ●supporto di un motore di database esterno; ●interfaccia verso internet; ●import/export di dati; ●stampa di mappe; ●elaborazioni 5D ●calcoli statistici (R). Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli http://grass.itc.it/ Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Documentazione http://grass.itc.it/gdp/index.html GRASS Documentation Project http://grass.itc.it/gdp/general.php Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Tutorial Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Documentazione in italiano http://grass-italia.como.polimi.it/ Eventi in Italia e all'estero: ●Lista degli utenti italiani di GRASS ●Materiale didattico in italiano ●Articoli pubblicati dagli utenti italiani ● Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Documentazione in italiano Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Documentazione in italiano Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Documentazione in italiano Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Documentazione in italiano Dipartimento di Ingegneria Civile e Ambientale Organizzazione file dati in GRASS GISDBASE è la directory principale (radice) sotto la quale risiedono tutti i file dati. ● le sottodirectory di GISDBASE sono chiamate LOCATION. I dati di una location hanno tutti lo stesso sistema di riferimento e la stessa proiezione. Non è possibile accedere simultaneamente a più locations! ● GISDBASE LOCATION.1 LOCATION.n LOCATION.2 LOCATION.3 N.B.: Per ogni sessione di GRASS si può scegliere un solo GISDBASE e lavorare su una sola LOCATION (si possono però aprire file da location differenti purché se ne abbiano le permission). Esempi: /Directory/GISDBASE/LOCATION/MAPSET /HOME/MARCO/TRENTINO/MAPPE/ /HOME/MARCO/TRENTINO/ORTOFOTO/ Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale /HOME/MARCO/XY/FOTODARETTIFICARE/ Location e Mapset Ogni LOCATION contiene uno o più MAPSET, insiemi di mappe omogenee (proiezione, luogo, ecc.). Si può pensare la Location come una specie di “scaffale” che contiene tutte le informazioni per una certa zona di interesse In un MAPSET si possono organizzare le mappe tematicamente, geograficamente o per progetto o in qualsivoglia maniera; è un pò un modo per ordinare i libri nello scaffale. Ogni sessione viene avviata da un MAPSET e le modifiche avvengono nel Mapset corrente. Un MAPSET può essere delle stesse dimensioni oppure un subset geografico della LOCATION in cui si trova. Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Struttura di un MAPSET in GRASS 6.0-6.2 Un mapset nativo 6.0-6.1 si presenta attualmente come segue Marco Ciolli - Paolo Zatelli element vector/ dbf/ cell/ cellhd/ cats/ colr/ cell_misc/ fcell/ hist/ icons/ paint/ arc/ contenuto contiene la geometria dei vector contiene gli attributi dei vector file raster headers dei file raster categorie dei file raster tabella dei colori per file raster file di supporto statistiche dei raster gestisce i file raster floating point informazioni su file raster icone usate da p.map label usate da p.map file Arc/Info ungenerate PERMANENT PATH Dipartimento di Ingegneria Civile e Ambientale MIOMAPSET WIND CELL ... Sessione Si accede ad una sessione di GRASS digitando: grass60 oppure grass62 il programma si "ricorda" (nel file .grassrc6) l'ultima sessione e propone di aprire il MAPSET nella LOCATION nel GISDBASE corrispondente. Si può digitare il nome di una nuova LOCATION e/o di un nuovo MAPSET e crearlo/i Per creare un nuovo MAPSET si deve conoscere alcuni parametri relativi al sistema di riferimento, alla proiezione ed ai limiti dell'area che si intende rappresentare. 6.0 Marco Ciolli - Paolo Zatelli 6.2.1 Dipartimento di Ingegneria Civile e Ambientale Nuova location (1) UTM Using the UTM-projection the following information are required: enter zone (e.g. 30) enter a one line description (es. Zona di TRENTO) define the default region (= location): specify your UTM-coordinates choose the ellipsoid (see list above or enter "list" here). DEFINE THE DEFAULT REGION ======= DEFAULT REGION ============== | NORTH EDGE: 5200000 | | | WEST EDGE | | EAST EDGE 1621000 | | 1635000 | SOUTH EDGE: 5134000 | ===================================== PROJECTION: 1(UTM) ZONE: 32 GRID RESOLUTION East-West: 1______ North-South: 1______ AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE (OR <Ctrl-C> TO CANCEL) E' possibile creare delle nuove proiezioni personalizzate. Per creare una location in Roma40/Gauss Boaga vedi http://www.ing.unitn.it/~grass/docs/Gauss-Boaga_in_GRASS6.0.pdf Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Moduli GRASS I comandi di GRASS hanno un prefisso utilizzato per identificare il tipo di comando. La prima lettera identifica il tipo di comando, mentre le parole successive identificano il subargomento; alcuni comandi hanno dei sub-sub-identificatori. d.* g.* i.* r.* v.* s.* m.* p.* / ps.* ... Marco Ciolli - Paolo Zatelli - display commands for graphical screen output - general file management commands - image processing commands - raster processing commands - vector processing commands - site processing commands (point data) - miscellaneous commands - map creation commands - unix scripts Dipartimento di Ingegneria Civile e Ambientale Esempi di comandi di GRASS d.mon d.rast d.vect i.rectify g.rename v.digit r.digit v.to.rast v.in.e00 g.manual Marco Ciolli - Paolo Zatelli consente la gestione di monitor; visualizza un raster; visualizza un vettoriale; rettifica di immagini raster ; rinomina un file; digitalizza un oggetto vettoriale; digitalizza un oggetto raster; trasforma un vector in raster; legge dati in formato Arcinfo .e00; visualizza i manuali. Dipartimento di Ingegneria Civile e Ambientale Interfaccia 6.2 gis.m (GIS Manager) I pulsanti sul gis.m sono attivi, inoltre sono presenti pulsanti sui display di visualizzazione. Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Map Display E' possibile usare: ●pulsanti dell'interfaccia grafica gis.m e dei display; ●menù dell'interfaccia grafica gis.m; ●linea di comando. Interfaccia Ad esempio per visualizzare un raster: Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Interfaccia In entrambi i casi il risultato è: Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Script E' possibile lavorare con script che lanciano comandi di GRASS, automatizzando molte funzioni. Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli Interfaccia Dipartimento di Ingegneria Civile e Ambientale Marco Ciolli - Paolo Zatelli La regione attiva GRASS lavora sempre sulla regione attiva, cioè su quella porzione di territorio che è selezionata in quel momento. La regione attiva può essere modificata esplicitamente con g.region. Modificando la regione attiva esplicitamente con g.region è possibile adattare la regione all'estensione di un file raster o vettoriale oppure richiamare una regione di estensione nota salvata con un certo nome. Dipartimento di Ingegneria Civile e Ambientale La regione attiva I settaggi della regione sono consultabili da console La regione attiva può, nella versione 6.1, essere modificata anche dal sottomenù dei pulsanti del Map Display attivo Marco Ciolli - Paolo Zatelli Dipartimento di Ingegneria Civile e Ambientale