Archive for Juli 2006

QGIS (I)

Juli 28, 2006

QGIS (Quantum GIS) ist, wie erwähnt, ein freies GIS. Es ist eine Qt/C++ Anwendung (Anm.: und keine Java-Anwendung, wie ich zuvor behauptete. Dank nochmal an hotti! Geändert am 04.04.2007) und ist damit in jedem Betriebssystem einsetzbar, für das Qt verfügbar ist. Ob das auch für alle PlugIns gilt, kann ich nicht mit Sicherheit sagen. Ich setzte QGIS unter Linux und unter Windows ein. Von der Herstellerseite (s. o.) lässt sich QGIS kostenlose herunterladen. Hier findet man auch die englische Dokumentation und die üblichen Foren, in denen man weitere Hilfe bekommen kann.

Die Installation läuft auf einem Windows-PC problemlos und schon nach wenigen Minuten kann man mit seinem ersten Projekt starten. Idealerweise hat man schon ein oder mehrere Shape-Files von den eigenen Daten. Wenn nicht, kann man sich eine Beispieldatei aus dem Internet besorgen. Googeln hilft! :-) Danach, würde ich vorschlagen, „spielt“ man erstmal mit dem System herum, um sich mit den Funktionen und der Oberfläche vertraut zu machen.
Die Oberfläche der Version 0.7.4 ‚Seamus‘ ist auf deutsch verfügbar und stellt den Anwender vor keine großen Probleme sich zurechtzufinden. Eine deutsche Übersetzung der Anleitungen (Install-/User-Guide) wird für die Version 0.8 verfügbar sein. Für eine ausführliche Übersicht aller Funktionen sollte eine der Anleitungen herangezogen werden. Ich werde hier möglicherweise einen eingeschränkten Blick auf die Software haben, da ich nicht alle Funktionen benötige und dies kein Produkttest ist. ;-)

Ich lege, gemäß meiner Gewohnheit, erstmal ein zunächst leeres Projekt an. Dann öffne ich ein paar Shape-Files mit Straßen, Gebäuden und Flüssen. Diese werden vom System mit einer zufälligen Farbe angezeigt. Die lässt sich aber ändern und wird dann in der Projektdatei festgehalten. Sollen mehrere Leute auf dasselbe Projekt zugreifen, kann man die Projektdatei schreibgeschützt in einem allgemein zugänglichen Verzeichnis im Netzwerk ablegen. Ohne das Änderungen an den Einstellungen möglich sind, kann dann jeder mit dieser Datei arbeiten. Sind Änderungen an den Einstellungen in QGIS gewünscht, muss man sich über Alternativen unterhalten. So hat nur der Administrator die Möglichkeit neue Layer dauerhaft hinzuzufügen oder diese komplett aus dem Projekt zu entfernen.

Nach einiger Zeit reizt es mich doch zu sehr, die Datenbankanbindung zu testen. Aber wo krieg ich jetzt eine Tabelle für die Datenbank her? Nichts leichter als das! :-)
QGIS bietet eine Importschnittstelle für Shapefiles in eine PostGIS-Datenbank als Standard-PlugIn. Da hat doch mal einer mitgedacht. Gesagt, getan, habe ich meine drei Shapefiles in die Liste der zu importierenden Dateien eingefügt. In sehr kurzer Zeit sind die Daten eingelesen und stehen ab sofort unter PostgreSQL/PostGIS zur Verfügung.

Der Vorteil liegt auf der Hand: ich benutze jetzt die Daten, um Sie in QGIS anzuzeigen und evtl. auch geometrisch zu verändern. Möglicherweise sind in der Datenbank aber noch Tabellen abgelegt, die einen Bezug zu meinen Objekten haben — idealerweise über eine Art ID. Damit kann ich diese Daten ebenfalls heranziehen oder andere können — bei Kenntnis der SQL-Syntax — ihre Sachdaten in einen räumlichen Bezug setzen, ohne dafür QGIS zu benutzen.

