Kurs PostGIS Einführung II: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K (Programm)
K (Programm)
 
(42 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
GISpunkt-Seminar '''"PostGIS Einführung II (inkl. PostgreSQL)"''' (Kürzel Sem_PostGIS_FF).
+
Kurs '''"PostGIS Einführung II (inkl. PostgreSQL)"''' (Kürzel Sem_PostGIS_FF).
 +
[[File:PostGIS Postgres Logo 150x150.jpg|100px||right|]]
  
   Nächste Durchführung: Fr. 12. September 2014 >> [[Media:Kurs_PostGIS_II_2014-09-12_Anmeldung.pdf|Zur Anmeldung (.PDF)]]
+
   Nächste Durchführung: Siehe [[Kurs PostGIS Einführung I]].
  Übernächste Durchführung: Fr. 23. Januar 2015
 
  
 
Siehe auch:
 
Siehe auch:
Zeile 10: Zeile 10:
 
== Organisation ==
 
== Organisation ==
  
* Dauer: 1 Tag, 9:00 bis ca. 16:30 Uhr plus Selbststudium.
+
* Dauer: 2 Tage, 9:00 bis ca. 16:30 Uhr plus Selbststudium.
* Kosten (inkl. Unterlagen, 1 Kaffee und 1 Mittagessen):
+
* Koste: Siehe [[Kurs PostGIS Einführung I]]
** Kategorie 1. Regulärer Teilnehmender CHF 700.--
+
* Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.
** Kategorie 2. UNIGIS-Studierende, BIZ-GEO-Lernende, Hochschul-Mitarbeitende CHF 550.--
 
** Kategorie 3. Studierende an einer Hochschule bis 25 J., HSR-Mitarbeitende CHF 350.--.
 
* Dieser überarbeitete Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.
 
 
* Vorkenntnisse: Grundkenntnisse in Datenbanken (SQL).
 
* Vorkenntnisse: Grundkenntnisse in Datenbanken (SQL).
 
* Referenten: Prof. Stefan Keller (HSR) und Andreas Neumann (GIS Stadt Uster).
 
* Referenten: Prof. Stefan Keller (HSR) und Andreas Neumann (GIS Stadt Uster).
Zeile 21: Zeile 18:
 
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Der Kurs findet ab fünf zahlenden Teilnehmern statt.
 
* Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Der Kurs findet ab fünf zahlenden Teilnehmern statt.
 
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.
 
* Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.
 +
* Selbststudium: Auf Anfrage und nach Absprache (dieses steht im Zusammenhang mit der Anrechnung eines ECTS)
 +
 +
== Beschreibung ==
 +
 +
Es werden Themen aus dem [[Kurs PostGIS Einführung I]] vertieft und mit zusätzlichen ergänzt.
  
 
== Programm ==
 
== Programm ==
 
+
* 09:00-09:15 - Einführung, Vorstellung. (SK)
* 09:00-09:15 Einführung, Vorstellung. (sep. Gruppe (A) diejenigen, die installieren, (B) die schon installiert haben) (SK)
+
* 09:15-10:00 - Gruppe A: Installation und Daten einlesen (gemeinden/seen/fluesse.shp, staedte_ch.sql, uster_schlank.sql). (AN mit Helfer)
* 09:15-10:00 (Gruppe A): Installation inkl. Daten einlesen. (AN mit Helfer)
+
* 09:15-10:00 - Gruppe B/Fortgeschrittene: Daten einlesen, dann Fragen (SK)
* 09:15-10:00 (Gruppe B): Fragen von Fortgeschrittenen (SK)
+
* 10:00-10:30 1 Überblick PostGIS 2: Extensions, Datentyp Geography, Topology, Raster, Pointcloud, 3D (AN)
* 10:00-10:15 Überblick PostGIS 2.0, inkl. Extensions, Datentyp Geography. (AN)
+
* 10:30-11:00 - PAUSE
* 10:15-10:30 Überblick PostGIS-Tools (SQL-Shell in QGIS, weitere Tools) (AN + SK)
+
* 11:00-11:45 3 "Spatial SQL Advanced" mit PostgreSQL (Views, Triggers, Constraints, Stored Procedures) mit angewandte Übung (X/Y-Trigger)
* 10:30-11:00 PAUSE
+
* 11:45-12:30 4 Neue Vektorgeometrie-Funktionen in PostGIS 2 (SK)
* 11:00-11:45 "Spatial SQL Advanced" mit PostgreSQL: Views (mit IDs), Trigger (Nachführung Fläche, Constraints im Leitungskataster), Rules (Updatable Views), Konsistenz-Checks. (AN)
+
* 12:30-13:30 - MITTAGESSEN
* 11:45-12:30 Neue Vektorgeometrie-Funktionen in PostGIS 2.0 mit Übung. (SK)
+
* 13:30-14:00 6 Modernes SQL: CTE/WITH und Views/Materialized Views, Security Definer (SK)
* 12:30-13:30 MITTAGESSEN
+
* 13:30-14:00 7 Übung komplexe räumliche SQL-Abfragen (SK)
* 13:30-14:00 Übung komplexe räumliche SQL-Abfragen. (AN)
+
* 13:30-14:00  Übung Views/Materialized Views
* 14:00-15:00 PostGIS Raster mit Übung (mit QGIS). (AN)
+
* 14:00-15:00 5 PostGIS Raster ohne Übung (mit QGIS) (AN)
* 15:00-16:15 Div. Themen nach Rücksprache (z.B. PostGIS Routing). (SK + AN)
+
* 15:00-16:15 6 Ausblick: pgRouting,  etc. (SK)
* 16:15-16:30 Ausblick (u.a. Routing). (SK)
+
* 16:15-16:30 - Zeit für Diskussion (SK)
  
 
Vorkenntisse:
 
Vorkenntisse:
 
* Kurs "Einführung in PostGIS/PostgreSQL", bzw. Kenntnisse von SQL sowie Spatial SQL-Funktionen
 
* Kurs "Einführung in PostGIS/PostgreSQL", bzw. Kenntnisse von SQL sowie Spatial SQL-Funktionen
 
* PostgreSQL Tools (psql, pgadminIII), PostGIS-Tools (shp2pgsql)
 
* PostgreSQL Tools (psql, pgadminIII), PostGIS-Tools (shp2pgsql)
* Kenntnisse eines GIS zur Visualisierung und zum Editieren von Geodaten
+
* Kenntnisse eines GIS (z.B. QGIS) zur Visualisierung und zum Editieren von Geodaten
  
 
Nicht behandelt:
 
Nicht behandelt:
* PostGIS 3D, Topologie Performance-Optimierung, PostGIS-spezifischer Server-Setup (Konfiguration, Tablespaces, Clustering, Read-only-Optimierung)
+
* PostGIS-spezifischer Server-Setup (Konfiguration, Tablespaces, Clustering)
* PostgreSQL Optimierung
+
* Optimierung/Tuning/Indexe/EXPLAIN
* Lineare Referenzierung
 
 
* Replikation
 
* Replikation
* DE-9IM
 
 
* Integration mit ArcGIS SDE
 
* Integration mit ArcGIS SDE
 +
* Migration von Oracle nach PG
 
* etc.
 
* etc.
  
Zeile 76: Zeile 77:
  
 
== Tipps und Tricks ==
 
== Tipps und Tricks ==
 +
 +
Siehe [[Diskussion:Kurs PostGIS Einführung II]]
  
 
Weitere:
 
Weitere:
Zeile 81: Zeile 84:
 
* [[PostgreSQL - Tipps und Tricks]]
 
* [[PostgreSQL - Tipps und Tricks]]
 
* [[PostGIS-Beispiele]]
 
* [[PostGIS-Beispiele]]
 
Restore... (pg_restore):
 
* "File Option": Dateiendungen für Dumps sind ".backup"; wechseln Sie zu "All Files (*.*)", wenn der Dump einen anderen Namen hat. Dumps erkennt man daran...
 
* "Restore Options #1" folgende Optionen, damit die Owner/Privileges Einstellungen ignoriert werden: "Don't save: Owner, Privilege, Tablespace".
 
 
Trigger-Funktion (Datenbank Uster):
 
 
  CREATE OR REPLACE FUNCTION test.insert_update_test_trigger_function()
 
    RETURNS trigger AS
 
  $BODY$
 
    DECLARE
 
    myrec RECORD;
 
  BEGIN
 
    NEW.flaeche := ST_Area(NEW.the_geom);
 
    NEW.umfang := ST_Perimeter(NEW.the_geom);
 
    SELECT array_to_string(array_agg(nz.zonenbez_gemeinde),'; ')
 
    AS zonen into myrec FROM raumplanung.nutzungszonen nz WHERE ST_Intersects(NEW.the_geom,nz.the_geom);
 
    NEW.zonen := myrec.zonen;
 
    RETURN NEW;
 
  END;
 
  $BODY$
 
  LANGUAGE plpgsql VOLATILE
 
  COST 100;
 
  
 
== Installation ==
 
== Installation ==
  
Installation of PostgreSQL 9.1 (production, 32bit) with PostGIS 1.5 (production), PostGIS 2.0 Experimental (32bit) and QGIS:
+
{{:Benötigte Software für Kurse PostGIS-Einführung I & II}}
* Step 0: Overview of installation of PostgreSQL 9.1.x and PostGIS 1.5 [http://geomatica.como.polimi.it/corsi/sw_gis/postgis_qgis_inst.pdf Instructions (PDF)]
 
* Step 1: Installation of PostgreSQL 9.1.x ([http://www.enterprisedb.com/products-services-training/pgdownload#windows Download PostgreSQL for Windows 32bit])
 
** NOTE FOR ALL USERS! Don't choose '64bit Build' - even if 64bit-CPU available (because of PostGIS 2.0 Experimental which is 32bit-only)
 
** Make a note of the password. If PostgreSQL is used on your own laptop (localhost) and for educational purposes, we uses user 'postgres' with password 'postgres'
 
* Step 2: PostGIS 1.5 (production, 32bit)
 
** Use Stackbuilder from PostgreSQL postprocessing step (NOTE: Internet access is needed here)
 
* Step 3: Installation of PostGIS 2.0 (experimental) ([http://www.postgis.org/download/windows/experimental.php Windows 32bit], see weblink "For PostgreSQL 9.1 (compiled against PostgreSQL 9.1.0...")
 
** Make a copy of the whole <<POSTGRE_DIR>>\bin to a backup directory since some PostGIS 1.5 executables will be replaced by PostGIS 2.0.
 
** Unzip ZIP-file of PostGIS 2.0 to an temporary installation directory (=> <<POSTGIS_INSTALL_DIR>> = 'postgis-pg91-binaries-2.0.0svn/').
 
** Follow instructions of the README file:
 
*** Make a copy of makepostgisdb_using_extensions.bat and makepostgisdb.bat (includes raster), and edit POSTGIS_INSTALL_DIR to adapt following variables: PGPASSWORD, THEDB, PGINSTALL (see listing below).
 
*** The only difference in these edits is one environment variable: for makepostgisdb_using_extensions.bat its 'THEDB=postgis20_extension' and for makepostgisdb.bat its 'THEDB=postgis20'.
 
*** Open a CMD-Shell as administrator (NOTE FOR WINDOWS USERS! Choose cmd.exe from Start menu but run cmd.exe with right click on it 'Run as administrator'!)
 
*** In CMD-Shell run makepostgisdb_using_extensions.bat and makepostgisdb.bat
 
* Step 4: ActivePerl (optional for certain courses, pls. ask course leader!)
 
** The database (Uster) needs pl/perl scripts inside PostsgreSQL db. We install ActivePerl ([http://www.activestate.com/activeperl/downloads Windows-Version]).
 
* Step 5: Installation of QGIS (Quantum GIS) Stable Version and Trunk Version
 
** There are two different installers. We use OSGeo4W ([http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe osgeo4w-setup.exe]) (NOTE: Internet access is needed here)
 
*** When asked about the installation/runtime directory path, choose default (e.g. 'C:\OSGeo4W') on Windows. Usually you would install programs under 'C:\Program Files (x86)'. But there is evidence that some tools could be bothered by spaces in paths.
 
*** Choose "Advanced Installation" (use the newest version of each software => mostly the first click in the installation tree)
 
*** Category „Commandline Utilities“: setup: OSGeo4W Installer/Updater
 
*** Category „Desktop“: qgis, qgis-dev (NOTE: 'qgis-dev' means "Trunk"-Version)
 
*** Category „Libs“: psycopg2, pyqwt5-qt4, qt4-devel
 
** NOTE: This installation includes by default Python (2.5.2)
 
* Finish: Restart system (in order to restore environment like paths to libraries).
 
 
 
File 'makepostgisdb_using_extensions.bat':
 
  REM this is an example of how to create a new db and spatially enable it using CREATE EXTENSION
 
  set PGPORT=5432
 
  set PGHOST=localhost
 
  set PGUSER=postgres
 
  set PGPASSWORD=postgres
 
  set THEDB=postgis20_extension
 
  set PGINSTALL=C:\Program Files (x86)\PostgreSQL\9.1
 
  set PGADMIN=%PGINSTALL%\pgAdmin III
 
  set PGBIN=%PGINSTALL%\bin\
 
  set PGLIB=%PGINSTALL%\lib\
 
  set POSTGISVER=2.0
 
  xcopy bin\*.* "%PGBIN%"
 
  xcopy /I /S bin\postgisgui\* "%PGBIN%\postgisgui"
 
  xcopy /I plugins.d "%PGADMIN%\plugins.d"
 
  xcopy lib\*.* "%PGLIB%"
 
  xcopy share\extension\*.* "%PGINSTALL%\share\extension"
 
  "%PGBIN%\psql"  -c "CREATE DATABASE %THEDB%"
 
  "%PGBIN%\psql"  -d "%THEDB%" -c "CREATE EXTENSION postgis;"
 
  "%PGBIN%\psql"  -d "%THEDB%" -c "CREATE EXTENSION postgis_topology;"
 
 
 
  REM Uncomment the below line if this is a template database
 
  "%PGBIN%\psql" -d "%THEDB%" -c "UPDATE pg_database SET datistemplate = true WHERE datname = '%THEDB%';GRANT ALL ON geometry_columns TO PUBLIC; GRANT ALL ON spatial_ref_sys TO PUBLIC"
 
 
 
  pause
 
 
 
 
 
 
 
Creating new database 'Uster':
 
* Preparation steps:
 
** Close all postgres clients, if there are any open (like pgAdmin3, plsql, QGIS).
 
** Cleanup database (if needed): If there is already a database 'uster' drop it!
 
* Start pgAdmin3 as dbadmin
 
* Create new database:
 
** Name 'uster15', encoding: UTF-8, template: postgis15 (or postgis)
 
* Select database 'uster15'
 
** Activate extensions (right click) "New Object..." > "New Extension...":
 
** Choose extensions: adminpack, ltree and plperl.
 
 
 
 
 
Importing data into database 'uster':
 
* Start pgAdmin3 (as dbadmin)
 
* Choose (right click) "Restore..."
 
** Choose „uster.dump“ (All filese *.*)
 
** Change „Restore Options #1“ with following 3 options in order to ignore Owner/Privileges: "Don't save: Owner, Privilege, Tablespace".
 
* Import runs some minutes.
 
 
 
Importing another demo database:
 
* See British Columbia Data 'bc_data' at [[PostGIS-Beispiele]].
 
 
 
== Selbststudium ==
 
 
 
* tbd.
 
  
 
[[Kategorie:Weiterbildung]] [[Kategorie:PostGIS]] [[Kategorie:PostgreSQL]]
 
[[Kategorie:Weiterbildung]] [[Kategorie:PostGIS]] [[Kategorie:PostgreSQL]]

Aktuelle Version vom 30. August 2016, 16:19 Uhr

Kurs "PostGIS Einführung II (inkl. PostgreSQL)" (Kürzel Sem_PostGIS_FF).

PostGIS Postgres Logo 150x150.jpg
 Nächste Durchführung: Siehe Kurs PostGIS Einführung I.

Siehe auch:

Organisation

  • Dauer: 2 Tage, 9:00 bis ca. 16:30 Uhr plus Selbststudium.
  • Koste: Siehe Kurs PostGIS Einführung I
  • Dieser Kurs ist besonders geeignet für Techniker und Entscheider, die mit GIS zu tun haben. UNIGIS-Studierende erhalten (bei Erfolg) einen ECTS-Punkt angerechnet.
  • Vorkenntnisse: Grundkenntnisse in Datenbanken (SQL).
  • Referenten: Prof. Stefan Keller (HSR) und Andreas Neumann (GIS Stadt Uster).
  • Schulungsart: Der Anteil Uebungen und Theorie ist in etwa ausgeglichen. Die Teilnehmenden nehmen einen eigenen Laptop/Notebook mit (wir haben Laptops mit vorinstallierter Software). Es ist Sache der Teilnehmenden, ihr Laptop/Notebook gegen Beschädigung und Diebstahl zu (ver)sichern.
  • Durchführung: Die Teilnehmerzahl ist beschränkt auf 12 (max. 15) Plätze. Der Kurs findet ab fünf zahlenden Teilnehmern statt.
  • Abmeldungen: Angemeldete Teilnehmende können sich bis eine Woche vor Beginn ohne Kostenfolge schriftlich abmelden. Bis drei Tage vorher muss pauschal 200.- in Rechnung gestellt werden. Bei noch späteren Abmeldungen muss der volle Schulungsbetrag verrechnet werden.
  • Selbststudium: Auf Anfrage und nach Absprache (dieses steht im Zusammenhang mit der Anrechnung eines ECTS)

Beschreibung

Es werden Themen aus dem Kurs PostGIS Einführung I vertieft und mit zusätzlichen ergänzt.

Programm

  • 09:00-09:15 - Einführung, Vorstellung. (SK)
  • 09:15-10:00 - Gruppe A: Installation und Daten einlesen (gemeinden/seen/fluesse.shp, staedte_ch.sql, uster_schlank.sql). (AN mit Helfer)
  • 09:15-10:00 - Gruppe B/Fortgeschrittene: Daten einlesen, dann Fragen (SK)
  • 10:00-10:30 1 Überblick PostGIS 2: Extensions, Datentyp Geography, Topology, Raster, Pointcloud, 3D (AN)
  • 10:30-11:00 - PAUSE
  • 11:00-11:45 3 "Spatial SQL Advanced" mit PostgreSQL (Views, Triggers, Constraints, Stored Procedures) mit angewandte Übung (X/Y-Trigger)
  • 11:45-12:30 4 Neue Vektorgeometrie-Funktionen in PostGIS 2 (SK)
  • 12:30-13:30 - MITTAGESSEN
  • 13:30-14:00 6 Modernes SQL: CTE/WITH und Views/Materialized Views, Security Definer (SK)
  • 13:30-14:00 7 Übung komplexe räumliche SQL-Abfragen (SK)
  • 13:30-14:00 Übung Views/Materialized Views
  • 14:00-15:00 5 PostGIS Raster ohne Übung (mit QGIS) (AN)
  • 15:00-16:15 6 Ausblick: pgRouting, etc. (SK)
  • 16:15-16:30 - Zeit für Diskussion (SK)

Vorkenntisse:

  • Kurs "Einführung in PostGIS/PostgreSQL", bzw. Kenntnisse von SQL sowie Spatial SQL-Funktionen
  • PostgreSQL Tools (psql, pgadminIII), PostGIS-Tools (shp2pgsql)
  • Kenntnisse eines GIS (z.B. QGIS) zur Visualisierung und zum Editieren von Geodaten

Nicht behandelt:

  • PostGIS-spezifischer Server-Setup (Konfiguration, Tablespaces, Clustering)
  • Optimierung/Tuning/Indexe/EXPLAIN
  • Replikation
  • Integration mit ArcGIS SDE
  • Migration von Oracle nach PG
  • etc.

Unterlagen/Übungen

Siehe auch Materialien im Kursordner.

Online-Doku.:

Literatur:

Support/Firmen:

Software:

Daten:

Tipps und Tricks

Siehe Diskussion:Kurs PostGIS Einführung II

Weitere:

Installation

Voraussetzungen: Gängiger Laptop mit gängigem Betriebssystemen (Windows, Linux, Mac), funktionierendem WLAN-Anschluss und Administrations-Rechten (zur Installation von Software).

PostgreSQL Release 16 (mindestens Release >= 13 oder neuer ist auch OK, wenn's nicht anders geht) zusammen mit dem zur PostgreSQL-Version passenden PostGIS 3.

Der Ablauf ist immer so, dass zuerst PostgreSQL installiert wird, dann PostGIS (siehe PostGIS Binary Installer).

Bei Fragen und Problemen gibt es Support-Kanäle auf PostgreSQL#Support.

Weitere Software-Tools:

  • psql und pgAdmin4: Sind in der PostgreSQL-Installation dabei. DBeaver geht auch (muss separat installiert werden).
  • QGIS: Installation siehe hier
  • Web Browser
  • Ein Texteditor mäglichst besser als MS Notepad, z.B. Notepad++ oder Ultraedit.

Falls die Installation nicht klappt, helfen wir gerne bei Kursbeginn.