Die Datenbankerweiterung Postgis bietet auf der freien Datenbank PostgreSQL die ideale Grundlage für eine leistungsfähige Geodaten-Infrastruktur (GDI).
“Und Ihre Postleitzahl?”, so lautet eine häufige Frage an der Kasse eines Bau- oder Elektromarkts. Nur zu wissen, was der Kunde kauft, scheint für den Betreiber nicht genug Information. Offenbar kommt es ihm auch darauf an, woher der Käufer kommt.
Hinter den Kulissen wandern die Daten des Einkaufs zusammen mit der Postleitzahl des Wohnorts in die Datenbank eines geografischen Informationssystems (GIS). Anhand der Karten, auf denen die Software die Verteilung der Kunden darstellt, kann der Betreiber seine Werbung und sein Marketing optimieren. Mit diesem Wissen kann er beispielsweise nur in Stadtteilen mit großem Kundenpotenzial Flyer und Werbebroschüren verteilen und den Erfolg der gezielten Werbeaktionen messen.
Bis vor wenigen Jahren kamen für solche Szenarien fast ausschließlich proprietäre Lösungen zum Einsatz, die freien GIS-Programme galten als Außenseiter. Doch die Implementierung offener Standards und die Entwicklung zahlreicher Schnittstellen lässt nun eine große Anzahl von Programmen für raumbezogene Fragestellungen gedeihen. Postgis, eine freie Erweiterung der Open-Source-Datenbank PostgreSQL, steht dabei als ausgereiftes Backend für eine fast unüberschaubare Vielzahl an freier Software zur Verfügung [1].
Der Raumbezug macht’s
Geografische Informationssysteme sind Werkzeuge zur Verwaltung, Erstellung und Bearbeitung von Daten mit Raumbezug. Ein GIS verwaltet nicht nur inhaltliche Informationen wie Firmennamen oder gekaufte Produkte, sondern auch die räumlichen Informationen wie die geografische Position einer Firmenniederlassung oder den Wohnsitz eines Kunden. Aber mit dem einfachen Wo ist es in der Regel noch lange nicht getan. Für ein möglichst gutes Abbild der Wirklichkeit auf der Erdkugel sind weitere Eigenschaften der räumlichen Objekte von Bedeutung: Geometrische Objekte wie Punkte, Linien und Polygone haben bestimmte Eigenschaften, zum Beispiel Länge, Fläche oder Mittelpunkt, und topologische Beziehungen zueinander wie Nachbarschaft, Überschneidung oder Enthaltensein.
Darüber hinaus muss das GIS die Daten für die Darstellung entsprechend aufbereiten. Zum Standardrepertoire eines modernen Geosystems gehören daher unter anderem Algorithmen zum Verschieben und Skalieren. Die Abbildung von Objekten aus der Realität auf der dreidimensionalen (Erd-)Kugel in die zweidimensionale Fläche erfordert außerdem umfangreiche Kenntnisse von kartografischen Projektionen.
Datenaustausch gesucht
Die vielfältige Entwicklung unterschiedlicher GIS hat auch viele unterschiedliche Konzepte hervorgebracht, wie die Daten lokal und in eigenen, oft proprietären Formaten zu speichern sind. Ein Austausch von Daten zwischen den einzelnen Systemen erfolgte bisher lediglich durch aufwändige und fehleranfällige Export-Import-Funktionen. Wechselte ein Hersteller im Zuge von Weiterentwicklungen sein Datenhaltungskonzept, waren Probleme für die Anwender unvermeidlich.
Diese Entwicklung stand jedoch im krassen Gegensatz zur wachsenden, applikationsübergreifenden und netzweiten Nutzung der Daten. Leistungsfähige Geodaten-Infrastrukturen (GDI) waren gefordert, aber nur proprietäre, oft nicht standardisierte Insellösungen vorhanden: Eine offene, Datenbank-basierte Lösung musste her. Genau hier setzt Postgis (Abbildung 1) ein. Die GIS-Erweiterung fügt dem freien Datenbanksystem PostgreSQL [2] Möglichkeiten zur Verwaltung geografischer Informationen hinzu und steht unter der GPL.

