Archiv für die Kategorie ‘Geodaten’

Funktionen rein oder raus?

Dezember 15, 2008

Letzte Woche war Upgrade-Tag (12.12.2008)! Das Unternehmen, für das ich arbeite, hat nach reiflicher Planung das Upgrade auf Version 4.1 des Smallworld GIS ins Auge genommen und eine Teststellung zum Jahresende (2008) installiert bekommen. Als GIS Sytstemadministrator bedeutet das auch, neben den notwendigen Vorbereitungen, dass für den Installationstermin und eine anschließende Testphase genug Zeit eingeplant wird. Diesmal war alles ein wenig anders. Die Teststellung wurde an meinem letzten Arbeitstag für dieses Jahr durchgeführt und meine GIS Kollegen haben in meiner Abwesenheit noch ein paar Tage Zeit, das System ein wenig kennenzulernen und auszuprobieren. Auf die Unterschiede der beiden Versionen möchte ich hier noch garnicht eingehen. Das spare ich mir für den Zeitpunkt auf, wenn ich mit dem System ein wenig mehr gearbeitet habe. Um das neue GIS gut unter Kontrolle zu halten, werde ich im Januar eine Konfigurationsschulung besuchen. Danach werde ich zu diesem Thema sicher eine Menge mehr sagen können.

Bei einem solchen Installationstermin — der mittlerweile nicht mehr im Serverraum, bei unsäglicher Lautstärke stattfinden muss, so wie noch zu Zeiten von SW GIS 2 — gibt es immer ein wenig Leerlauf, wenn Datenbanken kopiert werden oder die notwendigen Installationen von Webservern und sonstigen Diensten durchgeführt werden müssen. Um jetzt aber wirklich auf den Punkt dieses Beitrags zu kommen: während dieser Leerlaufzeiten habe ich die von mir gerne genutzten Gelegenheiten, mich mit Anderen auszutauschen, die Geoinformation beruflich betreiben und auch mal über den Tellerrand hinausschauen. In diesem Fall war der „Leidensgenosse“ Herr Christian Vogt. Er ist einer der Gesellschafter unseres Dienstleisters GIS Consult GmbH. GIS Consult (im weiteren als GC bezeichnet) betreut Unternehmen und Kommunen rund um das Thema GIS. Ich kenne das Unternehmen jetzt schon seit meinen Anfängen im GIS und habe ein durchweg positives Bild von den Kollegen dort in menschlicher und fachlicher Hinsicht. Genug Schleichwerbung! :-)

Also, eines von verschiedenen Themen, auf das wir im Laufe des Tages gekommen sind, war die Frage danach, wie und wo ich meine Geodaten ablegen kann. Aus dem Blog hier ist sicher bekannt, dass ich bei der Beantwortung dieser Frage zu Postgres/PostGIS neige. Das liegt zum Teil daran, dass PostGIS, als Geospatial-Erweiterung zu Postgres, einen großen Vorrat an OGC-konformen Funktionen mitbringt, auf die man in der Applikationsentwicklung mit z. B. PHP zurückgreifen kann. Postgres benutze ich also nicht nur als zentralen Datenspeicher für meine Geodaten, sondern nutze auch die Funktionen, die PostGIS mitbringt, um damit meine Aufgaben zu erledigen. Dies ist für mich eine sehr angenehme Variante, da ich mich sehr intensiv mit den Daten auseinander setzen kann, ohne mich um die Bereitstellung von Funktionen zu kümmern. In meinem beruflichen Umfeld verhält sich das Ganze aber z. B. genau anders herum. Wie mir Herr Vogt eindrucksvoll zeigte, lässt sich an das SW GIS 4.1 mit einem neuen kleinen Tool nahezu jede beliebige Datenquelle anhängen, die gewissen Standards genügt. Dies könnte ich bei Quantum GIS auch noch bei einem gewissen Umfang an Datenquellen erreichen. Hier habe ich allerdings das Problem der Funktionalität. Gehen wir von der Basisinstallation von Quantum GIS aus, so bringt es alles mit, um Datenquellen mit Geodaten anzuzeigen. Die Funktion ‘Pufferung’ bringt QGIS auch noch mit. Aber dann? Wonach ich hier suche, ist ein anwenderfreundliches Abfragetool, mit dem ich die Tabellen meiner Datenquellen ansprechen kann, um alphanumerische oder sogar grafische Auswertungen auszuführen. Soweit ich weiß, geht dies über eine Konsole, die ich öffnen kann, um Abfragen einzugeben. Dies erschien mir aber nicht sehr benutzerfreundlich. Das SW GIS hat hier ein anderes Konzept. Hier sind nur die Daten in der Datenbank abgelegt, welche die Aufgabe übernimmt, diese performant und komfortabel zu verwalten. In der grafischen Oberfläche des System (SW GIS Version 3.1!!) ist eine Abfrageumgebung vorhanden, welche den Anwender dabei unterstützt, Abfragen in Form von Texten (ähnlich SQL) oder grafisch orientiert, syntaktisch richtig zu erstellen. Die Abfragen in Form von Texten als auch die grafisch orientierten Abfragen führen, allgemeine Kenntnis von Abfragelogiken vorausgesetzt, sehr schnell zum gewünschten Ergebnis. Näher darauf einzugehen, würde den Rahmen dieses Beitrags sprengen. Vielleicht komme ich darauf in einem späteren Beitrag zurück. Die kompletten Funktionen sind in der Anwendung, im so genannten Image, abgelegt. Dieses wird in eine Art virtuelle Maschine geladen und stellt die generellen und die kundenspezifischen Funktionen zur Verfügung. Hier kommt dann wieder die GC ins Spiel, die als Entwicklungspartner von Smallworld Deutschland, diese Funktionen programmiert.

