Geodatabaze´ Simple Features Pˇredn a´ska 1ˇ Geodatabaze...

224
Geodatab ´ aze Simple Features ´ Uvod Datab ´ azov ´ e syst ´ emy Prostorov ´ a datab ´ aze Geodatab ´ aze OpenGIS Simple Features Datov´ y typ Geometry Odvozen ´ e datov ´ e typy Vlastnosti datov´ ych typ ˚ u Forma z´ apisu OpenGIS Simple Features for SQL 1/24 redn ´ ska 1 Geodatab ´ aze Simple Features ´ Uvod do problematiky, geodatab´ aze, OGC Simple Features 155UZPD ´ Uvod do zpracov´ an´ ı prostorov´ ych dat, zimn´ ı semestr 2019-2020 Martin Landa [email protected] Fakulta stavebn´ ı ˇ CVUT v Praze Katedra geomatiky http://geo.fsv.cvut.cz/gwiki/155UZPD

Transcript of Geodatabaze´ Simple Features Pˇredn a´ska 1ˇ Geodatabaze...

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

1/24

Prednaska 1

GeodatabazeSimple FeaturesUvod do problematiky, geodatabaze, OGC Simple Features

155UZPD Uvod do zpracovanı prostorovych dat, zimnı semestr 2019-2020

Martin [email protected]

Fakulta stavebnı CVUT v PrazeKatedra geomatiky

http://geo.fsv.cvut.cz/gwiki/155UZPD

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

2/24

Copyright c© 2009-2019 Martin Landa

Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation Licence, Version 1.2 or any later version published by the

Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts.

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

3/24

Obsah prednasky

1 UvodDatabazove systemyProstorova databazeGeodatabaze

2 OpenGIS Simple FeaturesDatovy typ GeometryOdvozene datove typyVlastnosti datovych typuForma zapisuOpenGIS Simple Features for SQL

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

4/24

Napln predmetu

Stranky predmetu

http://geo.fsv.cvut.cz/gwiki/155UZPD

1 Databazove systemy a geograficka data obecne2 Specifikace OGC Simple Features3 Prostorove SQL4 Geodatabaze prakticky

• PostGIS• SpatiaLite• rasdaman• mongoDB

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

4/24

Napln predmetu

Stranky predmetu

http://geo.fsv.cvut.cz/gwiki/155UZPD

1 Databazove systemy a geograficka data obecne2 Specifikace OGC Simple Features3 Prostorove SQL4 Geodatabaze prakticky

• PostGIS• SpatiaLite• rasdaman• mongoDB

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

5/24

Databaze

Databaze

• Usporadana mnozina informacı (dat) ulozena napamet’ovem mediu, ktere jsou dostupne prostrednictvımpocıtacoveho programu.

• System slouzıcı k modelovanı objektu a vztahu realnehosveta prostrednictvım digitalnıch dat usporadanych tak,aby se s nimi dalo efektivne manipulovat.

→ Zakladnımi prvky jsou data a program pro praci s nimi.

DBMS

DataBase Management System (system rızenı baze dat):• softwarove vybavenı, ktere zajist’uje praci s databazı• tvorı rozhranı mezi aplikacnımi programy a ulozenymi daty

Databazovy system

System rızenı baze dat dohromady s bazı dat.

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

5/24

Databaze

Databaze

• Usporadana mnozina informacı (dat) ulozena napamet’ovem mediu, ktere jsou dostupne prostrednictvımpocıtacoveho programu.

• System slouzıcı k modelovanı objektu a vztahu realnehosveta prostrednictvım digitalnıch dat usporadanych tak,aby se s nimi dalo efektivne manipulovat.

→ Zakladnımi prvky jsou data a program pro praci s nimi.

DBMS

DataBase Management System (system rızenı baze dat):• softwarove vybavenı, ktere zajist’uje praci s databazı• tvorı rozhranı mezi aplikacnımi programy a ulozenymi daty

Databazovy system

System rızenı baze dat dohromady s bazı dat.

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

6/24

Prostorova data

Prostorova data

• Entita definovana v prostoru, u ktere je zrejma:1 Identifikace2 Umıstenı v prostoru3 Vztah k okolnım entitam

• Prostorovy referencnı system (system pro identifikacipolohy v realnem svete)

Popis entit

1 simplex2 deskriptor

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

6/24

Prostorova data

Prostorova data

• Entita definovana v prostoru, u ktere je zrejma:1 Identifikace2 Umıstenı v prostoru3 Vztah k okolnım entitam

• Prostorovy referencnı system (system pro identifikacipolohy v realnem svete)

Popis entit

1 simplex• nejmensı nevyplneny objekt dane dimenze, 0-simplex je

bod, 1-simplex usecka, 2-simplex trojuhelnık, 3-simplexctyrsten atd.

• kazdy d-simplex se sklada z d+1 simplexu rozmeru d-1(”styky“)

• kombinace simplexu do slozitejsıch struktur je povolena jen,kdyz je prunik libovolnych dvou simplexu ”stykem“

2 deskriptor

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

6/24

Prostorova data

Prostorova data

• Entita definovana v prostoru, u ktere je zrejma:1 Identifikace2 Umıstenı v prostoru3 Vztah k okolnım entitam

• Prostorovy referencnı system (system pro identifikacipolohy v realnem svete)

Popis entit

1 simplex2 deskriptor

• mnozina bodu, usecek• prıpadne vyssıch celku s nasledujıcımi vlastnostmi:

• kazdy (koncovy) bod je bodem sıte• zadny vnitrnı bod nenı zaznamenan v sıti• zadne dve usecky nemajı prusecık a ani se neprekryvajı

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

7/24

Prostorova databaze

Zakladnı charakteristika

• Databaze optimalizovana pro skladovanı, udrzbu adotazovanı prostorovych dat (tj. dat vztazenych k objektumlokalizovanych v definovanem prostoru)

•”Prostor“ znamena 2 a vıce dimenzı

• S vyhodou vyuzıvany v GIS• Oproti ”bezne“ databazi definuje:

1 Datove typy prostorovych objektu (features)2 Metody pro dotazovanı a zpracovanı prostorovych dat

• Prostorove vztahy, tzv. ”predikaty“, napr. je uvnitr(),dotyka se(), obsahuje(), . . .

• Operace prekrytı, tzv. ”relace“, napr. prunik(), spojeni(),. . .

• Ostatnı, napr. plocha(), delka(), typ(), . . .

http://en.wikipedia.org/wiki/Spatial_database

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

7/24

Prostorova databaze

Zakladnı charakteristika

• Databaze optimalizovana pro skladovanı, udrzbu adotazovanı prostorovych dat (tj. dat vztazenych k objektumlokalizovanych v definovanem prostoru)

•”Prostor“ znamena 2 a vıce dimenzı

• S vyhodou vyuzıvany v GIS• Oproti ”bezne“ databazi definuje:

1 Datove typy prostorovych objektu (features)2 Metody pro dotazovanı a zpracovanı prostorovych dat

• Prostorove vztahy, tzv. ”predikaty“, napr. je uvnitr(),dotyka se(), obsahuje(), . . .

• Operace prekrytı, tzv. ”relace“, napr. prunik(), spojeni(),. . .

• Ostatnı, napr. plocha(), delka(), typ(), . . .

http://en.wikipedia.org/wiki/Spatial_database

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

7/24

Prostorova databaze

Zakladnı charakteristika

• Databaze optimalizovana pro skladovanı, udrzbu adotazovanı prostorovych dat (tj. dat vztazenych k objektumlokalizovanych v definovanem prostoru)

•”Prostor“ znamena 2 a vıce dimenzı

• S vyhodou vyuzıvany v GIS• Oproti ”bezne“ databazi definuje:

1 Datove typy prostorovych objektu (features)2 Metody pro dotazovanı a zpracovanı prostorovych dat

• Prostorove vztahy, tzv. ”predikaty“, napr. je uvnitr(),dotyka se(), obsahuje(), . . .

• Operace prekrytı, tzv. ”relace“, napr. prunik(), spojeni(),. . .

• Ostatnı, napr. plocha(), delka(), typ(), . . .

http://en.wikipedia.org/wiki/Spatial_database

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

8/24

Geodatabaze

Zakladnı charakteristika

• Prostorova databaze navrzena pro ulozenı, dotazovanıa manipulaci s geografickymi informacemia prostorovymi daty (tzv. ”geodaty“)

• Komponenta GIS pro skladovanı a manipulaci s daty+ Bezne pouzıvane relacne-objektove databaze+ SQL, prostorove dotazy+ Vıceuzivatelsky prıstup k datum+ V segmentu velkych dat (big-data) se spıse pouzıvajı

NoSQL databaze

http://en.wikipedia.org/wiki/Geodatabase

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

9/24

Geodatabaze

Geodata

Formalnı prepis geograficke informace do formy vhodne propocıtacove zpracovanı.

Geodata identifikujı:1 geografickou polohu2 charakteristiky prırodnıch i antropogennıch jevu a hranic

mezi nimi

Definice pojmu ”geoprvek“

Modelovany obraz (prostorove) lokalizovaneho objekturealneho sveta, ktery je dale nedelitelny, jednoznacneodlisitelny od ostatnıch prvku (napr. dalnice D8, obec ”Slany”,vrchol Milesovky, . . . )

Anglicky: feature

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

9/24

Geodatabaze

Slozky popisu (rozmer) geoprvku

• geometricka• vztahova (topologicka),• popisna (tematicka, atributova),• casova,• kvalitativnı (metadata, ”data o datech“)• . . .

Reprezentace dat

• vektorova• rastrova

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

10/24

Geodatabaze

Historie

1 Geometrie a atributy ulozeny oddelene ve specifickychsouborovych strukturach (napr. souborovy format EsriShapefile)

2 Geometrie v souborech, atributova data ulozenav (relacnıch) databazovych systemech (napr. souborovyformat GRASS + SQLite)

3 Geometrie a atributy ulozeny spolecne v databazi• Prvotnı implementace pouzıvaly middleware pro ulozenı

prostorovych dat s vyuzitım standardnıch datovych typu(napr. BLOB)• IBM Geographic Database System (GDBS) – polovina 80.let• IBM GeoManager (rozsırenı pro IBM DB2) – pocatek 90.let• Oracle v.4 (prelom 80. a 90.let)→ Oracle Spatial• Objektove-relacnı databazove systemy (konec 90.let)

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

10/24

Geodatabaze

Historie

1 Geometrie a atributy ulozeny oddelene ve specifickychsouborovych strukturach (napr. souborovy format EsriShapefile)

2 Geometrie v souborech, atributova data ulozenav (relacnıch) databazovych systemech (napr. souborovyformat GRASS + SQLite)

3 Geometrie a atributy ulozeny spolecne v databazi• Prvotnı implementace pouzıvaly middleware pro ulozenı

prostorovych dat s vyuzitım standardnıch datovych typu(napr. BLOB)• IBM Geographic Database System (GDBS) – polovina 80.let• IBM GeoManager (rozsırenı pro IBM DB2) – pocatek 90.let• Oracle v.4 (prelom 80. a 90.let)→ Oracle Spatial• Objektove-relacnı databazove systemy (konec 90.let)

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

10/24

Geodatabaze

Historie

1 Geometrie a atributy ulozeny oddelene ve specifickychsouborovych strukturach (napr. souborovy format EsriShapefile)

2 Geometrie v souborech, atributova data ulozenav (relacnıch) databazovych systemech (napr. souborovyformat GRASS + SQLite)

3 Geometrie a atributy ulozeny spolecne v databazi• Prvotnı implementace pouzıvaly middleware pro ulozenı

prostorovych dat s vyuzitım standardnıch datovych typu(napr. BLOB)• IBM Geographic Database System (GDBS) – polovina 80.let• IBM GeoManager (rozsırenı pro IBM DB2) – pocatek 90.let• Oracle v.4 (prelom 80. a 90.let)→ Oracle Spatial• Objektove-relacnı databazove systemy (konec 90.let)

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

10/24

Geodatabaze

Prehled nekterych produktu

• IBM DB2 – IBM DB2 Spatial Extender• Oracle – Oracle Spatial/Locator• PostgreSQL – PostGIS (?)• MySQL – MySQL Spatial Extensions (?)• Microsoft SQL Server• Esri ArcSDE• Informix Spatial DataBlade• SQLite – SpatiaLite (?)• CouchDB (?)• MongoDB (?)• . . .

(?) . . . open source

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

11/24

Obsah prednasky

1 UvodDatabazove systemyProstorova databazeGeodatabaze

2 OpenGIS Simple FeaturesDatovy typ GeometryOdvozene datove typyVlastnosti datovych typuForma zapisuOpenGIS Simple Features for SQL

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

12/24

OpenGIS Simple Features

http://www.opengeospatial.org

Specifikace Open Geospatial Consortium (OGC)

