2014/09/22

geokodierungsskript für MapQuest API

da es zwar aktuelle einige bibliotheken für python 2.x gibt, welche geokodierung mit Hilfe der MapQuest Open Geocoding API zur verfügung stellen, aber keine kompatible version für python 3.x, habe ich ein kleines Skript dafür geschrieben und auf GitHub gestellt. voraussetzung zur verwendung ist ein authorisierungs schlüssel, der auf der entwicklerseite von MapQuest erzeugt werden kann.

das skript kann in ein projekt kopiert werden, das koordinaten für bestimmte orte benötigt. der aufruf der funktion geocodeMQ mit dem parameter der jeweiligen ortsabfrage, stellt dann genau diese bereit, in dem es auf die Open Geocoding API von Mapquest zugreift. diese daten basieren auf OpenStreetMaps-daten und stehen unter der ODbL. es werden die koordinaten des besten treffers als koordinatentupel (breite, länge) zurück gegeben und können zur weiteren prozessierung verwendet werden.

2014/08/22

reporting mit flask

um die möglichkeiten von flask zum erstellen eines reports zu testen, habe ich ein einfaches beispiel über wohnbautätigkeiten zusammen gestellt. zum ausprobieren der anwendung steht der code im python repo von diesem blog unter FlaskReporting zur verfügung.
image home screen
home screen

thema: wohnbautätigkeit in österreich

da es in dem beispiel eigentlich um die anwendung gehen sollte, habe ich datenzusammenstellung, -analyse und -visualisierung simpel gehalten. die daten stammen von statistik austria [ironiemodus an] DEM ansprechpartnerfür historische daten von österreich [ironiemodus aus] und bestehen aus 2 datensätze über die anzahl von fertiggestellten gebäuden mit wohnungen pro jahr. der insgesamte zeitraum der beobachtung ist somit zwischen 1970 und 2002. die datenwerte sind auch relativ unspektakulär mit nur einem ausreisser (in 1980), der eventuell mit mehr historischem wissen erklärbar wäre oder auch nur ein aggregation fehler ist.
für den report habe ich die daten dann so aufbereitet, dass eine zusammenfassende statistik der anzahl der gebäuden und ein einfaches diagramm über die selbe variable zu sehen ist. dazu noch ein bisschen erklärender text und fertig ist die simplifizierte version eines datenanalyse reports.

flask 

mit ein wenig kenntnissen in python und einigen tutorials war es überaus einfach, mit geringem aufwand, eine einfache reporting app zu entwickeln. der code der anwendung ist mehr oder weniger selbsterklärend. grundsätzlich gibt es ein main script mit dem code für flask und ein analyse script, das die datenanalyse und -visualisierung (überwiegend mit hilfe von pandas und der matplotlib) zur verfügung stellt. als layout wurde die basis version von bootstrap verwendet, das über eine erweiterung auch flott in flask integriert werden konnte. dadurch genügten ein paar zeilen code in den html templates, um so einen simplen report zusammen zu stellen.

report

zusammenfassung

flask ist mmn überaus geeignet, einfache reports oder andere datenprodukte ins web zu bringen. die verwendung des frameworks zeigt sich recht einfach, setzt jedoch etwas an wissen über html und css voraus.

2014/08/20

versuch: umstellung auf kleinschreibung

ab sofort starte ich den versuch, meine einträge in kleinschreibung zu verfassen. auf die idee brachte mich das lesen vom das vegan magazin (obwohl selbst nicht veganer) und die erinnerung an ein mal gelesenes buch eines italienischen autors, der sich ebenfalls der kleinschrift bediente. getestet soll werden, ob mir das konsequente klein-schreiben tatsächlich leichter fällt, wie sich die entscheidung auf das gesamte schriftbild des blogs auswirkt und ob die lesbarkeit der beiträge dadurch beeinträchtigt wird. persönliche erfahrungen oder meinungen dazu bitte über kontaktformular auf der seite. 

2014/07/27

Migrationsbilanz als ShinyApp