Der Leser mit etwas Erfahrung wird mir jetzt zurecht vorwerfen, dass diese Ausführungen nicht ganz fair sind. Wenn ich mich selber und die Community von QGIS bemühe, werde ich sicher mit einem gewissen Aufwand identische Funktionen für QGIS hinbekommen. Den Punkt, den ich hier herausarbeiten möchte, ist aber der Funktionsumfang der Datenbanken. Mit mehr oder weniger Aufwand kann ich jeder Applikationen mit einem entsprechenden Unterbau (Programmiersprache) die Funktionen beibringen, die ich benötige. Smallworld GIS trennt allerdings die Aufgaben der Datenhaltung und der Abfragefunktionen schärfer, als dies PostGIS tut. Auf der einen Seite haben wir eine reine Datenhaltung (jemand aus dem Smallworld Umfeld möge mir hier widersprechen, wenn das nicht so ist!!), während auf der anderen Seite OGC-konforme Funktionen bereitstehen, die ich in eine SQL-Abfrage einbauen kann.

Ich muss allerdings dazusagen, dass die Diskussion in meinen Augen weniger die Frage nach dem Besser oder Schlechter stelllt. Vielmehr geht es mir darum, unterschiedliche Philosophien aufzuzeigen. Wenn ich in meiner Datenbank keine oder nur sehr wenige Funktionen habe, die mir erlauben, Geodaten grafisch auszuwerten (z. B. MySQL), bleibt mir garnichts anderes übrig, als die Funktionen ausserhalb der Datenbank bereitzustellen. Habe ich eine Applikation, welche nahezu beliebige Datenquellen mit Geodaten öffnen kann, sollte ich mich auf darauf konzentrieren, die Basisfunktionen so zu entwerfen, dass ich diese auf alle diese Datenquellen anwenden kann. Hierzu zählen für mich Lese- und Schreibfunktionen von Sachinformationen und Geometrien. Sind in einer Datenquelle Geometrien vorhanden, möchte ich diese ggfs. auch verändern und wieder abspeichern. Solche Funktionen sollten dann immer bereitstehen.Sind in der Datenbank soviele Funktionen vorhanden, dass ich mehr Zeit darauf verwenden kann, die Sachinformationen für den Anwender in ansprechender und sinnvoller Weise darzustellen, sollte ich dies auch tun. Warum das Rad neu erfinden?

Hat man ein bestehendes GIS, stellt sich die Frage danach, wo die Funktionen zu finden sind, meist garnicht. Man kann bei der Auswahl nach einem neuen GIS aber auf diesen Punkt sein besonderes Augenmerk legen. Man sollte sich hier also die Fragen stellen:

  • Muss ich regelmäßig externe Datenbestände mit meinen eigenen Datenbeständen in Verbindung bringen?
  • Enthalten die externen Datenbestände Geodaten und stehen diese in einem Standarddateiformat zur Verfügung?
  • Kann ich über geeignete Software (ODBC-, JDBC- oder sonstige Treiber) externe Datenquellen bequem anbinden?