1 OpenGIS Simple Features Access (ISO 19125) —http://www.opengeospatial.org/standards/sfa

2 OpenGIS Simple Features for SQL —http://www.opengeospatial.org/standards/sfs

→ PostGIS jako implementace ”OpenGIS Simple Features forSQL“ pro objektove-relacnı databazovy system PostgreSQL

http://en.wikipedia.org/wiki/Open_Geospatial_Consortium

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

12/24

OpenGIS Simple Features

http://www.opengeospatial.org

Specifikace Open Geospatial Consortium (OGC)

1 OpenGIS Simple Features Access (ISO 19125) —http://www.opengeospatial.org/standards/sfa

2 OpenGIS Simple Features for SQL —http://www.opengeospatial.org/standards/sfs

→ PostGIS jako implementace ”OpenGIS Simple Features forSQL“ pro objektove-relacnı databazovy system PostgreSQL

http://en.wikipedia.org/wiki/Open_Geospatial_Consortium

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

13/24

OpenGIS Simple Features

Trıda Geometry

• Abstraktnı rodicovska trıda• Objekty majı prostorove a neprostorove vlastnosti• Prostorove vlastnosti jsou reprezentovany 2D

geometrickymi objekty

Dimenze objektu

Geometricke objekty nulte (bod), prvnı (linie) a druhe(polygon) dimenze v 2D/3D/4D souradnicovem systemu• 2D (x, y)• 3D (x, y, z) – vyska• 3D (x, y, m) – merenı• 4D (x, y, z, m)

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

13/24

OpenGIS Simple Features

Trıda Geometry

• Abstraktnı rodicovska trıda• Objekty majı prostorove a neprostorove vlastnosti• Prostorove vlastnosti jsou reprezentovany 2D

geometrickymi objekty

Dimenze objektu

Geometricke objekty nulte (bod), prvnı (linie) a druhe(polygon) dimenze v 2D/3D/4D souradnicovem systemu• 2D (x, y)• 3D (x, y, z) – vyska• 3D (x, y, m) – merenı• 4D (x, y, z, m)

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

14/24

Zakladnı metody trıdy Geometry• dimension(), geometryType(), SRID()• envelope(), boundary()• asText(), asBinary()• isSimple(), isEmpty(), is3D(), isMeasured()

Prostorove vztahy (predikatory)

• equals(), disjoint()• intersects(), touches(), crosses(),• within(), contains(), overlaps(), relate()

Prostorova analyza

• distance(), buffer(), convexHull(),intersection(), union(), difference()

Poznamka

Metody pro prostorove analyzy ci pro urcenı prostorovychvztahu jsou omezeny pouze na 2D

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

14/24

Zakladnı metody trıdy Geometry• dimension(), geometryType(), SRID()• envelope(), boundary()• asText(), asBinary()• isSimple(), isEmpty(), is3D(), isMeasured()

Prostorove vztahy (predikatory)

• equals(), disjoint()• intersects(), touches(), crosses(),• within(), contains(), overlaps(), relate()

Prostorova analyza

• distance(), buffer(), convexHull(),intersection(), union(), difference()

Poznamka

Metody pro prostorove analyzy ci pro urcenı prostorovychvztahu jsou omezeny pouze na 2D

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

15/24

Datovy model Simple Features

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

16/24

Datove typy Simple Features

Point

Bod

Curve

Posloupnost bodu, zpusob interpolace• LineString – linie, lomena cara (linearnı interpolace)• Line – linie s dvema body• LineRing – jednoducha a uzavrena linie

• Jednoducha krivka – sama sebe neprotına (1) (3)• Uzavrena krivka – spolecny pocatecnı a koncovy bod (4)

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

16/24

Datove typy Simple Features

Point

Bod

Curve

Posloupnost bodu, zpusob interpolace• LineString – linie, lomena cara (linearnı interpolace)• Line – linie s dvema body• LineRing – jednoducha a uzavrena linie

• Jednoducha krivka – sama sebe neprotına (1) (3)• Uzavrena krivka – spolecny pocatecnı a koncovy bod (4)

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

17/24

Datove typy Simple Features

Polygon

• Definovan vnejsımi a vnitrnımi (tvorı tzv. “dıry”) hranicemi• Hranice je objekt typu LineRing

(1) Validnı

(2) Nevalidnı

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

18/24

Datove typy Simple Features

PolyhedralSurface

Mnozina polygonu sdılejıcı spolecne hranicnı linie• TIN - Triangulated Irreguar Network

Poznamka: Nekonzistentnı mnozina polygonu je vyjadrenajako MultiSurface

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

19/24

Datove typy Simple Features

GeometryCollection

Multimnozina geometrickych objektu ruznych typu(muze obsahovat i duplicitnı prvky)

Poznamka

Nektere metody tento datovy typ nepodporujı

Multi*

Mnozina geometrickych objektu stejneho typu• MultiPoint – mnozina bodu• MultiLineString – mnozina lomenych car• MultiPolygon – mnozina polygonu

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

19/24

Datove typy Simple Features

GeometryCollection

Multimnozina geometrickych objektu ruznych typu(muze obsahovat i duplicitnı prvky)

Poznamka

Nektere metody tento datovy typ nepodporujı

Multi*

Mnozina geometrickych objektu stejneho typu• MultiPoint – mnozina bodu• MultiLineString – mnozina lomenych car• MultiPolygon – mnozina polygonu

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

20/24

Prehled metod datovych typu Simple Features

• GeometryCollection• NumGeometries(), GeometryN()

• Point• X(), Y(), Z(), M()

• Curve• Lenght(), StartPoint(), EndPoint(), IsClosed(),IsRing()

• LineString• NumPoints(), PointN()

• MultiCurve• IsClosed(), Length()

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

20/24

Prehled metod datovych typu Simple Features

• GeometryCollection• NumGeometries(), GeometryN()

• Point• X(), Y(), Z(), M()

• Curve• Lenght(), StartPoint(), EndPoint(), IsClosed(),IsRing()

• LineString• NumPoints(), PointN()

• MultiCurve• IsClosed(), Length()

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

20/24

Prehled metod datovych typu Simple Features

• GeometryCollection• NumGeometries(), GeometryN()

• Point• X(), Y(), Z(), M()

• Curve• Lenght(), StartPoint(), EndPoint(), IsClosed(),IsRing()

• LineString• NumPoints(), PointN()

• MultiCurve• IsClosed(), Length()

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

20/24

Prehled metod datovych typu Simple Features

• Surface/MultiSurface• Area(), Centroid(), PointOnSurface()

• Polygon• ExteriorRing(), NumInteriorRing(),InteriorRingN()

• PolyhedralSurface/TIN• NumPatches(), PatchN(), BoundingPolygons(),IsClosed()

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

20/24

Prehled metod datovych typu Simple Features

• Surface/MultiSurface• Area(), Centroid(), PointOnSurface()

• Polygon• ExteriorRing(), NumInteriorRing(),InteriorRingN()

• PolyhedralSurface/TIN• NumPatches(), PatchN(), BoundingPolygons(),IsClosed()

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

21/24

Textova forma zapisu (WKT)

Well Known Text

• Znackovacı jazyk• Pouzıva se pro

1 popis geometrie objektu2 definici prostorovych referencnıch systemu (prıklad

EPSG:5514)

Prıklady

1 POINT (6 10)2 LINESTRING (3 4,10 50,20 25)3 POLYGON ((1 1,5 1,5 5,1 5,1 1),(2 2, 3 2, 3 3, 2 3,2 2))4 MULTIPOINT (3.5 5.6,4.8 10.5)5 MULTILINESTRING ((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))6 MULTIPOLYGON (((1 1,5 1,5 5,1 5,1 1),(2 2, 3 2, 3 3, 2 3,2 2)),((3 3,6 2,6 4,3 3)))7 GEOMETRYCOLLECTION (POINT(4 6), LINESTRING(4 6,7 10))8 POINT ZM (1 1 5 60)9 POINT M (1 1 80)

10 POINT EMPTY11 MULTIPOLYGON EMPTY

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

22/24

Binarnı forma zapisu (WKB)

Well Known Binary

• Portovatelny zapis geometrie objektu• Prevod dat, vymena mezi SQL/CLI klientem, . . .

Napr. POINT(1 1) je reprezentovan sekvencı 21 bajtu

0101000000000000000000F03F000000000000F03F

01 Poradı bajtu• 1 bajtovy unsigned integer• 1 pro little-endian (NDR), 0 pro big-endian

(XDR)01000000 Typ geometrie

• 4 bajtovy unsigned integer• Hodnoty 1 az 7 reprezentujı Point,

LineString, Polygon, MultiPoint,MultiLineString, MultiPolygon aGeometryCollection

POINT - Souradnice bodu jsou ulozeny jakodouble-precision

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

22/24

Binarnı forma zapisu (WKB)

Well Known Binary

• Portovatelny zapis geometrie objektu• Prevod dat, vymena mezi SQL/CLI klientem, . . .

• LINESTRING• Pocet bodu (4 bajtovy unsigned integer)• Pole bodu

• POLYGON• Pocet (vcetne vnitrnıch) ringu (4 bajtovy unsigned integer)• Pole liniı (prvnı je externı ring)

• Kolekce prvku• Pocet prvku (4 bajtovy unsigned integer)• Pole bodu, liniı, polygonu a pod.

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

22/24

Binarnı forma zapisu (WKB)

Well Known Binary

• Portovatelny zapis geometrie objektu• Prevod dat, vymena mezi SQL/CLI klientem, . . .

Napr. LINESTRING(1 1, 2 2) je reprezentovan sekvencı41 bajtu

01020000000200000000000000000F03F00000000000F03F00000000000000400000000000000040

01 Poradı bajtu – little-endian02000000 Typ geometrie – LINESTRING02000000 Pocet bodu – 2000000000000F03F Souradnice X prvnıho bodu000000000000F03F Souradnice Y prvnıho bodu0000000000000040 Souradnice X druheho bodu0000000000000040 Souradnice Y druheho bodu

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

23/24

OpenGIS Simple Features for SQL

OpenGIS Simple Features for SQL

• Podpora pro ukladanı, zıskavanı, dotazovanı a aktualizacigeoprvku pres rozhranı SQL/CLI (Call Level Interface)

• V tabulce (”feature table“) muze byt ulozena pouzemnozina prvku stejneho geometrickeho typu

• Geoprvek je reprezentovan zaznamem v tabulce (vesloupcıch jsou ulozeny jeho prostorove a popisnevlastnosti)

Tabulky dle specifikace OpenGIS Simple Features for SQL

• GEOMETRY COLUMNS – seznam dostupnych tabulek sgeoprvky

• SPATIAL REF SYS – definice souradnicovych systemu•

”Feature table“ – mnozina geoprvku jako zaznamyv tabulce

•”Geometry table“ – geometrie prvku ulozena jakostandardnı numericka ci binarnı data

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

23/24

OpenGIS Simple Features for SQL

OpenGIS Simple Features for SQL

• Podpora pro ukladanı, zıskavanı, dotazovanı a aktualizacigeoprvku pres rozhranı SQL/CLI (Call Level Interface)

• V tabulce (”feature table“) muze byt ulozena pouzemnozina prvku stejneho geometrickeho typu

• Geoprvek je reprezentovan zaznamem v tabulce (vesloupcıch jsou ulozeny jeho prostorove a popisnevlastnosti)

Tabulky dle specifikace OpenGIS Simple Features for SQL

• GEOMETRY COLUMNS – seznam dostupnych tabulek sgeoprvky

• SPATIAL REF SYS – definice souradnicovych systemu•

”Feature table“ – mnozina geoprvku jako zaznamyv tabulce

•”Geometry table“ – geometrie prvku ulozena jakostandardnı numericka ci binarnı data

GeodatabazeSimple Features

UvodDatabazove systemy

Prostorova databaze

Geodatabaze

OpenGIS SimpleFeaturesDatovy typ Geometry

Odvozene datove typy

Vlastnosti datovych typu

Forma zapisu

OpenGIS Simple Featuresfor SQL

24/24

SQL schema Simple Features

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

1/12

Prednaska 2

DE-9IM, funkce prostorove analyzyRozsıreny rozmerovy 9-ti prusecıkovy model, operace prekrytı,dalsı prostorove funkce

155UZPD Uvod do zpracovanı prostorovych dat, zimnı semestr 2019-2020

Martin [email protected]

Fakulta stavebnı CVUT v PrazeKatedra geomatiky

http://geo.fsv.cvut.cz/gwiki/155UZPD

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

2/12

Copyright c© 2009-2019 Martin Landa

Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation Licence, Version 1.2 or any later version published by the

Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts.

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

3/12

Obsah prednasky

1 DE-9IMRozsıreny rozmerovy 9-ti prusecıkovy modelProstorove predikaty