Für das Kurs-Projekt vom MOOC Developing Data Products habe ich eine simple Visualisierungs App entwickelt. Sie bereitet Migrationsdaten aus dem Zeitraum 2002 - 2012 der Bezirke von Oberösterreich in Form einer Choroplethenkarte auf und zeigt die Werte auch in Tabellenform.

Link zu shinyMig OÖ

ShinyApps.io

Umgesetzt wurde das Projekt zu Versuchszwecken in R auf der ShinyApps.io Plattform von RStudio. Das Deployment hierbei zeigte sich mehr als simpel. Sofern die Anwendung auf der eigenen Workstation einwandfrei läuft, kann es mit einem einfachen deployApp() Befehl auf die Plattform geladen werden. Die Kunst ist lediglich, die Anwendung am eigenen Rechner fehlerfrei zum Laufen zu bringen, da die debugging Möglichkeiten mit shiny leider noch sehr begrenzt sind.

Umsetzung in R

Bei der Entwicklung der App zeigte sich wieder eindeutig, dass R nur ein suboptimales Werkzeug zur Kartenerstellung ist. Mit ggplot2 ist zwar einiges möglich, der Aufwand dafür steht jedoch mMn nicht in Relation zu den mässigen Ergebnissen im Vergleich zu echter GIS-Software. Bei der Aufbereitung der Rohdaten (übrigen von data.gv.at) und der tabellarischen Darstellung in der App, konnte hingegen R natürlich seine Stärken ausspielen. Als größtes Hindernis bei der Entwicklung stellte sich die Kategorisierung der Migrationsbilanzen heraus, wobei ich mich nach etlichen Versuchen in automatischer- und einiger in manueller-Klassifizierung für einen semi-automatischen Weg entschieden habe, wobei positive und negative Salden getrennt und von diesen beiden Kategorien dann der jeweilige Median als weitere Schwelle eingeführt wurde. Damit blieb die visuelle Vergleichbarkeit der Karten noch einigermassen erhalten, bei Beibehaltung des Akzents auf die Trennung von positiven und negativen Werten. Für detaillierte Vergleiche sind ja noch die jeweiligen Schwellen in der Legende verzeichnet bzw. auch die Daten in der Tabelle ersichtlich.

Beispielcode

Der Beispielcode steht im R-Repo dieses Blogs zum download bereit.

2014/07/23

Buchrezension: Lifelogging von Stefan Selke

In den letzten Wochen habe ich das Buch "Lifelogging: Wie die digitale Selbstvermessung unsere Gesellschaft verändert" von Stefan Selke gelesen. Als regelmässiger Leser seines Blogs Stabile Seitenlage und da mir seine Posts im SozBlog sehr zugesagt haben, ging ich mit großen Erwartungen in die Auseinandersetzung mit dem Thema Lifelogging.

Licht und Schatten

Der Schreibstil des Autors sagt mir immer wieder zu. Er vermag nämlich komplexe gesellschaftlich Zusammenhänge, so zu präsentieren, dass sie einfach zu verstehen sind, aber dennoch keine bedeutenden Aspekte verloren gehen. Auch finde ich sehr gelungen, dass positive wie auch negative Entwicklungen und mögliche Auswirkungen des Lifeloggings angesprochen werden. Positive sind zwar eindeutig unterrepräsentiert, aber werden zumindest erwähnt, was im Vergleich zur Mainstream Medienlandschaft schonmal einem Quantensprung gleich kommt.

Vor allem das Ende des Buches kam mir dann doch etwas zu langatmig vor. Das letzte Kapitel, ein Ausblick auf die Zukunft (was mMn in  der Soziologie allzu oft fehlt) mal ausgenommen, waren mir Aneinanderreihungen von dystopischen Beschreibungen über mögliche negative Auswirkungen des Lifeloggings auf Dauer einfach zu viel. Auch die Glorifizierung sozialer und psychologischer Mechanismen im Gegensatz zu technischen Regulationssystemen kann ich zwar als Soziologe nachvollziehen, ist jedoch mMn eine antiquierte Haltung, sowohl im Bezug auf Erstere, wie auf Letztere. Eine trennschärfere Auseinandersetzung über Datenanwendungen und Lifelogging-Techniken hätte ich mir überdies gewünscht. 

