Open Source im professionellen Einsatz

Daten vor- und aufbereiten

Für das folgende Beispiel dienen die Daten aus dem Openaddresses-Projekt, die im XML-Format vorliegen, und eine Tabelle mit Kundendaten der Firma in einer PostgreSQL-Postgis-Datenbank. Der Kasten "Postgis einrichten" zeigt die einfache Installation [9] in drei Schritten. [2] liefert bei Bedarf weiterführende Details und Anwendungsbeispiele für diese flexible Geodatenbasis.

Im Beispiel enthält die existierende Kundentabelle des Unternehmens unter anderem die Attributspalten »strasse«, »strassennummer«, »ort« vom Typ »text« und die Attributspalte »plz« vom Typ »integer«. Der nächste Schritt besteht darin, die Adressendaten von der XML-Datei in ein geografisches Dateiformat zu bringen. Hierfür soll das weitverbreitete Shapefile-Format dienen, das Qgis standardmäßig unterstützt.

Auf Basis der Shapedatei erzeugt der Admin dann eine neue Postgis-Tabelle mit den Adressen. Beide Schritte lassen sich bequem über die grafische Benutzerschnittstelle von Qgis durchführen. Das Verknüpfen (Join) der Adressentabelle mit der Kundentabelle in PostgreSQL und Postgis reichert die Kundendaten mit den notwendigen Koordinaten an. Eine passende, neu hinzugefügte Ansicht (View) in Qgis ermöglicht jetzt bereits das Betrachten und Bearbeiten dieser Daten.

XML nach Shape konvertieren

Qgis bietet die Möglichkeit, selbst geschriebene Python-Plugins über ein externes Repository einzubinden. Um die XML-Datei ins Shapeformat zu konvertieren, haben die Autoren für das Anwendungsbeispiel ein Openaddresses-Konverter-Plugin in Python geschrieben und stellen es im Internet zur Verfügung [10]. Die Anleitung im Kasten "Openaddresses-Plugin für Qgis installieren" zeigt die Schritte für den Import direkt nach dem ersten Start von Qgis. Bei den etwa 140000 Adressen, die gegenwärtig für die Schweiz erfasst sind, kann das allerdings eine Weile dauern.

Openaddresses-Plugin für
Qgis installieren

Sechs Schritte sind notwendig, um die Adressendaten aus dem Openaddresses-Projekt über Qgis in eine Shapedatei zu konvertieren:

  • Der Anwender aktiviert das »Plugin
    Installer«-Plugin im Plugin-Manager über das Menü
    »Plugins | Plugins verwalten...«.
  • Dann startet er den »Plugin Installer«-Dialog
    über das Menü »Plugins | Python-Plugins
    herunterladen«, um das externe Repository einzubinden.
  • Er klickt im Reiter »Repositorys« auf den Knopf
    »Hinzufügen« und trägt die URL:
    »http://karlinapp.ethz.ch/python_plugins/python_plugins.xml«
    für das neue Repository sowie einen passenden Namen ein.
    Wichtig ist, das Kontrollkästchen »Eingeschaltet«
    zu aktivieren, bevor man die Eingabe mit »OK«
    bestätigt.
  • Der Anwender wählt nun im Reiter »Plugins« das
    Openaddresses-Converter-Plugin aus und klickt auf »Plugin
    installieren«. Dann startet er den Plugin-Manager neu und
    aktiviert das Plugin.
  • Er startet das »Convert OpenAddresses Data«-Plugin
    über das Menü »Plugins | Open Addresses converter |
    Open Addresses converter...« oder klickt auf das
    entsprechende Icon in der Werkzeugleiste.
  • Als letzten Punkt wählt der Benutzer im »Convert
    OpenAddresses data«-Dialog die XML-Adressendatei aus, gibt
    einen Namen für die zu erstellende Shapedatei an und klickt
    auf »OK«.

Nach Abschluss der Konvertierung bindet Qgis die neu erzeugte Shapedatei über das Menü »Layer | Vektorlayer hinzufügen« ein.

Im nächsten Schritt importiert der Admin den Inhalt der Shapedatei in eine Postgis-Tabelle. Das Qgis-Plugin SPIT, das Shapefile to Postgis Import Tool, lässt sich analog zum Kasten "Openaddresses-Plugin für Qgis installieren" mit dem Plugin-Manager laden und erlaubt es dem Benutzer, über das Menü eine Tabelle in der PostgreSQL-Postgis-Datenbank mit den Adressendaten zu erzeugen. Abbildung 1 zeigt den entsprechenden Einrichtungsdialog von SPIT.

Abbildung 1: In SPIT, dem Shapefile Import Tool für Postgis, gibt der Benutzer die Verbindungsparameter der Datenbank sowie die zu konvertierende Shapedatei an. Nach dem Klick auf »OK« landen die Adressdaten in der PostgreSQL-Datenbank.

Abbildung 1: In SPIT, dem Shapefile Import Tool für Postgis, gibt der Benutzer die Verbindungsparameter der Datenbank sowie die zu konvertierende Shapedatei an. Nach dem Klick auf »OK« landen die Adressdaten in der PostgreSQL-Datenbank.

Das Kontrollkästchen »Eingestellte SRID benutzen« sollte er deaktivieren und stattdessen »4326« eingeben. Dadurch weiß die Datenbank, dass das Koordinatenbezugssystem WGS84 ist, mit der kartographischen Einheit Grad. Nach erfolgreichem Import sieht die Definition der Adressentabelle in PostgreSQL-Postgis aus wie in Listing 1.

Listing 1: Die Tabelle
»public.adressen_ch«

01 Table "public.adressen_ch"
02   Column   |         Type          |Modifiers
03 -----------+-----------------------+-----------
04  gid       | integer               |not null
05  strasse   | character varying(80) |
06  hnr       | character varying(80) |
07  adrzusatz | character varying(80) |
08  plz       | integer               |
09  ort       | character varying(80) |
10  herkunft  | character varying(80) |
11  the_geom | geometry              |
12 Indexes:
13 "adressen_ch_pkey" PRIMARY KEY, btree (gid)
14 "adress_idx" btree (strasse, hnr, ort) Check constraints:
15 "enforce_dims_the_geom" CHECK (ndims(the_geom) = 2)
16 "enforce_geotype_the_geom" CHECK (geometrytype(the_geom) =  'POINT'::text OR the_geom IS NULL)
17 "enforce_srid_the_geom" CHECK (srid(the_geom) = 4326)

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook