Sem PostGIS Roger

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche

Wiki-Seite zum Selbststudium im GISpunkt-Seminar PostGIS.

Daten: Amtliche Vermessung Kanton Basel-Stadt

Verwendete Daten

Als Übungsdaten werden zwei Datensätze der amtlichen Vermessung des Kantons Basel-Stadt verwendet. Der eine Datensatz enthält die Rohrleitungen (Topic), der zweite die Bodenbedeckung (Topic), aus der im Laufe der Übung die Tankanlagen (Bodenbedeckungsart 17) extrahiert werden.

Die Datensätze liegen als Shapefiles Bodenbedeckung_merged.shp und Rohrleitungen.shp vor.

Metadaten-Record

Die Angabe beim DC-Element modified bezieht sich auf das Datum des Datenbezugs.

Rohrleitung

 dc:title           = Rohrleitung
 dct:abstract       = Bestandteil des Datenmodells des Bundes. Beschreibt die geometrische Form und 
                      Lage der Rohrleitungen, die von übergeordneter Bedeutung für die 
                      Eigentumsverhältnisse sind.
 dc:format          = INTERLIS, Shapefile
 dct:spatial        = name=Kanton Basel-Stadt; northlimit=47.60200; southlimit==47.51858; 
                      eastlimit=7.69527; westlimit=7.55281
 dct:modified       = 2007-10-19
 dc:publisher       = Grundbuch- und Vermessungsamt Basel-Stadt
 dc:language        = de
 dc:rights          = Abgabebedingungen: Berechtigter Interessennachweis. Die Daten können aufgrund 
                      einer Benützungsbewilligung bezogen werden. Entsprechende Bezugsformulare sind 
                      auf www.gva.bs.ch erhältlich. Für die Verwendung der Daten gelten die allgemeinen 
                      Bedingungen für die Benützung von Geodaten des Grundbuch- und Vermessungsamtes 
                      Basel-Stadt.

Tankanlagen (Art der Bodenbedeckung)

 dc:title           = Bodenbedeckung
 dct:abstract       = Bestandteil des Datenmodells des Bundes. Beschreibt die geometrische Form und Lage 
                      der Flächenarten mit einer Mindestfläche von in der Regel 100 m2 (Gebäude, befestigt, 
                      humusiert, bestockt, Gewässer, vegetationslos, etc.).
 dc:format          = INTERLIS, Shapefile
 dct:spatial        = name=Kanton Basel-Stadt; northlimit=47.60200; southlimit==47.51858; 
                      eastlimit=7.69527; westlimit=7.55281
 dct:modified       = 2007-10-19
 dc:publisher       = Grundbuch- und Vermessungsamt Basel-Stadt
 dc:language        = de
 dc:rights          = Abgabebedingungen: Die Daten können aufgrund einer Benützungsbewilligung bezogen 
                      werden. Entsprechende Bezugsformulare sind auf www.gva.bs.ch erhältlich. Für die 
                      Verwendung der Daten gelten die allgemeinen Bedingungen für die Benützung von 
                      Geodaten des Grundbuch- und Vermessungsamtes Basel-Stadt.

Laden des Datensatzes

Die vorliegenden Shapefiles Bodenbedeckung_merged.shp und Rohrleitungen.shp wurden mit shp2pgsql.exe in .sql-Files konvertiert, diese wiederum mit psql.exe in die PostGIS-Datenbank geladen.

Die Shapefiles wurden mit zwei Batchfiles in die Datenbank importiert: Das erste Batchfile übergibt die zu importierenden Files als Parameter an das zweite Batchfile:

 echo ==============================
 echo  Shapefile in PostGIS-DB laden
 echo ==============================
 echo.
 echo  Übergibt Shapefilenamen (ohne
 echo  Endung) an Hauptbatchfile.
 echo.
  
 set shp2pg_main="_shp2pg_main.bat"
  
 call %shp2pg_main% Bodenbedeckung_merged
 call %shp2pg_main% Rohrleitungen
  
 pause

Das zweite Batchfile lädt das so übergebene Shapefile in die Datenbank:

 echo ==============================
 echo  Shapefile in PostGIS-DB laden
 echo ==============================
 echo.
 echo  Erwartet Shapefilename (ohne
 echo  Endung) als Parameter (%1).
 echo.
  
 set shp2pgsql_exe="C:\Programme\PostgreSQL\8.2\bin\shp2pgsql.exe"
 set psql_exe="C:\Programme\PostgreSQL\8.2\bin\psql.exe"
  
 set srid="21781"
 set schema="public"
 set server="localhost"
 set dbname="postgis-seminar"
 set dbuser="postgres"
  
 echo --------------------
 echo  SQL-File erstellen
 echo --------------------
 %shp2pgsql_exe% -s %srid% -I %1 %schema%.%1 > %1.sql
  
 echo -------------------
 echo  Daten in DB laden
 echo -------------------
 %psql_exe% -h %server% -d %dbname% -U %dbuser% -f %1.sql

Unter Verwendung der UNIX-Pipes können Konvertierung und Laden in die Datenbank auch in einem Schritt durchgeführt werden (s. S. 62 in [1]).

Queries

Aufbereiten des Übungsdatensatzes Tankanlagen

Tankanlagen sind als Teil der Bodenbedeckung in der Tabelle bodenbedeckung_merged vorhanden. Für eine einfachere Handhabung werden Sie in eine separate Tabelle tankanla-gen ausgelagert. (Die Rohrleitungen sind bereits in Tabelle rohrleitungen aus dem Usprungs-datensatz rohrleitungen.shp vorhanden.)

-- Neue Tabelle tankanlagen mit Primary Key erstellen

 CREATE TABLE tankanlagen
 (
   gid integer PRIMARY KEY,
   art_txt text,
   art text
 );
 
 -- Geometriespalte the_geom hinzufügen
 SELECT AddGeometryColumn('public', 'tankanlagen', 'the_geom', 21781, 'MULTIPOLYGON', 2);
 
 -- Daten von Tabelle bodenbedeckung_merged in Tabelle tankanlagen importieren (Tankanlagen sind art = 17)
 INSERT INTO tankanlagen
 (
   SELECT gid, art_txt, art, the_geom 
   FROM bodenbedeckung_merged
   WHERE art = '17'
 );
 
 -- Räumlichen Index für Tabelle tankanlagen erstellen
 CREATE INDEX tankanlagen_the_geom_gist
   ON tankanlagen 
   USING gist (the_geom GIST_GEOMETRY_OPS);
 
 -- Statistiken für optimierte Abfragen anlegen
 VACUUM ANALYZE tankanlagen;