Sind das Punkte, die überwiegend zutreffen, könnte man die Funktionen auf Seiten der Applikation suchen und ausbauen. In dieser Kategorie sind IMHO spezielle GIS zu finden, die externe Daten benötigen, die weniger aus dem GIS-Umfeld stammen und sich häufig ändern.

  • Werden die externen Daten nur in größeren Zeitabständen aktualisiert?
  • Sind die Geodaten in sehr einfachen Dateiformaten verfügbar (z. B. Textformat)?
  • Lassen sich die externen Geodaten bequem in meine zentrale Datenbank importieren?

Sind das Punkte, die überwiegend zutreffen, könnte man nach einer performanten Datenbank suchen, die neben den Geometriedatentypen auch den größten Teil der Funktionen zur Verfügung stellt, die ich benötige.

Leider werden die Grenzen zwischen den Kategorien stark verwischt, wenn man in den Bereich der Webanwendungen kommt. Man kann seine Daten in geeigneter Weise auf einen vorhandenen Webkartendienst aufsetzen, und auch ohne viel Mühe einen eigenen Mapserver aufsetzen, der die speziellen Karten bereitstellt. Hier kann man auf beide Varianten zurückgreifen. Ich werde mich in einem späteren Beitrag speziell mit der Thematik der WEB-GIS-Anwendungen auseinanderstzen, weshalb ich hier die Ausführungen einfach bis dahin unterbreche.

Ein Fazit kann ich zu diesem Thema, wie schon erwähnt, also nicht wirklich geben. Ich kann dem interessierten Leser lediglich ein paar Punkte an die Hand geben, mit denen er in die Diskussion einsteigen kann, wo die Geodaten in dem speziellen Fall möglicherweise bessser aufgehoben sind. In konkreten Fällen versuche ich gerne, etwas Licht in die Situation zu bringen. Man kann aber genauso gut ein entsprechendes Forum besuchen oder ein beratendes Unternehmen wie die GC konsultieren.

PostGIS (I) – Zentraler Datenspeicher

Juli 28, 2006

Da ich von „meinem“ GIS auf der Arbeit weiß, dass man sich mit dem reinen Anzeigen von Objekten nicht begnügen wird, wollen wir das Ganze doch von vornherein sauber aufsetzen. Wenn Daten im Netz verfügbar sein sollen, warum denn dann nicht alle Daten zu den Objekten und wirklich zentral. PostGIS ist eine freie Erweiterung von PostgreSQL um geografische Objekttypen und Funktionen. PostgreSQL ist genauso frei und kostenlos wie PostGIS. Dabei ist PostgreSQL ein sehr mächtiges Datenbanksystem, was mit den meisten großen kommerziellen Produkten mithalten kann. Soll heißen, man kann PostgreSQL auch als Datenspeicher für alle anderen Tabellen und tabellenartigen Informationen benutzen, auf die verschiedene Leute gleichzeitig zugreifen sollen. Das ist sowieso immer eine gute Idee. :-)

Der PostgreSQL-Server kann hierzu auf einem Linux- oder Windows-Server installiert werden. Ich bevorzuge Linux, da man dann mit Sicherheit einen älteren, möglicherweise ausgemusterten, Server wieder reaktivieren kann. Selbst für eine gute Performance der Datenbank ist hier kein DualCore Pentium „irgendwas“ nötig. Eine Maschine mit RAM ab 1GB und einem Pentium mit etwa 1GHz tut hier gute Dienste. Die Festplatte kann man dann entsprechend dem geschätzen Datenvolumen, zzgl. einem gewissen Spielraum, ausrichten.

Und dann geht’s endlich los. Zunächst besorgt man sich den aktuellen Quellcode von PostgreSQL von der Homepage. Je nach Betriebssystem sollte man den beiliegenden Installationsanweisungen folgen. Den Quellcode braucht man, um später PostGIS installieren zu können. Also bitte keine fertigen Packete ohne Quellcodes nehmen! Wenn alle Voraussetzungen erfüllt sind, sollte das Compilieren und Installieren von PostgreSQL problemlos funktionieren. Anschließend nimmt man sich PostGIS vor und verfährt ebenfalls wieder, wie in der Installationsanleitung beschrieben. Ich hatte anschließend nur das Problem, das ein bestimmtes Shared-Object (‘irgendwas’.so) nicht gefunden wurde. Ich habe das dann manuelle in das Lib-Verzeichnis des PostgreSQL-Quellcodes kopiert, und siehe da… Wenn PostGIS erzeugt ist, werden die SQL-Dateien für die eigentliche Erweiterung von PostgreSQL erzeugt, die man dann nach Anleitung in seiner Geodatenbank (vorher erzeugte Datenbank in PostgreSQL) ausführt. Jetzt steht der Arbeit mit der geospatial Extension (geografische Erweiterung) von PostgreSQL nichts mehr im Wege.