Abbildung 1: Auf dem Logo von Postgis balanciert der Elefant, das Maskottchen der PostgreSQL-Datenbank, die Weltkugel auf seinem Rüssel.
PostgreSQL ist heute neben MySQL wohl das am weitesten verbreitete freie Datenbanksystem und liegt in Version 8.2 vor. Im Rahmen eines universitären Projekts an der University of California entstand es als objektrelationales Datenbank-Managementsystem (ORDBMS) unter dem Namen Postgres am Berkeley Computer Science Department. Seit 1996 trägt es den Namen PostgreSQL, es unterliegt der BSD-Lizenz. Der Kasten “Unter der Haut des Elefanten” gibt einen kurzen Einblick in Details des umfangreichen Datenbanksystems.
|
Unter der Haut des |
|---|
|
PostgreSQL unterstützt den Ansi-SQL-Standard SQL92. Von den fünf Kategorien des SQL99-Standards – Framework, Foundation, Call Level Interface, Persistent Stored Modules, Host Language Bindings – sind die Kategorien 1, 2 und 5 implementiert. PostgreSQL unterstützt darüber hinaus alle in SQL99 spezifizierten Verbundtypen. Features
Transaktionen, ACID, Interaktion
Prozeduren und Objekte
Sicherheit
|
Als Administrations-Frontend für PostgreSQL steht PgadminIII (Abbildung 2, [3]) auch für Postgis zur Verfügung. Ein weiterer Pluspunkt für freie Software ist das flexible Konzept der PostgreSQL-Extensions: Postgis verzichtet auf die bereits in PostgreSQL vorhandenen Möglichkeiten zur Verwaltung zweidimensionaler Geometrien und implementiert stattdessen die Simple Features Specifications for SQL 1.1 (SFS) des Open Geospatial Consortium (OGC, [4]).

Abbildung 2: Die typische Ansicht einer PostgreSQL-Datenbank für den Administrator: Das grafische Frontend PgadminIII ermöglicht auch die komfortable Bearbeitung der PostgreSQL-Postgis-Daten.
Offene Standards jenseits der dritten Dimension
Das OGC ist ein weltweiter Zusammenschluss von Unternehmen, Behörden, Universitäten und Organisationen, der Standards für die Interoperabilität von geografischen Informationssystemen sowie deren Integration mit anderen Informationssystemen erarbeitet. Viele kommerzielle und freie Produkte unterstützen diese Standards wie den XML-Dialekt GML oder die OGC Web Services und garantieren eine weitreichende Interoperabilität der Systeme in komplexen Geodaten-Infrastrukturen.
Das Geometriemodell SFS des OGC definiert drei grundlegende Geometrien: Point (Punkt), Line String (Linienzug) und Polygon (Fläche). Weitere vier Typen wurden daraus abgeleitet: Multi Point, Multi Line String, Multi Polygon und Geometry Collection.
Abbildung 3 zeigt einen Ausschnitt der sich daraus ergebenden Möglichkeiten. Damit aber nicht genug: Postgis kann Höheninformationen (z-Wert) oder ähnliche Daten speichern und erweitert damit das zweidimensionale Abbild der Welt in die “2,5te Dimension” [5]. Durch die Integration weiterer Informationen wie Zeit oder Temperatur betritt Postgis dann sogar den vier- oder mehrdimensionalen Raum.

