Kurs PostGIS Einführung II: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K (Programm)
K (Programm)
 
(44 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 (A): Installation inkl. Daten einlesen. (SK mit Helfer)
+
* 09:15-10:00 - Gruppe B/Fortgeschrittene: Daten einlesen, dann Fragen (SK)
* 09:15-10:00 (B): Teil 1. Daten einlesen, Teil 2. "PostgreSQL Playing Cards" spielen. (AN+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. (SK)
+
* 10:30-11:00 - PAUSE
* 10:15-10:30 SQL-Shell in QGIS. (AN)
+
* 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. (AN)
+
* 14:00-15:00 5 PostGIS Raster ohne Übung (mit QGIS) (AN)
* 15:00-15:30 PostGIS Routing (SK)
+
* 15:00-16:15 6 Ausblick: pgRouting,  etc.  (SK)
* 15:30-16:15 Fragerunde (SK)
+
* 16:15-16:30 - Zeit für Diskussion (SK)
* 16:15-16:30 Ausblick (u.a. Routing). (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 77: Zeile 77:
  
 
== Tipps und Tricks ==
 
== Tipps und Tricks ==
 +
 +
Siehe [[Diskussion:Kurs PostGIS Einführung II]]
  
 
Weitere:
 
Weitere:
Zeile 82: 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 14 (Release >= 12 aber mindestens 9.4.7 oder neuer ist auch OK, wenn's nicht anders geht) zusammen mit PostGIS 3.

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

Weitere Software-Tools:

  • pgAdmin4: Ist in der PostgreSQL-Installation dabei (mind. bei Windows); pgAdminIII geht auch, muss aber immer separat installiert werden.
  • QGIS: Installation siehe hier
  • ein Web Browser, ein Texteditor

Falls die Installation nicht klappt, helfen wir gerne bei Kursbeginn – oder aber Sie versuchen es selber auf einem der Support-Kanäle auf PostgreSQL#Support.