Nach diesen Schritten habe ich noch schnell den Test in den FAQs von PostGIS durchgeführt und war begeistert, wie einfach man jetzt auf seine Geodaten zugreifen kann. Als „Aushilfsprogrammierer“ fallen mir sofort eine Menge von SQL-Abfragen ein, die ich demnächst mal mit meinen Demodaten ausführen werde.

Noch eine Empfehlung: damit man auch von Windows aus, bequem auf der PostgreSQL-Server zugreifen kann, sollte man die Admin-Tool PgAdmin III installieren. Und für alle, die sich nicht von MS Access trennen wollen oder können, muss auf diesen PCs der ODBC-Treiber installiert sein, der solcher Software eine Verbindung zu PostgreSQL ermöglicht.

Und jetzt sollt man erste Schritte mit der Anbindung dieser Geometrie-Tabellen an QGIS unternehmen.

ca. 4:30 min / 3,2 Mb

Freie GIS Software oder Der Wert eines GIS

Juli 26, 2006

Neben den kommerziellen Produkten sind in den letzten Jahren auch freie GIS Systeme entwickelt worden. Diese stehen im allgemeinen als Open Source zur Verfügung. Manch einer mag jetzt schon denken: „Ach, lieber nicht!“.

Das aber ein System wie GRASS vom amerikanischen Militär entwickelt wurde, spielt hier eine wichtige Rolle. Man merkt GRASS zwar an, dass es nicht auf eine schöne Oberfläche abzielt, dafür ist die Funktionalität in der Auswertung rasterhafter Daten nahezu unschlagbar. GRASS wird erfolgreich für die Simulation von Hochwasser und Waldbränden eingesetzt. Schon der Beispieldatensatz (Spearfish) bringt dem testenden Anwender einen guten Einblick, was sich mit dem System alles anfangen lässt.

Für meine Zwecke besser geeignet sind die Systeme Jump/OpenJump und Quantum GIS, da sie Vektororientiert sind. Die Sachdaten einzelner oder einer Menge von Objekten werden tabellarisch angezeit. Jump/OpenJump hat eine Java-basierte Oberfläche, welche entweder mit einem eigenen Format für die einzelnen Layer arbeitet, oder aber bequem ESRI Shape-Files– um ein gängiges Format zu nennen– lesen kann. Quantum GIS hat eine Qt-basierte Oberfläche und besitzt ansonsten sehr ähnliche Funktionen wie Jump/OpenJump. Beide Systeme lassen sich auf den meisten gängigen Betriebssystemen installieren. Ebenso können von beiden Systemen (das gilt auch für das o. g. GRASS) PostGIS-Datensätze gelesen und angezeigt werden. Auf die Objektdaten kann dann in der Anwendung zugegriffen werden. Die Verbindung wird aus dem jeweiligen System heraus hergestellt. Die entsprechenden Layer werden wie jeder andere Layer in der Oberfläche/Workbench angezeigt. Die Datensätze können bei der Verknüpfung mit dem System mit einer Beschränkung auf SQL-Basis versehen werden, um aus einer großen Menge von Datensätzen gezielt solche herauszufiltern, die einem bestimmten Kriterium entsprechen.

Ich werde später noch auf jedes einzelne System eingehen. Die Anbindung an eine externe und freie Datenbank bietet dem Anwender eine große Flexibilität. Dieser Punkt trifft sehr wohl auch auf die kommerziellen Produkte zu, die Schnittstellen zu verschiedenen Datenbanksystemen bieten. Der Anwender kann auf einen zentral verwalteten und ebenso zentral gepflegten Datenbestand zugreifen. Hierzu muss er nicht zwangsläufig ein GIS bemühen, um an die Daten zu kommen. Rein alphanumerische Ergebnisse können erfahrungsgemäß durch geeignete Auswertetools schneller und komfortabler erzeugt werden. Aus der Postgres-Erweiterung PostGIS lassen sich sogar unmittelbar geometrisch Abfragen starten. Die Besonderheit eines GIS ist aber die Visualisierung der Daten und das Erkennen und Auswerten von räumlichen Zusammenhängen. Dies ist in rein sachdatenorientierten Systemen nicht oder nicht ohne weiteres möglich. Diese Systeme sind sicher sehr gut geeignet, um Sachdaten zu verwalten und unternehmerische Vorgänge abzubilden. Immer dann, wenn georeferenzierte Daten (d. h. beispielsweise mit Bezug zu einer Adresse oder Koordinate) ins Spiel kommen, kann man den vollen Wert dieser Daten nur ausschöpfen, wenn man räumlichen Zusammenhänge erkennen und auswerten kann.

