Archive for the ‘PostGIS’ Category

OSM-Daten in PostGIS und QGIS – Nachtrag

Juli 16, 2010

Im ersten Artikel OSM-Daten in PostGIS und QGIS habe ich beschrieben, wie man OSM-Daten via osm2pgsql in eine PostGIS-Datenbank importiert und mit QGIS darstellen kann. Dabei habe ich darauf hingewiesen, dass der Import in Postgis auch mit OSMOSIS geschehen kann. Leider habe ich das zu diesem Zeitpunkt noch nicht genauer beschreiben können. Mittlerweile habe ich das aber ausprobiert und bin recht schnell auf die Unterschiede aufmerksam geworden. (more…)

Werbung

OSM-Daten in PostGIS und QGIS

Juni 8, 2010

Ich hatte schon länger die Idee, die mittlerweile recht gut erfassten Daten aus OpenStreetMap (OSM) in eine Datenbank laufen zu lassen und dann gezielt Objekte zu ermitteln. Diese könnte ich dann z. B. in eine Tabelle füllen und zu Vetriebszwecke in unserem Unternehmen nutzen. (more…)

QGIS (III)

April 14, 2010

Ich habe heute festgestellt, dass ich hier in meinem Blog tatsächlich eine ganze Reihe Versionsnummern unterschlagen habe. Seit meinem letzten Bericht über QGIS ist die Software mittlerweile bei Version 1.4.0 (war  0.8.1) angekommen. (more…)

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. (more…)

QGIS (II)

Juli 24, 2007

Seit einiger Zeit ist auf der Seite der Programmierer ein neuer Release von QGIS zu bekommen (www.qgis.org) — nämlich die Version 0.8.1. Das ich das überhaupt ausdrücklich erwähne liegt daran, dass ich letztens versucht habe, einen WMS-Dienst (Kartenserver im Internet) anzubinden. Da ich selbst noch eine Version 0.7 im Einsatz hatte, suchte ich den Dateityp im „Öffnen“-Dialog vergeblich.

Ein Blick auf die Homepage von QGIS brachte die Lösung meines Problems. Ab der Version 0.8 wird das Einbinden eines WMS-Layers unterstützt und funktioniert sehr gut. Einige freie WMS-Server sind unter folgender Adresse im Internet zu finden: http://www.skylab-mobilesystems.com/ger/wms_serverlist.html. Zum Ausprobieren sollte einigs dabei sein.

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