Wohl fast jeder, der mit offenen Augen durch Deutschlands Straßen geht, ist schon einmal über einen dieser messingfarbenen Pflastersteine für Opfer des Nationalsozialismus gestolpert: “Hier wohnte” steht darauf eingraviert, gefolgt von einem Namen, dem Geburtsdatum, dem Ziel der Deportation und, soweit bekannt, dem Todesdatum. Bis zum Jahresende werden 38.000 davon verlegt sein, die meisten in Deutschland, aber auch in vielen anderen Ländern Europas – eine mit Preisen bedachte Initiative des Künstlers Gunter Demnig.
Aus Frankfurt am Main wurden etwa 12.000 Menschen deportiert, die meisten in den Jahren 1941 bis 1945. An 700 von ihnen erinnert jeweils ein Stolperstein, eingelassen in das Pflaster vor dem letzten Wohnhaus. Doch können diese Zahlen wirklich einen Eindruck davon vermitteln, wie viele Frauen, Männer und Kinder in dieser Zeit gewaltsam aus ihrem Leben und aus der Mitte einer Stadtgesellschaft gerissen wurden? Die Opfer der Nazis lebten nicht irgendwo abgeschirmt, sondern waren Nachbarinnen und Nachbarn, im Westend, in Bockenheim, im Gallus, in Sachsenhausen, im Nordend, in Eschersheim, im Ostend, in Höchst. Wohin wurden sie verschleppt, nachdem die Nazi-Schergen sie im Morgengrauen aus ihren Wohnungen geholt und zu Sammelstellen wie der Großmarkthalle getrieben hatten? Wie viele Menschen deportierte die Gestapo nach Theresienstadt, nach Lodz, Kaunas, nach Auschwitz, Majdanek und in andere Ghettos und Konzentrationslager? Wem gelang die Flucht? Wie viele nahmen sich das Leben?
Um das zumindest für einen kleinen Teil der Opfer anschaulich zu machen, habe ich die Liste der in Frankfurt verlegten Stolpersteine in eine Karte übertragen. Jeder rote Punkt steht für ein Einzelschicksal – für einen Menschen, der in Frankfurt lebte und arbeitete, und der aus der Stadt deportiert, ins Gefängnis geworfen, ermordet oder in den Suizid getrieben wurde.
Hält man sich vor Augen, dass in der Karte “nur” 700 der rund 12.000 Frankfurter Deportationsopfern verzeichnet sind, wird das Ausmaß deutlicher. Die folgende Infografik veranschaulicht die größten Verschleppungswellen im Zeitraum 1941 und 1945 – sie zeigt, wie verschwindend gering der Anteil der Frankfurter Deportierten ist, die nachweislich das Kriegsende erlebten. Die absoluten Zahlen erscheinen beim Mouseover.
Werkzeuge für den Datenjournalismus
Realisiert habe ich die Karte und das Diagramm mit kostenlosen Tools und ein wenig Fleißarbeit.
Und das ging so:
*Kratz, kratz*: Data Scraping
Das Verzeichnis der verlegten Stolpersteine, dankenswerter Weise von der Initiative Stolpersteine Frankfurt veröffentlicht, liegt leider nur in Form einer PDF-Datei vor. Ich habe die Daten mit Able2Extract in einer Excel-Tabelle verwandelt. Zwar haben einige Datensätze beim Konvertieren gelitten (beispielsweise wurde bei den Jahreszahlen aus so mancher 9 eine 0, und einige Angaben haben sich auf mehrere Zellen verteilt). Nach manueller Nachbearbeitung erfüllt die Software (die es in eingeschränkter Version kostenlos gibt) aber ihren Zweck.
Hier findet sich eine Sammlung weiterer Tools: Scraping for Journalism: A Guide for collecting data
*Polier, polier*: Daten bereinigen
Der nächste Schritt ist die Überlegung, in welcher Form ich die Daten benötige. Ich will eine Karte mit Markern und Informationen, die sich auf Klick in einem Fenster öffnen – also muss es eine Spalte mit genauen Ortsangaben geben. Die können in Form von Koordinaten vorliegen, aber Adressen tun es auch.
Darüber hinaus will ich die Möglichkeit geben, die Daten zu filtern: Die Option, das Ziel der Deportation auszuwählen, hilft bei der Einordnung, wie viele Menschen wohin verschleppt wurden. Außerdem möchte ich auf der Karte zeigen, wie viele Opfer bereits in Frankfurt den Tod fanden – etwa bei dem Pogrom oder durch Suizid – und wie wenigen die Flucht gelang. Für diese Informationen habe ich zusäzliche Spalten angelegt und die entsprechenden Daten in einer festgelegten Nomenklatur übertragen.
*Zauber, zauber*: Daten visualisieren
Nun wird es Zeit, der Excel-Tabelle einen Platz unter all den anderen tollen Google Fusion Tables zu verschaffen, einer Plattform für (öffentliche) Datentabellen, die eine ganze Reihe von Werkzeugen für die Visualisierung bietet. Bei Google Drive wählt man dazu unter “Erstellen” den Punkt “Mehr” -> “Fusion Table” aus und lädt die Tabelle hoch.
Entdecke die Möglichkeiten
Mit Google Fusion Tables kann man viel Lebenszeit verbringen. Am besten probiert man all die Optionen mal aus: Man kann Daten und Tabelle bearbeiten, neue Spalten und Zeilen hinzufügen, den Spaltentyp ändern, die Visualisierungstools durchgehen – und schauen, was passiert.
Noch nicht viel anfangen kann ich persönlich mit dem “New Look” von Google Fusion Tables; ich schalte deshalb zumeist unter”Help” auf “Back to classic look” und damit auf einen mir vertrauten Tabellenaufbau um. Wahrscheinlich verpasse ich damit lauter wunderbare Möglichkeiten. Nicht. ;)
Zwei Punkte seien erwähnt: Will man eine Karte erstellen, so muss Fusion Tables wissen, in welcher Spalte die Ortsangaben stehen. Arbeit man mit Adressen, sollte man prüfen, ob die Marker richtig sitzen, und notfalls korrigieren – die Option dafür findet sich hinter dem kleinen Google-Earth-Globus in der Location-Spalte. Und: Am Ende muss die Tabelle über den Button “Share” veröffentlicht werden – entweder für jeden oder zumindest für jene, die den Link kennen.
Sind alle Angaben vorhanden, die Daten ergänzt, bereinigt, geputzt und gebohnert, verwandelt ein Klick auf “Visualisieren -> Karte” die Tabelle in – Täätäää: eine Karte mit roten Markern! It’s magic!
Die Marker und die zugehörigen Informationen im Fenster lassen sich an dieser Stelle konfigurieren. Und schließlich findet sich hier auch der Embed-Code, um das Ergebnis im eigenen Blog einzubinden – falls man sich mit der einfachen Karte zufrieden geben möchte.
*Hex, hex*: Zusätzliche Filterfunktionen
Um die oben erwähnten Auswahloptionen zu ergänzen, braucht es noch ein wenig Javascript. Schnell und relativ einfach lässt sich das mit dem FusionTablesLayer Wizard bewerkstelligen. Der Zauberer braucht dafür nur den Link zur Karte (in der Kartenansicht von Fusion Tables über “Get embeddable link” zu finden) und Angaben, nach was die Daten gefiltert werden sollen. Leider, leider kann das Tool nur einen Filter erstellen. Das genügt mir nicht, ich möchte eine zweite Dropdown-Liste mit weiteren Filtermöglichkeiten – und muss deshalb den Code für die Filterfunktion händisch duplizieren. Wer das genauer wissen möchte, hier habe ich den Code notiert:
[learn_more caption=”Javascript für mehrere Filter”]
// erstmal die Karte laden:
var map;
var layerl0;
function initialize() {
map = new google.maps.Map(document.getElementById(‘map-canvas’), {
center: new google.maps.LatLng(50.113533431099796, 8.653352145410164),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
layerl0 = new google.maps.FusionTablesLayer({
query: {
select: “‘HIER SPALTE MIT LOCATION'”,
from: ‘HIER TABLE-ID’
},
map: map
});
}
//hier kommt die erste Filterfunktion:
function changeMapl0() {
var searchString = document.getElementById(‘search-string-l0’).value.replace(/’/g, “\\'”);
//die nächste Abfrage sorgt dafür, dass mit dem Klick auf “Alle” sämtliche Marker wieder angezeigt werden – im HTML muss diese Option natürlich vorhanden sein:
if ((searchString == “”) || (searchString == “*”)) {
layerl0.setOptions({
query: {
select: “‘HIER SPALTE MIT LOCATION'”,
from: ‘HIER TABLE-ID’
}
});
} else {
layerl0.setOptions({
query: {
select: “‘HIER SPALTE MIT LOCATION'”,
from: ‘HIER TABLE-ID’,
where: “‘HIER SPALTE mit FILTER’ = ‘” + searchString + “‘”
}
});
}
}
//hier kommt die zweite Filterabfrage, die eine eigene ID (an zwei Stellen!) braucht:
function changeMap20() {
var searchString = document.getElementById(‘search-string-20’).value.replace(/’/g, “\\'”);
if ((searchString == “”) || (searchString == “*”)) {
layerl0.setOptions({
query: {
select: “‘HIER SPALTE MIT LOCATION'”,
from: ‘HIER TABLE-ID’
}
});
} else {
layerl0.setOptions({
query: {
select: “‘HIER SPALTE MIT LOCATION'”,
from: ‘HIER SPALTE mit FILTER’,
where: “‘HIER SPALTE mit FILTER’ = ‘” + searchString + “‘”
}
});
}
}
google.maps.event.addDomListener(window, ‘load’, initialize);
//das war’s schon! :)
[/learn_more]
*Grübel, grübel*: Und was, wenn ich einen Timeslider haben will?
Mit dem Ergebnis bin ich eigentlich schon ganz zufrieden. Was mir noch fehlt: Ich hätte gern einen Timeslider, also einen verschiebbaren Regler, der Marker anhand einer Zeitangabe ein – bzw. ausblendet – so wie hier, ungefähr. Gibt es da draußen jemanden, der das mal für Dummies erklären kann? Ich weiß, dass man dafür der Closure library bedient, aber ich kapier’s noch nicht.
Um das Diagramm zu erstellen, habe ich das Tool Datawrapper genutzt. Dazu mehr im nächsten Posting.
Gäbe es Stolpersteine in der internationalen Politik für (FÜR) den Staat Israel, so stolperte in jeder Hauptstadt der Welt jemand darüber, doch es gibt Stolpersteine nur für die Vergangenheit, lebende Juden gehören nicht dazu, sie sind Aggressoren, nur weil sie endlich frei leben wollen; sie sind lästig, nur weil sie im Wege stehen; sie sind nach wie vor immer Schuld, nur weil ein Sack Reis irgendwo in der Welt umfällt. Weshalb gibt es keine Stolpersteine in Istanbul für Kurden?