Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Database Spaziali:PostGISAlessia Saggese
∗ Database Spaziali
∗ PostGis
∗ Applicazioni di video retrieval: Traj3D
Outline
I DATABASE SPAZIALI
Le operazioni sui dati
∗ Sui “record” si compiono operazioni di :∗ Ricerca∗ Inserimento∗ Modifica∗ Cancellazione
∗ File non ordinati:∗ i record sono aggiunti in
fondo al file∗ Ricerca inefficiente∗ Inserimento efficiente∗ La cancellazione crea “buchi”
∗ File ordinati sulla base di uno o più campi:∗ I record devono essere
aggiungi “al posto giusto”
∗ Ricerca veloce
∗ Inserimento lento (shift di tutti i record nel caso peggiore)
∗ L’ordinamento potrebbe non essere adatto alla ricerca
Come trovare velocemente i dati?
∗ Creo degli altri File che contengano i riferimenti ai Record in modo da costituire un ordinamento.
∗ In un Record di un file indice ci sono in genere almeno due campi:∗ Il valore del campo
originario∗ Il puntatore al record che
contiene quel valore
∗ Svantaggi:
∗ Spazio fisico
∗ Mantenimento di una struttura aggiuntiva (disallineamenti)
∗ Gestione di diversi file per ogni tipo di ordinamento
Come trovare velocemente i dati?
∗ Un indice è qualcosa di “utile” per le ricerche che verranno effettuate;
∗ Un indice su dati spaziali deve essere un ordinamento basato su una “vicinanza”spaziale.
∗ Un indice su dati alfanumerici è un ordinamento basato su una “vicinanza” alfanumerica.
Perché i Database Spaziali?
∗ I dati territoriali sono ormai pervasivi in molte Organizzazioni.
∗ GIS - Geographic(al) Information System - si occupa dell'elaborazione e della manipolazione dei dati georeferenziati un database relazionale.
∗ La distribuzione di dati GIS in forma di file secondo standard di fatto non è più possibile perchè:∗ la quantità di dati ed il numero di sistemi eterogenei è
cresciuto molto;
∗ il numero ed il tipo di utenti è cresciuto molto;
∗ si deve disporre di meccanismi di controllo del flusso delle informazioni;
∗ L'utilizzo di server database con estensione spaziale risponde a queste esigenze permettendo flessibilità, affidabilità e controllo sui flussi informativi
Perché i Database Spaziali?
∗ Una “estensione spaziale” di un DBMS permette la gestione integrata di dati alfanumerici, geometrici e topologici;
∗ Un Database Spaziale memorizza oggetti spaziali (punti, linee, poligoni ecc.);
∗ Gli oggetti spaziali sono dati che descrivono la geometria, in termini di forma e posizione;
∗ Un Database Spaziale manipola oggetti spaziali allo stesso modo degli altri oggetti.
Che cosa è un DB spaziale?
Che cosa è un DB spaziale?
POLIGONI:Classificazione dell’uso del suolo
I dati spaziali descrivono forma e posizione:
LINEE -> StradePUNTI -> Negozi
Che cosa è un DB spaziale?
Che cosa è un DB spaziale?
Distanza tra pubsLa distanza tra una discarica e un pezzo di proprietà che sto
pensando di acquistare.
Che cosa è un DB spaziale?
ADIACENZA: Tutti i lotti confinanti
CONNETTIVITÀ : i collegamenti di una rete fluviale
Perchè usare database spaziali?
∗ Geocodable addresses
∗ Customer location
∗ Store locations
∗ Transportation tracking
∗ Statistical/Demographic
∗ Cartography
∗ Epidemiology
∗ Crime patterns
∗ Weather Information
∗ Land holdings
∗ Natural resources
∗ City Planning
∗ Environmental planning
∗ Information Visualization
∗ Hazard detection
PostGIS
L’ estensione spaziale per PostgreSQL:
∗ Funzionalità di base: PostGis permette la creazione/ eliminazione di colonne geometriche e l'attribuzione dei dati ad un determinato sistema di riferimento.
∗ Funzioni di relazioni fra geometrie: Variano dal calcolo della distanza fra due geometrie, alla verifica della eventuale sovrapposizione, intersezione, inclusione, ecc. tra forme geometriche distinte.
∗ Funzioni di calcolo sulle geometrie : Permettono di calcolare area, perimetro, centroide, ecc., di una data geometria.
Le funzionalità di PostGIS (1)
∗ Funzione di "informazioni" sulle geometrie : è possibile conoscere il tipo di geometria presente in un dato campo, l'id del sistema di riferimento utilizzato, il numero di punti contenuti, ecc;
∗ Funzioni di calcolo di misure: permettono di calcolare le aree, i perimetri, le lunghezze, gli sferoidi, ecc., in relazione al sistema di riferimento e al tipo di piano (bidimensionale o tridimensionale);
∗ Funzioni di modifica delle geometrie: permettono di manipolare le geometrie effettuando ad esempio operazioni di semplificazione (tramite l'algoritmo Douglas-Peuker), di traslazione ecc.
Le funzionalità di PostGIS (2)
∗ Point
∗ Linestring
∗ Polygon
Geometry types (1)
∗ Multipoint
∗ Multilinestring
∗ Multipolygon
∗ Geometry-Collection
Geometry types (2)
∗ Semplicità
∗ PostGIS Polygon
∗ POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))
∗ Oracle Polygon
∗ MDSYS.SDO_GEOMETRY( 2003, NULL, NULL, MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1), MDSYS.SDO_ORDINATE_ARRAY(0,0, 0,1, 1,1, 1,0, 0,0))
Why PostGIS? (1)
∗ Velocità∗ Lightweight geometry implementation
∗ Lightweight indexes (50% size savings)
∗ Linear time R-Tree
∗ Row- level locking algorithm
∗ Funzionalità∗ All OGC Simple Features for SQL, ST_Buffer()
∗ Aggregates, ST_Collect(), ST_Union()
∗ Extras, ST_AsGML(), ST_AsKML(), ST_AsSVG(), ST_BuildArea(), ST_LineMerge, ST_Transform()
Why PostGIS? (2)
Why PostGIS? (3)
∗ L’indicizzazione permette l’utilizzo di un database spaziale di grandi dimensioni. Il database organizza i dati in un albero di ricerca che può essere velocemente attraversato.
∗ Senza indicizzazione ogni ricerca richiederebbe una «scansione sequenziale» di ciascun record nel database.
PostGIS Indexing (1)
∗ PostGreSQL supporta tre tipologie di indici:
∗ B-TREE: per dati monodimensionali che possono essere ordinati lungo un asse (numeri, lettere, date ecc.);
∗ R-TREE: per dati spaziali. Suddivide i dati in rectangles, sub- rectangles, sub-sub-rectangles ecc;
∗ GiST (Generalized Search Trees): per dati spaziali. Suddivide i dati in "things to one side", "things which overlap", "things which are inside“.
PostGIS Indexing (2)
Guttman A.: "R-trees: A Dynamic Index Structure for Spatial Searching', Proc ACM SIGMOD Int. Conf. on Management of Data, 1984
∗ L’ operatore “&&” calcola l’intersezione tra Bounding Boxes.
Using Spatial Indexes (1)
∗ A ciascuna geometria è associato un MBR (Minimum Bounding Rectangle).
∗ ATTENZIONE! L’intersezione tra MBR non corrisponde all’intersezione tra le geometrie!
Using Spatial Indexes (2)
Using Spatial Indexes (3)
Using Spatial Indexes (3)
A && B
Using Spatial Indexes (3)
A && B
Using Spatial Indexes (3)
ST_Intersects(A,B)
∗ ST_Intersects(A, B)
Spatial Analysis (1)
∗ ST_Contains(A, B)
∗ ST_Within(B, A)
Spatial Analysis (2)
∗ ST_Touches(A, B)
Spatial Analysis (3)
∗ ST_Crosses(A, B)
Spatial Analysis (4)
∗ ST_DWithin(A, B, D)
Spatial Analysis (5)
Trajectory 3D
La nostra applicazione di Video Retrieval:
Video Retrieval
∗ Realizzazione di un Moving Object Database (MOD) per lo storing ed il retrieval delle informazioni collegate al movimento degli oggetti: le traiettorie.
Obiettivo
∗ Una traiettoria è un insieme di punti spazio-temporali:
< (x1; y1; t1); (x2; y2; t2); … ; (xN; yN; tN) >
Obiettivo
∗ Time interval queries: seleziono tutti gli oggetti in una specifica area e in un dato intervallo di tempo;
∗ Time-slice queries: seleziono tutti gli oggetti presenti in una data area in un dato istante temporale;
∗ Nearest neighbor queries: seleziono i k nearest neighbor di un oggetto in un dato istante di tempo.
Queries
Time interval queries
∗ Dobbiamo verificare l’intersezione tra un box 3D e tutti i segmenti di ciascuna traiettoria.
∗ Per determinare se un segmento interseca o meno un box possiamo utilizzare gli algoritmi di clipping.
∗ Determina se un segmento, o parte di esso, si trova all’interno dell’area considerata.
Algoritmi di Clipping
∗ Prima Fase: calcolo dell'outcode (un codice di 4 bit) per ciascuno dei due estremi del segmento considerato.
Algoritmi di Clipping: Cohen-Sutherland
1001 1000 1010
0001 0000 0010
0101 0100 0110
∗ Calcolo dell’outcode:
Algoritmi di Clipping: Cohen-Sutherland
Primo bit y<Ymin -> 1xxx y>Ymin -> 0xxx
Secondo bit y>Ymax -> x1xx y<Ymax -> x0xx
Terzo bit x<Xmin -> xx1x x>Xmin -> xx0x
Quarto bit x>Xmax -> xxx1 x<Xmax -> xx0x
∗ Seconda fase:∗ Uno o entrambi gli outcode sono uguali a 0000: il segmento si
trova completamente o parzialmente all'interno dell'area di clipping (Es: 3-4, 5-6).
∗ Gli outcode sono identici ma diversi da 0000: il segmento rimane all'interno di una stessa area esterna all'area di clipping.
∗ Gli outcode sono diversi: si calcola l’intersezione del segmento con i prolungamenti dei bordi dell’area di clipping e si ripete il procedimento.
∗ http://www.cs.princeton.edu/~min/cs426/jar/clip.html
Algoritmi di Clipping: Cohen-Sutherland
∗ PROBLEMA: Nel caso peggiore (cioè quando una traiettoria non interseca il box) è necessario verificare tutti i segmenti della traiettoria.
∗ Tale approccio risulta eccessivamente costoso!
∗ SOLUZIONE PROPOSTA: riduco il numero di traiettorie candidate al clipping utilizzando l’indicizzazione spaziale 2D messa a disposizione da PostGIS.
Algoritmi di Clipping: Cohen-Sutherland
∗ PREMESSA: se una traiettoria interseca il box, allora ciascuna proiezione della traiettoria intersecherà la corrispondente proiezione del box sui piani bidimensionali.
∗ Questa è una condizione NECESSARIA ma NON SUFFICIENTE.
Traj 3D: la soluzione proposta
Traj 3D: la soluzione proposta
1) Proiezione della traiettoria e del box sui tre piani bidimensionali XY, XT, YT;
2) Ricerca delle traiettorie candidate al clipping grazie all’intersezione tra il Minimum Bounding Rectangle della traiettoria (MBR) e la corrispondente proiezione del box;
3) Clipping 3D tra le traiettorie rimanenti e il box.
Traj 3D: la soluzione proposta
Step 1 : Proiezione
2D-intersection between trajectory's MBR and BXY
2D-intersection between trajectory's MBR and BXT
2D-intersection between trajectory's MBR and BYT
Step 2: Intersezione
Step 3: Clipping
∗ I tempi necessari allo storing e al retrieval delle traiettorie sono proporzionali:
∗ Al numero di traiettorie presenti nel database;
∗ Alla dimensione delle traiettorie;
∗ Lo segmentazione delle traiettorie può ridurre notevolmente i tempi di accesso al database.
∗ Problema: Come scegliere i break point?
Conclusioni e Sviluppi Futuri