2 Prostorova analyzaOperace prekrytıProstorove funkce

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

4/12

9-Intersection Matrix

Dimensionally Extended Nine-Intersection Model

Rozsıreny rozmerovy 9-ti prusecıkovy model• Objekt a ma tri casti:

1 vnitrnı I(a)2 hranici B(a) a3 vnejsı cast E(a)

• Dimenze objektu a: dim(a) (dimenze prazdneho objektudim(∅) = −1)

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a dim(l(a) ∩ l(b)) dim(l(a) ∩ B(b)) dim(l(a) ∩ E(b))Hranice a dim(B(a) ∩ l(b)) dim(B(a) ∩ B(b)) dim(B(a) ∩ E(b))Vnejsı cast a dim(E(a) ∩ l(b)) dim(E(a) ∩ B(b)) dim(E(a) ∩ E(b))

Prunikem dvou objektu (vnitrnı casti, hranice a vnejsı casti)vznika objekt x o dane dimenzi.

Napr. prunikem dvou polygonu muze vzniknout polygon(y)(dim(x) = 2), linie (dim(x) = 1), bod(y) (dim(x) = 0) a neboprazdny objekt (dim(x) = −1).

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

4/12

9-Intersection Matrix

Dimensionally Extended Nine-Intersection Model

Rozsıreny rozmerovy 9-ti prusecıkovy model• Objekt a ma tri casti:

1 vnitrnı I(a)2 hranici B(a) a3 vnejsı cast E(a)

• Dimenze objektu a: dim(a) (dimenze prazdneho objektudim(∅) = −1)

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a dim(l(a) ∩ l(b)) dim(l(a) ∩ B(b)) dim(l(a) ∩ E(b))Hranice a dim(B(a) ∩ l(b)) dim(B(a) ∩ B(b)) dim(B(a) ∩ E(b))Vnejsı cast a dim(E(a) ∩ l(b)) dim(E(a) ∩ B(b)) dim(E(a) ∩ E(b))

Prunikem dvou objektu (vnitrnı casti, hranice a vnejsı casti)vznika objekt x o dane dimenzi.

Napr. prunikem dvou polygonu muze vzniknout polygon(y)(dim(x) = 2), linie (dim(x) = 1), bod(y) (dim(x) = 0) a neboprazdny objekt (dim(x) = −1).

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

5/12

9-Intersection Matrix

Polygon / Linie / Bod

• Polygon h je definovan mnozinou vnitrnıch bodu I(h)a hranicı B(h) (dim(h) = 2)

• Linie l je definovana jako mnozina (vnitrnıch) bodu l(l),hranice je urcena pocatecnım a koncovym bodem linie(dim(l) = 1)

• Bod p je definovan jednım (vnitrnım) bodem I(p), hraniceje prazdna mnozina (dim(p) = 0)

Objekt Vnitrnı cast Hranice Vnejsı castPolygon h I(h) B(h) E(h)Linie l I(l) koncove body E(l)Bod p I(p) ∅ E(p)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

6/12

9-Intersection Matrix — Polygon × Polygon

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a I(a)× l(b) I(a)× B(b) I(a)× E(b)Hranice a B(a)× l(b) B(a)× B(b) B(a)× E(b)Vnejsı cast a E(a)× l(b) E(a)× B(b) E(a)× E(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

7/12

9-Intersection Matrix

Prıklad vzorove matice

Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a T * THranice a * * *Vnejsı cast a T * *

kde:

T dimenze ruzna od -1 ⇒ dim(x) ∈ {0,1,2}, tj. x 6= ∅F dimenze -1 ⇒ dim(x) = −1, tj. x = ∅* jakakoliv dimenze ⇒ dim(x) = {−1,0,1,2}0 dimenze rovna nule ⇒ dim(x) = 01 dimenze rovna jedne ⇒ dim(x) = 12 dimenze rovna dvema ⇒ dim(x) = 2

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

8/12

Prıklad

Linie a × Linie b Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a 1 * 1Hranice a * * *Vnejsı cast a 1 * *

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

8/12

Prıklad

Polygon a × Linie b Vnitrnı cast b Hranice b Vnejsı cast bVnitrnı cast a 1 0 2Hranice a * 0 1Vnejsı cast a F F 2

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

• Zalozeny na binarnıch prostorovych predikatech(prostorovy vztah mezi dvema objekty)

• Soucast modelu DE-9IM (”named spatial relationships”)

Pojmenovane prostorove vztahy

1 Equals2 Disjoint3 Intersects4 Touches5 Crosses6 Within7 Contains8 Overlaps

http://edndoc.esri.com/arcsde/9.0/general_topics/understand_spatial_relations.htm

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

Equals(Topologicky uzavrene) objekty a a b jsou “prostorove shodne” jestlize platı

a ⊆ b ∧ b ⊆ a

V terminologii DE-9IM:

TFFFTFFFT ⇔ (I(a) ∩ I(b) 6= ∅) ∧(I(a) ∩ B(b) = ∅) ∧(I(a) ∩ E(b) = ∅) ∧(B(a) ∩ I(b) = ∅) ∧(B(a) ∩ B(b) 6= ∅) ∧(B(a) ∩ E(b) = ∅) ∧(E(a) ∩ I(b) = ∅) ∧(E(a) ∩ B(b) = ∅) ∧(E(a) ∩ E(b) 6= ∅)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

Disjoint

(Topologicky uzavrene) objekty a a b jsou “prostorove ruzne”jestlize platı

a ∩ b = ∅

V terminologii DE-9IM:

FF ∗ FF ∗ ∗ ∗ ∗ ⇔ (I(a) ∩ I(b) = ∅) ∧(I(a) ∩ B(b) = ∅) ∧(B(a) ∩ I(b) = ∅) ∧(B(a) ∩ B(b) = ∅) ∧

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

Intersects

Objekt a “prostorove protına” objekt b jestlize platı

a.Intersects(b)⇔ !a.Disjoint(b)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

Touches

(Topologicky uzavrene) objekty a a b jsou “prostorove dotykajı”jestlize platı

(I(a) ∩ I(b) = ∅) ∧ (a ∩ b 6= ∅)

Poznamka: vztah nenı definovan pro Bod/Bod.

V terminologii DE-9IM:

FT ∗ ∗ ∗ ∗ ∗ ∗∗ ∨ ⇔ (I(a) ∩ I(b) = ∅) ∧F ∗ ∗T ∗ ∗ ∗ ∗∗ ∨ [(B(a) ∩ I(b) 6= ∅) ∨F ∗ ∗ ∗ T ∗ ∗ ∗ ∗ (I(a) ∩ B(b) 6= ∅) ∨

(B(a) ∩ B(b) 6= ∅)]

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

CrossesProstorovy vztah “krızenı” je definovan pro Bod/Linie, Bod/Plocha, Linie/Liniea Linie/Plocha jestlize platı

dim(I(a) ∩ I(b)) < max(dim(I(a)), dim(I(b)))∧(a ∩ b 6= a) ∧ (a ∩ b 6= b)

V terminologii DE-9IM:

Pro Bod/Linie, Bod/Plocha a Linie/Plocha:

T ∗ T ∗ ∗ ∗ ∗ ∗ ∗ ⇔ I(a) ∩ I(b) 6= ∅ ∧I(a) ∩ E(b) 6= ∅

Pro Linie/Linie:0 ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ⇔ dim(I(a) ∩ I(b)) = 0

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

Within

Prostorovy vztah “uvnitr” je definovan jako

(a ∩ b = a) ∧ (I(a) ∩ E(b) = ∅)

V terminologii DE-9IM:

T ∗ F ∗ ∗F ∗ ∗∗ ⇔ I(a) ∩ I(b) 6= ∅ ∧I(a) ∩ E(b) = ∅ ∧B(a) ∩ E(b) = ∅

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

Contains

Objekt a obsahuje objekt b jestlize platı

a.Contains(b)⇔ b.Within(a)

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

9/12

Prostorove vztahy

OverlapsProstorovy vztah “prekrytı” je definovan pro Plocha/Plocha, Linie/Linie a Bod/Bod.

dim(I(a)) = dim(I(b)) = dim(I(a) ∩ I(b))∧(a ∩ b 6= a) ∧ (a ∩ b 6= b)

V terminologii DE-9IM: Pro Bod/Bod a Plocha/Plocha:

T ∗ T ∗ ∗ ∗ T ∗ ∗ ⇔ I(a) ∩ I(b) 6= ∅ ∧I(a) ∩ E(b) 6= ∅ ∧E(a) ∩ I(b) 6= ∅

Pro Linie/Linie:

1 ∗ T ∗ ∗ ∗ T ∗ ∗ ⇔ dim((I(a) ∩ I(b)) = 1 ∧I(a) ∩ E(b) 6= ∅ ∧E(a) ∩ I(b) 6= ∅

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

10/12

Obsah prednasky

1 DE-9IMRozsıreny rozmerovy 9-ti prusecıkovy modelProstorove predikaty

2 Prostorova analyzaOperace prekrytıProstorove funkce

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

11/12

Prostorova analyza

Operace prekrytı

1 Intersection()Vracı objekt reprezentujıcı prunik objektu a, b

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

11/12

Prostorova analyza

Operace prekrytı

2 Union()Vracı objekt, ktery vznikne spojenım objektu a, b

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

11/12

Prostorova analyza

Operace prekrytı

3 Difference()Vracı cast objektu a, ktera se neprekryva s objektem b

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

11/12

Prostorova analyza

Operace prekrytı

4 SymDifference()Vracı cast objektu a a b, ktere nejsou soucastı jejichpruniku

DE-9IM, funkceprostorove analyzy

DE-9IMRozsıreny rozmerovy 9-tiprusecıkovy model

Prostorove predikaty

Prostorova analyzaOperace prekrytı

Prostorove funkce

12/12

Prostorova analyza

Prostorove funkce

• Distance()Vracı nejkratsı vzdalenost mezi dvema body danychobjektu

• Buffer()Vracı obalovou zonu objektu

• ConvexHull()Vracı konvexnı obalku objektu

• . . .

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

1/27

Prednaska 3

PostGISUvod do geodatabaze PostGIS

155UZPD Uvod do zpracovanı prostorovych dat, zimnı semestr 2019-2020

Martin [email protected]

Fakulta stavebnı CVUT v PrazeKatedra geomatiky

http://geo.fsv.cvut.cz/gwiki/155UZPD

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

2/27

Copyright c© 2009-2019 Martin Landa

Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation Licence, Version 1.2 or any later version published by the

Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts.

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

3/27

Obsah prednasky

1 UvodPodpurne knihovnyArchitekturaHistorie, podpora

2 Open Simple Features for SQL

3 Geometricke objektyFormy zapisuKonstruktory

4 Prostorovy indexOptimalizace

5 Prostorove operatory

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

4/27

PostGIS — ”PostgreSQL Spatial“

http://www.postgis.net

PostGIS

• Puvodne vyvıjen firmou Refractions Research Inc.• Pozdeji jako komunitnı open source projekt pod hlavickou

OSGeo• Programovacı jazyk C & PL/pgSQL, licence GNU GPL• Rozsırenı pro objektove-relacnı databazovy system

PostgreSQL umoznujıcı ulozenı a spravuprostorovych/geografickych objektu• Nastroje pro analyzu, zpracovanı a spravu geografickych

dat

http://freegis.fsv.cvut.cz/gwiki/PostGIS

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

5/27

Zakladnı charakteristika

PostGIS rozsiruje PostgreSQL

1 Vedle standardnıch datovych typu jako je napr. integer,varchar ci date definuje datovy typ

”geometrie“ (Geometry) a dalsı odvozene datove typyjako je napr. ”bod“ (Point), ”lomena cara“ (LineString),

”polygon“ (Polygon) a pod.2 Implementuje funkce operujıcı nad datovym typem

”geometrie“, napr. urcenı vzdalenosti, delka lomene cary civymera plochy.

3 Implementuje indexovanı geografickych dat urychlujıcıprostorove dotazy, napr. ”najdi vsechny body uvnitrdaneho polygonu“.

viz specifikace OGC Simple Features — prvnı prednaska

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

5/27

Zakladnı charakteristika

PostGIS rozsiruje PostgreSQL

1 Vedle standardnıch datovych typu jako je napr. integer,varchar ci date definuje datovy typ

”geometrie“ (Geometry) a dalsı odvozene datove typyjako je napr. ”bod“ (Point), ”lomena cara“ (LineString),

”polygon“ (Polygon) a pod.2 Implementuje funkce operujıcı nad datovym typem

”geometrie“, napr. urcenı vzdalenosti, delka lomene cary civymera plochy.

3 Implementuje indexovanı geografickych dat urychlujıcıprostorove dotazy, napr. ”najdi vsechny body uvnitrdaneho polygonu“.

viz specifikace OGC Simple Features — prvnı prednaska

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

5/27

Zakladnı charakteristika

PostGIS rozsiruje PostgreSQL

1 Vedle standardnıch datovych typu jako je napr. integer,varchar ci date definuje datovy typ

”geometrie“ (Geometry) a dalsı odvozene datove typyjako je napr. ”bod“ (Point), ”lomena cara“ (LineString),

”polygon“ (Polygon) a pod.2 Implementuje funkce operujıcı nad datovym typem

”geometrie“, napr. urcenı vzdalenosti, delka lomene cary civymera plochy.

3 Implementuje indexovanı geografickych dat urychlujıcıprostorove dotazy, napr. ”najdi vsechny body uvnitrdaneho polygonu“.

viz specifikace OGC Simple Features — prvnı prednaska

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

6/27

Podpurne knihovny – PROJ.4

https://proj4.org

PROJ.4

• Knihovna pro praci s kartografickymi zobrazenımi(podporovano vıce nez 120)

• Transformace mezi ruznymi souradnicovymi systemy• Vznik na pocatku 90-tych let Geraldem Evendenem pod

zastitou USGS, posleze vyvoj prevzat FrankemWarmerdamem a OSGeo

• Programovacı jazyk C• Do verze 4.3 jako “public domain”, posleze pod X/MIT

licencı• Knihovna pouzıvana v softwarech jako je GRASS GIS,

MapServer, PostGIS ci knihovna GDAL

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

7/27

Podpurne knihovny – GEOS

http://trac.osgeo.org/geos

Geometry Engine, Open Source

• C++ port knihovny Java Topology Suite• Implementuje specifikaci OpenGIS Simple Features• Knihovna pouzıvana v dalsıch projektech jako je knihovna

GDAL, geodatabaze PostGIS ci desktopovy GRASS GIS• Funkce pro urcenı prostorovych vztahu

• touches(), contains(), within() atd.• Funkce pro prostorove analyzy

• buffer(), convexHull(), union(), difference(),atd.

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

8/27

Architektura server-klient

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

8/27

Architektura server-klient

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

9/27

Historie projektu PostGIS2001 Prvnı stabilnı verze (0.1), podpora pro

MapServer (0.5)2002 Prostorove indexovanı dat,

podpora pro kartograficka zobrazenı (0.7)2003 Podpora pro knihovnu GEOS (0.8)2004 OpenGIS Simple Features, Lightweight

geometry (0.9)2005 Verze 1.02006 Verze 1.1, vylepsenı vykonu2007 Podpora SQL/MM, krivky (1.2), prefix ST (1.3)2008 Verze 1.42009 Prepared geometry (GEOS 3.1)2010 Verze 1.52011 Zaclenenı nadstavby Raster a Topology do

oficialnı distribuce2012 Verze 2.0, podpora pro rastrova a vektorova data

v topologickem formatu

http://www.refractions.net/products/postgis/history/

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

10/27

Podpora PostGIS v ostatnıch projektech• MapServer, http://mapserver.org• GeoTools

• GeoServer, http://geoserver.org• UDig, http://udig.refractions.net

• FDO• MapGuide, http://mapguide.osgeo.org• Autodesk Map 3D, http://www.autodesk.com

• JUMP• OpenJUMP, http://openjump.org• Kosmo, http://www.opengis.es

• GDAL, http://gdal.org• QGIS, http://qgis.org• GRASS GIS, http://grass.osgeo.org

• FME• ArcGIS Data Interoperability Extension,http://www.esri.com/datainteroperability

• zigGIS, https://code.google.com/p/ziggis/• ESRI ArcGIS 9.3+,http://www.esri.com/software/arcgis

• . . .

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

11/27

Obsah prednasky

1 UvodPodpurne knihovnyArchitekturaHistorie, podpora

2 Open Simple Features for SQL

3 Geometricke objektyFormy zapisuKonstruktory

4 Prostorovy indexOptimalizace

5 Prostorove operatory

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

12/27

OGC Simple Features for SQL

”OGC Simple Features for SQL“ definuje

1 Typy geoprvku2 Funkce pro analyzu a manipulaci s geoprvky3 Metadatove tabulky

1 SPATIAL REF SYS2 GEOMETRY COLUMNS

Tabulka SPATIAL REF SYS

• srid – jednoznacny identifikator SRS (Spatial ReferenceSystem)

• auth name – nazev organizace (napr. “EPSG”)• auth srid – identifikator v ramci uvedene organizace

(napr. kod EPSG)• srtext – definice SRS ve forme Well-Known Text (viz

OGC Coordinate Transformation Services ImplementationSpecification)

• proj4text – definice SRS v zapisu pro knihovnu PROJ.4

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

12/27

OGC Simple Features for SQL

”OGC Simple Features for SQL“ definuje

1 Typy geoprvku2 Funkce pro analyzu a manipulaci s geoprvky3 Metadatove tabulky

1 SPATIAL REF SYS2 GEOMETRY COLUMNS

Tabulka SPATIAL REF SYS

• srid – jednoznacny identifikator SRS (Spatial ReferenceSystem)

• auth name – nazev organizace (napr. “EPSG”)• auth srid – identifikator v ramci uvedene organizace

(napr. kod EPSG)• srtext – definice SRS ve forme Well-Known Text (viz

OGC Coordinate Transformation Services ImplementationSpecification)

• proj4text – definice SRS v zapisu pro knihovnu PROJ.4

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

13/27

Tabulka SPATIAL REF SYS

Definice:

Column | Type | Modifiers-----------+-------------------------+-----------srid | integer | not nullauth_name | character varying(256) |auth_srid | integer |srtext | character varying(2048) |proj4text | character varying(2048) |

Prıklad: (EPSG 4326)1 srid | 43262 auth_name | EPSG3 auth_srid | 43264 srtext | GEOGCS["WGS 84",DATUM["WGS_1984",5 SPHEROID["WGS 84",6378137,298.257223563,6 AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],7 AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,8 AUTHORITY["EPSG","8901"]],9 UNIT["degree",0.01745329251994328,

10 AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]11 proj4text | +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

14/27

OGC Simple Features for SQL

”OGC Simple Features for SQL“ definuje

1 Typy geoprostorovych objektu2 Funkce pro manipulaci s objekty3 Metadatove tabulky

1 SPATIAL REF SYS2 GEOMETRY COLUMNS

Tabulka GEOMETRY COLUMNS

• f table catalog, f table schema, f table name –nazev katalogu (nazev databaze, pojem prevzat z Oracle),databazoveho schematu a tabulky

• f geometry column – nazev sloupce s geometriı• coord dimension – dimenze souradnic (2D, 3D, 4D)• srid – identifikator SRS pro danou tabulku (cizı klıc

tabulky SPATIAL REF SYS)• type – typ geoprvku (bod, lomena cara, polygon, . . . )

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

14/27

OGC Simple Features for SQL

”OGC Simple Features for SQL“ definuje

1 Typy geoprostorovych objektu2 Funkce pro manipulaci s objekty3 Metadatove tabulky

1 SPATIAL REF SYS2 GEOMETRY COLUMNS

Tabulka GEOMETRY COLUMNS

• f table catalog, f table schema, f table name –nazev katalogu (nazev databaze, pojem prevzat z Oracle),databazoveho schematu a tabulky

• f geometry column – nazev sloupce s geometriı• coord dimension – dimenze souradnic (2D, 3D, 4D)• srid – identifikator SRS pro danou tabulku (cizı klıc

tabulky SPATIAL REF SYS)• type – typ geoprvku (bod, lomena cara, polygon, . . . )

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

15/27

Tabulka GEOMETRY COLUMNS

Definice:

Column | Type | Modifiers-------------------+------------------------+-----------f_table_catalog | character varying(256) | not nullf_table_schema | character varying(256) | not nullf_table_name | character varying(256) | not nullf_geometry_column | character varying(256) | not nullcoord_dimension | integer | not nullsrid | integer | not nulltype | character varying(30) | not null

Prıklad:1 f_table_catalog | pgis_student2 f_table_schema | ruian3 f_table_name | obce4 f_geometry_column | geom5 coord_dimension | 26 srid | 55147 type | MULTIPOLYGON

Poznamka: Od verze PostGIS 2.0 je definovanGEOMETRY COLUMNS jako pohled

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

16/27

Obsah prednasky

1 UvodPodpurne knihovnyArchitekturaHistorie, podpora

2 Open Simple Features for SQL

3 Geometricke objektyFormy zapisuKonstruktory

4 Prostorovy indexOptimalizace

5 Prostorove operatory

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

17/27

Geometricke objekty

OGC Simple Features

• Od verze 0.9 PostGIS podporuje vsechny prvky a objektydefinovane specifikacı OpenGIS Simple Features for SQL• POINT, MULTIPOINT• LINE, MULTILINE• POLYGON, MULTIPOLYGON• GEOMETRYCOLLECTIONS

• PostGIS umoznuje ulozenı 3D/4D geoprvku• 3DZ (vyska), 3DM (merenı)• 4D (ZM)

Rozsırenı

1 SQL-MM (interpolovane krivky)• CIRCULARSTRING• COMPOUNDCURVE• CURVEPOLYGON• MULTICURVE, MULTISURFACE

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

17/27

Geometricke objekty

OGC Simple Features

• Od verze 0.9 PostGIS podporuje vsechny prvky a objektydefinovane specifikacı OpenGIS Simple Features for SQL• POINT, MULTIPOINT• LINE, MULTILINE• POLYGON, MULTIPOLYGON• GEOMETRYCOLLECTIONS

• PostGIS umoznuje ulozenı 3D/4D geoprvku• 3DZ (vyska), 3DM (merenı)• 4D (ZM)

Rozsırenı

1 SQL-MM (interpolovane krivky)• CIRCULARSTRING• COMPOUNDCURVE• CURVEPOLYGON• MULTICURVE, MULTISURFACE

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

17/27

Geometricke objekty

OGC Simple Features

• Od verze 0.9 PostGIS podporuje vsechny prvky a objektydefinovane specifikacı OpenGIS Simple Features for SQL• POINT, MULTIPOINT• LINE, MULTILINE• POLYGON, MULTIPOLYGON• GEOMETRYCOLLECTIONS

• PostGIS umoznuje ulozenı 3D/4D geoprvku• 3DZ (vyska), 3DM (merenı)• 4D (ZM)

Rozsırenı

1 SQL-MM (interpolovane krivky)• CIRCULARSTRING• COMPOUNDCURVE• CURVEPOLYGON• MULTICURVE, MULTISURFACE

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

18/27

Definice geometrickych objektu dle OGC

Definice

• Typu objektu (bod, lomena cara, . . . )• Souradnice lomovych bodu objektu

Rozhranı

1 OGC Well-Known Text (WKT)2 OGC Well-Known Binary (WKB)

Konstruktory:• Geometrie

• ST GeomFromWKB(bytea, SRID)→ geometrie• ST GeomFromText(text, SRID)→ geometrie

• WKT/WKB• ST AsBinary(geometrie)→WKB• ST AsText(geometrie)→WKT

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

18/27

Definice geometrickych objektu dle OGC

Definice

• Typu objektu (bod, lomena cara, . . . )• Souradnice lomovych bodu objektu

Rozhranı

1 OGC Well-Known Text (WKT)2 OGC Well-Known Binary (WKB)

Konstruktory:• Geometrie

• ST GeomFromWKB(bytea, SRID)→ geometrie• ST GeomFromText(text, SRID)→ geometrie

• WKT/WKB• ST AsBinary(geometrie)→WKB• ST AsText(geometrie)→WKT

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

19/27

Rozsırena definice geometrickych objektu PostGIS

Definice

• Rozsırenı pro 3D/4D objekty (3DZ, 3DM, 4D)• Vestavena informace o referencnım souradnicovem

systemu

Rozhranı

1 Extended Well-Known Text (EWKT)2 Extended Well-Known Binary (EWKB)

Konstruktory:• Geometrie

• ST GeomFromEWKB(bytea)→ geometrie• ST GeomFromEWKT(text)→ geometrie

• EWKT/EWKB• ST AsEWKB(geometry)→ EWKB• ST AsEWKT(geometry)→ EWKT

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

19/27

Rozsırena definice geometrickych objektu PostGIS

Definice

• Rozsırenı pro 3D/4D objekty (3DZ, 3DM, 4D)• Vestavena informace o referencnım souradnicovem

systemu

Rozhranı

1 Extended Well-Known Text (EWKT)2 Extended Well-Known Binary (EWKB)

Konstruktory:• Geometrie

• ST GeomFromEWKB(bytea)→ geometrie• ST GeomFromEWKT(text)→ geometrie

• EWKT/EWKB• ST AsEWKB(geometry)→ EWKB• ST AsEWKT(geometry)→ EWKT

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

20/27

Geometricke konstruktory

• ST GeomFromWKB(bytea, SRID)

• ST GeomFromText(text, SRID)

• ST MakePoint()

• ST MakeLine()

• ST MakePolygon()

• ST MakeBox2D()

• ST MakeBox3D()

• ST LineFromMultiPoint()

• ST Polygon()

• ST Boundary()

• ST BuildArea()

• . . .

http://postgis.net/docs/manual-2.4/reference.html#Geometry_Constructors

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

21/27

Geometricke konstruktory

1 Bod bez udanı souradnicoveho systemu(ruzne zpusoby, stejny vysledek)

SELECT ST_GeomFromText(’POINT(-686651 -1058147)’);SELECT ’POINT(-686651 -1058147)’::geometry;SELECT ST_Point(-686651, -1058147);

2 Bod v systemu S-JTSK EPSG:5514(ruzne zpusoby, stejny vysledek)

SELECT ST_GeomFromText(’POINT(-686651 -1058147)’,5514);

SELECT ST_GeomFromEWKT(’SRID=5514;POINT(-686651 -1058147)’);

SELECT ’SRID=5514;POINT(-686651 -1058147)’::geometry;SELECT ST_SetSRID(ST_Point(-686651, -1058147),

5514);

3 Vytvorenı lomene cary z bodovych dat (GPS waypoints)

SELECT ST_MakeLine(gps_points.geom) FROM(SELECT geom FROM waypoints ORDER BY name)

AS gps_points;

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

22/27

Obsah prednasky

1 UvodPodpurne knihovnyArchitekturaHistorie, podpora

2 Open Simple Features for SQL

3 Geometricke objektyFormy zapisuKonstruktory

4 Prostorovy indexOptimalizace

5 Prostorove operatory

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

23/27

Prostorovy index

PostgreSQL podporuje

• B-Tree – indexovanı dat podle jedne osy→ nepouzitelne pro prostorova data

• R-Tree – vhodne pro indexovanı multidimenzionalnıch dat,jednotkou minimalnı ohranicujıcı obdelnık

• GiST (Generalized Search Tree)

PostGIS

• PostGIS od verze 0.6 pouzıva GiST (schema“R-tree-over-GiST”)

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

23/27

Prostorovy index

PostgreSQL podporuje

• B-Tree – indexovanı dat podle jedne osy→ nepouzitelne pro prostorova data

• R-Tree – vhodne pro indexovanı multidimenzionalnıch dat,jednotkou minimalnı ohranicujıcı obdelnık

• GiST (Generalized Search Tree)

PostGIS

• PostGIS od verze 0.6 pouzıva GiST (schema“R-tree-over-GiST”)

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

24/27

Vytvorenı prostoroveho indexu

CREATE INDEX ON <tabulka> USING GIST (<geometrie>);

• Prostorovy index je pouzit pouze pro porovnanıminimalnıch ohranicujıcıch obdelnıku geoprvku

→ Proto se uplatnuje dvojity prostorovy dotaz:1 V prvnı fazi se vyhledajı vsechny objekty na zaklade jejich

minimalnıho ohranicujıcıho obdelnıku (MMO) – viz operatorprekrytı “&&”Poznamka: Funkce jako ST Intersect() ciST Contains() tento operator pouzıvajı automaticky,narozdıl od ST Intersect() ci ST Contains(), ktereindex nepouzıvajı

2 V druhe fazi se provede presnejsı dotazovanı pouze napodmnozine objektu vybranych v prvnı fazi

Prıklad:

SELECT COUNT(DISTINCT obce.kod) FROM ruian.obce AS obceJOIN zeleznice AS zelez ONST_Intersects(zelez.geom, obce.geom);

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

24/27

Vytvorenı prostoroveho indexu

CREATE INDEX ON <tabulka> USING GIST (<geometrie>);

• Prostorovy index je pouzit pouze pro porovnanıminimalnıch ohranicujıcıch obdelnıku geoprvku

→ Proto se uplatnuje dvojity prostorovy dotaz:1 V prvnı fazi se vyhledajı vsechny objekty na zaklade jejich

minimalnıho ohranicujıcıho obdelnıku (MMO) – viz operatorprekrytı “&&”Poznamka: Funkce jako ST Intersect() ciST Contains() tento operator pouzıvajı automaticky,narozdıl od ST Intersect() ci ST Contains(), ktereindex nepouzıvajı

2 V druhe fazi se provede presnejsı dotazovanı pouze napodmnozine objektu vybranych v prvnı fazi

Prıklad:

SELECT COUNT(DISTINCT obce.kod) FROM ruian.obce AS obceJOIN zeleznice AS zelez ONST_Intersects(zelez.geom, obce.geom);

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

25/27

Optimalizace dotazu

SELECT COUNT(DISTINCT obce.kod) FROM ruain.obce AS obceJOIN zeleznice AS zelez ONST_Intersects(zelez.geom, obce.geom);

1 S vyuzitım prostoroveho indexu (ST Intersects)1 Aggregate (cost=5446.36..5446.37 rows=1 width=8)2 -> Nested Loop (cost=0.00..5434.30 rows=4822 width=8)3 Join Filter: _st_intersects("outer".geom, "inner".geom)4 -> Seq Scan on zelez (cost=0.00..76.89 rows=889 width=546)5 -> Index Scan using obce_geom_gist on obce (cost=0.00..6.016 rows=1 width=636)7 Index Cond: ("outer".geom && obce.geom)

→ 4,032s

2 Bez vyuzitı prostoroveho indexu ( ST Intersects)1 Aggregate (cost=133012.73..133012.74 rows=1 width=8)2 -> Nested Loop (cost=77.78..128300.29 rows=1884976 width=8)3 Join Filter: _st_intersects("inner".geom, "outer".geom)4 -> Seq Scan on obce (cost=0.00..986.61 rows=6361 width=636)5 -> Materialize (cost=77.78..86.67 rows=889 width=546)6 -> Seq Scan on zelez (cost=0.00..76.89 rows=889 width=546)

→ 20,114s

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

26/27

Obsah prednasky

1 UvodPodpurne knihovnyArchitekturaHistorie, podpora

2 Open Simple Features for SQL

3 Geometricke objektyFormy zapisuKonstruktory

4 Prostorovy indexOptimalizace

5 Prostorove operatory

PostGIS

UvodPodpurne knihovny

Architektura

Historie, podpora

Open Simple Featuresfor SQL

Geometricke objektyFormy zapisu

Konstruktory

Prostorovy indexOptimalizace

Prostorove operatory

27/27

Prostorove BBox (MOO) operatory

A, B . . . minimalnı ohranicujıcı obdelnık prvkuA & < B A prekryva nebo lezı vlevo od BA & > B A prekryva nebo lezı vpravo od BA << B A lezı vlevo od BA >> B A lezı vpravo od B

A & < | B A prekryva nebo lezı pod BA |& > B A prekryva nebo lezı nad BA << | B A lezı pod BA | >> B A lezı nad B

A = B A je totozne s BA @ B A lezı uvnitr BA ˜B A obsahuje B

A && B A a B se prekryvajıA ˜= B A jsou totozne B (geometricky)

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

1/28

Prednaska 4

PostGISUvod do prostoroveho SQL

155UZPD Uvod do zpracovanı prostorovych dat, zimnı semestr 2019-2020

Martin [email protected]

Fakulta stavebnı CVUT v PrazeKatedra geomatiky

http://geo.fsv.cvut.cz/gwiki/155UZPD

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

2/28

Copyright c© 2009-2019 Martin Landa

Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation Licence, Version 1.2 or any later version published by the

Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts.

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

3/28

Obsah prednasky

1 Prostorove dotazy (DML)Prostorove operatoryProstorove funkceProstorove predikaty

2 Vytvorenı databaze, tabulek (DDL)

3 Datova integrita

4 Import/export dat

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

4/28

Ukazky prostorovych dotazu | Prostorove operatory

Vyhledanı prvku v okolı daneho bodu.

SELECT osm_id, st_astext(geom)FROM pozarni_staniceWHERE geom @ st_expand(st_geomfromtext(’POINT(-768581 -1063422)’, 5514),20000);

×SELECT osm_id, st_astext(geom)FROM pozarni_staniceWHERE geom <#>’SRID=5514;POINT(-768581 -1063422)’::geometry < 20000;

viz. prostorove operatory

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

5/28

Ukazky prostorovych dotazu | Prostorove operatory

Vyhledanı prvku lezıcıch kompletne/castecne uvnitr MOO.

SELECT count(*)FROM silnice AS sJOIN(SELECT geomFROM vuscWHERE nutslau = ’CZ042’) AS uON s.geom @ u.geom;

×SELECT count(*)FROM silnice AS sJOIN(SELECT geomFROM vuscWHERE nutslau = ’CZ042’) AS uON s.geom && u.geom;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

6/28

Ukazky prostorovych dotazu | Prostorove funkce

Vyhledanı nejjizneji polozeneho zajmoveho bodu.

SELECT osm_id, st_y(geom) AS yFROM pozarni_staniceORDER BY y ASCLIMIT 1;

Plosny prvek s vnitrnı hranicı.

SELECT nazev, st_area(geom)/1e6 AS area_kmFROM vuscWHERE st_nrings(geom) > 1ORDER BY area_km DESC LIMIT 1;

Centroid (referencnı bod) plosneho prvku.

SELECT nazev, st_astext(st_pointonsurface(geom))FROM vusc;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

7/28

Ukazky prostorovych dotazu | Prostorove funkce

Urcenı vymery plosneho prvku.

SELECT nazev, round(st_area(geom)/1e6) AS area_kmFROM vusc;

Serazenı plosnych prvku podle vymery.

SELECT nazev, st_area(geom) AS plochaFROM vuscORDER BY plocha DESC;

Celkova delka liniovych prvku.

SELECT (sum(st_length(geom))/1000)::int AS dalnice_kmFROM silniceWHERE typ = 1;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

8/28

Ukazky prostorovych dotazu | Prostorove funkce

Vypsat plosnou zakulacenost prvku (pomer kvadratu obvoduvuci plose).

SELECT nazev, (st_perimeter(geom) * st_perimeter(geom))/ st_area(geom) AS hodnota

FROM kraje;

Najıt zajmove body, ktere se nachazejı do vzdalenosti odplosneho prvku.

SELECT osm_id FROM pozarni_stanice as pJOIN(SELECT geomFROM obceWHERE nazev = ’Kladno’) AS kON st_distance(p.geom, k.geom) < 10000;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

9/28

Ukazky prostorovych dotazu | Prostorove funkceVybrat zajmove body, ktere se nachazejı ve vzdalenosti odnejdelsıho useku linioveho prvku.SELECT osm_id, st_astext(geom)FROM pozarni_staniceWHERE st_distance((SELECT geomFROM silniceWHERE typ = 1ORDER BY st_length(geom) DESCLIMIT 1), geom) < 10000;

×WITH s AS (SELECT geomFROM silniceWHERE typ = 1ORDER BY st_length(geom) DESCLIMIT 1)SELECT osm_id, st_astext(p.geom)FROM pozarni_stanice as pJOIN sON st_distance(s.geom, p.geom) < 10000;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

10/28

Ukazky prostorovych dotazu | Prostorove funkce

Urcit vzdalenost mezi zajmovymi bodovymi prvky.

SELECT (st_distance((SELECT geomFROM pozarni_staniceORDER BY st_x(geom) DESCLIMIT 1),(SELECT geomFROM pozarni_staniceORDER BY st_x(geom) ASCLIMIT 1))/1e3)::int as vzdalenost_km;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

11/28

Ukazky prostorovych dotazu | Prostorove predikaty

Vypsanı sumarnıch udaju.

SELECT k.kod, k.nazev,SUM(st_length(z.geom))/1000 AS zel_kmFROM zeleznice AS zJOIN vusc AS kON st_contains(k.geom, z.geom)GROUP BY k.kod, k.nazevORDER BY zel_km;

×SELECT k.kod, k.nazev,SUM(st_length(z.geom))/1000 AS zel_kmFROM zeleznice AS zJOIN vusc AS kON st_intersects(z.geom, k.geom)GROUP BY k.kod, k.nazevORDER BY zel_km;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

12/28

Ukazky prostorovych dotazu | Prostorove predikatyNajıt liniove prvky, ktere lezı do vzdalenosti od zajmovychbodovych prvku.SELECT count(DISTINCT s.ogc_fid)FROM silnice AS sJOIN pozarni_stanice AS pON st_dwithin(s.geom, p.geom, 300);

×SELECT count(DISTINCT s.ogc_fid)FROM silnice AS sJOIN pozarni_stanice AS pON p.geom && st_expand(s.geom, 300)AND p.geom <-> s.geom < 300;

×WITH pb AS (SELECT st_buffer(geom, 300, 42) as geomFROM pozarni_stanice)SELECT count(DISTINCT s.ogc_fid)FROM silnice AS sJOIN pbON st_intersects(s.geom, pb.geom);

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

13/28

Ukazky prostorovych dotazu | Prostorove predikaty

Vytvorit liniove prvky, ktere lezı do vzdalenosti od zajmovychbodovych prvku.

WITH pb AS (SELECT st_buffer(geom, 300) as geomFROM pozarni_stanice)SELECT DISTINCT s.ogc_fid,st_intersection(s.geom, pb.geom) as geomFROM silnice AS sJOIN pbON st_intersects(s.geom, pb.geom);

×WITH pb AS (SELECT st_buffer(geom, 300, 42) as geomFROM pozarni_stanice)SELECT DISTINCT s.ogc_fid,st_intersection(s.geom, pb.geom) as geomFROM silnice AS sJOIN pbON st_intersects(s.geom, pb.geom);

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

14/28

Obsah prednasky

1 Prostorove dotazy (DML)Prostorove operatoryProstorove funkceProstorove predikaty

2 Vytvorenı databaze, tabulek (DDL)

3 Datova integrita

4 Import/export dat

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

15/28

Vytvorenı databaze

1 Vytvorenı databaze

createdb <databaze>

2 Nahranı rozsırenı PostGIS (definice datovych typu, funkcı,tabulky geometry columns, spatial ref sys, . . . )

psql -d <databaze> -c "CREATE EXTENSION postgis"

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

16/28

Vytvorenı tabulky a vlozenı zaznamu

Vytvorenı tabulky (id, popisna data, geometrie):

CREATE TABLE poi (cat serial, nazev varchar(100),geom geometry(point, 5514));

Vlozenı POI:

INSERT INTO poi (nazev, geom) VALUES (’FSv CVUT v Praze’,st_transform(’SRID=4326;POINT (50.104021414.3880675)’::geometry, 5514));

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

17/28

Vytvorenı tabulky a vlozenı zaznamu

Overenı:

SELECT * FROM geometry_columns WHERE f_table_name=’poi’;

1 f_table_catalog | pgis_student2 f_table_schema | public3 f_table_name | poi4 f_geometry_column | geom5 coord_dimension | 26 srid | 55147 type | POINT

\d poi

1 Table "public.poi"2 Column | Type | Modifiers3 --------+------------------------+---------------------------------4 fid | integer | not null default nextval(5 ’poi_cat_seq’::regclass)6 nazev | character varying(100) |7 geom | geometry(Point,5514) |

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

18/28

Vytvorenı tabulky z existujıcı geodatVytvorenı nove tabulky (PostGIS vrstvy) jako vysledek dotazu:CREATE TABLE okresy ASSELECT okreskod, st_union(geom) AS geom FROM ruian.obceGROUP BY okreskod;

Pridanı primarnıho klıce:ALTER TABLE okresy ADD COLUMN gid serial;ALTER TABLE okresy ADD PRIMARY KEY (gid);

Sestavenı prostoroveho indexu:CREATE INDEX ON okresy USING gist (geom);

Alternativnı postup:CREATE TABLE okresy1 (gid serial PRIMARY KEY, okreskod int,geom geometry(multipolygon, 5514));

INSERT INTO okresy1 (okreskod, geom)SELECT okreskod, st_multi(st_union(geom)) AS geomFROM ruian.obce GROUP BY okreskod;

CREATE INDEX ON okresy1 USING gist (geom);

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

19/28

Odstranenı atributu geometrie/tabulky

Odstranenı atributu geometrie:

SELECT DropGeometryColumn(’obce’, ’geom’);

nebo (pro PostGIS 2 a vyssı)

ALTER TABLE obce DROP COLUMN geom;

Odstranenı tabulky (vcetne atributu geometrie):

SELECT DropGeometryTable(’obce’);

nebo (pro PostGIS 2 a vyssı)

DROP TABLE obce;

V obou prıpadech jsou odstraneny prıslusne zaznamyz tabulky geometry columns.

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

20/28

Obsah prednasky

1 Prostorove dotazy (DML)Prostorove operatoryProstorove funkceProstorove predikaty

2 Vytvorenı databaze, tabulek (DDL)

3 Datova integrita

4 Import/export dat

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

21/28

Datova integrita

Funkce PostGIS vyzadujı, aby geometrie ulozenych geoprvkusplnovala specifikaci OpenGIS Simple Features (SF).Pro testovanı integrity (“well-formed”) dat slouzı funkceST IsValid().

Prıklad:• Validnı prvek:

SELECT ST_IsValid(’LINESTRING(0 0, 1 1)’);

• Invalidnı prvek:

SELECT ST_IsValid(’LINESTRING(0 0, 0 0)’);

SELECT ST_IsValidReason(’LINESTRING(0 0, 0 0)’);

1 st_isvalidreason2 -------------------------------------------3 Too few points in geometry component[0 0]4 (1 row)

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

22/28

Datova integrita

• Funkce ST IsSimple() testuje, zda prvek splnujepodmınky “jednoduchosti” (napr. krızenı linie).

SELECT ST_IsSimple(’LINESTRING(0 0, 1 1, 1 0, 0 1)’);

• Funkce ST IsClosed() vracı hodnotu TRUE, pokud jelinie uzavrena.

SELECT ST_IsClosed(’LINESTRING(0 0, 1 1, 1 0,0 1, 0 0)’);

• Funkce ST IsRing() testuje, zda je linie “jednoducha”a uzavrena (tj. ma spolecny pocatecnı a koncovy bod).

SELECT ST_IsRing(’LINESTRING(0 0, 1 0, 0 1, 0 0)’);

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

23/28

Prusecık liniı

• ST StartPoint()

• ST EndPoint()

• ST PointN()

SELECT ST_AsText(ST_StartPoint(geom)) FROM gis1.zeleznice;

Najdi prusecıky zeleznic, kde se protınajı presne ctyri linie.

SELECT ST_AsText(point) FROM(SELECT ST_StartPoint(geom) AS point FROM gis1.zelezniceUNION ALLSELECT ST_EndPoint(geom) AS point FROM gis1.zeleznice)

AS a GROUP BY point HAVING COUNT(*) = 4;

Upozornenı

GROUP BY pouzıva minimalnı ohranicujıcı obdelnık geoprvku

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

24/28

Prıklad konverze

Konverze multiprvku (multiparts) na prvek (singleparts).

CREATE TABLE obce_s ASSELECT kod, nazev, ST_GeometryN(geom,generate_series(1, ST_NumGeometries(geom))) AS geomFROM obce;

×CREATE TABLE obce_s1 ASSELECT kod, nazev, (ST_Dump(geom)).geom as geomFROM obce;

Konverze prvku (singleparts) na multiprvek (singleparts).

CREATE TABLE obce_m ASSELECT kod, nazev, ST_Union(geom) AS geomFROM obce_sGROUP BY kod, nazev;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

25/28

Prıklad konverze

Rozdelenı linie na dany pocet segmentu.

WITH linie AS (SELECT st_boundary(geom) AS geom FROM staty

), a AS (SELECT generate_series(0,999,1) AS a

)SELECT ST_LineMerge(ST_LineSubstring(geom, a * 0.001, (a + 1) * 0.001)

) AS geomFROM a, linie;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

26/28

Prıklad konverze

Rozdelenı linie na segmenty s danou delkou.

WITH linie AS (SELECT ogc_fid, st_boundary(geom) AS geom FROM staty

)SELECT ST_Line_Substring(geom, 2000 * n / length,CASEWHEN 2000 * (n + 1) < lengthTHEN 2000 * (n + 1) / lengthELSE 1END) AS geom

FROM(SELECT ogc_fid,st_linemerge(geom) AS geom,st_length(geom) AS lengthFROM linie) AS t

CROSS JOIN generate_series(0, 2000) AS nWHERE n * 2000 / length < 1;

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

27/28

Obsah prednasky

1 Prostorove dotazy (DML)Prostorove operatoryProstorove funkceProstorove predikaty

2 Vytvorenı databaze, tabulek (DDL)

3 Datova integrita

4 Import/export dat

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

28/28

Import/export dat

1 SQL

INSERT INTO obce(nazev, geom) VALUES(’Litomerice’,GeomFromText(’POINT(-756371 -991031)’, 2065));

2 ESRI Shapefile• Import dat shp2pgsql

• Konverze ESRI Shapefile vrstev do PostGIS tabulek• Export dat pgsql2shp

• Konverze PostGIS tabulek / dotazu do formatu ESRI Shapefile

shp2pgsql -s 4326 -D -I cr.shp cr | psql pgis_student

3 GDAL – ovladac PostgreSQL

ogr2ogr -f PostgreSQL PG:dbname=pgis_student cr.shp

nebo ovladac PGDump

ogr2ogr -f PGDump cr.sql cr.shppsql pgis_student -f cr.sql

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

28/28

Import/export dat

1 SQL

INSERT INTO obce(nazev, geom) VALUES(’Litomerice’,GeomFromText(’POINT(-756371 -991031)’, 2065));

2 ESRI Shapefile• Import dat shp2pgsql

• Konverze ESRI Shapefile vrstev do PostGIS tabulek• Export dat pgsql2shp

• Konverze PostGIS tabulek / dotazu do formatu ESRI Shapefile

shp2pgsql -s 4326 -D -I cr.shp cr | psql pgis_student

3 GDAL – ovladac PostgreSQL

ogr2ogr -f PostgreSQL PG:dbname=pgis_student cr.shp

nebo ovladac PGDump

ogr2ogr -f PGDump cr.sql cr.shppsql pgis_student -f cr.sql

PostGIS

Prostorove dotazy(DML)Prostorove operatory

Prostorove funkce

Prostorove predikaty

Vytvorenı databaze,tabulek (DDL)

Datova integrita

Import/export dat

28/28

Import/export dat

1 SQL

INSERT INTO obce(nazev, geom) VALUES(’Litomerice’,GeomFromText(’POINT(-756371 -991031)’, 2065));

2 ESRI Shapefile• Import dat shp2pgsql

• Konverze ESRI Shapefile vrstev do PostGIS tabulek• Export dat pgsql2shp

• Konverze PostGIS tabulek / dotazu do formatu ESRI Shapefile

shp2pgsql -s 4326 -D -I cr.shp cr | psql pgis_student

3 GDAL – ovladac PostgreSQL

ogr2ogr -f PostgreSQL PG:dbname=pgis_student cr.shp

nebo ovladac PGDump

ogr2ogr -f PGDump cr.sql cr.shppsql pgis_student -f cr.sql

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

1/19

Prednaska 5

PostGIS TopologyTopologicka sprava vektorovych dat v geodatabazi PostGIS

155UZPD Uvod do zpracovanı prostorovych dat, zimnı semestr 2019-2020

Martin [email protected]

Fakulta stavebnı CVUT v PrazeKatedra geomatiky

http://geo.fsv.cvut.cz/gwiki/155UZPD

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

2/19

Copyright c© 2009-2019 Martin Landa

Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation Licence, Version 1.2 or any later version published by the

Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts.

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

3/19

Obsah prednasky

1 Simple Features

2 Datove modelyPostGIS Topology

3 Topologicka primitiva

4 Porovnanı s datovym modelem GRASS GIS

5 Datovy typ TopoGeometry

6 Schema topology

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

4/19

Topologicka sprava vektorovych dat | Uvod

Simple Features

• PostGIS implementuje specifikaci OGC Simple Featuresfor SQL

• Modeluje objekty jako jednoduche geoprvky (simplefeatures), tj. bez topologickeho pohledu na vektorova data

Prıklad:

1 polygon | geometrie (WKT)2 ---------+----------------------------------------------3 A | POLYGON((100 0,0 0,0 100,100 100,100 0))4 B | POLYGON((100 0,100 100,200 100,200 0,100 0))

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

5/19

Obsah prednasky

1 Simple Features

2 Datove modelyPostGIS Topology

3 Topologicka primitiva

4 Porovnanı s datovym modelem GRASS GIS

5 Datovy typ TopoGeometry

6 Schema topology

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Prıklad vektoroveho modelu v GIS:reprezentace objektu bodem (A), liniı (B) a polygonem (C)

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Spagetovy model

A, 1 # identifikator bodu, pocet vrcholux1, y1 # souradnice bodu (bod 1)B, 4 # identifikator linie, pocet vrcholux2, y2 # souradnice lomovych bodu linie (2-5)x3, y3, x4, y4, x5, y5C, 6 # identifikator polygonu, pocet vrcholux6, y6 # souradnice lomovych bodu polygonu (6-11)x7, y7, x8, y8, x9, y9, x10, y10, x11, y11

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Seznam lomovych bodu

# seznam vrcholu a jejich souradnic1, x1, y12, x2, y2...11, x11, y11

# seznam vektorovych objektu a jejich vrcholubod A: 1linie B: 2, 3, 4, 5polygon C: 6, 7, 8, 9, 10, 11

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Dual Independent Map Encoding

# seznam lomovych bodu a jejich souradnic1, x1, y12, x2, y2...11, x11, y11

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Dual Independent Map Encoding

# hrana, plocha napravo, plocha nalevo, pocatecnı uzel, koncovy uzela , , , 1 , 2b , , , 2 , 4c , , , 4 , 5d , , C , 6 , 7e , , C , 7 , 8f , , C , 8 , 9g , , C , 9 , 10h , , C , 10 , 11i , , C , 11 , 6

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Dual Independent Map Encoding

# plocha: seznam hran formujıcı hranici plochyC : d, e, f, g, h, i

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Node-Arc-Area

# souradnice lomovych bodu (arcs)arc, pocatecnı uzel, lomove body , koncovy uzel1 , x2 y2 , x3 y3 x4 y4 , x5 y52 , x6 y6 , x7 y7 x8 y8 x9 y9, x10 y103 , x10 y10 , x11 y11 , x6 y6

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Node-Arc-Area

# topologie hranarc, pocatecnı uzel, koncovy uzel, plocha napravo, plocha nalevo1 , 2 , 5 , ,2 , 6 , 10 , C ,3 , 10 , 6 , C ,

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Node-Arc-Area

# topologie plochplocha, seznam hran formujıcı hraniciC , 2 3

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

6/19

Datove modely pro vektorova data

Node-Arc-Area

# topologie uzluuzel, seznam navazujıcıch hran1 , 12 , 13 , 2 34 , 2 3

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

7/19

Datovy model PostGIS Topology

Rozsırenı pro topologickou spravu vektorovych dat

PostGIS Topology – soucastı PostGISu od verze 2.0• Datovy model Topo-Geo z technicke normy SQL/MM (ISO

13249-3:2006, viz koncept)• Topologicka primitiva

• uzly (nodes) — N1, N2• hrany (edges) — E1, E2, E3• steny (faces) — F1, F2

http://postgis.net/docs/Topology.html

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

8/19

Obsah prednasky

1 Simple Features

2 Datove modelyPostGIS Topology

3 Topologicka primitiva

4 Porovnanı s datovym modelem GRASS GIS

5 Datovy typ TopoGeometry

6 Schema topology

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

9/19

Topologicka primitiva

Topologicka primitiva

• Nodes (uzly)• Edges (hrany)• Faces (steny)

Relace ’Node’

• node id integer PRIMARY KEY• containing face integer REFERENCESFace.face id

• geom geometry (Point)

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

9/19

Topologicka primitiva

Topologicka primitiva

• Nodes (uzly)• Edges (hrany)• Faces (steny)

Relace ’Edge’

• edge id integer PRIMARY KEY• start node integer REFERENCES Node.node id

• end node integer REFERENCES Node.node id

• next left edge integer REFERENCES abs(Edge.edge id)• next right edge integer REFERENCES abs(Edge.edge id)• left face integer REFERENCES Face.face id

• right face integer REFERENCES Face.face id

• geom geometry (LineString)

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

9/19

Topologicka primitiva

Topologicka primitiva

• Nodes (uzly)• Edges (hrany)• Faces (steny)

Relace ’Face’

• face id integer PRIMARY KEY• mbr geometry (muze byt prazdna)

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

10/19

Obsah prednasky

1 Simple Features

2 Datove modelyPostGIS Topology

3 Topologicka primitiva

4 Porovnanı s datovym modelem GRASS GIS

5 Datovy typ TopoGeometry

6 Schema topology

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

11/19

Porovnanı topologickych modelu PostGIS × GRASS

Prıklad modelovanı realnych objektu v GIS

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

11/19

Porovnanı topologickych modelu PostGIS × GRASS

15 uzlu (N1..N15)17 hran (E1..E17)6 sten (F0..F5)

Prıklad modelovanı realnych objektu v topologickeho modeluTopo-Geo

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

11/19

Porovnanı topologickych modelu PostGIS × GRASS

14 uzlu (N1..N14)2 linie (L6,L17)1 bod (P18)15 hranic (B1..B5,

B7..B16)5 centroidu (C1..C5)5 ploch (A1..A5)1 ostrov (I1)

Prıklad topologickeho modelu GRASS GIS

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

12/19

Obsah prednasky

1 Simple Features

2 Datove modelyPostGIS Topology

3 Topologicka primitiva

4 Porovnanı s datovym modelem GRASS GIS

5 Datovy typ TopoGeometry

6 Schema topology

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

13/19

Topologicka sprava vektorovych dat

Datovy typ TopoGeometry

Reprezentuje geometrii definovanou topologickymi primitivy1 Objekty definovane topologickymi primitivy (uzel, hrana,

stena)2 Hierarchicke TopoGeometry objekty, ktere jsou tvoreny

dalsımi TopoGeometry objektyAtributy:• topology id integer• layer id integer• id integer• type integer

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

14/19

Topologicka sprava vektorovych dat

Uzly:node id containing face geomN1 POINT(xN1, yN1)N2 POINT(xN2, yN2)N3 POINT(xN3, yN3)N4 POINT(xN4, yN4)N5 POINT(xN5, yN5)

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

14/19

Topologicka sprava vektorovych dat

Hrany:edge id start node end node next left edge next right edge left face right face geom1 N2 N3 -E1 E1 F0 F0 LINESTRING(...)2 N4 N5 -E3 E3 F0 F1 LINESTRING(...)3 N4 N5 -E2 E2 F1 F2 LINESTRING(...)4 N5 N4 E2 -E2 F0 F2 LINESTRING(...)

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

14/19

Topologicka sprava vektorovych dat

Steny:face id geomF0? NULLF1 Box2D(...)F2 Box2D(...)

?. . . ”universal face“

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

14/19

Topologicka sprava vektorovych dat

Objekty TopoGeometry (topology id1,layer id2,id3,type4):fid label topo1 bod (1,1,1,1)2 linie (1,1,1,2)3 polygon (1,1,1,3)4 polygon (1,1,2,3)

1 . . . odkaz na relaci topology2 . . . odkaz na relaci layer3 . . . odkaz na relaci relation4 . . . typ elementu

1 . . . uzel2 . . . hrana3 . . . stena

Relace Relation:topogeo id layer id element id element type1 1 1 11 1 1 21 1 1 32 1 2 3

topogeo id . . . odkaz na TopoGeo objektlayer id . . . odkaz na relace layerelement id . . . odkaz na relaci node, edge nebo faceelement type . . . typ elementu

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

15/19

Obsah prednasky

1 Simple Features

2 Datove modelyPostGIS Topology

3 Topologicka primitiva

4 Porovnanı s datovym modelem GRASS GIS

5 Datovy typ TopoGeometry

6 Schema topology

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

16/19

Schema topology

Nahranı datovych typu a funkcı PostGIS Topology

CREATE EXTENSION postgis_topology;

Relace ve schematu ”topology“

1 Relace topology

2 Relace layer

1 id | 12 name | topo_test3 srid | 04 precision | 05 hasz | f

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

17/19

Schema topology | relace ”layer“

Tabulky ve schematu ”topology“

1 Relace topology

2 Relace layer

1 topology_id | 12 layer_id | 13 schema_name | public4 table_name | topo_test5 feature_column | topo6 feature_type | 37 level | 08 child_id |

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

18/19

Tvorba topologickych dat

• Nove topologicke schema registruje funkceCreateTopology()

• Topologicka vrstva se vytvarı pomocı funkceAddTopoGeometryColumn()

• Pokud nenı specifikovan child layer bude vrstvaobsahovat jednoduche TopoGeometry objekty

• Objekty TopoGeometry se vytvarejı pomocı funkceCreateTopoGeom()

PostGIS Topology

Simple Features

Datove modelyPostGIS Topology

Topologicka primitiva

Porovnanı s datovymmodelem GRASS GIS

Datovy typTopoGeometry

Schema topology

19/19

Zaver

Dalsı informace a prakticke ukazky:• http://freegis.fsv.cvut.cz/gwiki/PostGIS Topology• http://training.gismentors.eu/postgis-

pokrocily/kapitoly/8 topologie.html

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

1/13

Prednaska 6

PostGIS RasterSprava rastrovych dat v geodatabazi PostGIS

155UZPD Uvod do zpracovanı prostorovych dat, zimnı semestr 2019-2020

Martin [email protected]

Fakulta stavebnı CVUT v PrazeKatedra geomatiky

http://geo.fsv.cvut.cz/gwiki/155UZPD

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

2/13

Copyright c© 2009-2019 Martin Landa

Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation Licence, Version 1.2 or any later version published by the

Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts.

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

3/13

Obsah prednasky

1 Uvod

2 PostGIS RasterCharakteristikaImport/export a konverze datFunkcionalitaPrakticka ukazka

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

4/13

Uvod

Projekty

1 PGRaster2 PostGIS Raster (drıve WKTRaster)

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

4/13

Uvod

Projekty

1 PGRaster2 PostGIS Raster (drıve WKTRaster)

PGRaster

→ http://trac.osgeo.org/postgis/wiki/UsersWikiPgRasterSqlInterface

• PGRaster jako dvoudimenzionalnı pole numerickychhodnot

• LO – PostgreSQL large object• TOAST – PostgreSQL bytea

• Datovy typ bunky rastrove vrstvy – PGRasterCell

• Podporovane externı formaty – knihovna GDAL• Vyvoj ukoncen, viz PostGIS Raster (2009)

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

4/13

Uvod

Projekty

1 PGRaster2 PostGIS Raster (drıve WKTRaster)

PostGIS Raster (drıve WKTRaster)

→ http://trac.osgeo.org/postgis/wiki/WKTRaster

• Vyvıjen od roku 2009 (viz roadmap) – soucastı PostGIS2.0

• Odlisny prıstup od PGRaster a Oracle Spatial GeoRaster• Cılem je implementovat datovy typ pro rastrova data

podobne jako GEOMETRY pro vektorova data• Navrhnout funkce typu ST Intersects(), ktere by

operovaly soucasne nad vektorovymi a rastrovymi daty

http://freegis.fsv.cvut.cz/gwiki/PostGIS_Raster

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

5/13

Obsah prednasky

1 Uvod

2 PostGIS RasterCharakteristikaImport/export a konverze datFunkcionalitaPrakticka ukazka

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

6/13

PostGIS Raster

Zakladnı vlastnosti

• Tabulka (relace) ∼ rastrova vrstva (raster coverage)• Zaznam ∼ dlazdice ci rastrovy objekt• Novy datovy typ RASTER (analogie pro GEOMETRY

vektorovych dat)• Rastrova dlazdice je definovana

• Velikostı bunky (pixelu) – prostorovym rozlisenım• Rozmerem (sırka, vyska) dlazdice• Poctem kanalu• Pro kazdy kanal datovy typ bunky a hodnota no-data

Ulozenı dat

1 Ulozenı rastrovych dat v internım formatu (obdoba WKB)2 Ulozenı dat externe (jako JPEG, TIFF, . . . ) s moznostı

pouzıt rastrove SQL funkce

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

6/13

PostGIS Raster

Zakladnı vlastnosti

• Tabulka (relace) ∼ rastrova vrstva (raster coverage)• Zaznam ∼ dlazdice ci rastrovy objekt• Novy datovy typ RASTER (analogie pro GEOMETRY

vektorovych dat)• Rastrova dlazdice je definovana

• Velikostı bunky (pixelu) – prostorovym rozlisenım• Rozmerem (sırka, vyska) dlazdice• Poctem kanalu• Pro kazdy kanal datovy typ bunky a hodnota no-data

Ulozenı dat

1 Ulozenı rastrovych dat v internım formatu (obdoba WKB)2 Ulozenı dat externe (jako JPEG, TIFF, . . . ) s moznostı

pouzıt rastrove SQL funkce

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

6/13

PostGIS Raster

Zakladnı vlastnosti

• Tabulka (relace) ∼ rastrova vrstva (raster coverage)• Zaznam ∼ dlazdice ci rastrovy objekt• Novy datovy typ RASTER (analogie pro GEOMETRY

vektorovych dat)• Rastrova dlazdice je definovana

• Velikostı bunky (pixelu) – prostorovym rozlisenım• Rozmerem (sırka, vyska) dlazdice• Poctem kanalu• Pro kazdy kanal datovy typ bunky a hodnota no-data

Ulozenı dat

1 Ulozenı rastrovych dat v internım formatu (obdoba WKB)2 Ulozenı dat externe (jako JPEG, TIFF, . . . ) s moznostı

pouzıt rastrove SQL funkce

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

7/13

PostGIS Raster

Hlavnı cıle

1 Jednoduchost, rozsıritelnost, funkcionalita –zapouzdreny datovy typ pro rastrova data srovnatelnys GEOMETRY (vektorova data/Simple Features).Obdobne operatory a funkce, ktere PostGIS nabızı provektorova data.

2 Bezesva integrace s datovym typem GEOMETRY –operace prekrytı nad rastrovymi a vektorovymi daty beznutnosti explicitnı konverze mezi temito reprezentacemi

3 Flexibilita ulozenı dat – ulozenı rastrovych dat v databazi× registrace externıho zdroje rastrovych dat v databazi

4 Interoperabilita – externı datove zdroje lze registrovatpomocı knihovny GDAL (podpora pro vıce nez 140rastrovych GIS formatu)

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

8/13

Import, export dat & konstruktory

Import/Export

Nastroje pro import/export dat• raster2pgsql

• pgsql2raster

Knihovna GDAL podporuje PostGIS Raster od verze 1.6(pouze v rezimu ctenı!)

Konverze dat

Konverze geometry/raster (geograficke objekty jako vektorovepolygony nebo rastrove dlazdice)• ST Polygon(raster)→ geometry• ST AsRaster(geometry)→ raster

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

8/13

Import, export dat & konstruktory

Import/Export

Nastroje pro import/export dat• raster2pgsql

• pgsql2raster

Knihovna GDAL podporuje PostGIS Raster od verze 1.6(pouze v rezimu ctenı!)

Konverze dat

Konverze geometry/raster (geograficke objekty jako vektorovepolygony nebo rastrove dlazdice)• ST Polygon(raster)→ geometry• ST AsRaster(geometry)→ raster

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

9/13

Prehled funkcı

Zakladnı funkce

• ST Resample(raster, pixelsize, method)→ raster

• ST Clip(raster|geometry, geometry)→ typ prvnıho argumentu

• ST Reclass(raster|geometry, string)→ typ prvnıho argumentu

• ST MapAlgebra(raster|geometry, raster),vyraz, "raster"|"geometry")→ raster/geometry

• . . .

http://postgis.net/docs/manual-dev/RT_reference.html

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

9/13

Prehled funkcı

Konstruktory

• ST Intersection(raster|geometry,raster|geometry, "raster"|"geometry")→ raster/geometry

• ST Union(raster|geometry, raster|geometry,"raster"|"geometry")→ raster/geometry

• ST Accum(raster set|geometry set,"raster"|"geometry")→ raster/geometry

• ST Transform(raster|geometry, SRID)→ typ prvnıho argumentu

• . . .

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

10/13

Ukazka PostGIS Raster | Import1 Import rastroveho souboru ve formatu GeoTIFF

raster2pgsql -r -C -I -s 5514 dem.tif > dmt.sqlpsql pgis_student -f dmt.sql

Poznamka: Prepınac -R umoznuje data pripojit jakoexternı zdroj dat

2 Zakladnı metadata rastrove vrstvy

SELECT ST_SRID(rast), ST_NumBands(rast),ST_BandPixelType(rast, 1),ST_Width(rast), ST_Height(rast), ST_PixelWidth(rast),ST_PixelHeight(rast), ST_GeoReference(rast)FROM dem;

1 st_srid | 20652 st_numbands | 13 st_bandpixeltype | 16BUI4 st_width | 78815 st_height | 32466 st_pixelwidth | 59.99993735252137 st_pixelheight | 89.9916274109558 st_georeference | 59.99993735259 : 0.000000000010 : 0.000000000011 : -89.991627410912 : -904259.055839840013 : -935192.9920546100

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

11/13

Metadatova tabulka RASTER COLUMNS

\d raster_columns

1 Column | Type | Modifiers2 ------------------+--------------------+-----------3 r_table_catalog | name |4 r_table_schema | name |5 r_table_name | name |6 r_raster_column | name |7 srid | integer |8 scale_x | double precision |9 scale_y | double precision |

10 blocksize_x | integer |11 blocksize_y | integer |12 same_alignment | boolean |13 regular_blocking | boolean |14 num_bands | integer |15 pixel_types | text[] |16 nodata_values | double precision[] |17 out_db | boolean[] |18 extent | geometry |

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

12/13

Metadatova tabulka RASTER COLUMNS

SELECT * FROM raster_columns;

1 r_table_catalog | pgis_student2 r_table_schema | public3 r_table_name | dem4 r_raster_column | rast5 srid | 20656 scale_x | 59.99993735252137 scale_y | -89.9916274109558 blocksize_x | 78819 blocksize_y | 3246

10 same_alignment | t11 regular_blocking | t12 num_bands | 113 pixel_types | {16BUI}14 nodata_values | {65535}15 out_db | {f}16 extent | ...

PostGIS Raster

Uvod

PostGIS RasterCharakteristika

Import/export a konverzedat

Funkcionalita

Prakticka ukazka

13/13

Ukazka PostGIS Raster | Operace s daty

Vytvorenı konvexnı obalky rastrove vrstvy

CREATE TABLE dem_extent AS SELECTST_ConvexHull(rast) AS geomFROM dem;

Dalsı prıklady: gis2-2.sql a gis2-3.sql

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

1/9

Prednaska 7

pgRoutingSıt’ove analyzy v geodatabazi PostGIS

155UZPD Uvod do zpracovanı prostorovych dat, zimnı semestr 2019-2020

Martin [email protected]

Fakulta stavebnı CVUT v PrazeKatedra geomatiky

http://geo.fsv.cvut.cz/gwiki/155UZPD

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

2/9

Copyright c© 2009-2019 Martin Landa

Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation Licence, Version 1.2 or any later version published by the

Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts.

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

3/9

Obsah prednasky

1 Uvod

2 FunkcionalitaNejkratsı cesta

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

4/9

pgRouting

http://www.pgrouting.org

pgRouting

• Rozsırenı pro PostGIS zamerene sıt’ove analyzy• Puvodne pgDijkstra (Camptocamp, Kanada), prejmenovan

na pgRouting (Orkney, Japonsko), v soucasnosti je vyvojpodporovan predevsım spolecnostı Georepublic(Nemecko)

• Licence GNU GPLv2• Funkcionalita

1 Vyhledanı nejkratsı cesty (Dijkstra, A-Star, Shooting-Star)2 Problem obchodnıho cestujıcıho (Traveling Salesperson

Problem)3 Dojezdova vzdalenost (Driving Distance)

http://geo.fsv.cvut.cz/freegis/PgRouting

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

5/9

Obsah prednasky

1 Uvod

2 FunkcionalitaNejkratsı cesta

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

6/9

Vyhledanı nejkratsı cesty

Algoritmy

1 Dijkstra – shortest path

2 A-Star – shortest path astar

3 Shooting Star – shortest path shooting star

<nazev>(sql text, -- SQL dotazsource_id integer, -- id pocatecniho uzlutarget_id integer, -- id koncoveho uzludirected BOOLEAN, -- orientovany/neorientovany grafhas_reverse_cost BOOLEAN -- naklady v opacnem smeru

-- definovany/nedefinovany)

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

7/9

Vyhledanı nejkratsı cesty

Dijkstra

Dijkstruv algoritmus• Prvnı implementovany algoritmus pro pgRouting• Bez heuristiky• Orientovane ci neorientovane hrany• Informace o uzlech

SELECT gid, st_astext(geom) AS geomFROM dijkstra_sp(’ways’, 605, 359);

1 gid | geom2 --------+---------------------------------------------------------------3 168 | MULTILINESTRING((2.1633077 41.3802886,2.1637094 41.3803008))4 169 | MULTILINESTRING((2.1637094 41.3803008,2.1638796 41.3803093))5 170 | MULTILINESTRING((2.1638796 41.3803093,2.1640527 41.3803265))6 ... | ...7 5575 | MULTILINESTRING((2.1436976 41.3897581,2.143876 41.3903893))8 (81 rows)

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

8/9

Vyhledanı nejkratsı cesty

A-Star

A-Star algoritmus• Vhodny pro vetsı datasety• Jedna o heuristicky algoritmus• Orientovane ci neorientovane hrany• Informace o uzlech

SELECT gid, st_astext(geom) AS geomFROM astar_sp_delta(’ways’, 605, 359, 0.1);

1 gid | geom2 --------+---------------------------------------------------------------3 2095 | MULTILINESTRING((2.1456208 41.3901317,2.143876 41.3903893))4 1721 | MULTILINESTRING((2.1494579 41.3890058,2.1482992 41.3898429))5 1719 | MULTILINESTRING((2.1517067 41.3873058,2.1505566 41.3881623))6 ... | ...7 3607 | MULTILINESTRING((2.1795052 41.3843643,2.1796184 41.3844328))8 (81 rows)

pgRouting

Uvod

FunkcionalitaNejkratsı cesta

9/9

Vyhledanı nejkratsı cesty

Shooting Star

Shooting-Star algoritmus• Jedna o heuristicky algoritmus• Orientovane ci neorientovane hrany• Na rozdıl od Dijkstrova ci A-Star algoritmu vypocıtava

nejkratsı cestu ze spojnice hran nikoliv z uzlu• Umoznuje zachytit vztahy mezi hranami, rovnobeznost

hran a pod.

SELECT gid, st_astext(geom) AS geomFROM shootingstar_sp(’ways’, 609, 366, 0.1, ’length’,true, true);

1 gid | geom2 --------+---------------------------------------------------------------3 609 | MULTILINESTRING((2.1436976 41.3897581,2.1449097 41.3889929))4 273 | MULTILINESTRING((2.1460685 41.3898043,2.1449097 41.3889929))5 272 | MULTILINESTRING((2.1463431 41.3900361,2.1460685 41.3898043))6 ... | ...7 3607 | MULTILINESTRING((2.1795052 41.3843643,2.1796184 41.3844328))8 (81 rows)

NoSQL

1/1

Prednaska 9

NoSQLNoSQL databaze a geograficka data

155UZPD Uvod do zpracovanı prostorovych dat, zimnı semestr 2019-2020

Martin [email protected]

Fakulta stavebnı CVUT v PrazeKatedra geomatiky

http://geo.fsv.cvut.cz/gwiki/155UZPD

NoSQL

2/1

Copyright c© 2009-2019 Martin Landa

Permission is granted to copy, distribute and/or modify this document under the terms of

the GNU Free Documentation Licence, Version 1.2 or any later version published by the

Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts.

NoSQL

3/1

Obsah prednasky

NoSQL

4/1

NoSQL

•”Nejen“ SQL - i jine prostredky nez tabulkova schematarelacnıho datoveho modelu

+ jednoduchost navrhu+ horizontalnı i vertikalnı skalovatelnost

+/- mensı kontrola konzistence dat, lepsı dostupnost+/- neprıtomnost plnohodnotne podpory transakcnıho modelu

ACID (Atomicity, Consistency, Isolation, Durability)- casto nızka uroven standardizace

NoSQL

4/1

NoSQL

•”Nejen“ SQL - i jine prostredky nez tabulkova schematarelacnıho datoveho modelu

+ jednoduchost navrhu+ horizontalnı i vertikalnı skalovatelnost

+/- mensı kontrola konzistence dat, lepsı dostupnost+/- neprıtomnost plnohodnotne podpory transakcnıho modelu

ACID (Atomicity, Consistency, Isolation, Durability)- casto nızka uroven standardizace

NoSQL

5/1

Nasazenı

• NoSQL databaze nenahrazujı relacnı databaze→ Vhodnost se odvıjı od typu reseneho problemu• Jsou urceny pro nerelacnı data v distribuovanych

prostredıch• Obvykle nasazenı v segmentu ”big data“ (distribuovane

databaze) ci real-time web• Mısto ACID poskytujı BASE (Basically Available,

Soft-state, Eventual consistency)• Ruzne typy NoSQL databazı podle zpusobu ulozenı dat,

viz dale . . .

NoSQL

6/1

Obsah prednasky

NoSQL

7/1

Prehled NoSQL databazı

Klıc-hodnota

• Jeden klıc, jedna hodnota• Rychly prıstup pres klıc (hash tabulky)• Hodnota je BLOB (nedelitelna)• Napr. Oracle NoSQL, Dynamo (Amazon)

NoSQL

8/1

Prehled NoSQL databazı

Dokumentove

• Podobne jako klıc-hodnota• Hodnota je ale strukturovana (XML, JSON, objekt)• Umoznuje slozitejsı dotazy• Napr. MongoDB

NoSQL

9/1

Prehled NoSQL databazı

Sloupcove

• Radek je kolekce dvojic klıc-hodnota• Klıc je nazev sloupce• Ruzny pocet sloupcu• Napr. Cassandra (Facebook), BigTable (Google)

NoSQL

10/1

Prehled NoSQL databazı

Grafove

• Graf (uzly, hrany)• Reprezentace sıtı a jejich topologiı• Socialnı, dopravnı, pocıtacove sıte, . . .• Napr. Neo4j, AllegroGraph

NoSQL

11/1

Obsah prednasky

NoSQL

12/1

NoSQL a geograficka data

• MongoDB• GeoCouch (CouchDB)• . . .