27
Database Spaziali: PostGIS Alessia Saggese [email protected] * Database Spaziali * PostGis * Applicazioni di video retrieval: Traj3D Outline

Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

Database Spaziali:PostGISAlessia Saggese

[email protected]

∗ Database Spaziali

∗ PostGis

∗ Applicazioni di video retrieval: Traj3D

Outline

Page 2: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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

Page 3: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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.

Page 4: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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?

Page 5: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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

Page 6: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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.

Page 7: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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

Page 8: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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)

Page 9: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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)

Page 10: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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)

Page 11: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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)

Page 12: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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)

Page 13: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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)

Page 14: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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)

Page 15: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

Using Spatial Indexes (3)

A && B

Using Spatial Indexes (3)

A && B

Page 16: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

Using Spatial Indexes (3)

ST_Intersects(A,B)

∗ ST_Intersects(A, B)

Spatial Analysis (1)

Page 17: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ ST_Contains(A, B)

∗ ST_Within(B, A)

Spatial Analysis (2)

∗ ST_Touches(A, B)

Spatial Analysis (3)

Page 18: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ ST_Crosses(A, B)

Spatial Analysis (4)

∗ ST_DWithin(A, B, D)

Spatial Analysis (5)

Page 19: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

Trajectory 3D

La nostra applicazione di Video Retrieval:

Video Retrieval

Page 20: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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

Page 21: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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.

Page 22: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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

Page 23: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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

Page 24: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

∗ 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

Page 25: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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

Page 26: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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

Page 27: Database Spaziali: PostGIS - CNR · 2015-06-19 · PostGIS L’estensione spaziale per PostgreSQL: ∗Funzionalitàdi base : PostGispermette la creazione/ eliminazione di colonne

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