Abbildung 3: Auf den Simple Features Specifications for SQL 1.1 (SFS) des Open Geospatial Consortium OGC basieren komplexe Geometrietypen in Postgis. (Quelle: Jump; Technical Report)
Postgis arbeitet auf der Basis von Geos [6] und Proj.4 [7]. Geos (Geometry Engine Open Source) ist eine Portierung der Java Topology Suite (JTS) nach C++, die das Geometriemodell der Simple Feature Specification sowie geometrische und topologische Funktionen implementiert. Mit Hilfe von Proj.4, einer Bibliothek zur Koordinatentransformation, erzeugt Postgis sein Spatial Reference System (SRS). Durch die Bindung an Proj.4 kann das Datenbanksystem Koordinatentransformationen basierend auf den EPSG-Codes [8] der European Petroleum Survey Group durchführen. Die Codes haben sich als Quasi-Standard zur Definition von geografischen Projektions-Informationen etabliert.
Import und Export
Das proprietäre ESRI-Shapefile-Format ist unter allen GIS das am meisten verbreitete Dateiformat. Mit den Import-Export-Tools »shp2pgsql« und »pgsql2shp« kann Postgis derartige ».shp«-Dateien problemlos lesen und schreiben. Bei komplexeren Im- und Exporten bedient sich Postgis dagegen der Funktionalitäten der beiden freien Bibliotheken GDAL (Geospatial Data Abstraction Library) und OGR [9]. GDAL (Raster) und OGR (Vektor) können eine Vielzahl unterschiedlicher Datenformate lesen und schreiben. Hierzu gehören unter anderem Mapinfo TAB und MIF/MID, Autocad DXF/DWG, GML, KML, GRASS Vector Maps, Tiger/Line, Oracle Spatial, ESRI Arcsde und MySQL.
Neben der umfassenden Datenverwaltung ist Postgis in der Lage, Berechnungen und Analysen der räumlichen Daten durchzuführen. So kann es beispielsweise räumliche Analysen (»UNION«, »INTERSECTION«, »CONVEX HULL«, »BUFFER«) oder räumliche Prädikate (»CROSSES«, »WITHIN«, »OVERLAP«, »EQUALS«) berechnen. Das Modul »pgrouting« der Datenbankerweiterung Postlbs bietet ihm sogar die Möglichkeit, Topologien zu erstellen, um Routing-Probleme wie die Suche nach dem kürzesten Pfad zu lösen.
Zusammenspiel
Das Verknüpfen mit den Bibliotheken GDAL und OGR macht weitere freie Softwarelösungen verfügbar, die aufwändigere Analysen erlaubt oder die Welt des Webmapping mit Postgis verbinden (Abbildung 4).

Abbildung 4: Postgis bietet sowohl Desktoplösungen eine Basis als auch Internet-Kartendiensten wie Map- oder Geoservern.
Auf Desktops ist GRASS (Geographical Resources Analysis Support System, [10]) die mächtigste freie Software für Geodaten. Mit mehr als 350 Modulen zur Verarbeitung und Analyse von Raster- und Vektordaten ist GRASS in der Lage, 3D-Raster, so genannte Voxel, zu verarbeiten. Die Anwendungen reichen von einfachen Verschneidungen bis zu komplexen Satellitenbildauswertungen, Routing-Algorithmen oder zur Simulation der Ausbreitung eines Waldbrandes. Das Modul NVIZ stellt die Ergebnisse dreidimensional dar.
Freie GIS für PC und Web
Ein weiteres Desktop-Programm mit Postgis-Support ist Jump/Openjump [11], ein Java-basiertes GIS, das durch sein offenes API zu individuellen Lösungen einlädt. Die Freiheit der Software hat zur Ausbildung einer ganzen Familie von Jump-Anwendungen geführt. Refractions, der Maintainer von Postgis, entwickelt ebenfalls ein Desktop-GIS unter dem Namen Udig [12]. Eher als Datenviewer ausgelegte Programme wie Quantumgis, Thuban oder Openev greifen ebenfalls auf Postgis zu und visualisieren die Geodaten (Abbildung 5).

Abbildung 5: Mit dem freien GIS-Viewer Thuban lassen sich Postgis-Daten auf dem Desktop anzeigen. In dieser Ansicht dient der freie Vektor-Datensatz Frida der Stadt Osnabrück als Datenquelle.
Die Bereitstellung von Karten und räumlichen Informationen über das Internet kann mit Hilfe des UMN-Mapservers [13], der Deegree-Suite [14] oder des Geoservers [15] erfolgen. Der UMN-Mapserver erlaubt es, geografische Informationen als Karten über das Internet zu publizieren, wobei er Postgis-Daten optional über die OGR-Schnittstelle dynamisch einbindet.
Über Entwicklungsumgebungen wie Deegree oder Mapbender [16] ist die Entwicklung von komplexen Webanwendungen zur Datendarstellung und -bearbeitung möglich. Deegree ist in Java geschrieben und implementiert sehr viele der OGC-Standards für Webservices. Mapbender ist ein auf PHP und Javascript basierendes Framework für Kartenanwendungen. Dieser WMS-Client nutzt verschiedene Funktionalitäten von Postgis, etwa Koordinaten-Transformation oder Flächenberechnungen, wenn diese Erweiterung installiert ist.
Einsatzszenarios
Die Vielzahl der Anwendungen und der enge Bezug zu den Standards des OGC bietet genügend Raum für vielfältige eigene Anpassungen. Die Postgis-Webseite berichtet ständig über neue Projekte und Beispiele für umgesetzte Postgis-Installationen. Dabei zeichnen sich drei typische Einsatzszenarios ab:
- Im wissenschaftlichen Bereich laufen Desktop-GIS auf Clients.
Postgis fungiert als komplexe Datenbank zur Datenhaltung der
räumlichen Objekte an einem zentralen Ort für alle
Nutzer. - Für Webmapping-Anwendungen verwaltet die Kombination
PostgreSQL-Postgis die Daten. Analysen und Auswertungen führt
der Datenserver selbst aus. Ein Beispiel liefert das Projekt Fiona
des Landes Baden-Württemberg, das die Landwirte bei der
Flurstückverwaltung unterstützt und dessen Daten direkt
der Bewilligung von Fördergeldern dienen. - Die meisten Geodaten-Dienste von Städten und Gemeinden
verwenden eine Kombination der beiden vorherigen Szenarien, um
intern die Daten zu bearbeiten, sie per Mapserver im Internet zu
visualisieren und mobile Geräte einzubinden (Abbildung
6).

