PostGIS Workshop Einführung in Geodatenbanken mit PostGIS



Ähnliche Dokumente
PostGIS Workshop Einführung in Geodatenbanken mit PostGIS

PostGIS Raster Workshop

Praxis bei Unternehmen und Behörden

PostGIS für Einsteiger

PostGIS. die PostgreSQL Erweiterung zur Geodatenhaltung. Astrid Emde

Geodatenbanken PostgreSQL/PostGIS Anwendungsbeispiel Entwicklungen

Abschlussveranstaltung elearning-seminar Geodatenbanken 30. Juni 2007, Oldenburg

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

PostGIS-Einführung Architektur und Funktionen

SpatiaLite, das Shapefile der Zukunft?

PostGIS 2.0 Was bringt die neue Version?

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

PostgreSQL unter Debian Linux

Umsetzung von Prozessen der Stadtentwicklung in OSM

FOSSGIS 2010, Osnabrück

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Beispiel 1: Filmdatenbank

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug Name: Note:

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Labor 3 - Datenbank mit MySQL

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

SQL. Fortgeschrittene Konzepte Auszug

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Bibliografische Informationen digitalisiert durch

7. Übung - Datenbanken

Abfragen: Grundbausteine

Oracle: Abstrakte Datentypen:

PostgreSQL in großen Installationen

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

Urs Meier Art der Info Technical Info (Februar 2002) Aus unserer Projekterfahrung und Forschung

Informatik 12 Datenbanken SQL-Einführung

SQL und MySQL. Kristian Köhntopp

SQL: statische Integrität

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Aufgaben zu XPath und XQuery

SQL structured query language

Neugestaltung der Datenbank des Chemnitzer Studentennetzes

mobile GIS Open Source Geodatenbanken Benjamin Winter

Views in SQL. 2 Anlegen und Verwenden von Views 2

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

GEOPROCESSING UND MODELBUILDER

MIN oder MAX Bildung per B*Tree Index Hint

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

PostgreSQL Ein Überblick

Übungsblatt 8- Lösungsvorschlag

Grundlagen Datenbanken Sommersemester 2008

IV. Datenbankmanagement

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

ALKIS- und Dienst-Nutzung mit Mapbender

Aktuelle Entwicklungen

Kurzanleitung für Umsteiger von DataEase.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

desk.modul : WaWi- Export

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Entwicklung einer Informix- Administrationsdatenbank mit ERwin

teamsync Kurzanleitung

Um die Rücklagen ordnungsgemäß zu verbuchen, ist es wichtig, Schritt-für-Schritt vorzugehen:

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Erstellen einer Datenbank. Datenbankabfragen

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Handbuch organice SQL-Reportgenerator

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

<Insert Picture Here> Oracle Spatial Die Plattform für Geo-Business-Intelligence. Carsten Czarski ORACLE Deutschland B.V. & Co KG

Oracle 10g Einführung

Naxtron GmbH Schlosstalstrasse Winterthur. Subject. New Features Oracle 9i Tuning. Edo Bezemer. Author

FernUniversität in Hagen

DB2 SQL, der Systemkatalog & Aktive Datenbanken

MapProxy. Eine praktische Einführung FOSSGIS Heidelberg. Dominik Helle Oliver Tonnhofer

Diplomprüfung für Vermessungsingenieure Wintertrimester 2011 Fach: Geoinformationssysteme

SMS-Tool. Seite 1 von 8

WARY Notariat Urkundenrolle V2013

Indexing und Performance Tuning

Datenbank- und Informationssysteme. Lösungsvorschläge zu Übungsblatt 2. Sommersemester CREATE DOMAIN KennzeichenDomain AS VARCHAR(9);

Sructred Query Language

PostGIS in real ;-) action. Falko Engel FOSSGIS 2014, Berlin

OXID esales Dokumentation

Sie sollen eine Datenbank für Befragungen mittels Online-Fragebögen zu unterschiedlichen Themen erstellen:

DB2 Codepage Umstellung

PostgreSQL Wartungsstrategien

Sage Treuhandaustausch onesage Version 2.2

SQL-Optimizer und Optimierung bei DB2

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: Übung WS 2014/2015

Vorwort... 1 Voraussetzungen... 1 Teilnahme am Testmeeting... 2 Browser Add-on für WebEx installieren... 3 Einrichtung des Audiokanals...

Referenzielle Integrität SQL

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Übungen zur Vorlesung Informationssysteme - Blatt 5

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Transkript:

PostGIS Workshop Einführung in Geodatenbanken mit PostGIS 05.04.2011, FOSSGIS 2011, Heidelberg PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 1

Beispieldaten Die im Workshop verwendeten Beispieldaten sind unter der folgenden URL zu beziehen: http://ftp.intevation.de/users/stephan/fo ssgis-2011/ws/postgis/postgisfossgis2011.tar.gz PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 2

Über die Referenten Stephan Holl, Intevation GmbH stephan.holl@intevation.de http://www.intevation.de/geospatial Harald Schwenk, agentur geoinfo harald.schwenk@agentur-geoinfo.de http://www.agentur-geoinfo.de PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 3