Fazit

Grundsätzlich halte ich das Buch "Lifelogging" aktuell als sehr notwendig. Es bringt etwas Licht in die Grauzone der datenbasierten Technikanwendungen und deren manifesten, aber auch unintentionierten, Auswirkungen auf die Gegenwartsgesellschaften. Ich halte das Werk auch dazu fähig, eine Debatte über den Umgang mit Daten auf gesamtgesellschaftlicher Ebene anzustossen. Ob diese dann auch objektiv geführt werden kann, wage ich zu bezweifeln. Auch gerade weil ich den Grundtenor des Buch als zu sehr auf negative Auswirkungen von datenbasierten Technologien ausgerichtet empfinde.
Umgekehrt als die Ausrichtung auf ein Zielpublikum eigentlich zu erwarten wäre, würde ich das Buch sehr für den stereotypischen Techie empfehlen um dessen Horizont zu erweitern, als Technologie-interessierte Sozialforscher oder einer kritischen Öffentlichkeit, welche eventuell durch die Lektüre in ihrer Datenparanoia bestärkt werden könnten.

2014/07/10

Twitter: @datadonk23

Nachdem ich jetzt doch mal einen Twitter-Account angelegt habe (für ein Assignment im Rahmen eines MOOC - mehr dazu bald), gibt es jetzt auch Neuigkeiten von mir über Daten, Sozialforschung und alles was mir sonst noch unter kommt auf: @datadonk23

2014/07/06

Visualisierung von Wahlergebnissen mit Qt

Um die Möglichkeiten für die Entwicklung von Android Apps mit Qt zu testen, habe ich eine simple Anwendung zur Visualisierung von Wahlerbnissen erstellt. Das Projekt kann vom Visualisierungs-Beispiele Repositorium herunter geladen und auf Desktop oder neueren Android Versionen getestet werden.

Screenshot - Wahlergebnisse App

Wahlergbnisse der EU-Wahl 2014 in Steyr 

Da die Daten der letzten politischen Wahl in meiner Heimatstadt einfach zugänglich waren, habe ich diese als Datenbasis verwendet. Diese lagen schon aufbereitet durch die Abteilung für Wahlen der Kommunalverwaltungsbehörde vor und wurden lediglich in XML umgewandelt, um sie durch ein XMLListModel-Objekt in die Anwendung eingebinden zu können.

Tabellenansicht

Auf Basis eines Grid-Layouts wurde dann eine Tabelle mit den Ergebnissen erstellt. Diese ist flickable, mit einer Wischgeste kann also zu den Ergebnissen der Parteien der hinteren Listenplätze gescrollt werden. Auf mehr Interaktion wurde zu Gunsten der Simplizität verzichtet. Uninspirierter Weise wurden die Farben aus dem Standard-Farbschema von Android zur farblichen Gestaltung verwendet.

Fazit

Die Entwicklung einer Android App, die auch auf Desktops lauffähig ist, mit Qt war Dank der umfangreichen Dokumentation des Projekts einfach. Die Integration von tabellarischen Daten und Wiederverwendung in selber Form ist ebenso unkompliziert umzusetzen, wie ein grid-basiertes Layout zur Aufbereitung. Der erstellte Prototyp der App läuft auf Desktop- und neueren Android-Geräten und ist grundsätzlich mit weiteren Features erweiterbar. So wäre eine Navigation zu den einzelnen Stadtteilergebnissen ohne größere Mühen umsetzbar. Eine Darstellung in Diagrammform wäre ebenso denkbar wie sinnvoll, nur etwas umständlicher umzusetzen, da das Datenvisualisierungsmodul von Qt nicht in der OpenSource Version enthalten ist.