Schlagwort-Archiv: Datenjournalismus

Landsat7

Datenjournalismus mit Satellitenbildern

Viele Städte behaupten von sich, besonders viele Grünflächen zu bieten. In bisherigen Vergleichen wurden aber lediglich öffentliche Grünanlagen und Waldgebiete gegenübergestellt. Die Stadtgrün-Ranglisten enthalten keine Daten über private Grünflächen. Doch diese wollten wir in die Erhebung einbeziehen. Denn: Für das Stadtklima zählt jede Pflanze. Also haben wir für die Geschichte „Das sind Deutschlands grünste Städte“ eigene Daten erhoben – aus Satellitenbildern.

USGS Earth Explorer

Satellitenbilder herunterladen mit dem USGS Earth Explorer

Satellitenbilder gibt es von vielen Anbietern. Hier gibt es eine gute Übersicht, wie viele und welche Satelliten sich derzeit im All befinden. Dabei lassen sich sogar einzelne Satelliten nachverfolgen. Kostenpflichtig und in sehr hoher Auflösung gibt es etwa Bilder von Digital Globe. Weniger hoch aufgelöst, dafür kostenlos und über einen langen Zeitraum verfügbar, kann man Bilder der Nasa-Satellitenreihe Landsat herunterladen und analysieren. Seit 1984 liefern die Landsat-Satelliten 4,5,7 und 8 Bilder aus dem All, etwa alle zwei Wochen kommen sie am selben Ort vorbei. Um an diese Bilder zu gelangen, kann man sich einen kostenlosen Account bei USGS Earth Explorer anlegen, entsprechende Bilder suchen und einzeln herunterladen. Ein Bild ist rund 1GB groß und liegt als GeoTiff vor. Hier gibt es einen Überblick über Quellen kostenloser Satellitenbilder. Eine anschauliche Einführung in das Thema Remote Sensing/Fernerkundung stellt Harald Schernthanner bereit.

Beispiel: Landsat-8-Satellitenaufnahme (im Nordwesten ist Berlin zu sehen)

Landsat-8-Satellitenbild von Berlin

Analysiert und verarbeitet werden können diese Bilder nun mit zahlreichen Tools von Photoshop über QGIS bis GDAL. Das US-Recherchebüro ProPublica (bei denen ich 2012 ein Praktikum absolviert habe), arbeitet bereits seit einiger Zeit mit Satellitendaten. In diesem Blogbeitrag und diesem Tool-Überblick beschreiben sie im Detail, was alles im Bereich möglich ist. Sie selbst zeigen mit Losing Ground, wie Lousiana nach und nach im Meer versinkt. Die New York Times zeigt das Ausmaß der Zerstörung von Gebäuden im Gazastreifen mit einer Auswertung von Satellitenbildern.

Um nun aber mehrere Jahrgänge und Hunderte solcher Bilder auszuwerten, gibt es den Dienst Google Earth Engine. Sie beinhaltet mehrere Petabyte an Satellitenbildern, die mit vorgefertigten Methoden in kurzer Zeit verarbeitet werden können, ohne dass sie erst einzeln heruntergeladen werden müssen. Es muss direkt im Code gearbeitet werden. Die Macher stellen aber eine verständliche Einführung mit vielen Beispielen bereit.

Und so sind wir vorgegangen: Als erstes laden wir alle verfügbaren Landsat-Satelliten mit orthorektifizierten, also pixelgenau übereinandergelegten Aufnahmen. Davon nehmen wir Bilder aus den vergangenen zehn Jahren in der Haupt-Vegetationsperiode Juni und Juli. Da Wolken die Werte stark verzerren können, wählen wir lediglich Bilder mit einer Wolkenbedeckung von unter fünf Prozent. Die insgesamt 185 Bilder werden nun pixelgenau übereinandergelegt und von jedem Pixel der Median-Wert gewählt. So entsteht ein Mosaik von Deutschland in einer Auflösung von 30×30 Metern pro Pixel.

Google Earth Engine

NDVI-Berechnung mit Google Earth Engine

Im nächsten Schritt wird für jede Fläche der Vegetationsindex NDVI (Normalized Difference Vegetation Index) berechnet. Der NDVI ist das gängigste Verfahren, um nachzuweisen, wie viel Pflanzengrün (Chlorophyll) an einem Ort vorhanden ist. Pflanzen reflektieren das Licht in bestimmten Wellenbereichen (Übersicht der Landsat-Bänder). Anhand der Kombination aus rotem und nahem Infrarot-Bereich lässt sich der Wert ermitteln. Daraus resultieren in unserer Rechnung Werte zwischen 0 (keine Vegetation) und 0,8 (üppige Vegetation). Die Karte haben wir als GeoTiff-Raster exportiert, in QGIS auf die Deutschland-Grenzen geclippt und per Tilemill auf Mapbox hochgeladen.

Nachdem für jedes Pixel der NDVI-Wert ermittelt war, wurden diese in nur zwei Kategorien eingeteilt: entweder mit Vegetation oder ganz ohne – wie Wasser oder bebaute Flächen. Diese Unterteilung wurde mit einem NDVI-Schwellenwert von 0,45 getroffen. Alles darunter gilt als nicht bepflanzt. Um schließlich den Anteil der Vegetation zu berechnen, haben wir den Anteil der gesamten Vegetation innerhalb der jeweiligen Stadtgrenzen aller deutschen Großstädte (mehr als 100.000 Einwohner) berechnet. Um die Städte vergleichbar zu machen, nutzen wir die administrativen Grenzen. Dieser Vergleich kann von der subjektiven Wahrnehmung abweichen (in Siegen zählt vor allem der Wald um die Siedlungsfläche herum). Um zusätzlich noch die Grünanteile für die reinen Siedlungsflächen zu bekommen, arbeiten wir derzeit an einer Aktualisierung. Danke an Friedrich Hartmann für den Tipp für entsprechende Datensätze.

So "fotografiert" Landsat 8 die Erde

So sammelt Landsat 8 Daten

Während des gesamten Projekts wurden wir von wissenschaftlicher Seite von den Doktoranden Simon Nieland und Phillip Gärtner von der TU Berlin sowie Joachim Maack von der Uni Freiburg unterstützt. Hier war auch wieder der Expertenmakler des Informationsdienst Wissenschaft (idw) sehr hilfreich. Von technischer Seite hat uns das Google-Earth-Outreach-Team und das Google News Lab unterstützt. So konnten wir offene Fragen direkt mit Entwicklern der Earth Engine klären.

Seit kurzem liefert der ESA-Satellit Sentinel 2 noch deutlich hochauflösendere Daten mit einer Genauigkeit von 10×10 Metern. Skybox-Satelliten senden sogar HD-Videos aus dem All. Satellitendaten werden also eine immer wichtigere Quelle für Journalisten.

 

Halbautomatischer Feinstaub-Artikel: Wenn der Roboter mitschreibt

Berlin zählt zu den deutschen Städten, in denen die höchsten Feinstaub-Konzentrationen gemessen werden. Eine Messstation hat bereits jetzt den Jahres-Grenzwert von 35 Überschreitungen, die laut EU-Richtlinie erlaubt sind, erreicht.

Horizon Chart der Feinstaub-Messwerte

Täglich aktuelle Messwerte

Statt nun jeden Tag nachzuschauen, wann die Vorgabe aus Brüssel tatsächlich gerissen wird, haben wir eine Software programmiert, die Zeile, Anlauf und Textbausteine teilweise selbst schreibt. Wenn die EU-Vorgaben in Berlin dann überschritten werden – und das steht etwa an einer Messstation in Neukölln unmittelbar bevor – wird die entsprechende Meldung bereits kurz danach auf morgenpost.de/feinstaub veröffentlicht und passt seinen Inhalt und einen entsprechender Teaser automatisch an – ohne Zutun eines Redakteurs.

Bei der Anwendung handelt es sich um eine einfache Form des Roboterjournalismus auf Basis von Sensor-Daten. Mit dieser Art des Datenjournalismus hatten wir noch keinerlei Erfahrung. Es handelt sich um ein Experiment, aus dem wir lernen wollen. Und so sind wir vorgegangen:

Sensordaten von elf Messstationen

