I GIS liberi Paolo Cavallini presidente GFOSS.IT [email protected] Flavio Rigolon socio GFOSS.IT [email protected] www.gfoss.it Grazie a: Emilia Venturato, Leonardo Lami, Walter Lorenzetti, la comunità GIS ­ Geographic Information System (software) ­ sul “mercato” ci sono svariati prodotti ­ costi delle licenze alti ­ 1 software per fare molte cose diverse → ma le fa davvero bene? ­ è possibile realizzare un SIT soltanto con software FOSS? ­ desktop­gis, database, web­gis? GIS FOSS: cosa offre? ­ Desktop gis: ­ Geo­database: ­ Web­gis: ­ GRASS (analisi); ­ PostGIS ­ UMN Mapserver; ­ Quantum GIS; (estensione spaziale di ­ Geoserver; ­ gvSIG (java); postgreSQL) ­ JGRASS (java); ­ Applicazioni di ­ Kosmo (java); web­mapping: ­ OpenJUMP (java); ­ pmapper; ­ Thuban; ­ ka­map!; ­ Ossim; ­ openlayers... ­ OpenEV GRASS Geographic Resources Analysis Support System GRASS Geographic Resources Analysis Support System ­ 1982 – 1995: sviluppato dal U.S. Army Corps of Engineers Construction Engineering Research Laboratory (CERL) in Illinois. ­ Fine anni '80: pubblicazione del codice sorgente in internet. ­ 1998: GRASS 4.2.1 coordinata da Markus Neteler (università di Hannover). ­ dal 2001 quartier generale alla Fondazione Bruno Kessler (ex I.T.C.) di Trento (http://grass.itc.it/). La versione attuale è la 6.3. GRASS Geographic Resources Analysis Support System Molto potente: possibilità di fare elaborazioni molto complesse di map algebra su file di grosse dimensioni. Dalla versione 5.3 pieno supporto ai vettori tridimensionali. Possibilità di connettersi a db esterno (PostgreSQL, MySQL, SQLlite) mediante opportuni comandi (db.connect, db.tables,....), connessione a R. Importazione ed esportazione di svariati formati di file vettoriali e raster mediante librerie GDAL/OGR. Molto specialistico/ingegneristico: approccio poco user­ friendly per “cominciare”. GRASS Geographic Resources Analysis Support System GRASS consente di fare operazioni di map­algebra su strati raster anche molto complessi. Esempio: Sommare due raster (“dtm” e “edifici_rast”) per ottenere un dtm realistico che si “estrude” in corrispondenza di ogni edificio di una quantità pari all'altezza dell'edificio stesso. r.mapcalc "dtm_edifici=if(edifici_rast > 0, dtm+edifici_rast, dtm)" + = GRASS Geographic Resources Analysis Support System NVIZ è un modulo di GRASS che consente la visualizzazione dei dati in 3 dimensioni. Utile per fare analisi di DEM (Digital Elevation Model). Salvataggio di viste 3d. “Fly though path” o percorsi a volo d'uccello mediante la creazione di frame (fotogrammi) “montabili” al fine di ottenere video in formato MPEG. GRASS Geographic Resources Analysis Support System QGIS Quantum GIS QGIS Quantum GIS Progetto giovane: nasce nel giugno 2002 dalla volontà di Gary Sherman. Sviluppatori di tutto il mondo: in particolare sviluppatori di GRASS (Radim Blazek) hanno contribuito per l'integrazione con GRASS stesso. User­friendly: ottimo per che si approccia al GIS per la prima volta Rigorosi riferimenti ai protocolli dell'OpenGis Consortium (OGC): Organizzazione Internazionale per la standardizzazione nei Sistemi Informativi Territoriali. Versione attuale: 0.10 QGIS Quantum GIS ­ Multipiattaforma: Linux, Mac OS X, Windows, FreeBSD, NetBSD. ­ Caricamento e creazione file SHP. ­ Caricamento ed editing di strati Postgis. ­ Connessione diretta a vettori e raster di GRASS. ­ Gestione trasparenze su vettori e raster, possibilità di caricamento piramidale dei raster. ­ Caricamento ed esecuzione dei più importanti moduli di GRASS. ­ “Map composer” per la stampa QGIS Quantum GIS ­ Modulo interattivo per la georeferenziazione di raster. ­ Gestione semplice delle voci di legenda: creazione di mappe tematiche, applicazione di etichette, creazione di “azioni” (hyperlink, caricamento programmi esterni,...), strutturazione di query semplici ed avanzate..... ­ Numerosi plug­in: esportazione map file per Mapserver, creazione image­map, download e upload dati GPS (via gpsbabel), importazione SHP in Postgis,..... ­ Possibilità di creare plug­in con python (dalla versione 0.9.1). gvSIG Generalitat Valenciana Sistema Informativo geografico gvSIG Generalitat Valenciana Sistema Informativo geografico ­ Sviluppato in Spagna ­ Java ­ connessione a DB ­ driver per caricamento SHP, DXF, DWG,.... ­ Sextante per analisi e operazioni spaziali Kosmo Sistema Abierto de Informacion Geografica Kosmo Sistema Abierto de Informacion Geografica ­ Sviluppato in Spagna ­ Java ­ connessione a DB ­ driver per caricamento SHP, DXF, DWG,.... ­ vestizione grafica avanzata POSTGIS Estensione spaziale di PostgreSQL: versione attuale 1.3.2 (dicembre 2007). Consente di gestire un db PostgreSQL come un insieme di dati geografici. Rispetta gli standard OGC. Gestione dei sistemi di riferimento mediante le librerie Proj4 Importazione di SHP direttamente mediante modulo “shp2pgsql”. POSTGIS Consente di effettuare query “spaziali” sugli oggetti archiviati nel db: calcolo di distanze, verifica condizioni di appartenenza, adiacenza, creazione di buffer (fasce di rispetto),... Pgrouting per il calcolo dei minimi percorsi in un grafo (struttura ad archi e nodi; per es. rete stradale o reti di infrastrutture e servizi, fognature, pubbica illuminazione,...) tenendo conto del “peso” di ogni tratta. Memorizzazione dei dati geometrici in WKT (Well Know Text) e WKB (Well konw Binary). “SELECT asewkt(the_geom) FROM tabella;” (per ottenere le coordinate in WKT) POSTGIS Entità geometriche supportate da Postgis: ­ POINT ­ MULTIPOINT ­ LINESTRING ­ MULTILINESTRING ­ POLYGON ­ MULTIPOLYGON ­ GEOMETRYCOLLECTION(POINT,LINESTRING, ...) POSTGIS E' indispensabile un database per il SIT? ­ No. I dati vettoriali (in un GIS) sono collegati sempre a tabelle di attributi (dbf)...... ­ ......però gestire i dati geografici mediante database offre moltissimi vantaggi soprattutto quando più utenti devono manipolare gli stessi dati (in consultazione e/o modifica) Perché usare PostgreSQL­ PostGIS? ­ Perché si interfaccia direttamente a GRASS, QGIS, MAPSERVER e via OGR con svariati programmi. POSTGIS Come vengono scritti i dati in PostGIS? ­ SRID ­ Tipo di geometria ­ Serie di coordinate POSTGIS WKB – formato binario: più rapido per le elaborazioni, non interpretabile (dalla v. 1.0). the_geom | 0106000020BB0B000001000000010300000001000000080000007B03A2D5D2BF3941E32124CABA3C5 34147B8BCCBD9BF3941EABB06FFB93C5341C...... WKT – formato testo: più lento ma leggibile (fino alla v. 0.9). asewkt | SRID=3003;MULTIPOLYGON(((1687506.83450338 5042923.15845534,1687513.79584839 5042919.98478601,1687519.12338959 5042899.76745017,1687512.5664158 5042888.56595328,1687495.76417003 5042886.65350244,1687499.17926055 5042896.62556677,1687492.758..))) POSTGIS Lo SRID (Spatial Reference ID): ­ Serve per effettuare la conversione tra sistemi di riferimento diversi; ­ Viene preso tra quelli contenuti nella tabella “spatial_ref_sys”; ­ vale “­1” quando non è noto; ­ Nello stesso database possono coesistere dati con SRID diverso. POSTGIS ­ geometry_columns ­ spatial_ref_sys POSTGIS Alcune funzioni spaziali. ­ ST_Length – calcolo di lunghezze; ­ ST_Area – calcolo di aree; ­ ST_Contains – funzione di contenimento; ­ ST_Intersection – funzione di intersezione; ­ ST_Buffer – calcolo fascia di rispetto; ­ ...... UMN MAPSERVER Server cartografico per la pubblicazione di dati territoriali via WEB. Sviluppato dall'Università del Minnesota. Applicativo CGI: necessita di un web­server per poter essere eseguito. Rispetta gli standard OGC (anche come WMS e WFS) Librerie usate: shapelib, freetype, proj4, gdal/ogr UMN MAPSERVER Richiesta mappa da un client MAPPA risultato Web server (apache) dati Map file Mapserver template UMN MAPSERVER Richiesta mappa da un client MAPPA risultato Web server (apache) dati Map file Mapserver template UMN MAPSERVER Richiesta mappa da un client MAPPA risultato Web server (apache) dati Map file Mapserver template UMN MAPSERVER Richiesta mappa da un client MAPPA risultato Web server (apache) dati Map file Mapserver template elaborazione UMN MAPSERVER Richiesta mappa da un client MAPPA risultato Web server (apache) dati Map file Mapserver template elaborazione UMN MAPSERVER Richiesta mappa da un client MAPPA risultato Web server (apache) dati Map file Mapserver template elaborazione UMN MAPSERVER Mapserver produce essenzialmente 4 cose: 1. una mappa; 2. una mappa di riferimento; 3. una legenda; 4. una barra di scala; L'aspetto e la definizione di questi 4 oggetti sono definiti nel MAPFILE (file di testo semplice con estensione “.map”). UMN MAPSERVER Il TEMPLATE file (“.html”) è la struttura della pagina di interfaccia con l'utente. Contiene opportune parole chiave (TAG) come [img], [legend], [ref], [scalebar] la cui definizione è contenuta nel MAPFILE. Alla richiesta di un client (via web­server) Mapserver elabora i DATI visualizzandoli nel TEMPLATE secondo le indicazioni definite nel MAPFILE. UMN MAPSERVER mappa mappa di riferimento legenda barra di scala GEOSERVER ­ Molto forte nel vettoriale ­ Anche WFS­T: editing on­line p.mapper Front­end evoluto per Mapserver. Gestisce Mapserver mediante php_mapscript, javascript. Altamente personalizzabile pur offrendo degli ottimi tools di default. Consultazione interattiva dei dati degli oggetti, visualizzaizone in base alla scala, strumenti di misurazione, stampa in scala (html e/o pdf), ricerca di oggetti in base ai loro attributi,... p.mapper ka­map! Front­end evoluto per Mapserver. Gestisce Mapserver mediante php_mapscript, javascript. Sfrutta la tecnologia AJAX: Asynchronous JavaScript And XML >> eccezionale gestione dei raster (navigazione “fluida”). Supporta funzioni per il routing. ka­map! Ancora mapping ­ GPSdrive (http://www.gpsdrive.de/) >> consente di rilevare la posizione attuale mediante collegamento a GPS. Effettua download automatico della mappe a seconda della posizione. Possibilità di precaricamento delle carte. ­ GpsBabel (http://www.gpsbabel.org/)>> convertitore di dati rilevati da vari GPS (usato da QGIS e GRASS nei loro moduli). ­ GDAL/OGR (Geospatial Data Abstraction Library) ( www.gdal.org/) >> librerie che consentono la trasformazione in vari formati di dati raster e vettoriali (gdal_info, gdal_translate, ogr2ogr,....) In sintesi Tutti i software più importanti hanno una fortissima componente europea, e ancora di più italiana • GRASS, QGIS • PostGIS • MapServer • Geoserver • p.mapper, ka­map, OpenLayers Una ricchezza nazionale! Ci vediamo su.... Sito: http://gfoss.it Wiki: http://wiki.gfoss.it/index.php/Gfoss_Italia Mailing­list: http://www.faunalia.com/cgi­bin/mailman/listinfo/gfoss ....happy free mapping! :­) Licenza di questa presentazione: Creative Commons 3.0 BY­NC­SA