PostgreSQL Features AKID (Atomar, Konsistent, Isoliert, Dauerhaft) SQL 92, Query Optimizer Volltext-Suche Seperation, Replikation Hot-Backup, Write-ahead Logs / PITR Stored Procedures Trigger / Rules Freie Software: BSD PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 4

PostGIS: Geschichte 2001: SFSQL als Designgrundlage Anbindung UMN MapServer 2002: Verbesserte Basisfunktionen, Index 2003-2005: GEOS-Anbindung Lightweight Geometries PostGIS 1.0.0 2006: OpenGIS SFSQL compliance 2007: CurveTypes PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 5

PostGIS: Geschichte 2009 Performance-Optimierungen Stabilitätsoptimierungen 2010 PostGIS 1.5.2, Septermber 24 2011 PostGIS 2.0: Raster-Support PostGIS 2.0: 3D Idealer Release: Juni 2011 PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 6

PostGIS Installation GNU/Linux Distributionen liefern Pakete für PostgreSQL Ab PostGIS 1.1.0 vereinfachte Installation: Vorbedingungen: PostgreSQL Laufzeitsystem PostgreSQL Entwicklungspaket PostGIS Quellen Installieren:./configure [weitere Optionen] make make install Ab PostGIS 1.5.0 Geometry-Types PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 7

Einrichtung einer Datenbank createdb <datenbankname> createlang plpgsql <datenbankname> psql -f lwpostgis.sql <datenbankname> psql -f spatial_ref_sys.sql <datenbankname> PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 8

Einfache Abfragen create table points (pt geometry, name varchar); insert into points values ('POINT(0 0)', 'Ursprung'); insert into points values ('POINT(5 0)', 'X-Achse'); insert into points values ('POINT(0 5)', 'Y-Achse'); select name, st_astext(pt), st_distance(pt, 'POINT(5 5)') from points; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 9

Einfache Abfragen SELECT name, st_astext(pt), st_distance(pt, 'POINT(5 5)') from points; 5 POINT(0 5 ) 7.07 POINT(5 5 ) 5 POINT(0 0 ) POINT(5 0 ) PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 10

PostGIS Geometrietypen 1. Punkte 2. Linien 3. Polygone 4. MultiPunkte 5. MultiLinien 6. MultiPolygone 7. Kollektionen 8. Kurventypen 9. 3D-Typen PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 11

PostGIS Geometrietypen I POINT(5 5) LINESTRING(0 5, 5 0); POLYGON((0 0, 2 0, 0 2, 0 0)) MULTIPOINT((5 3), (2 5)); MULTILINESTRING... MULTIPOLYGON... GEOMETRYCOLLECTION( POINT(...), LINESTRING(...),... ) PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 12

PostGIS Geometrietypen II CIRCULARSTRING(0 0,1 1,1 0) COMPOUNDCURVE(CIRCULARSTRING(0 0,1 1,1 0),1 0,0 1)) CURVEPOLYGON(CIRCULARSTRING(0 0,4 0,4 4,0 4,0 0),(1 1,3 3,3 1,1 1)) MULTICURVE((0 0,5 5),CIRCULARSTRING(4 0,4 4,8 4)) MULTISURFACE(CURVEPOLYGON(CIRCULA RSTRING())) PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 13

OGC Standards Tabelle spatial_ref_sys: Spalte Typ Attribute -----------+-------------------------+----------- srid integer not null auth_name character varying(256) auth_srid integer srtext character varying(2048) proj4text character varying(2048) SRID=4326;POINT(52.8 8.4) PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 14

OGC Standards Tabelle geometry_columns: Spalte Typ Attribute -------------------+------------------------+----------- f_table_catalog character varying(256) not null f_table_schema character varying(256) not null f_table_name character varying(256) not null f_geometry_column character varying(256) not null coord_dimension integer not null srid integer not null type character varying(30) not null Funktion AddGeometryColumns: AddGeometryColumn(<schema_name>, <tabellen_name>, <spalten_name>, <srid>, <type> <dimension>) Ohne <schema_name> aktuelles Schema SELECT AddGeometryColumn('roads', 'geom', 423, 'LINESTRING', 2); PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 15

OGC Standards Validierung der Geometrien Simple Feature beschränkt Varianten PostGIS Funktion: isvalid(<geom>) liefert als NOTICE Hinweise bzgl. Invalidität keine automatische Prüfung beim Einfügen explizit anlegen: ALTER TABLE roads ADD CONSTRAINT geometrie_valide_check CHECK (isvalid(geom)); PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 16

Import von Geo-Daten Shp2pgsql <shapefile> <tabelle> Optionen: -s: SRID -D: Postgresql COPY (Bulk load) -I: GiST-Index Ausgabe SQL-Skript Möglichkeit einer Pipe: psql... PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 17

Export von Geo-Daten Pgsql2shp <opts> <db> <tabelle> Optionen: -f <Ausgabefile> -h, -p... Beschränkungen im Zielformat beachten! PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 18