Es gibt elf Stationen in Berlin, die Feinstaub-Werte messen. Die jeweiligen Daten werden einerseits vom Umweltbundesamt veröffentlicht, wo sie als csv oder json per Api (Schnittstelle) abgerufen werden können. Die Daten gibt es aber auch bei der Berliner Senatsumweltbehörde, die die Vortags-Daten täglich auf einer Webseite veröffentlicht – zwar lediglich in einer HTML-Tabelle, dafür rückwirkend bis 2008. Daher entschieden wir uns für letztere Quelle.

Original-Daten aus Berlin

Original-Daten aus Berlin

Die Daten ließen sich relativ leicht scrapen, da jeder Tag in der URL abgebildet ist (z.B. Endung …20140706.html für die Werte des 6. Juli 2014). Um die Daten täglich in unsere eigene Datenbank einzulesen, haben wir einen sogenannten Cronjob eingerichtet, einen Automatismus, der zu einem bestimmten Zeitpunkt ein Skript ausführt. In unserem Fall werden täglich gegen 14 Uhr die Messdaten in unsere eigene Datenbank geschrieben. Das gibt uns nun auch die Möglichkeit, in unserer eigenen Datenbank zu recherchieren. So zeigte sich, dass es bereits sehr häufig zu Grenzwertüberschreitungen gekommen war. Außerdem fielen uns zahlreiche sehr hohe Werte auf, die im Text dann erklärt werden.

Um die Berlin-Werte deutschlandweit einordnen zu können, werten wir zusätzlich die Messdaten der zehn am meisten belasteten Gegenden Deutschlands aus. Die Daten dafür kommen von der Schnittstelle des Umweltbundesamts. Ein Europa- oder weltweiter Vergleich war nicht möglich, da es (noch) keine vergleichbare Schnittstelle gibt.

Artikelinhalte teilweise automatisieren

Bei Roboterjournalismus handelt es sich laut Datenjournalist Lorenz Matzat „um Software, die in Teilbereichen des Journalismus selbstständig Artikel und Berichte erstellt.“ Umfangreichere Experimente gibt es etwa bei AP: Dort wird etwa damit experimentiert, ganze Meldungen zu Geschäftsberichten zu automatisieren. Auch Spielberichte können teilweise automatisiert erstellt werden. So wird Journalisten automatisierbare Arbeit abgenommen und sie können sich so mehr auf Analysen und Hintergründe konzentrieren.

Ein Skript, das Sätze baut

Ein Skript, das Sätze baut

In unserem Fall haben wir ein Skript programmiert, das bestimmte Sätze ausgibt und anpasst, sobald bestimmte Werte gemessen werden. Allerdings wurde der Großteil des Textes noch selbst geschrieben. So werden signifikante Werte (z.B. Häufigste Überschreitungen) erklärt. Für das Verständnis der nackten Zahlen halfen zahlreiche Gespräche mit dem Umweltbundesamt, der Berliner Senatsumweltbehörde und die Auswertung von Parlamentsanfragen – eine Aufgabe die von keinem Roboter übernommen werden kann. Wir haben versucht, eine gute Mischung aus beiden Herangehensweisen zu finden.

Neben den Feinstaub-Werten haben wir auch Ozon- oder Stickstoffdioxid-Daten in unserer Datenbank und überlegen derzeit weitere Schritte, die Berliner Luft zu überwachen.

Wir freuen uns über Anregungen und Kritik zu unserem Experiment!

+++ Update, 04.10.2014 +++

Zeitungsartikel basierend auf dem Feinstaub-Monitor

Zeitungsartikel basierend auf dem Feinstaub-Monitor

Am 2. Oktober haben die Station Silbersteinstraße und wenige Tage später weitere Messstationen die EU-Grenze in Berlin gerissen. Besser hätten wir die Funktionalität unseres halbautomatischen Artikels nicht testen können, die Redaktion war nämlich beinahe unbesetzt wegen des Tags der Deutschen Einheit.

So konnten wir die Nachricht auf der Webseite ohne zutun eines Redakteurs auf der Webseite vermelden. Und am Tag darauf entstand ein kleiner Artikel für die Zeitung (siehe Foto). Nun gilt es, die automatisierten Auswertungen noch zu verfeinern.

Bundestagswahl 2013 – Wie wir unsere Online-Formate umsetzen

Vor und nach der Bundestagswahl 2013 hat die Berliner Morgenpost einige reine Online-Formate veröffentlicht. Wir haben dabei wieder mit Tools und Web-Techniken experimentiert. Wir wollen das, was wir dabei gelernt haben, teilen – und veröffentlichten daher an dieser Stelle Werkstattberichte und Tutorials.

23.09.2013: Berlinwahlkarte 2013 – Alle Ergebnisse der 1709 Berliner Wahllokale

Nach unserer interaktiven Karte zur Berliner Abgeordnetenhauswahl 2011 haben wir (André Pätzold und Julius Tröger) zur Bundestagswahl 2013 eine Neuauflage unter berlinwahlkarte2013.morgenpost.de erstellt. Wir haben aus unserer ersten Berlinwahlkarte gelernt und unsere 2013-Version rundumerneuert. Das wurde unter anderem möglich, weil Web-Entwickler Moritz Klack unser kleines Team verstärkte und maßgeblich am Erfolg der Karte beteiligt war.

Gewinner, Verlierer, Statistiken: Unsere Karte mit allen Wahllokal-Ergebnissen

Gewinner, Verlierer, Statistiken: Unsere Karte mit allen Wahllokal-Ergebnissen

Zwei Tage nach der Wahl dürfen wir uns über mehr als 14.000 Facebook-Likes, unzählige Tweets und überwältigende Zugriffe freuen. Vor allem die immer noch vorhandene Teilung Berlins beim Wahlverhalten war für viele neu und ein großes Thema in Tweets aus den unterschiedlichsten Ländern.

Die neue Karte zeigt wieder jede in den Berliner Wahllokalen abgegebenen Erst- und Zweitstimme. Und das in der im deutschen Wahlrecht kleinstmöglichen und somit detailliertesten Einheit, der Stimmbezirksebene. Sie zeigt tatsächlich nur, wie in den 1709  Berliner Wahllokalen am Sonntag abgestimmt wurde. Die Daten dazu kamen gegen 3 Uhr in der Wahlnacht. Vor allem bei der Wahlbeteiligung ergeben sich so sehr niedrige Werte. Wir haben uns für diese Darstellung entschieden, da wir so die Ergebnisse sehr detailliert auf Kiezebene zeigen können. Briefwahlbezirke (568) sind deutlich gröber gefasst, die Briefwahlstimmen lassen sich nicht einfach auf die Wahllokale verteilen. Wir arbeiten jedoch an einer Darstellung, bei der die Briefwähler zum endgültigen Ergebnis zusätzlich berücksichtigt werden. (Werden wir in dieser Wahlkarte doch nicht mehr umsetzen.)

Responsiv-Konzept: Nur das nötigste

Responsiv-Konzept: Nur das nötigste

Darüber hinaus zeigen wir die Hochburgen der Parteien und statistische Auswertungen aus eigenen Abfragen („Wo die Wechselwähler leben“) und Wahlstrukturdaten („Wo die ältesten leben“).
Außerdem ermöglichen wir mit Deep-Links jeden Zustand der Karte zu teilen und somit etwa in den Texten unserer Wahl-Nachberichterstattung direkt auf einzelne Aspekte der Karte einzugehen.
Des Weiteren ist die Karte diesmal nicht in unser Standard-Layout gepresst, sondern für eine Vollbild-Ansicht optimiert. Sie passt sich responsiv an alle Bildschirmgrößen an. So kann sie sowohl auf Tablets optimal betrachtet werden, als auch auf großen Monitoren, wo die Karte voll zur Geltung kommt.

Weniger Google – mehr QGIS und GDAL

Die 2011er-Version haben wir noch vorwiegend mit Google-Tools wie Fusion Tables und Charts umgesetzt. Das lag vor allem am mangelnden Programmier-Verständnis. Dieses Jahr nutzen wir zwar noch die Google-Karte und den –Geocoder (der kostenlos ist, aber nur für Google-Karten). Fusion Tables setzen wir aber nur noch an einer Stelle ein: Mit der SQL-Api und der Methode ST_INTERSECTS kann man nämlich herausfinden, ob ein Punkt in einem Polygon liegt. So steuern wir etwa die Stimmbezirk-Zuordnung, nachdem Nutzer ihre Adresse eingeben.

Shape-Umwandlung mit QGIS

Shape-Umwandlung mit QGIS

Im Gegensatz zu 2011 konnten wir dieses Jahr unter ganz anderen Voraussetzungen arbeiten. Nicht nur war Web-Entwickler Moritz Klack an Bord. Die Berliner Landeswahlleiterin stellte uns diesmal auch ein Shapefile bereit, das Polygone für jeden der 1709 Stimmbezirke enthält – 2011 mussten wir die Wahlkreise noch von Hand nachzeichnen. Das Shapefile enthält neben den Stimmbezirken auch die Wahlbezirke. Um diese daraus zu extrahieren, haben wir die hervorragende Software Quantum GIS (QGIS) eingesetzt. QGIS ist gerade in der Version 2.0 erschienen.

Shape-Vereinfachung: Hinten: Original. Vorne: Punkte halbiert

Shape-Vereinfachung: Hinten: Original. Vorne: Punkte halbiert

Die von uns gewählte, detaillierte Darstellung bereitete uns aber auch Probleme, da das Original-Shapefile aus beinahe 100.000 Geo-Koordinaten besteht. Zwar waren die Stimmbezirke so auf den Meter genau, die Performance der Karte litt aber deutlich. Deshalb mussten wir die Polygone vereinfachen. Um Geoformate umzuwandeln kann GDAL (für Mac am besten GDAL_Complete bei KyngChaos downloaden) etwa mit dem ogr2ogr-Befehl im Terminal eingesetzt werden. In unserem Fall nutzten wir den Befehl „ogr2ogr output.shp input.shp -simplify 7“. So konnten wir die Punkte in unserem Shapefile nach einigem hin- und herprobieren ohne wirklich sichtbare Qualitätseinbußen mehr als halbieren und die Geschwindigkeit der Karte deutlich steigern. (Siehe Update weiter unten!)

Probleme hatten wir auch mit Apple-Produkten: Kurz vor der Veröffentlichung der Karte launchte Apple iOS 7. Nach ersten Tests unserer Karte mit dem neuen Betriebssystem wurde schnell klar, dass die neuste Safari Version offensichtlich starke Probleme mit intensiven Javascript-Applikationen hat. Die Erstellung der 1709 Polygone der Stimmbezirke brachte den neuen Browser zum abstürzen. Auf alten iOS-Versionen funktioniert das hingegen problemlos. Der neue Safari hat tatsächlich noch einige Bugs, die das Nutzen vieler aktueller Technologien unmöglich machen. Wir mussten für iOS-7-Nutzer also eine Fallback-Variante erstellen, die die Nutzung etwas einschränkt.

Tools für die Arbeit mit (Geo-)Daten

Neben QGIS und GDAL kamen für die Berlinwahlkarte weitere Tools wie Shape Escape (Import von Shapefiles zu Fusion Tables), CartoDB (Export in verschiedene Datenformate), GeoJSON.io (Einfache Bearbeitung von Geodaten) sowie Mr. Data Converter und Open Refine (Umwandlung von Tabellen in JSON-Format) zum Einsatz. Viele Daten, etwa die jeweiligen Partei-Hochburgen, haben wir direkt in den Quellcode geschrieben werden in kleinen Datenhappen nachgeladen um Ladezeiten zu vermeiden. Kartentools wie LeafletMapboxTilemillStamen und TopoJSON kamen diesmal nicht zum Einsatz, wollen wir uns aber für künftige Projekte genauer ansehen.

Excel zu JSON: Tool: Mr. Data Converter

Excel zu JSON: Tool: Mr. Data Converter

Weil wir viel mit Geodaten hantierten, bekamen wir auch ein Grundverständnis von Karten-Projektionen. Geodaten bestehen grundsätzlich aus einer Menge von Koordinatenpaaren. Da die Erde eine Kugel ist, wir aber mit flachen Karten arbeiten, muss jeder Punkt auf der Erde daher umgerechnet werden. Dafür gibt es etliche Bezugssysteme. Der Quasi-Standard, den etwa Open Street Maps oder Google nutzen, ist die Web-Mercator-Projektion (EPSG: 3857, WGS84). Wenn man also ein Shapefile bekommt, sollte als erstes die richtige Projektion sichergestellt werden. Hatten wir Fragen, wurde uns immer unter gis.stackexchange.com sehr schnell weitergeholfen.

Mischung aus Abstrakt- und Detaildarstellung

Beispiel SVG-Karte ohne Details

Beispiel SVG-Karte ohne Details

Immer wieder wird darüber debattiert, ob man detaillierte Karten mit Straßenverläufen, Flüssen etc. oder eher abstrakte Darstellungen wie etwa lediglich mit Umrissen der Ortsgrenzen (z.B. SVG-Darstellung bei ) verwenden soll. Wir sind der Meinung, und das hat sich nach zahlreichen Tests unserer Berlinwahlkarte bestätigt, dass sich Nutzer sehr wohl an Straßen, Flüssen, Parks orientieren, um ihr Haus zu finden. Aber nur in einer nahen Zoomstufe. Als Übersicht sind Straße und Co. tatsächlich eher störend. Wir haben uns also entschieden, den Kartenstil je nach Zoomstufe anzupassen. Allgemein haben wir in Sachen Usability immer die Heuristiken von Molich und Nielsen im Blick gehabt, und versucht, möglichst viel davon umzusetzen (Konsistenz, sofortiges Feedback auf Nutzereingaben, „Less is more“) .

Update/Ergänzung 16.10.2013:

Wir haben ein Update der Karte eingespielt. Einerseits haben wir nun die endgültigen Wahlergebnisse eingepflegt und kleine Bugs behoben (z.B. „.“ statt „,“ bei manchen Dezimalzahlen). Andererseits haben wir aber die Hinweise von Jeremy Stucki und Ralph Straumann aufgegriffen und die Polygone der Stimmbezirke neu umgerechnet und hochgeladen.

Fehlerhafte Topologie nach GDAL Simplify

Fehlerhafte Topologie nach GDAL Simplify

Wie im Blogpost oben beschrieben, mussten wir die 1709 Polygone der Stimmbezirke vereinfachen, da es bei den vielen Tausend Punkten zu Performance-Problemen kam. Wir haben die Anzahl der Punkte also mit einem GDAL-Befehl halbiert. Das funktionierte soweit auch super. Allerdings wurde so die Topologie zerstört, in großen Zoomstufen konnte man Lücken oder Überlappungen zwischen den Stimmbezirken erkennen. Für uns war das ein notwendiges Übel und beschlossen daher, das so umzusetzen.

Die beiden Geo-Experten Jeremy Stucki und Ralph Straumann hatten uns allerdings direkt nach der Veröffentlichung des Blogbeitrags darauf hingewiesen, dass das viel besser geht. Vielen Dank an dieser Stelle noch einmal für die Hilfe – das zeigt einmal mehr, wie sich die Datenjournalismus-Community gegenseitig hilft. Nach Rücksprache möchte ich natürlich auch hier teilen, was Jeremy per Mail schrieb:

Da du ja GDAL schon installiert hast, ist das einzige, was du noch brauchst Node.js. Am einfachsten installierst du TopoJSON dann übers Terminal:

npm install -g topojson

Und dann wandelst du ein Shapefile so um:

topojson -p –simplify 2e-9 — in.shp > out-topo.json

Der -p Parameter stellt sicher, dass die Attribute (Name, Nummer etc.) mitkopiert werden, –simplify gibt an wie stark du vereinfachen willst, d.h. die Flächengenauigkeit in Steradianten. 2e-9 ist der Wert, den ich für die Schweiz verwende, das kannst du also eher ein bisschen grösser wählen, da musst du etwas experimentieren. Als Alternative kannst du auch –simplify-proportion angeben, damit bestimmst du einfach, wie viele Punkte du schliesslich haben willst. 50% der Ausgangspunkte ist also –simplify-proportion 0.5.

Es gibt noch viel mehr Optionen, nachzulesen unter https://github.com/mbostock/topojson/wiki/Command-Line-Reference

Um dann wieder ein GeoJSON zu kriegen:

