Fenomeni e strutture dati ● ● ● La modellazione del mondo e dei fenomeni che lo popolano può essere basata su oggetti territoriali o campi I GIS offrono due strutture dati fondamentalemente diverse, con una naturale corripondenza fra oggetti territoriali e modello vettoriale, campi e modello raster Il modello vettoriale può essere utilizzato anche per rappresentare i campi, non è altrettanto vero il viceversa (quantomeno a grande scala per qualunque oggetto, e per fenomeni puntuali e lineari in generale) OGGETTI TERRITORIALI CAMPI MODELLO VETTORIALE Punti Linee Poligoni Suddivisioni regolari e irregolari Reticoli MODELLO RASTER - Griglie regolari Dato geografico e layer ● ● Un dato geografico è caratterizzato da: – Geometria – Attributi – Relazioni topologiche – Tempo di rilievo e tempo di validità Un layer è un insieme geometricamente e semanticamente uniforme di dati geografici. E' l'equivalente di una tabella nei database relazionali, così come il dato geografico è una entità del modello E/R. Relazioni topologiche ● Relazione topologica: è una relazione fra figure geometriche che rimane immutata sotto una deformazione continua delle figure geometriche stesse Punto Linea Poligono Punto Sovrapposizione Disgiunzione Fine di Disgiunzione Contenimento Sul bordo di Disgiunzione Linea Contenimento Disgiunzione Intersezione Confluenza Disgiunzione Attraversamento/intersezione Contorno (linea – lato) Contatto (nodo - lato, linea – vertice) Disgiunzione Poligono Contenimento Disgiunzione Contenimento Disgiunzione Sovrapposizione Contenimento Adiacenza (lato-lato) Contatto (vertice-vertici, lato vertice) Scala nominale ● ● ● ● ● I dati nel calcolatore sono salvati mediante coordinate espresse in codifica intera o floating point (spesso la seconda) La codifica floating point ha una elevata risoluzione (fino a 15 cifre significative), ma le coordinate sono soggette agli errori di misura sul campo (e di eventuale trattamento informatico) Il GIS può effettuare qualunque livello di zoom: l'utente può rendere la visualizzazione non adeguata ad una misura diretta su video Scala nominale: massima scala alla quale il dato può essere rappresentato correttamente, ovvero misura del grado di accuratezza delle coordinate nel dato informatico. Scala nominale 1:20.000: errore nelle coordinate massimo di 4 metri (si veda anche la definizione di errore di graficismo) Raster ● ● ● Raster: rappresentazione del mondo secondo una discretizzazione spaziale (tassellazione) regolare Proprietà desiderabili di una tassellazione: – Semplicità geometrica – Possibilità di suddivisione ulteriore con lo stesso schema – Velocità di calcolo e semplicità di compressione Queste caratteristiche sono tipiche della tassellazione a celle quadrate o rettangolari Raster ● ● ● Un layer raster è dunque una matrice di celle regolari, ciascuna delle quali di norma contiene un valore numerico intero o floating point (o la marca di assenza di valore, detto valore nullo o semplicemente null). Elementi per la definizione di un layer raster: – Sistema di riferimento geodetico ed eventuale rappresentazione (-> la griglia può essere metrica o in coordinate geografiche); – Tipo di dato contenuto nella cella; – Posizione dell'origine, orientamento degli assi, dimensione dell'area rappresentata – Dimensione della cella (risoluzione o numero righe/colonne) In alcuni casi occorrono griglie accessorie di georeferenziazione (immagini satellitari), in cui per ogni cella sia espressa in modo esplicito la posizione del centro Y X x=x 0i× x y=y 0 j× y La cella e il suo valore ● ● Modi per decidere il valore della cella: – Centro cella: campionamento puntuale al centro, veloce, non sempre rappresentativo – Prevalenza: assegna alla cella il valore che ne occupa la maggior parte dell'area – Importanza: assegna alla cella il valore più importante in una scala ordinate, purché ne ricopra almeno un parte significativa (soglia percentuale) – Media (solo per attributi di tipo interval/ratio) In fase di rilievo i sensori da telerilevamento adottano naturalmente un calcolo del totale dell'energia emessa Attributi in un raster ● ● ● ● Storicamente vi sono stati vari tentativi di gestione del dato raster, attualmente c'è convergenza verso una modalità di gestione che prevede: – Un solo attributo mappato per layer – Una griglia regolare In tal modo il raster può essere visto come una matrice di valori numerici (gli attributi) cui sono associati metadati di georeferenziazione Questa struttura si presta bene alla compressione ed è di facile gestione da parte del calcolatore I singoli valori numerici possono essere associati a etichette descrittive, in particolare nel caso di attributi nominali o ordinali, codificati con numeri interi (1: corso d'acqua, 2: coltivazione a cereali, 3: urbanizzato, 4: prato, ...) Valori nulli ● ● ● Il raster copre uniformemente una data area di interesse Può accadere che il dato non sia disponibile o stimabile su tutta la superficie Occorre quindi un valore convenzionale per rappresentare questa mancanza di informazione, il valore null (NODATA) Di norma viene codificato con l'intero più piccolo (-MAXINT) o mediante un NaN (Not a Number) se si fa uso di valori floating point in standard IEEE Gli operatori che eseguono analisi sui dati raster devono trattare in modo speciale questi valori Scala nominale e topologia ● Quale è la scala nominale di un raster? Si può legare alla risoluzione(Dx, Dy) in un ipotetico raster a celle rettangolari. E= x 2 y 2 E x y den. scala= = 2 2 Esempio: raster a celle quadrate da 20m -> scala nominale 1:100.000 ● Topologia raster: esiste soltanto il concetto di adiacenza di cella, utilizzato da vari algoritmi per decidere come “muoversi” sul raster (esempio: ricerca di un percorso minimo su una superficie di costo) Salvataggio dati raster ● ● ● Forma matriciale pura: il dato viene salvato così come è in formato binario, senza adottare tecniche di compressione. Esiste una intestazione con informazioni di georeferenziazione e quindi la matrice di valori numerici. (si veda ad esempio il GTOPO30, http://edcdaac.usgs.gov/gtopo30/gtopo30.html) Run-length: si osserva che in alcuni raster vi sono sequenze di valori che si ripetono, vengono codificate come valore e numero di ripetizioni. Se la riga così codificata occupa più spazio dell'originale, si salva la forma non compressa. E' il metodo adottato da GRASS Block encoding: analogo al RLE, registra blocchi rettangolari uniformi piuttosto che di parti di riga Salvataggio dati raster ● ● Chain codes: registrano il bordo di aree di forma irregolare ma a valore uniforme Le strutture dati riportate sino ad ora sono strutture: – mono-risoluzione: non è possibile estrarre in modo efficiente dal dato una versione del raster a risoluzione più bassa – Senza perdita (lossless): il dato raster viene salvato senza alcuna alterazione. Questo è un requisito fondamentale per dati raster con significato fisico (modelli di elevazione digitale, eccetera), ma è meno importante per fotografie aeree, soprattutto se la tecnica di compressione adottata non altera l'immagine in modo facilmente discernibile dall'occhio umano Quadtree ● ● ● Suddivisione ricorsiva dell'immagine in quattro parti L'algoritmo si ferma quando il valore in un blocco è uniforme o quando raggiunge la risoluzione nativa E' un formato multirisoluzione lossless NW NE SW SE Wavelet ● ● Tecnica di compressione lossing basata sulle geometrie frattali Consente una forte compressione dei dati e permette di accedere al dato con risoluzioni multiple, molto adatta dunque al salvataggio e alla visualizzazione di fotografie aeree o satellitari nel campo del visibile usate come sfondo per la cartografia Tecnica Matrice Run-length Wavelet MB Fatt. comp. 90,5 1 17,7 5,1 2,3 39,3 Formati: – MrSid (www.lizardtech.com): proprietario – ECW (www.ermapper.com): proprietario, decoder gratuito per molti sistemi GIS, encoder a pagamento. Solo per Windows. – JPEG2000 (http://www.remotesensing.org/jpeg2000): standardizzato e aperto, ma poco diffuso. Trattato in modo nativo dalle librerie per l'imaging di Java. Ne esiste una versione per dati geografici detta JP2, e può funzionare anche in modalità lossless Dati vettoriali ● ● Rappresentazione del mondo secondo entità definite dalla propria forma geometrica e un insieme di attributi Proprietà della geometria: – Basata su primitive geometriche semplici (punti e segmenti retti) – In funzione della scala nominale cui il layer fa riferimento: ● ● Uso della primitiva geometrica più adatta Scelta del dettaglio geometrico (numero di punti che compongono il bordo della linea o del poligono) Proprietà del modello/formato usato per gestire le geometrie: Topologico: alcune relazioni topologiche vengono trattate esplicitamente Non topologico: salvataggio delle sole geometrie, le relazioni topologiche restano implicite Definizione ● ● Elementi per definire un layer vettoriale: – Sistema di riferimento geodetico/cartografico in cui sono espresse le coordinate – Primitiva geometrica (punto, linea, ...) – Nome e tipo degli attributi associati – Relazioni topologiche esplicitate nel modello Primitive geometriche (esempi) – Punto – Linea – Poligono (con isole interne) – Multipunto (insieme di punti) – Multilinea (insieme di linee) – Multipoligono (insieme di poligoni) – Collezione generica (insieme di geometrie elementari) Primitive geometriche ● ● ● Linea: sequenza di segmenti retti. Può essere: – Semplice o non semplice (auto-intersecante) – Chiusa (3, 4) o aperta (1) Composte di: – Nodi: punto terminale di una linea – Vertici: punto intermedi Multilinea: insieme non necessariamente connesso di linee Poligoni ● ● Poligoni semplici, non necessarimente convessi, con una o più isole interne Multipoligoni: insieme di poligoni semplici fra loro non sovrappositi Modellazione ● ● ● ● Punto: pozzo, numero civico, cassonetto, albero, segnaletica stradale, autogrill, aeroporto, ospedale, città, ecc. Linea: fiume, strada, elettrodotto (reti tecnologiche in genere), ma anche isolinee per modellare un campo con primitive vettoriali Poligono: casa, sede stradale, area urbanizzata, lago, stato. Viene usata anche per campi come le suddivisioni politiche del territorio (regioni, provincie), l'uso del suolo, la litologia di superficie, e per rappresentare anche campi a variazione continua mediante classificazione (aree con quota compresa fra 0-100 metri, fra 100 e 200 metri, eccetera). Multipoligono: ad esempio, uno stato (vedi il caso dell'Italia, con la penisola, isole maggiori e isole minori) Scala nominale ● ● ● Il dato vettoriale contiene due tipi di approssimazione: – Approssimazione nella specifica dei valori delle coordinate (legato all'accuratezza del rilievo) – Numero di coordinate effettivamente utilizzate per rappresentare i contorni di un oggetto Il secondo aspetto è di particolare importanza quando si voglia snellire un dato geografico per renderlo adatto alla rappresentazione in scale più piccole: si riduce opportunamente il numero di punti con un procedimento di generalizzazione cartografica (trattata nel capitolo sull'analisi spaziale) La misura di accuratezza in ultima analisi è data dalla distanza fra i punti che compongono i bordi reali e quelli usati per la rappr. informatica, non dai soli nodi o vertici Vettoriali non topologici ● ● Il formato non topologico considera il bordo di ogni linea e poligono in modo separato, senza considerare le relazioni topologiche. Modello a poligoni: – viene salvato il bordo di ogni poligono come una lista di punti – Eventuali punti in comune sono salvati due volte e non c'è nessuna informazione esplicita su questa sovrapposizione o sull'adiacenza fra poligoni Vettoriali non topologici ● Nel caso di multipoligoni o isole, occorre considerare più anelli. Due modi per riconoscere gli anelli interni e quelli esterni: – Ogni poligono è salvato separatamente, l'anello esterno è il primo, gli anelli interni seguono – Il multipoligono viene salvato in un'unica struttura dati, le coordinate degli anelli esterni sono salvati in senso orario, gli interni in senso antiorario Modello a lista di punti: I punti vengono salvati separatamente insieme ad un ID Il poligono è l'elenco degli ID dei punti che formano il suo bordo Evita la ridondanza dei punti, ma il poligono deve essere ricostruito per poter essere visualizzato Multipoligoni e isole sono gestire come nel caso precedente Vettoriali topologici ● ● Strutture dati che memorizzano alcune fra le relazioni topologiche fra oggetti come elemento costitutivo della struttura dati. Tali relazioni sono in genere: – Confluenza fra archi – Adiacenza di poligoni – Appartenenza di un arco ad un poligono – Relazione di fine linea fra archi e nodi Eventuali altre relazioni topologiche devono essere modellate in modo esplicito usando gli attributi (ovvero legando fra di loro gli identificatori delle entità coinvolte nella relazione come nei database relazionali). Planar enforcement ● ● Di norma i vettoriali topologici sono sottoposti ad una serie di regole dette di planar enforcement: – Le linee sono orientate e non si intersecano, ogni eventuale intersezione deve essere risolta spezzando le linee e creando un nodo – Non esistono sovrapposizioni fra poligoni – Ogni punto è all'interno di un poligono o su un bordo Procedimento partendo da un insieme di linee, cui vengono aggiunte le quattro linee che formano il perimetro dell'area di interesse: – Ogni insersezione o contatto fra linee, così come la fine di linee isolate, genera un punto detto nodo. In tale punto le linee vengono spezzate. – Ogni sequenza di segmenti fra due nodi è un arco – Un poligono è formato da sequenze di archi chiuse che possono contenere altri archi solo nel caso in cui questi facciano anch'essi parte del bordo del poligono (isole) Strutture vettoriali topologiche ● DIME (Dual Independent Map Encoding) – L'informazione di base è il segmento retto senza vertici intermedi – Di ogni segmento è noto il nodo di inizio e fine e il poligono destro e sinistro Ogni segmento e ogni poligono sono identificati, ed è possibile associarvi degli attributi (poco efficiente per reti lineari, segmenti conseguenti possono avere gli stessi attributi). I segmenti non si intersecano fra di loro Ogni poligono deve essere ricostruito per ricerca nella tabella dei segmenti (sfruttando nodi e orientamenti per riconnettere gli anelli e distinguere gli anelli esterni dalle isole) Modello “storico”, creato dal Strutture vettoriali topologiche ● Modello a catena: – Simile al DIME, ma basata sul concetto di arco piuttosto che su quello di sequenza, ciascuna catena, nodo e poligono possono essere associati ai propri attributi – Più compatta dal punto di vista degli attributi – Richiede ancora dei join per ricostruire tanto i poligoni quanto gli archi Strutture vettoriali topologiche ● Topologia arco-nodo – Evoluzione del modello a catena, in cui le coordinate degli archi sono tenute in una sequenza – Gli archi non devono più essere ricostruiti – I poligoni richiedono ancora la ricostruzione – È la struttura geometrica di base del sistema ArcGis (ex ARC/INFO) Tabella dei nodi ID ... X ... Y .... Strutture vettoriali topologiche ● ● ● Due ulteriori tabelle possono essere utilizzate per codificare i poligoni Richiede, come nelle strutture topologiche viste in precedenza, la presenza di un “poligono universo” o di un marcatore che specifichi l'assenza di poligono destro o sinistro Ogni elemento geometrico può essere associato ad un record in una tabella di DBMS Attributi Possono essere presenti anche le tabelle dei nodi, delle relazioni arco nodo, e la NAT (Node Attribute Table) ID ... A1 ... A2 .... ... ... AAT (Arc Attribute Table) ID ... A1 ... A2 .... ... ... PAT (Polygon Attribute Table) ● Variante alla arco nodo classica: ogni nodo è associato con l'elenco di archi entrati e uscenti (usando il segno). Utile per gli algoritmi di routing. TOPOLOGIA POLYGON-LINE Strutture vettoriali topologiche Sovrastrutture: regioni – Regioni: struttura costruita su un vettoriale topologico poligonale con planar enforcement per rappresentare multipoligoni, composizioni gerarchiche, sovrapposizioni (ad esempio, carta degli incendi, alcune aree sono state bruciate più volte in diverse occasioni). – Vengono introdotte due ulteriori tabelle: la tabella che associa ogni regione ai poligoni che la compongono, e la tabella degli attributi della regione COMPOSIZIONE GERARCHICA SOVRAPPOSIZIONE MULTIPOLIGONO Sovrastrutture: route system ● ● Consente di creare percorsi su una rete lineare senza replicarne la geometria Utile, ad esempio, per tracciare i percorsi del trasporto pubblico su gomma nella rete stradale Fermata autobus Route link 1 Route segment (30% - 100%) Route link 2 – Route segment: porzione di arco identificata da una coppia di percentuali (che individuano punto di inizio e di fine sull'arco orientato) – Route link: sequenza di route segment che forma un percorso sul layer – Route system: l'insieme dei link – I route link possono essere associati ad una propria tabella di attributi, fra cui si può trovare l'impedenza di attraversamento (eventualmente due, una per direzione) usata dagli algoritmi di calcolo dei percorsi minimi Vettoriali topologici/non topologici NON TOPOLOGICO Struttura dati semplice Ottime prestazioni per la visualizzazione Ridondante (diversi elementi ripetuti più volte) Regole molto limitate, la struttura consente di generare un numero elevato di errori di editing Consente la sovrapposizione fra poligoni TOPOLOGICO Complesso nell'interpretazione e Le geometrie devono essere ricostruite mediante dei join Ridondanze contenute Planar enforcement, l'editing può risultare difficoltoso La sovrapposizione non è consentita, occorre far uso di sovrastrutture specifiche La struttura gerarchica di La struttura gerarchia può essere composizione può essere espressa espressa mediante le region senza solo come associazione dover duplicare le geometrie di bordo Varie strutture che insistono su una Tali strutture possono essere espresse stessa geometria devono essere mediante le region e i route system. gestite come dati separati, ci sono La ricostruzione delle geometrie a dunque i classici problemi di scopo di visualizzazione o analisi è gestione del dato ridondante però computazionalmente più Vettoriali/raster PARAMETRO Volume di dati Generalizzazione VETTORIALE Struttura dati compatta Complessa Topologia Accuratezza Complessità di elaborazione Modelli di elevazione Visualizzazione RASTER Meno compatta Semplice per ricampionamento, spesso insita nelle strutture dati multirisoluzione Varie strutture dati possibili, Topologia semplice, usata con diversi livelli di gestione soltanto per pilotare il esplicita dell'informazione movimento di alcuni algoritmi sul Teoricamente è limitata solo Limiti di accuratezza espliciti dalla precisione del calcolatore, nella risoluzione del raster. E' di fatto occorre tenere in possibile generare un raster con considerazione gli errori di la stessa scala nominale di un rilievo e trattamento vettoriale Richiede algoritmi di geometria Gli algoritmi più comuni sono computazionale semplici e veloci Possono essere gestiti con le Gestione semplice ed efficiente strutture TIN, che hanno il ma a risoluzione fissa pregio della risoluzione In funzione della struttura di Richiede elaborazioni non banali, dati può essere più o meno ma supportate tanto dai efficiente processori quanto dalle schede grafiche, durante lo zoom del Raster is faster, but raster is vaster Triangulated Irregular Network ● ● ● Le superfici e i modelli di elevazione digitale in genere possono essere rappresentati mediante le strutture raster Difetto delle strutture dati raster classiche: sono a passo fisso, rappresentano con la stessa risoluzione zone ad alta variazione del valore e zone a bassa variazione Il TIN è una struttura dati vettoriale basata su triangoli con maglia irregolare, capace di fornire elevata risoluzione solo dove questa è necessaria Triangolazione ● ● ● I triangoli vengono generati unendo i punti rilevati in una rete di maglie triangolari che soddisfano il criterio di Delaunay: un cerchio disegnato per i tre punti di un triangolo non deve contenere altri punti Ogni punto è connesso con i due più vicini per formare un triangolo La triangolazione di Delaunay è un algoritmo di geometria computazionale piana, il TIN considera però i punti come dotati di quota, e questo genera la superficie 3D. Si tratta nuovamente di una struttura 2D + 1, incapace di rappresentare alcuni fenomeni, come ad esempio una scarpata (lo stesso difetto viene condiviso dalle strutture raster) Topologia nei TIN ● ● I TIN sono una struttura dati topologica composta di nodi e facce (triangoli) Si possono quindi salvare le relazioni di definizione del triangolo a partire dai suoi nodi, e le adiacenze fra triangoli