Ein Beispiel:
Ich habe eine Tabelle mit den geografischen Informationen zu Gebäuden. Da diese Tabelle möglichst weit normalisiert — man könnte auch sagen: vereinfacht — ist, enthält sie keinerlei weitere Informationen als die Geometrie und eine eindeutige ID. Diese ID kommt ursprünglich aus einer Tabelle mit Sachdaten zu den Gebäuden. Ohne es bisher selbst getestet zu haben, soll man jetzt in PostgreSQL eine entsprechende Abfrage für einen View (eine Art dynamische Tabelle, basierend auf einer SQL-Abfrage) erzeugen können, der die Sachdaten mit den Geometriedaten auf Grund der ID verbindet. Wenn man jetzt den View zur Anzeige der Gebäude benutzt, müssten theoretisch beim Öffnen der Attributtabelle auch die Sachdaten angezeigt werden.
Auf der anderen Seite möchte ich einfach nur die Information haben, welche weiteren Objekte oder POI (Points Of Interest = interessante Ort, d. h. georeferenzierte öffentliche Einrichtungen, Geschäfte, Parks etc.) im Umkreis von z. B. 500m um mein Objekt herum zu finden sind. Da ich eine solche Tabelle in meiner Datenbank abgelegt habe, kann ich jetzt über eine geometerische SQL-Abfrage diese Objekte ermitteln und in einer Liste ausgeben lassen. Ich denke, man kann die Abfrage sicher noch so erweitern, dass man die Entfernung (Luftlinie) mit ausgeben kann. Wenn man jetzt in einer Tabellenkalkulation die Liste mit einer entsprechenden Funktion um eine Spalte erweitert, kann man sich beispielsweise diese Entfernung als Zeit für einen „Fussmarsch“ ausgeben lassen.

Möglichkeiten ohne Ende, wenn man erstmal die Tragweite solcher Informationen erkannt hat. Ich werde später weitere Ausführungen zum Umgang mit QGIS, PostGIS und PostgreSQL machen … versprochen! :-)

ca. 6:30 min / 4,5 Mb

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

Mal was anderes …

Juli 20, 2006

Heute macht es echte Mühe zu arbeiten. Wir haben im Büro ca. 31°C !
Das ist zwar für manche Kollegen in anderen Ländern noch recht wenig, aber wir haben dafür leider nicht den Luxus einer Klimaanlage. :-)

Dein GIS — das unbekannte Wesen

Juli 20, 2006

Manch einer macht sich garkeine Gedanken darüber, was ein GIS ist. Viele haben garkeinen Kontakt zu einer solchen Software. Trotzdem gibt es sicher viele, die ein GIS einsetzen könnten.

Aber Alles der Reihe nach! :-)

GIS steht zunächst einmal für Geografisches InformationsSystem. Eine solche Software kommt überall dort zum Einsatz, wo Informationen einem definierten Ort oder Raum zugewiesen werden können (georeferenzierte Daten). Ursprünglich wurden solche Systeme eingesetzt, um in der Industrie und Immobilienwirtschaft Leitungs- oder Gebäudebestände abzubilden. Mit der Weiterentwicklung der Systeme konnten dann auch planerische Aufgaben erledigt und strategische Aussagen getroffen werden. Systeme wie GE Smallworld GIS sind in erster Linie klassische Vertreter für die Gruppe der bestandsverwaltenden Systeme, mit dem man aber mittlerweile strategische Entscheidungen sehr gut treffen oder unterstützen kann. Ein System wie Grass war jeher der Forschung zugetan. Vom Militär entwickelt, enthält es eine Vielzahl von Werkzeugen, mit denen man Rasterdaten (z. B. Luftbildaufnahmen) auswerten kann. Die Schwerpunkte der beiden Systeme zeigen schon deutlich, dass sich die Aufgaben, die ein solches System erledigen kann deutlich unterscheiden. Auf der einen Seite Rasterkarten (Bitmaps) nur als Hilfe zur Orientierung und ansonsten vektororientierte Sachdatensätze. Auf der anderen Seite Vektoren oder neue Bitmaps als Ergebnis einer komplexen Auswertung von Rasterinformationen (z. B. Waldbrand- oder Hochwassersimulationen).

Smallworld als kommerzielles Produkt bringt einen hohen Kostenfaktor mit sich. Die Lizenzen und die Wartung sind nicht unbedingt preiswert. Dafür erhält man aber ein sehr umfangreiches System, das fast keine Wünsche offen lässt. Den Rest kann man programmieren. ;-)
OpenSource oder Freeware hingegen kann durch die teilweise sehr ausgereiften Funktionen und die Möglichkeit einer Anbindung an kommerzielle oder freie Datenbanken durchaus von Interesse sein. Auch wenn es um die Verwaltung großer Bestände oder Mengen von Kartenmaterial geht.