geojson –precision 3 -o out-verzeichnis — in-topo.json

Beispiel mit precision 3: Für Berlin-Details zu gering

Beispiel mit precision 3: Für Berlin-Details zu gering

in-topo.json ist dabei die TopoJSON-Datei, die du vorher erstellt hast. –precision gibt dabei an, wie viele Nachkommastellen du in deinen GeoJSON-Koordinaten haben willst. Je weniger, desto ungenauer, aber kleiner die Datei. -o gibt das Verzeichnis an, wo das GeoJSON erstellt wird (oder werden, weil eine TopoJSON-Datei auch mehrere Layer beinhalten kann).“

Nach einigem hin- und herprobieren rechneten wir die 1709 Stimmbezirks-Polygone als TopoJSON mit simplify-proportion 0.5 und als GeoJSON wiederum mit precision 4 heraus. Vor allem bei letzterem sind drei Koordinaten-Nachkommastellen für die detaillierten, kleinen Polygone zu grob. Das Endergebnis kann sich nun wirklich sehen lassen. Für eine GeoJSON-Datei, die gerade einmal 644KB groß ist, ist der Detailgrad immer noch ausreichend hoch und die Topologie bleibt erhalten.

13.09.2013: Scrollbare Infografik – die Berliner Parteien in Zahlen

In der Printausgabe der Berliner Morgenpost haben wir (Christian Schlippes, Karin Sturm, Joachim Fahrun und Julius Tröger) zwischen dem 9. und 14. September sechs ganzseitige Infografiken veröffentlicht. Sie zeigen für Berlin relevante Zahlen der sechs Parteien, die derzeit im Deutschen Bundestag oder im Berliner Abgeordnetenhaus sitzen, CDU, Linke, SPD, Grüne, Piraten und FDP. Welche Partei verliert am meisten Mitglieder – welche gewinnt wie viele hinzu? Wer wählt die Parteien? Wie viel steht zu den wichtigen Berliner Themen in den Wahlprogrammen? Wie hoch sind die Wahlkampfbudgets? Die Grafiken geben Antworten auf diese und weitere Fragen.

Scroll-Infografik - Die Berliner Parteien in Zahlen

Scroll-Infografik – Die Berliner Parteien in Zahlen

Am letzten Tag der Serie veröffentlichten wir diese Grafiken auch online. Allerdings nicht 1:1. Wir stellen sie in einer aufwendigen, scrollbaren, animierten Infografik dar. Wir entschieden uns dafür, weil die komplexe Datenvisualisierung dadurch in kleinere Aufmerksamkeits-Abschnitte unterteilt werden kann. Im Gegensatz zur Zeitungsversion ist es dabei auch möglich, die Parteien untereinander zu verglichen.

Technisch kamen dabei keine Scroll-Bibliotheken wie SkrollrSupercrollorama oder Stellar.js zum Einsatz. Deren Schnittstellen waren für unseren speziellen Fall nicht ausreichend. Interaction-Designer und Programmierer Markus Kison ließ sich per Javascript einfach die Stelle ausgeben, bis zu der der Nutzer jeweils scrollte. Aufgrund dieses Wertes wurden dann zwischen bestimmten Fixpunkten Animationen abgespielt. Da die Grafiken bereits in Form von Illustrator-Dateien vorlagen, wurden sie auch nicht komplett in SVG-Vektorgrafiken umgebaut, sondern teils als fertig GIF-Datei in den Hintergrund gelegt. An sinnvollen Stellen wurden dann SVG-Animationen mit Hilfe von D3 eingesetzt.

Einen Großteil der Zeit verbrachten wir am Ende mit dem Finetuning des Grafik-Verlaufs. Es stellte sich als größte Herausforderung heraus, einerseits den Spannungsbogen aufrecht zu erhalten, die Aufmerksamkeit immer auf das wichtigste Element zu lenken und allgemein einen stimmigen Scroll-Ablauf zu schaffen. Man sollte sich bei dieser Art von Infografik frühstmöglich ein Storyboard zurechtlegen.

Interessante Scroll-Grafiken kommen auch immer wieder vom Interactive-Team des Guardian US. Besonders eindrucksvoll ist ihr Jahresrückblick „2012 in America“, durch den man sich nur mit dem Mausrad/Touchpad bewegen kann.

02.09.2013: Interaktiver Stimmzettel – Welche 150 Kandidaten in Berlin zur Wahl stehen

Bei der Bundestagswahl 2013 stehen 150 Direktkandidaten in zwölf Berliner Wahlkreisen zur Wahl. Dabei können alle Berliner zwar denselben 17 Parteien ihre Zweitstimme geben. Die Kandidaten für die Erststimmen sind aber in jedem Wahlkreis unterschiedlich.

Vorab-Stimmzettel für Berlin

Vorab-Stimmzettel für Berlin

Jede Wahl, ob per Brief oder an der Wahlurne, wird mit zwei Kreuzen auf einem vorgegebenen Stimmzettel durchgeführt. Wir (André Pätzold, Anett Seidler, Moritz Klack und Julius Tröger) haben unseren Berliner Nutzern jeweils ihre persönlichen Zettel vorab originalgetreu nachgebaut und mit Zusatzinformationen (Fotos, Kontaktdaten, Themencheck) zu den Kandidaten und Parteien versehen.

Dabei erläutern wir auch Hintergründe wie etwa die Partei-Reihenfolge auf dem Stimmzettel. Die Linke steht nämlich nur deshalb vor der SPD, weil sie bei der Bundestagswahl 2009 exakt 579 Zweitstimmen mehr hatte. Darüber hinaus zeigen wir weitere Details wie die Vorjahresergebnisse in den jeweiligen Wahlkreisen und soziodemographische Daten der Kandidaten. Interessant ist dabei zum Beispiel, dass im Wahlkreis 76 (Pankow) keine einzige Frau als Direktkandidatin antritt. Da es bei der Wahl schließlich nicht nur um die Personen, sondern vor allem auch um Themen geht, haben wir den Kandidaten-Check von Abgeordnetenwatch integriert.

Die Kandidaten-Fotos erhielten wir auf Anfrage direkt bei den Pressestellen der Parteien. Der Stimmzettel wurde mit HTML, Javascript und CSS umgesetzt. Die Navigationskarte wurde als SVG integriert, die Karte mit den Kandidaten-Geburtsorten per Google-Maps-API. Der Stimmzettel ist auf der Startseite der Berliner Morgenpost prominent platziert. Der Artikel-Teaser soll dort bis 18 Uhr am Wahlabend stehen bleiben. Alle Stimmzettel sind per Deeplink teilbar. Eine Auswahl:

30.08.2013: Animated Gifs – die Gesten der Kanzlerkandidaten analysiert

Den Auftakt zu unseren Online-Only-Wahl-Geschichten machte die Analyse zu den Gesten von Angela Merkel und Peer Steinbrück im Vorfeld des TV-Duells. In Form von animierten Gifs haben wir je fünf Gesten der beiden Politiker gegenübergestellt und von Peter Ditko, dem Chef der Deutschen Rednerschule, analysieren lassen. Kollege Max Boenke und ich haben uns sehr über die überaus positive Resonanz gefreut.

Die Gesten von Angela Merkel und Peer Steinbrück - als animierte GIFs

Die Gesten von Angela Merkel und Peer Steinbrück – als animierte Gifs

Das Rohmaterial der Reden von Merkel und Steinbrück haben wir aus der Mediathek des Parlamentsfernsehens des Deutschen Bundestages heruntergeladen. Es darf mit Quellenverweis genutzt werden.

Die jeweils rund 20 bis 30 Minuten lange Reden haben wir in Final Cut Pro X auf entsprechende Gesten gesichtet, geschnitten und als MP4-Dateien exportiert. Diese kurzen Clips haben wir dann mit Gif Brewery (z.B. 4,49 Euro im Apple App Store) in animierte Gifs umgewandelt. Mit einem kleinen HTML– und CSS-Grundgerüst haben wir die Gifs und Texte dann in unser CMS integriert.

