Database Spaziali: PostGIS Alessia Saggese asaggese@unisa.it Outline Database Spaziali PostGis Applicazioni di video retrieval: Traj3D
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 Fileche 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 alfanumerici èun ordinamento basato su una vicinanza alfanumerica. Un indice su dati spaziali deve essere un ordinamento basato su una vicinanza spaziale.
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. Perché i Database Spaziali? 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
Che cosa èun DB spaziale? 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? LINEE -> Strade PUNTI -> Negozi POLIGONI: Classificazione dell uso del suolo I dati spaziali descrivono forma e posizione:
Che cosa èun DB spaziale? Che cosa èun DB spaziale? Distanza tra pubs La 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
L estensione spaziale per PostgreSQL: PostGIS Le funzionalità di PostGIS (1) Funzionalitàdi base: PostGispermette 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 (2) 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. Geometry types (1) Point Linestring Polygon
Geometry types (2) Multipoint Multilinestring Multipolygon Geometry-Collection Why PostGIS? (1) 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? (2) 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? (3)
PostGIS Indexing (1) 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 (2) 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.
Guttman A.: "R-trees: A Dynamic Index Structure for Spatial Searching', Proc ACM SIGMOD Int. Conf. on Management of Data, 1984 Using Spatial Indexes (1) L operatore && calcolal intersezionetrabounding Boxes.
Using Spatial Indexes (2) A ciascuna geometria èassociato un MBR (Minimum Bounding Rectangle). ATTENZIONE! L intersezione tra MBR non corrisponde all intersezione tra le geometrie! Using Spatial Indexes (3)
Using Spatial Indexes (3) A && B Using Spatial Indexes (3) A && B
Using Spatial Indexes (3) ST_Intersects(A,B) Spatial Analysis (1) ST_Intersects(A, B)
Spatial Analysis (2) ST_Contains(A, B) ST_Within(B, A) Spatial Analysis (3) ST_Touches(A, B)
Spatial Analysis (4) ST_Crosses(A, B) Spatial Analysis (5) ST_DWithin(A, B, D)
La nostra applicazione di Video Retrieval: Trajectory 3D Video Retrieval
Obiettivo 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) >
Queries 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. Time interval queries Dobbiamo verificare l intersezione tra un box 3D e tuttii segmenti di ciascuna traiettoria. Per determinare se un segmento interseca o meno un box possiamo utilizzare gli algoritmi di clipping.
Algoritmi di Clipping Determina se un segmento, o parte di esso, si trova all interno dell area considerata. Algoritmi di Clipping: Cohen-Sutherland Prima Fase: calcolo dell'outcode(un codice di 4 bit) per ciascuno dei due estremi del segmento considerato. 1001 1000 1010 0001 0000 0010 0101 0100 0110
Algoritmi di Clipping: Cohen-Sutherland Calcolo dell outcode: 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 Algoritmi di Clipping: Cohen-Sutherland 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. Traj 3D: la soluzione proposta 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.
Step 1 : Proiezione 2D-intersection between trajectory's MBR and B XY 2D-intersection between trajectory's MBR and B YT 2D-intersection between trajectory's MBR and B XT Step 2: Intersezione
Step 3: Clipping Conclusioni e Sviluppi Futuri 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?