In den nächsten Beiträgen werde ich mich genauer über die einzelnen Systeme und deren möglichen Einsatz auslassen.

Ein GIS bringt normalerweise eine grafische Oberfläche, auch GUI genannt, mit sich. Hier kann der Anwender oder Administrator auf das System einwirken. Viele Systeme bringen heute ein AddOn oder eine Schnittstelle für eine webbasierte Oberfläche mit. Smallworld hat einen eigenen Webserver-Dienst, andere System können mit dem UNM Mapserver verbunden werden.
Jedes System arbeitet mit einer eigenentwickelten oder externen Datenbank (z. B. Oracle, PostGIS, MySQL) um Sachdaten verwalten zu können. Hierbei handelt es sich nicht immer um eine echte Datenbank. Manche Daten werden in ESRI Shapefiles abgelegt oder im GML/XML-Format gespeichert. Smallworld bringt eine eigene Datenbank mit sich, auf die man von ausseerhalb des GIS nur sehr schwer zugreifen kann. Andere Systeme setzen auf PostGIS oder Oracle Spatial. Sobald mehrere Anwender gleichzeitig auf die Daten zugreifen sollen, ist eine Client-Server-Architektur zumindest für die Daten(-banken) von Nöten.

Die nächsten Beiträge bringen dem interessierten Leser Hinweise und Ansätze, aus denen der Unterschied zwischen den unterschiedlichen Systemen besser hervorgeht.

In jedem Fall lohnt es sich für alle Unternehmen, die Daten mit einem räumlichen Bezug besitzen, mal genauer hinzusehen, ob eine solche Software den Umgang mit diesen Daten nicht erleichtern kann. Hierzu müssen bestehende Datenbank nicht zwangsläufig aufgelöst werden oder die Daten doppelt gehalten werden. Bei einer geschickten Integration wird sich der Freund von MS Access nicht von seinen Abfragen, Berichten und VBA Makros trennen müssen. Die anderen Mitarbeiter erhalten durch den Eisatz des GIS aber einen deutlich merklichen Mehrwert im Sinne einer Produktivitätssteigerung. Wobei ich im Zusammenhang von Computern dieses Wort nur sehr ungerne benutze.

Wenn man vom Bereich der Versorger und Immobilien zum Bereich des Geomarketings schaut, wird es vermutlich kein entsprechendes Unternehmen geben, was nicht zumindest ein in die Auswertetools integriertes GIS betreibt. Gerade diese Branche kann ohne mehr oder weniger gut georeferenzierte Daten nicht leben. Aber auch dazu später mehr.

ca. 6:00 min / 4,2 Mb

Setup

Juli 20, 2006

Da ich jetzt mittlerweile 10 Jahre mit GIS arbeite und hierbei eine Menge erlebt habe, möchte ich meine zurückliegenden und aktuellen Ideen, Projekte und möglicherweise interessanten Ansätze für die Allgemeinheit in diesem Blog festhalten.

Bei der GIS-Software werde ich mich bei den kommerziellen Produkten auf GE Smallworld GIS (noch Version 3) beschränken. Dies setze ich beruflich ein. Nebenher werde ich über freie GIS-Software wie Grass, Quantum GIS und Jump/OpenJump sprechen. In diesem Zusammenhang möchte ich über meine Erfahrungen mit Datenbanken wie Postgres/PostGIS und MySQL reden.

Sicherlich wird sich auch einmal der eine oder andere Gedanke hier verlaufen, der nicht wirklich mit dem Thema des Blog zu tun hat.

… und vielleicht werde ich den einen oder anderen Post zusätzlich in englisch machen.

Wichiger Hinweis in eigener Sache!

Das ich gerade über GE Smallworld GIS rede hat nur etwas damit zu tun, dass ich schon solange und tagtäglich damit arbeite. Weder verkaufe ich das Produkt, noch habe ich etwas davon, dafür Werbung zu machen.

ca. 2:00 min / 1,6 Mb