Im ersten Schritt werden Start- und Endpunkt des Clips ausgewählt (das Zuschneiden vorab erleichtert diesen Schritt – zudem überfordert man Gif Brewery nicht mit einer zu großen Ausgangsdatei). Unter „Properties“ wird der „frame count“, also die Bilder pro Sekunde, und der „frame delay“ eingestellt. Damit die Gifs flüssig abspielen, haben wir uns für die vollen 25 Frames pro Sekunde entschieden. Viele animierten Gifs im Netz laufen aber auch schon mit rund 15 fps halbwegs flüssig. Den „frame delay“ haben wir mit 100 ms festgelegt.

Gifs erstellen mit Gif Brewery

Gifs erstellen mit Gif Brewery

Für die weitere Bildbearbeitung sind zwei Schritte nötig: croppen (beschneiden) und re-sizen (Größe anpassen). Zuerst wird ein Bildausschnitt gewählt und gecropt, dann wird das Bild durch eine manuelle Eingabe von Höhe und Breite in Pixel heruntergerechnet. In unserem Fall sind so Gifs mit einer Breite von 210 Pixeln und einer Größe von etwa 500 Kilobyte entstanden.

Genau darin liegt aber auch das Problem von Animated Gifs. Sie werden zwar in jedem Browser ohne Plugin nativ dargestellt (im Gegensatz etwa zu Flash-Videos). Sind benötigen aber viel zu viel Speicherplatz. Das so genannte Graphics Interchange Format ist nämlich lediglich ein Bildformat mit verlustfreier Kompression. Die Dateien sind also viel größer als etwa JPEG-Bild-Dateien oder H.264-Video-Dateien, die mit verlustbehafteter Kompression arbeiten.

Die New York Times etwa hat auch schon einige Male mit kurzen, geloopten Videosequenzen in Artikeln experimentiert. Sie zeigen statt Animated Gifs aber einfach normale Videos, die sie per HTML5-Videotag mit autoplay und abgeschalteten controls abspielen. Diese Videos sind deutlich kleiner und laden schneller. Allerdings müssen HTML5-Videos in mehreren Dateiformaten exportiert werden, da nicht alle Browser alle Videoformate abspielen. Dieser Aufwand war uns zu groß, da wir nur drei Tage Zeit hatten. Außerdem hält sich die Größe bei den rund zweisekündigen Clips noch in Grenzen. Wir haben uns daher für „richtige“ animierte Gifs entschieden.

 

Wir bauen uns eine Nachrichtenquelle – Werkstattbericht zum Flugrouten-Radar

Wenn wir Informationen zu Nachtflügen, Flugrouten oder Fluglärm brauchen, müssen wir jetzt nicht mehr immer tagelang auf Antworten von Behördensprechern warten. Wir interviewen einfach unsere eigene Datenbank. Mit dem Flugrouten-Radar haben wir uns also eine eigene, täglich aktualisierte Nachrichtenquelle geschaffen.

Mehr als eine halbe Million Flüge und viele Millionen Flugspuren befinden sich hinter unserer neuen News App. Mit den richtigen Datenbank-Queries kommen wir dadurch an Zahlen, die in keiner anderen Statistik auftauchen. Und obwohl das Thema von Redaktionen in Berlin wie kaum ein anderes bearbeitet wird, finden wir so neue Geschichten, wie etwa die über Hunderte Leerflüge zwischen den Berliner Flughäfen.

Flugrouten, Fluglärm, Nachtflüge

Nach der mehrfach geplatzten Eröffnung des Hauptstadtflughafens BER ist es in Berlin zu einer besonderen Situation gekommen: Über den Flughafen Tegel, der eigentlich bereits seit Juni 2012 geschlossen sein sollte, müssen die eigentlich für den BER geplanten Flüge zusätzlich abgewickelt werden. 

3-D-Ansicht der Flüge über Berlin und Brandenburg

3-D-Ansicht der Flüge über Berlin und Brandenburg

Statt leiser wurde es für die Anwohner in den Einflugschneisen also lauter. Beschwerden über steigenden Fluglärm, Routenabweichungen und Nachtflüge nehmen zu. Debatten über diese Themen waren dabei häufig von Vermutungen geprägt. Genaue Zahlen zu Randzeit- und Nachtflügen sind schwer zu bekommen. Offiziell heißt es etwa: „Nachfragen nach belastenden Störungen [bei Flügen nach 23 Uhr] sind bei der Luftfahrtbehörde grundsätzlich möglich, erfordern dort aber einen erheblichen Recherche-Aufwand.“

Mit dem Flugrouten-Radar wollen wir Betroffenen und Interessierten in der emotional aufgeladenen Debatte ihre ganz persönliche Faktenbasis bieten – täglich aktualisiert und mit automatisierter Analysefunktion. Und wir wollen Daten so verständlich, transparent und personalisiert wie möglich darstellen.

Statistik-Ansicht: Nachtflüge, Airlines, Ortsteile

Statistik-Ansicht: Nachtflüge, Airlines, Ortsteile

Einerseits zeigt die interaktive Anwendung erstmals Flughöhen, -zeiten und Flugzeugtypen mit Lärmberechnungen für alle Flüge über einem individuellen Standort in einer dreidimensionalen Ansicht. Andererseits gibt es exklusive Statistiken auf Basis von mehr als einer halben Million Flügen seit Januar 2011, wie sich die Fluglast auf die einzelnen Ortsteile bzw. Gemeinden der Hauptstadtregion über die Zeit verteilt.

Von der ersten Idee bis zur Veröffentlichung des Flugrouten-Radars verging ungefähr ein halbes Jahr. Die Redaktion der Berliner Morgenpost hat dabei mit dem Deutschen Fluglärmdienst (DFLD), dem Datenjournalismus-Team der US-Investigativredaktion ProPublica und der Agentur Kreuzwerker GmbH zusammengearbeitet.

Recherche der Daten

Einen Großteil der Zeit benötigten wir, Julius Tröger und André Pätzold, für die Recherche der Flugspur-Rohdaten. Die gibt es in Deutschland nämlich nicht öffentlich – im Gegensatz zu den USA und Kanada etwa. Dort werden Radardaten aller Flüge per Feed angeboten. Die Deutsche Flugsicherung (DFS) gibt ihre Rohdaten dagegen nicht frei. Entsprechende Anfragen unsererseits wurden abgelehnt. Die DFS veröffentlicht die Daten zwar in ihrer Online-Anwendung „Stanly-Track“ – allerdings nur 14 Tage rückwirkend. Zu wenig für uns, da wir für Vergleiche die Zahlen aus den entsprechenden Vorjahreszeiträumen benötigten.

Unser Testgerät: AirNav RadarBox 3D

Unser Testgerät: AirNav RadarBox 3D

Ein anderer Weg an Flugspur-Daten zu gelangen sind so genannte ADS-B-Transponder in Flugzeugen. Die kann man in Deutschland legal mit entsprechenden Receivern wie Mode-S Beast, Transponder-Mouse oder Airnav Radarbox (ab rund 200 Euro bei eBay) empfangen. Live-Flugkarten wie Flightradar24 oder Metafly nutzen diese Technik. Nach einigen Tests entschieden wir uns allerdings gegen diese Variante. Es sind erst rund 70 Prozent der Flugzeuge mit ADS-B-Transpondern ausgestattet. Für detaillierte Analysen wäre das zu wenig.

Auch konnten wir die gewünschten Daten nicht über kostenpflichtige APIs wie Flightstats oder Flightaware bekommen.

Kooperation mit Deutschem Fluglärmdienst

Der DFLD archiviert Flugspuren in der Nähe großer Flughäfen in Deutschland. Diese können auf deren Webseite zudem mehrere Jahre rückwirkend angezeigt werden – mit einer Erfassung von mehr als 96 Prozent. Routen können auf einer statischen Karte oder auf Google Maps bzw. Earth angesehen werden. Die Daten kann man dort auch im Keyhole Markup Language (KML)-Format herunterladen.

Daten eines Air-Berlin-Flugs

Lat, Lng, dB(A): Flugspur-Daten eines Air-Berlin-Flugs

Nach mehreren E-Mails, Telefonaten und Teamviewer-Sitzungen mit Technik und Vorstand des Vereins einigten wir uns auf eine Zusammenarbeit. Wir bekamen die Flugspur-Daten mit Lärmberechnungen nach dem offiziellen AzB-Standard kostenlos im deutlich schlankeren CSV-Format geliefert – rückwirkend und täglich aktuell. Im Gegenzug verweisen wir in unserer Anwendung an mehreren Stellen auf das entsprechende Angebot des DFLD.

