Ein bisschen mit Karten spielen Teil 2322: Dieses Mal mit Migranten in Regensburg.
Die Daten habe ich mit Tabula aus dem Vierteljahresbericht 2013 der Stadt Regensburg gescrapt. Sie waren die ersten, die Angaben zu Stadtteilen hatten und mir untergekommen sind. Die Geodaten der Stadtteile habe ich ebenfalls von offizieller Stelle.
In der Vergangenheit hatte ich immer das Problem, diese zwei Datensätze zusammenzufügen. Nachdem ich im letzten Wintersemester eine Vorlesung zu GIS belegt habe, war mir klar, dass das der way to go ist: Mit GIS-Software mergen – und nicht in der Kommandozeile, so wie ich das vor etwa einem Jahr probiert hatte. Das Ende vom Lied waren zwei neue Benutzer auf meinem Computer. Das passiert, wenn man Copy-Pasted und keine Ahnung hat davon …
Also: Wie Geodaten, zum Beispiel eine im Geojson-Format und eine csv-Datei zusammenfügen? Mit der Open-Source-Software QGIS. In der Uni haben wir ArcGIS benutzt, aber QGIS ist dem sehr, sehr ähnlich.
Aber dabei gibt es ein Problem: Alle Einträge der csv-Datei sind automatisch Strings. Es gibt aber einen Weg, das zu verhindern. Dazu muss man eine zweite Datei erstellen, die denselben Namen wie die .csv-Datei trägt, jedoch mit der Endlung .csvt. In diese .csvt-Datei werden dann in einer Zeile die Datentypen notiert. Zum Beispiel:
"string", "integer", "real"
Danach muss die Datei über Layer –> Delimited Tab Layer importiert werden. Dadurch werden die Datentypen automatisch erkannt, solange die .csv und .csvt-Datei den gleichen Namen haben und im gleichen Ordner liegen.
Andere Varianten, um die .csv-Datei in QGIS zu laden, wie einfach reinziehen oder als Vector Layer zu laden, haben bei immer dazu geführt, dass alle Datenpunkte wieder Strings waren.
Wo waren wir? Wir haben eine Datensatz mit passenden Datentypen und die Geodaten zusammengeführt. Diese kann nun exportiert werden und dann als Geojson-Datei zum Beispiel in Leaflet weiterverarbeitet werden.
Doch halt! So leicht ging es nicht. Die direkt aus QGIS exportierte Datei wurde bei mir über Leaflet nicht ausgespielt. Erst wenn ich sie bei CartoDB hochgeladen und wieder exportiert habe, hat es funktioniert. Weiß der Geier, warum.
Das Ergebnis: Eine Karte mit Leaflet. Für die Klassifizierung, Infobox und Legende habe ich das Leaflet-Tutorial benutzt.
Und nun? So ganz ohne Kontext ist das ein bisschen langweilig. Deshalb habe ich mir überlegt, Texte zum Thema von der Mittelbayerischen Zeitung und Regensburg Digital einfließen zu lassen. Doch: Bei beiden Medien ist nicht möglich, Artikel zu diesem Thema einigermaßen automatisiert, z.B. via Feed, auszulesen. Bei Regensburg-Digital finde ich zum Beispiel nur das Schlagwort „Flüchtlinge“, bei der Mittelbayerischen gar keine Tags. Über einen Alert bei Google News würde zu viel Unpassendes mitgeschwemmt und für eine händische Auswahl, die in zwei Tagen wieder obsolet wäre, fehlt mir die Motivation. Dann eben nur die Karte.