Räumliche Indizes PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 19

Räumliche Indizes Erstellen eines Index: CREATE INDEX bc_roads_gidx ON bc_roads USING GIST ( the_geom ); Sammeln von Statistiken VACUUM ANALYSE; Seit PostGIS 1.3 wird der Index automatisch beim BBOX-Vergleich genutzt, explizites Anfragen ist nicht mehr nötig. PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 20

Spatial Analysis Gesamtlänge aller Straßen in BC in Kilometern? SELECT sum(st_length(the_geom))/1000 FROM bc_roads; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 21

Spatial Analysis Welches ist die größte Stadt, nach Fläche? SELECT name FROM bc_municipality WHERE st_area(the_geom) = (SELECT max(st_area(the_geom)) FROM bc_municipality); Alternative: SELECT name, st_area(the_geom) AS area FROM bc_municipality ORDER by area DESC LIMIT 1; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 22

Spatial Analyis - Entfernungen Wieviele Wähler der Grünen Partei leben in einem höchstens 2 Kilometer vom Pub 'TABOR ARMS' entfernten Wahlbezirk? SELECT sum(v.gp) AS Gruene_Waehler FROM bc_voting_areas v, bc_pubs p WHERE st_distance(v.the_geom, p.the_geom) < 2000 AND p.name like 'Tabor Arms%'; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 23

Spatial Analyis - Entfernungen Optimierung: Einschränkung der zu prüfenden Wahlbezirke. SELECT sum(v.gp) AS Gruene_Waehler FROM bc_voting_areas v, bc_pubs p WHERE st_distance(v.the_geom, p.the_geom) < 2000 AND v.the_geom && st_expand(p.the_geom, 2000) AND p.name like 'Tabor Arms%'; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 24

Spatial Joins Verknüpfung zweier Tabellen anhand Beziehung zwischen Geometrien Alle Pubs, die näher als 250 m an einem Krankenhaus liegen: SELECT h.name, p.name FROM bc_hospitals h, bc_pubs p WHERE st_distance(h.the_geom, p.the_geom) < 250; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 25

Spatial Joins Zusammenführung von Datenbeständen: Alle Wahlkreise in 'PRINCE GEORGE': SELECT v.id FROM bc_voting_areas v, bc_municipality m WHERE st_intersects(v.the_geom, m.the_geom) AND m.name = 'PRINCE GEORGE'; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 26

Räumliche Prädikate Verschiedene Prädikate, um Beziehung zwischen Geometrien zu untersuchen: st_equals(geometry, geometry)* Linie(0 0, 10 10), Linie(0 0, 5 5, 10 10) st_disjoint(geometry, geometry)* st_intersects(geometry, geometry)* st_touches(geometry, geometry)* Polygon((0 0, 1 0, 1 1, 0 0)) und Polygon((1 1, 1 0, 2 0, 1 1)) st_crosses()* st_within()* PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 27

Räumliche Prädikate st_overlaps(geometry, geometry)* st_contains(geometry, geometry)* st_covers(geometry, geometry)* st_coveredby(geometry, geometry)* st_relate(geometry, geometry, intersectionpatternmatrix)* st_relate(geometry, geometry)* Dimensionally Extended 9 Intersection Model (DE-9IM) PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 28

Verschneidungen Methoden zur Analyse / Erzeugung neuer Geometrien Prozentuale Anteile der Gemeinde Hudson's Hope an Wahlkreisen: SELECT v.id, v.region, st_area(st_intersection(v.the_geom, m.the_geom))/ st_area(v.the_geom)*100 as anteil FROM bc_voting_areas v, bc_municipality m WHERE v.the_geom && m.the_geom AND m.name = 'HUDSON''S HOPE'; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 29

Verschneidungen st_intersection(geometry, geometry)* st_difference(geometry A, geometry B)* st_symdifference(geometry, geometry)* st_union(geometry, geometry)* Auch als Aggregat: st_union(geometry set) st_memunion(geometry set) PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 30

Projektionen Konsistenz der Daten SELECT st_srid(the_geom) FROM bc_roads LIMIT 1; Umprojektion (Transformation): SELECT st_astext(the_geom) FROM bc_roads LIMIT 1; SELECT st_astext( st_transform(the_geom,4326) ) FROM bc_roads LIMIT 1; PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 31

Schulungstermine PostGIS-Schulungen 2011 Einführung (2 Tage) 31.05-01.06.2011 27. - 28.09.2011 01. - 02.11.2011 PostGIS für Fortgeschrittene (2 Tage) 02. - 03.06.2011 29. - 30.09.2011 03. - 04.11.2011 Weitere Termine bieten wir auch gerne bei Ihnen Inhouse an! Fragen Sie nach! http://www.intevation.de/geospatial PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 32

www.postgis.org www.postgresql.org Stephan Holl <stephan.holl@intevation.de> www.intevation.de/geospatial Harald Schwenk <harald.schwenk@agentur-geoinfo.de> www.agentur-geoinfo.de PostGIS Einführung, FOSSGIS 2011, Heidelberg - Seite 33