Die Datenqualität war von Anfang an sehr hoch. Sie wurde uns auch in Gesprächen mit Experten des Deutschen Luft- und Raumfahrtzentrums sowie Piloten und Flughafen- bzw. DFS-Angestellten, Abgleichen mit offiziellen Daten, ungezählten Stichproben und statistischen Auswertungen bestätigt. Hilfreich hierbei war auch der Data-Bulletproofing-Guide von ProPublica.

Umsetzung mit ProPublica-Datenjournalisten

Nun mussten wir einen Weg finden, eine Datenbank aufzubauen, die Daten visuell umzusetzen und Geschichten aus den Zahlen zu  gewinnen. Dafür bewarb ich mich in dem Datenjournalismus-Team von ProPublica in New York für das von der Knight Foundation unterstützte P5-Stipendium. In mehreren Telefonkonferenzen präsentierte ich das Projekt. Scott Klein und seine Kollegen fanden es spannend. Und einen Monat später, im November 2012, saß ich schon im Flieger nach New York.

Hier entstand der Flugroutenradar

Hier entstand der Prototyp des Flugrouten-Radars

Dort baute ich gemeinsam mit Jeff Larson und Al Shaw ein Grundgerüst mit dem Framework Ruby on Rails. Weil wir uns mit den Flugspuren im dreidimensionalen Raum befanden, wählten wir als Datenbank PostGIS, eine Erweiterung von PostgreSQL, die mit komplizierten Geoberechnungen umgehen kann. Damit kann etwa ganz leicht festgestellt werden, ob eine Polyline (Flugspur) in einem Polygon (Ortsteil) liegt.

Nach zwei Wochen hatten wir eine Anwendung programmiert, die genau das tat, was wir ursprünglich wollten: Überflüge über Ortsteilen und Gemeinden automatisch zählen sowie Ranglisten erstellen. Außerdem konnten Nutzer nach der Adresseingabe Flüge in einem gewissen Radius über ihrem Standort sehen. Erst noch in 2-D von oben.

3-D-Visualisierung im Browser ohne Plugins

Jeff experimentierte aber an einer 3-D-Darstellung der Flugrouten, da diese so auch bei größerem Flugaufkommen durch die horizontale Fächerung übersichtlicher und realistischer dargestellt werden können.

Programmiert von Jeff Larsson

Erster Prototyp der 3-D-Karte von Jeff Larson

Zwar gibt es 3-D-Karten wie etwa die von Nokia Maps, wie die von Apple oder Google auf Smartphones, Experimente auf Basis von Open Street Maps und natürlich Google Earth. Allerdings benötigt man für viele von ihnen Plugins wie etwa WebGL (Web Graphics Library), die nicht von allen Endgeräten unterstützt werden.

Da wir eine plattformübergreifende Anwendung veröffentlichten wollten, bedienten wir uns einer eigenen Lösung, einer Mischung aus CSS-3-D-Transforms, SVG-Vektoren und statischen Karten. Dabei wird der entsprechende Kartenausschnitt per CSS geneigt und die Flugspuren mit raphael.js als Vektoren auf Basis der Flughöhe projiziert.

Mapbox, Leaflet und Yahoo statt Google

Google stellt mit seinen Maps– und Geocoding-Diensten mitunter die besten auf dem Markt. Bei der Berliner Morgenpost kamen die Tools häufig zum Einsatz. Diesmal haben wir uns aber dagegen entschieden. Das hat zwei Gründe: Google verlangt viel Geld bei kommerzieller Nutzung über ein gewisses Kontingent (z.B. bei mehr als 2500 Geocoder-Abfragen) hinaus. Außerdem verbietet Google in seinen AGB die 3-D-Darstellung seiner Karten.

Google, OSM, Mapbox, Nokia hier vergleichen: http://bit.ly/16liEFI

Google, OSM, Mapbox, Nokia hier vergleichen: http://bit.ly/16liEFI

Nach einigen Tests und Vergleichen entschieden wir uns für die Karten von Mapbox. Die basieren auf den Daten der offenen Kartensoftware Open Street Maps. Die Straßen der Hauptstadtregion (Berlin und angrenzende Brandenburg-Gemeinden) sind dort nahezu 100% exakt erfasst. Mapbox bietet darüber hinaus eine Static-API für statische Tiles, die wir für die 3D-Darstellung benötigen. Außerdem lassen sich die Karten mit dem Tool Tilemill sehr einfach stylen. Mapbox bietet in der Bezahlvariante sogar mehr oder weniger brauchbare Satelliten-Bilder. Die 2-D-Karten wurden mit dem Framework Leaflet umgesetzt.

In der Anwendung kam ursprünglich Nominatim, der kostenlose (Reverse-)Geocoder von Open Street Maps, zum Einsatz. Der Dienst funktioniert zwar relativ gut und schnell, allerdings sind vor allem in Brandenburg und Berliner Randbezirken nicht alle Hausnummern indexiert. Da unsere Anwendung aber auf dem Geocoder als zentrales Element basiert, waren uns exakte Treffer bis auf Hausnummern wichtig. Wir entschieden uns also für den kostenpflichtigen Placefinder von Yahoo. In seiner Treffergenauigkeit kommt er dem Google-Geocoder schon sehr nahe.

D3, Responsive, Permalinks

„If it doesn’t work on mobile, it doesn’t work!“ Wir haben die Anwendung nicht nur mobiloptimiert, da immer mehr Nutzer die Berliner Morgenpost per  Smartphones und Tablets besuchen. Mit der Standortsuche bieten wir auch ein Feature, das den Flugverkehr direkt über dem aktuellen Standort zeigt. Ohne Adresseingabe, sondern mit der HTML5 Geolocation API. Die Ansicht passt sich aufgrund des Responsive Designs der Größe des Gerätes automatisch an.

Responsive Design passt sich an Endgeräte an

Responsive Design passt sich an Endgeräte an

Dieses Vorhaben stellte sich als sehr kompliziert heraus, weil die Hauptseite der Berliner Morgenpost nicht responsive ist. Wir wollten die Anwendung aber nahtlos in unser Angebot integrieren. Außerdem konnten wir den Flugrouten-Radar nicht wie unsere bisherigen interaktiven Anwendungen bei der Berliner Morgenpost einfach als iframe einbinden. Ein Nachteil unserer früheren interaktiven Anwendungen war nämlich, dass sie eine URL haben, die einen bestimmten Anfangszustand zeigt. Wir wollten aber jeden Zustand und damit Einzelerkenntnisse der Anwendung bookmarkbar und teilbar machen. Die Adresse passt sich also jedem Zustand an und kann dann etwa bei Twitter, Facebook und Google+ geteilt werden. Die Lösung war eine hauseigene API, mit der Seitenteile dynamisch zugeschaltet werden können.

Für die Darstellung der Balkendiagramme kam DC.js, eine Erweiterung von Crossfilter basierend auf D3 (Data-Driven Documents) zum Einsatz. Für Balken- und Liniendiagrammen in unseren Artikeln nutzen wir Datawrapper.

Ausbau, weitere Ideen, Lehren

Wir wollen die historischen und täglich aktuellen Daten mit weiteren Daten verknüpfen. Auch wollen wir noch mehr den Fokus auf Prognosen für die künftigen BER-Routen mit dem Hintergrund der Einzelfreigaben-Praxis legen. Außerdem planen wir Twitter-Accounts, die automatisiert entsprechende Daten twittern. Darüber hinaus denken wir auch über eine Foursquare-Lösung nach, wie sie etwa ProPublica für eine Datengeschichte umgesetzt hat. Auch wollen wir Ideen in Richtung Crowdsourcing umsetzen.

Das Benutzerinterface entsteht

Das Benutzerinterface entsteht

Als besonders trickreich hat sich die 3-D-Karte als zentrales Element der Anwendung herausgestellt. Sie basiert auf nicht standardisierten Features und ist daher sehr experimentell. Besonders Chrome und iOS hatten Probleme, dass wir auf diesen Systemen die Anzahl der angezeigten Flugspuren begrenzen mussten. Auch funktioniert die 3-D-Karte nicht mit dem Internet Explorer, der das dafür nötige „preserve-3d“ nicht unterstützt.