Abbildung 6: Zahlreiche Webmapping-Anwendungen basieren auf Postgis-Installationen, hier die Bodenkarte des California Soil Resource Lab. Programme wie der UMN-Mapserver visualisieren die Daten für den Browser.
Versionen
Die meisten Organisationen setzen dabei das aktuelle Postgis 1.2 ein, für die nächsten Versionen arbeiten die Entwickler daran, die Performance zu erhöhen, und erstellen mit dem Postgis Cookbook eine umfassende Dokumentation. Darüber hinaus arbeiten sie an folgenden GIS-Funktionen:
- Verbesserte Kurven durch mehr Stützpunkte und
Interpolation - Linear Reference System (LRS) zur Positionsbestimmung von
Punkten - Integration des Pgrouting in Postgis
- Besseres Geocoding, Nearest-Neighbor-Methoden und Verbesserung
der Abstandsmessung
Weitere Informationen
Einen umfassenden Überblick zum Thema freie Geodatenbanken und weitere Open-Source-GIS-Software bietet das Portal Freegis [17], in dem unter anderem alle genannten Softwarelösungen mit weitergehenden Informationen zu finden sind. Der Förderung freier GIS-Software und dem problematischen Thema freie Geodaten im deutschsprachigen Raum widmet sich seit fast sieben Jahren die GRASS-Anwender-Vereinigung e.V. mit Informationen und Tutorials (siehe Kasten “GRASS-Anwender-Vereinigung e.V.”). Die Firma Refractions passt Postgis-Installationen an individuelle Bedürfnisse an und leistet zusammen mit internationalen Partnern professionellen Support.
|
GRASS-Anwender-Vereinigung |
|---|
|
Grass-Anwender finden Unterstützung bei der GAV: [http://www.grass-verein.de] E-Mail: georg.loesel@grass-verein.de Mailingliste: [http://www.grass-verein.de/mailman/listinfo/gav-talk] |
Eine gute Basis
Die Kombination PostgreSQL mit Postgis bietet durch ihre Leistungsfähigkeit eine gute Basis für eine komplexe GDI. Die Kombination aus einer Datenbank mit der Erweiterung zur Verwaltung geografischer Objekte, die weitreichenden Analysemöglichkeiten innerhalb der Datenbank selbst, die Berücksichtigung offener Standards und die Implementierung als freie Software eröffnet den Weg von den Insellösungen weg bis zur Erkundung der offenen See.
|
Infos |
|---|
|
[1] Postgis:[http://postgis.refractions.net] [2] PostgreSQL-Datenbank: [http://www.postgresql.org] [3] Postgres-Administration mit PgadminIII: [http://www.pgadmin.org] [4] Open Geospatial Consortium: [http://www.opengeospatial.org] [5] Mehrdimensionale GIS: [http://www.giswiki.org/wiki/Geographic_information_system#Dimension] [6] Geos-JTS-Portierung:[http://geos.refractions.net] [7] Proj.4-Koordinatentransformation:[http://proj.maptools.org] [8] EPSG-Codes: [http://www.epsg.org] [9] GDAL und OGR: [http://www.gdal.org] [10] GRASS GIS: [http://grass.itc.it] [11] Jump GIS: [http://openjump.org] [12] Udig GIS: [http://udig.refractions.net] [13] UMN-Mapserver:[http://mapserver.gis.umn.edu] [14] Deegree-Suite: [http://www.deegree.org] [15] Geoserver: [http://geoserver.org] [16] Mapbender: [http://mapbender.org] [17] Freegis-Portal: [http://freegis.org] |