Ich bin derzeit in der Wohnungswirtschaft beschäftigt und bin dort verantwortlich für das GIS. Neben dem SAP-System, was sicher sehr gut für alle wohnungswirtschaftlichen Belange auf Basis der Mieter- oder Gebäudedaten geeignet ist (z. B. Vermietung), ist der Nutzen eines GIS sehr groß. Da schätzungsweise 95% der Informationen in dieser Branche einen räumlichen Bezug haben, können diese Informationen in einem GIS auf geeignete Weise dargestellt werden. Angefangen bei den Flurstücken, Gebäuden und Katasterkarten als Basisdaten, können alle Informationen zu Verträgen, Belastungen und Besonderheiten (Denkmalschutz, Immisionsschadensverzichtsbereiche) nicht nur mit ihren Sachdaten, sondern auch lagerichtig abgebildet werden. Hier kann der Anwender auf einen Blick sehen, was bei dem Objekt ggfs. zu beachten ist. Ein großes Thema, welches in den letzten Jahren unheimlich an Gewicht gewonnen hat, ist die Abrechnung von Grünflächenpflege in den Nebenkosten. Damit sind alle pflegerischen Maßnahmen gemeint, die an den Aussenanlagen eines Gebäudes vorgenommen werden und i. d. R. durch einen Unternehmer ausgeführt werden: Rasenschnitt, Heckenschnitt, Baumschnitt; aber auch Reinigungsdienst und Winter-/Streudienst.

Alle diese Informationen sind – sobald sie erfasst sind – im System abrufbar und können angezeigt und ausgewertet werden. In der Nebenkostenabrechnung konnte jahrelang der Mengenansatz der Unternehmer, z. B. beim Rasenschnitt, nicht wirklich kontrolliert werden. Eine im GIS erfasste Rasenfläche kennt ihre Grösse auf den Quadratmeter genau. Diese Grösse lässt sich intern oder in einer externen Anwendung weiterverarbeiten, so dass für ein gesamtes Pflegequatier oder aber für einen einzelnen Mieter genauestens ermittelt werden kann, wie groß diese Fläche ist. Damit ist die Abrechnung gezielter und für den Mieter gerechter durchführbar. Die Ermittlung einer Flächensumme oder einer Teilfläche kann durch geeignete Abfragen durchgeführt werden und gibt dem Anwender mit hoher Genauigkeit die Zahlen und Werte, die er erwartet.

Durch die Anbindung z. B. von Postgres als externe Datenbank kann der Anwender seine Informationen im GIS ermitteln und ggfs. mit weiteren Non-GIS-Daten (z. B. wohnungswirtschaftliche Sachdaten) aus der Datenbank erweitern. Hierdurch wird es überhaupt erst möglich, für räumlich zusammenhängende Objekte qualifizierte Aussagen zu treffen. Solange wir uns z. B. innerhalb einer Straße bewegen, sollte dies für eine „normale“ Datenbank auch möglich sein. Das GIS bietet aber die Flexibilität Auswertungen für einen Bereich durchzuführen, der nicht durch geeignete alphanumerische Kriterien klassifiziert ist. Wirtschaftseinheiten, Quartiere, Siedlungen oder ähnliche raumbezogene Merkmale lassen sich alphanumerisch an die Objekte hängen. Diese können aber nur anhand einer Karte identifiziert werden und sobald man einen übergreifenden Bereich oder eine örtlich definierte Teilmenge benötigt unzulänglich sein.

Ich werde meine Ausführung zunächst hier abbrechen und zu einem anderen Zeitpunkt einzelne von den o. g. Aspekten im Detail und mit Beispielen weiterführen.

ca. 7:40 min / 5,3 Mb