Außerdem hatten wir viele Erkenntnisse erst während der Arbeit mit den Daten und der Anwendung. Da es uns aber aufgrund unserer knappen Deadline nicht möglich war, den Flugrouten-Radar und dessen Logik dahinter immer wieder umzuwerfen, fehlen einige Features, die wir zum Start eigentlich gerne noch gehabt hätten.

Da wir den Flugrouten-Radar aber nicht als für immer abgeschlossene Anwendung, sondern eher als Prozess sehen, wollen wir die Funktionalität weiter verbessern und immer den aktuellen Möglichkeiten des Web anpassen. Währenddessen wird die Datenbank ein täglich umfangreicheres Recherchetool, das die Redaktion mit dem Tool pgAdmin befragen kann.

Der Flugrouten-Radar ist unsere LP. Es wird davon noch viele Single-Auskopplungen geben. Und bis zur BER-Eröffnung sind ja vermutlich noch ein paar Jahre Zeit für neue Features und Geschichten.

Über Kritik, Hinweise, Anregungen freue ich mich hier in den Kommentaren, bei Twitter, Facebook und Google+

+++ Protokoll einer Nerd-Hospitanz +++

Ich finde ja, man sollte nie aufhören zu lernen. Deshalb gehe ich für einen Monat nach New York. Dort werde ich jeweils zwei Wochen bei Propublica und dem Guardian arbeiten.

Sonnenuntergang mit Blick aus dem Propublica-Büro. Foto: Dan Nguyen (CC)

Sonnenuntergang mit Blick aus dem Propublica-Büro. Foto: Dan Nguyen (CC)

Bei Propublica nehme ich an dem P5 (Propublica Pair Programming Project) teil. Dabei werde ich mit Scott Klein und seinem Team, bestehend aus Journalisten und Programmierern, an einem Datenprojekt, einer News App arbeiten. Eine News App „is a web-based interactive database that tells a journalistic story using software instead of words and pictures.“

Danach geht es vom Financial District ein paar Straßen nördlich in SoHo bei der US-Ausgabe des Guardian weiter. Dort unterstütze ich das Open-Team um Amanda Michel bei einem Interaktiv-Projekt.

Am 9. November geht’s los. Ich freue mich schon jetzt auf das intensive Datenjournalismus-Bootcamp.

Warum ich das hier schreibe? In der Vorbereitungszeit und während meines Aufenthalts werde ich über das, was ich lerne, auch hier auf digitalerwandel.de bloggen.

Ich freue mich über Anregungen und Kritik zu dem Beitrag aber auch jeden New-York-Tipp in den Kommentaren, bei Facebook, Twitter und Google+.

+++ Donnerstag, 13. Dezember, Berlin +++

Seit Donnerstag bin ich wieder zuhause in Berlin. Es war ein intensiver Monat, in dem ich einerseits sehr viel gelernt habe und andererseits viele tolle Menschen kennenlernen durfte. Vielen Dank vor allem an Scott Klein, Al Shaw, Jeff Larsson, Lena Groeger, Mark Schoofs, Gabriel Dance, Amanda Michel, Julian Burgess und Feilding Cage.

Mein Gastgeschenk an die Kollegen

Mein Gastgeschenk an die Kollegen

Neben Ruby on Rails und Datenbanken waren da auch die Thanksgiving-Party bei Mark von ProPublica oder mein Abschiedsumtrunk mit Guardian-Kollegen in einer Manhattener Eckkneipe.

Außerdem habe ich mich sehr darüber gefreut, auf welches Interesse meine Hospitanz hier gestoßen ist. So wurde ich von Bülend Ürük von Newsroom.de und Christian Jakubetz vom Universalcode dazu interviewt.

Gerne hätte ich noch mehr gebloggt, aber leider ist mir da eine ziemlich spannende Stadt dazwischen gekommen. Als nächstes werde ich die Hunderten Bookmarks aufarbeiten und an meinem P5-Projekt weiterarbeiten. Darüber werde ich dann auch wieder hier bloggen.

+++ Donnerstag, 6. Dezember, Datenbanken für Jedermann +++

Ich arbeite derzeit an der Analyse eines riesigen Datensatzes. Es handelt sich dabei um eine CSV-Datei mit mehreren Millionen Zeilen. Mit Excel kann man maximal eine Million Zeilen verarbeiten. Auch Google Spreadsheets ist auf 400.000 Datensätze limitiert. Diese Grenzen erreicht man schneller als man denkt.

Also arbeite ich mit Datenbanken. Das ist zwar nichts Neues, allerdings war mit nicht klar, wie einfach es ist, das alles lokal auf seinem Rechner einzurichten. Es gibt etwa den sehr einfachen Weg, mit nur einem Klick eine MySQL-Datenbank zu installieren. Das Guardian Interactive-Team arbeitet unter anderem mit dem kostenlosen Programm MAMP. Nach der Installation klickt man auf „Server starten“ und schon kann man seine Datensätze importieren und mit dem integrierten Tool PHPMyadmin abfragen starten und darin recherchieren.

Noch besser ist es, seine Daten mit einem Tool wie Sequel Pro zu durchforsten, neu anzuordnen und etwa die wichtigsten Daten für sich oder seine Geschichte zu extrahieren. SQL-Abfragen sind nicht schwer, das Prinzip versteht man schnell. Es gibt viele Tutorials dafür. Immer beachten sollte man im Vorfeld, wie man seine Daten in verschiedene Tabellen aufteilt, atomar hält und die Relationen untereinander festlegt.

Es gibt noch viele weitere Arten von Datenbanken. Die Kollegen von Propublica arbeiten etwa vorwiegend mit PostgreSQL. Einer der Vorteile davon ist die Erweiterung PostGIS, die mit geographischen Objekten umgehen kann, also etwa mit einer einfachen Abfrage den Abstand von einem zu einem anderen Latitude/Longitude-Punkt berechnen und ausgeben kann.

Spricht man von Big Data, also Datensätzen weit über der Millionengrenze, helfen auch diese Tools nicht mehr unbedingt aus. Interessant, um enorm große Datensätze greifbar zu machen ist etwa das Programm Jigsaw. Viele nützliche Tools wie dieses sind allerdings nur im englischsprachigen Raum einsetzbar. Die Arbeitsgruppe Pandaprojekt will das ändern und solche Tools für den deutschsprachigen Raum anpassen. Ich bin dort auch dabei.

+++ Freitag, 30. November, The Guardian +++

Nach etwas mehr als zwei Wochen habe ich am Dienstag meine Hospitanz als P5-Fellow bei Propublica beendet. Ich habe unglaublich viel gelernt bei Scott Klein, Jeff Larrson, Al Shaw und Lena Groeger – über News-Apps-Development und über die Arbeitsweise der Investigativ-Onlinepublikation insgesamt. Bis zum Schluss haben mich die Kollegen bei meinem Projekt unterstützt. So bald wie möglich werde ich darüber mehr berichten.

Das Büro des Guardian US am späten Abend

Das Büro des Guardian US am späten Abend

Seit Mittwoch bin ich nun beim Guardian. Dort arbeite ich im Interactive-Team von Gabriel Dance, Feilding Cage, Julian Burgess und Greg Chen an einem Projekt für Amanda Michel, die das Open-Journalism-Team leitet.

Beim ersten gemeinsamen Mittagessen haben wir uns unter anderm über Wahldaten unterhalten. Zwar waren die Kollegen in den USA außerordentlich kreativ in der Präsentation ihrer interaktiven Anwendungen. Doch hatten alle mit Live-Daten der AP genau die gleiche Quelle. Das könnte sich zur nächsten Wahl ändern, vor allem Google will mitspielen. In diesem Zusammenhang ist vor allem auch das Projekt “Open Elections” zu nennen: “Our goal is to create the first free, comprehensive, standardized, linked set of election data for the United States, including federal and statewide offices.” Sicher ist: Die Online-Berichterstattung kann nur noch besser werden, wenn sich wirklich alle daran beteiligen können, die sich nicht unbedingt die teuren Daten kaufen können.

Auch in Deutschland bereiten sich die Redaktionen langsam aber sicher auf die Bundestagswahl im kommendem Jahr vor. Es könnte ein wichtiger Schritt für den Datenjournalismus werden. Die Wahlkreise gibt es zumindest schon einmal als Shapefiles.

Nicht unerwähnt bleiben sollte eine der außergewöhnlichsten interaktiven Wahlberichterstattungen des Guardian-Interactive-Teams. Das Comic über den Werdegang Mitt Romneys, “America: Elect!“, wurde unter anderem mit dem Tool Skrollr umgesetzt. Entwickler Julian hat ein kleines Making Of dazu auf dem übrigens sehr empfehlenswerten Developer-Blog des Guardian verfasst.

+++ Samstag, 24. November, Alltags-Werkzeug Scraping +++

Propublica setzt sehr stark auf Scraping als wichtiges Recherchetool. Beinahe täglich wird die Frage gestellt: „Can we scrape that?“ Wie selbstverständlich gehen die Reporter dann an ihren Rechnern durch die so gewonnenen Datensätze  und suchen nach Geschichten. Informationsbeschaffung auf diesem Weg gehört zum Arbeitsalltag.

Coden in der New York Public Library

Coden in der New York Public Library

Auch wenn ich selbst bereits den ein oder anderen Datensatz gescrapt hatte, habe ich doch im Propublica-Nerdcube sehr viel Neues gelernt. Außerdem lese ich gerade das Buch „Scraping for Journalists“ von Paul Bradshaw. Ich will hier kein Scraping-Tutorial aufschreiben – davon gibt es bereits genügend. Ich will nur kurz ein, zwei Dinge festhalten, die mir selbst neu waren.

Wenn man etwa schnell Hunderte Dateien automatisiert herunterladen will, genügt (zumindest bei Linux und OSX) der Command-Line-Befehl curl –o

curl -o download#1.html http://www.berlin.de/sen/bildung/schulverzeichnis_und_portraets/anwendung/Schulportrait.aspx?IDSchulzweig=[10303-10309]

Will man aber nur bestimmte Teile einer Datei, muss diese geparst werden. Bei Propublica nutzen die Kollegen neben dem bekannten Nokogiri das mir bis dahin unbekannte Rubygem Crack.

In diesem Zuge musste ich mein rudimentäres Vorwissen über Regular Expressions und die Commandline/das Terminal schnell auffrischen. Denn beides sollte man blind beherrschen, wenn man schnell Informationen extrahieren und für die eigenen Zwecke aufbereiten will.

Nicht neu war mit das Tool Wireshark. Aber zum ersten Mal habe ich live gesehen, wie man damit den Netzwerkverkehr abhören kann. So lässt sich etwa analysieren, welche Informationen zwischen Server und Browser hin- und hergeschickt werden. Das wiederum kann dann mit Tools wie dem bereits oben erwähnten Curl (in OSX und Linux integriert) imitiert werden.

+++ Sonntag, 18. November, Open Data +++

Wenn man in Deutschland mit Geodaten arbeiten will, so bleibt einem häufig nur Openstreetmaps. Berlin bietet seine Ortsteil-Geometrien zwar im KML-Format an, schon bei Brandenburg wird es da schwieriger. Man wird zu einem kostenpflichtigen Angebot verwiesen. In einem Projekt zur Wahl in Berlin mussten wir einzelne Wahlkreise nachzeichnen, weil sie nur als PDF(!) angeboten wurden.

In den USA gibt es eigentlich nichts, was nicht als Shapefile angeboten wird

In den USA gibt es eigentlich nichts, was nicht als Shapefile angeboten wird

Diesbezüglich sieht es in den USA deutlich besser aus. Hier bietet das United States Census Bureau alle nur erdenklichen Daten an. Auch veröffentlichen sie selbst interessante Visualisierungen.

Außerdem gibt es bei der Behörde Federal Communications Commission (FCC) eine API zu Geodaten auf die Granularität einzelner Blocks. Die FCC ist sogar auf Github.

Die MTA, die das New Yorker Nahverkehrsnetze betreibt, bietet Live-Verkehrsdaten über eine offene Schnittstelle an. So entstehen wirklich hilfreiche Apps, wie Bustime, die fast live auf einer Karte anzeigt, wo sich der entsprechende Bus gerade befindet. In Berlin habe ich so etwas ähnliches bisher nur auf der Ifa vom Fraunhofer-Institut gesehen. Der VBB hat nun aber erste Datensätze bereitgestellt, die ersten interessanten Anwendungen sollen auf dem entsprechenden Entwicklertag „Apps and the City“ entstehen.

Überhaupt gewährt New York Zugriff auf einen riesigen Datenschatz, wie etwa den Stromverbrauch nach Postleitzahlenbereich.

+++ Donnerstag, 15. November, Nerd-Fellow +++

Meine ersten Arbeitstage bei Propublica waren grandios. Ich wurde herzlich in Empfang genommen. Dann ging es gleich zur Sache.

Ich, arbeitend im Propublica-Nerdcube. Foto: Scott Klein

Ich, arbeitend im Propublica-Nerdcube. Foto: Scott Klein

Die Kollegen arbeiten fast ausschließlich mit Ruby on Rails. Die theoretischen Grundlagen von Rails kannte ich zwar, auch habe ich schon mal einen kleinen Scraper in Ruby geschrieben, aber eigentlich habe ich bisher nur clientseitig mit Javascript gecodet.

Ich musste mich also schnell auf Stand bringen. Dafür haben mich Scott Klein, Jeff Larson, Al Shaw und Lena Groeger schnell mit Screencasts und Tutorials versorgt. Denn keiner von ihnen ist gelernter Programmierer, sie sind alle Quereinsteiger und Autodidakten.

Auch wenn ich mich immer flotter zwischen Command Line, Git und PostGIS bewege, bin ich noch weit entfernt davon, eine News App wie die heute veröffentlichte über Pipelines in den USA selbst in Ruby on Rails zu entwickeln. Aber dafür bin ich hier. Jetzt gehe ich wieder üben.

 

 

+++ Sonntag, 11. November, New York +++

Ich bin da. Nach der langen Planung und Vorbereitung habe ich am Freitag dann tatsächlich die erste Nacht in meiner neuen, einmonatigen Wahlheimat, dem New Yorker Stadtteil Williamsburg, verbracht.

Daten säubern am Flughafen. Im Hintergrund meine A380 nach New York.

Daten säubern am Flughafen. Im Hintergrund mein A380 nach New York.

Die letzte Woche habe ich mein P5-Projekt intensiv vorbereitet, mit den Kollegen von Propublica darüber per Telefonkonferenz diskutiert, mit Fachleuten über das Thema gesprochen, über Datensätze verhandelt, diese gesäubert und erste Visualisierungen und Mockups gebaut – letzteres auch noch während meiner Reise.

Um was es bei meinem Projekt genau geht, möchte ich an dieser Stelle noch nicht verraten, da ich auch für den Propublica-Nerd-Blog  darüber bloggen werde.

Hier werde ich aber so oft es geht über Programme, Tools, Workflows und Best-Practice-Beispiele im Umfeld von Programmierung und Journalismus schreiben. Morgen geht’s los. Dann werde ich hier auch regelmäßiger updaten.

+++ Montag, 22. Oktober, künftige Kollegen +++

Das Datenjournalismus-Team von Propublica bloggt unter „The Propublica Nerd Blog“. Dort gibt es viele Tutorials und Tools. Besonders empfehlenswert sind die Beiträge zu Timelines, Adaptive Design und Scraping (1,2). Das Team leitet Scott Klein, durch den der Begriff News Apps geprägt wurde.

Der Guardian hat sich dem „offenen Journalismus“ verschrieben. Was es damit auf sich hat, erklären sie mit ihrem „Three little pigs“-Video. Für die US-Ausgabe des Guardian betreut Amanda Michel Projekte, bei denen Leser vor allem mittels Crowdsourcing und Social Media mit in den journalistischen Prozess eingebunden werden.

Im selben Büro sitzt auch das Guardian US interactive team um Gabriel Dance, den ich bereits 2010 in New York kennenlernte. Damals arbeitete er noch bei der New York Times und führte mich durch den Newsroom in der 8th Avenue. Von ihm stammen unter anderem isbarackobamathepresident.com und „Gay rights in the US“.