Mobile Ads und die Geschwindigkeit deutscher Nachrichtenseiten

Die New York Times hat letzthin einen spannenden Artikel „The Cost of Mobile Ads on 50 News Websites“ veröffentlicht. Darin haben die Redakteure gezeigt, dass mehr als die Hälfte aller mobil übertragenen Daten durch Werbung verursacht wird. Der Verbrauch mobiler Daten wiederum verursacht unmittelbare Kosten für den Leser. So kostet ein Aufruf von CNN.com ungefähr 0,14 US$. Verständlich, dass immer mehr Nutzer einen AdBlocker verwenden. Die Untersuchung der New York Times beschränkte sich jedoch nur auf US-amerikanischen Nachrichtenseiten. Doch wie sehr beeinflusst Werbung das Mobilangebot deutscher Nachrichtenseiten? Ein Überblick über die schnellsten Seiten und die größten Datenschleudern:

Die Ladezeiten der Mobilseiten variiert von schnellen 3,2 Sekunden (Bild.de) bis hin zu inakzeptablen 16,5 Sekunden (Hamburger Abendblatt). Vor allem Stern.de wird durch die mobile Werbung ganz schön ausgebremst. Durchschnittlich steigen die Ladezeiten durch Mobile Ads um rund 25%.

Bei der Menge der übertragenen Daten zeigt sich das gleiche Bild: Etwa 25% der übertragenen Daten sind Werbung. Dies liegt vor allem daran, dass die Ladezeit maßgeblich von der übertragenen Datenmenge abhängt. Eine Ausnahme bildet die Münchner tz, wo die Werbung konsequent asynchron geladen wird. Die Inhalte sind schon da, während die Werbung im Hintergrund lädt. Bei anderen Seiten werden oftmals nur Teile der Werbung asynchron geladen.

Insgesamt zeigt sich jedoch, dass im Vergleich zu den USA, Mobile Ads noch keine große Rolle spielen. Die Ladenzeit hängt in erster Line von Anzahl und Größe der redaktionellen Inhalte ab. Insbesondere Startseiten mit vielen Bildern haben eine schlechte Ladezeit. Trotzdem sind Mobile Ads ein Wachstumsmarkt. Wenn in Zukunft der Anteil mobiler Werbung steigt, wird das auch die AdBlocker-Industrie beflügeln. Vor allem, nach dem Apple in seinem AppStore nun auch AdBlocker erlaubt.

Methodik: Die Zahlen sind natürlich nicht repräsentativ, sonder eher ein erster Eindruck. Die Daten habe ich an zwei Tagen mit dem PhantomJS-Framework Phantomas erhoben. Dabei wurde jede Seite zwanzig mal zu verschiedenen Zeitpunkten angefragt. Zehn mal ohne AdBlocker und zehn Mal mit AdBlocker. Zum Blocken der Ads habe ich die Filterlisten AdBlockEasyList und EasyList Germany verwendet. Für meinen Test habe ich mich als iPhone 6 ausgegeben und eine Verbindungsgeschwindigkeit von 2 Mbps simuliert. Das ist irgendwo zwischen schlechtem LTE und gutem 3G. Am Ende habe ich alle Werte noch mal mit Hilfe der Google Chrome DevTools überprüft und keine großen Abweichungen festgestellt. Die Zeitmessung für das Laden der Daten wird mit Beginn der Datenübertragung gestartet und endet mit dem load-Event.

Alle erhobenen Daten und Auswertungen stelle ich in diesem Google Spreadsheet zur Verfügung. Bedient euch.

Edit: Ich habe die Diagramme noch mal in Highchart gebaut, weil Datawrapper mobil zerschossen wird.

Beitrag teilen:

Geodaten aus Open Street Map importieren

Die Open Street Map (OSM) bietet kostenlos Geodaten zu verschiedenen Themen. Die einzelnen Layer der Open Street Map lassen sich über eine Schnittstelle abrufen und weiterverwenden. Typische Anwendungsfälle sind beispielsweise:

  • Ich möchte eine Karte aller Landkreise (Polygone) Deutschlands erstellen.
  • Ich möchte eine Karte aller Autobahnen (Ways) in Europa erstellen.
  • Ich möchte eine Karte aller Spielplätze (Nodes) in München erstellen.

Bei der Verwendung von Open Street Map-Daten ist immer die Quelle zu nennen. Für den deutschen Sprachraum muss der Quellennachweis © OpenStreetMap-Mitwirkende lauten. Mehr Informationen dazu hier.

Datenanfrage mit Overpass Turbo
Overpass Turbo ist eine Webanwendung mit einem Wizard, der das Erstellen von Anfragen erleichtert. Zudem bietet Overpass Turbo vielen Exportmöglichkeiten.

Um zum Beispiel alle Autobahnen in Bayern zu bekommen, würde man im Wizard highway=motorway and type:way in bavaria eingeben. Eine Dokumentation der Wizard-Syntax findet sich hier. Der Wizard übersetzt die Anfrage in die Syntax der OSM Overpass API:

1
2
3
4
5
6
7
8
[out:json][timeout:25];
{{geocodeArea:bavaria}}->.searchArea;
(
  way["highway"="motorway"](area.searchArea);
);
out body;
>;
out skel qt;

Bei größeren Anfragen kann es sein, dass man das Timeout hochsetzen muss. Die Angabe des Timeouts erfolgt in Sekunden. Hat die Anfrage geklappt, kann man die Daten zum Beispiel im GeoJSON-Format exportieren und in QGIS weiterverarbeiten.

Overpass Turbo

Weitere Beispiele für Anfragen in Overpass Turbo:

  • Alle Landkreise Deutschlands: boundary=administrative and admin_level=6 and type:relation in germany
  • Touristenattraktionen in der Nähe des Marienplatzes: tourism=attraction around "Marienplatz, München"

Für das Auffinden der einzelnen Orte (Bavaria, Marienplatz etc.) nutzt Overpass Turbo den sehr mächtigen OSM-Geocoder Nominatim.

Datenanfrage mit Quick OSM (QGIS)
Quick OSM ist ein Plugin für das Gedodatenprogramm QGIS. Genau wie in Overpass Turbo hilft Quick OSM dabei Anfragen an die  OSM-API zu formulieren. Quick OSM hat jedoch den Vorteil, dass man schon eine  Übersicht der verfügbaren Layer hat und so Datensätze entdecken kann. Die so erstellte Anfrage kann dann noch verändert werden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<osm-script output="xml" timeout="300"> 
  <id-query ref="3600051477" type="area" into="area"/> 
  // <id-query {{geocodeArea:Germany}} into="area"/> 
  <union>
    <query type="relation">
      <has-kv k="boundary" v="administrative"/>
      <has-kv k="admin_level" v="6"/> 
      <area-query from="area"/>
    </query>
  </union>
  <union>
    <item />
    <recurse type="down"/>
  </union>
  <print mode="body" />
</osm-script>

In diesem Fall wurde das Timeout auf 300 Sekunden erhöht und als zusätzlicher Filter <has-kv k="admin_level" v="6"/> eingefügt. Der zusätzliche Filter führt dazu, dass man nur Verwaltungsgrenzen auf Landkreisebene zurück bekommt. Ohne diesen Filter würde man sehr viele Daten zurückbekommen, da auch Bundeslandgrenzen, Regierungsbezirke usw. enthalten wären.

QGIS mit Overpass Turbo

Es bietet sich an, Anfragen an die OSM-API immer so einfach wie möglich zu halten und die Daten später in QGIS zu filtern. Komplexe Anfragen an die OSM-API dauern ewig.

Exportieren der Daten
Sowohl in Overpass Turbo als auch QGIS kann man die Daten als GeoJSON exportieren. GeoJSON-Dateien sind recht platzsparend, werden von einer Vielzahl an Anwendungen unterstützt und sind im Nachhinein noch berarbeitbar. Für die finale Anwendung empfiehlt sich das Format TopoJSON, welches noch deutlichen kleiner ist.

Anwendungsfall Verwaltungsgrenzen
OpenStreetMap bietet Daten für Verwaltungsgrenzen, Wahlkreise und Postleitzahlgebiete. Vor allem die Verwaltungsgrenzen braucht man im Alltag immer wieder. Im OpenStreetMap-Kontext sind diese Grenzen von Typ boundary=administrativ. Um die jeweils richtigen Grenzen zu bekommen, muss man sich mit dem Konzept des admin_levels, sprich der Verwaltungsebene, auseinandersetzen. Diese können von Land zu Land anders sein. Für Deutschland gibt es diese Verwaltungsebenen:

  1. Landesgrenze
  2. Bundesland
  3. Regierungsbezirk
  4. Landkreis / Kreis / kreisfreie Stadt / Stadtkreis
  5. Amtsgemeinde, Verwaltungsgemeinschaft
  6. Stadt, Gemeinde
  7. Stadtbezirk / Gemeindeteil mit Selbstverwaltung
  8. Stadtteil / Gemeindeteil ohne Selbstverwaltung

Um also an die Stadtbezirksteile Münchens zu kommen, müsste man die Verwaltungsgrenze (boundary=administrativ) auf der Verwaltungseben 10 (admin_level=0) anfragen.

Ich hoffe ihr könnt etwas mit dieser kurzen Anleitung anfangen. Wenn nicht, einfach in den Kommentaren nachfragen.

Beitrag teilen:

Geodaten nach TopoJSON konvertieren

TopoJSON erlaubt es Geodaten (Polygone, Linien, Punkte) sehr komprimiert zu speichern. Das Beispiel verwendet eine Weltkarte von Natural Earth, welche auch wir als Grundlage für unsere Weltkarten verwenden.

Installation (Mac OS X)

  1. brew install gdal
  2. npm install -g topojson

Shapefiles zu GeoJSON umwandeln

1
ogr2ogr -f GeoJSON -where "SU_A3 &lt;&gt; 'ATA'" world.geo.json world.shp

Die Geo-Suite gdal enthält den Konverter ogr2ogr, welchen wir nutzen, um das Shapefile nach GeoJSON zu konvertieren. Mit -where "SU_A3 <> 'ATA'" wählen wir alle Länder aus, welche nicht die Antarktis sind.

Shapefiles vereinfachen
Manchmal sind Shapefiles für den gewünschten Anwendungszweck viel zu genau und oder von der Datenmenge her zu groß. Dann kann es helfen das Shapefile erst zu vereinfachen (generalisieren). Grundsätzlich beherrschen auch ogr2ogr und QGIS diese Funktionen, das Ergebnis lässt jedoch meist zu wünschen übrigen. Besser ist der Online-Konverter Mapshaper, welcher den topologieerhaltenden Douglas-Peucker oder Visvalingam-Algorithmus benutzt.

GeoJSON zu TopoJSON umwandeln

1
topojson --id-property SU_A3 -p name=NAME -p name -o world.topo.json world.geo.json

Da das Original-Shapefile sehr viele Attribute enthalten, welche die Ausgabedatei nur unnötig groß machen, wählen wir zwei Attribut aus, welche in das GeoJSON übernommen werden sollen. In diesem Fall ist es das ISO-Länderkürzel und der ausgeschrieben Ländername. Die passiert mit dem Parameter -p. Um alle Attribute zu übernehmen kann man den folgenden Befehl verwenden:

1
topojson -p -o world.topo.json world.geo.json

Es gibt auch zwei Online-Konverter, welche jedoch nur die Geometrie konvertieren und alle anderen Attribute verwerfen (Stand 07.2015)

TopoJSON darstellen
Um ein innerhalb einer Webanwendung eine TopoJSON darzustellen kann man Leaflet mit dem Plugin Omnivore verwenden. Eine gute Anleitung dazu findet sich hier. Eine weiter Möglichkeit ist die Visualisierung mit D3. Mike Bostock hat dazu ein schönes Tutorial geschrieben.

Beitrag teilen:

Social Media Tools für Journalisten

Hier ein paar nützliche Social Media Tools für die Recherche in den sozialen Netzwerken. Dazu noch ein paar Beispiele, was man mit Social Media-Recherchen so anfangen kann. Grundlage für diese Tipps sind die Notizen, welche ich bei einem Vortrag von tame-Gründer Frederik Fischer im Rahmen der DJV-Tagung 24 Stunden Zukunft gemacht habe.

1. Followerwonk
Finde Twitter-Nutzer aufgrund ihrer Biografie und filtere sie nach Einfluss. Followerwonk ist ein praktisches Tool um eine Expertenlisten anzulegen. Beispiel: „Einflussreiche Journalisten aus der Ukraine“

https://followerwonk.com

2. twXplorer
Finde den richtigen Hashtag und andere relevanten Begriffe zu einem bestimmten Thema. Beispiel: „Welchen Hashtag benutzen Twitter-Nutzer, um über die Syrien-Krise zu sprechen?“

http://twxplorer.knightlab.com/search/

3. Topsy
Finde die Anzahl an Tweets zu einem bestimmten Thema, um zum Beispiel Trends zu bestimmen. Zudem kann Topsy den (gesamten?) Twitter-Verlauf durchsuchen. Beispiel: „Wer hat zuerst über Terry Pratchetts Tod getwittert“

http://topsy.com/

4. Nuzzle und tame
Welche Themen war heute wichtig? Außerdem kann Nuzzle einem Benachrichtigungen schicken, wenn Themen plötzlich viral werden. Beispiel: „Welche Themen waren gestern wichtig und was trendet gerade in meinem Netzwerk?“

http://nuzzel.com/https://tame.it/

5. Trendsmap
Wo sind gerade welche Themen wichtig?

http://trendsmap.com/

6. Erweiterte Suche in Twitter
Genau das, was der Name nahelegt. Bonus: Tweets nach Zeitraum und Ort durchsuchen.

https://twitter.com/search-advanced

7. Tweetdeck
Bietet einen guten Überblick über die eigenen Accounts. Praktische Funktionen, wie Tweets nach Engagement sortieren. Außerdem kann man mit Tweetdeck planen, wann ein Tweet abgeschickt wird. Zudem kann man sich benachrichtigen lassen, wenn zu bestimmten Themen getwittert wird.

https://tweetdeck.twitter.com/ oder als App

8. ShareTally
Finde heraus, wie oft eine Link in allen sozialen Netzwerken geteilt wurde. Simpel, aber definitiv eines meiner Lieblingstools.

Link http://sharetally.co/

9. Facebook Graph Search
Um die Facebook Open Graph-Suche zu aktivieren, muss man zur Zeit noch seine Profilsprache auf Englisch (US) umstellen.

Man kann semantisch nach dem Muster „Facebook-Nutzer die X machen, machen auch Y“ suchen. Beispielhaft könnte man zum Beispiel nach Freunden suchen, die Pegida mögen: https://www.facebook.com/browse/friended_fans_of/?page_id=790669100971515

Wozu kann man Social Media als Journalist nutzen?
Der US-amerikanische Journalist Andy Carvin nutzte Twitter um Informationen über den Arabischen Frühling zu sammeln und zu verifizieren, und das von seinem Schreibtisch in Washington aus. Sein Erfolg baut vor allem auf sein gigantisches Twitter-Netzwerk auf. Stichwort: #followerpower

Storyful ist ein erfolgreiches irisches Unternehmen, welches sich auf Social Media-Verifikation spezialisiert hat und bezeichnet sich selbst als „erste Nachrichtenagentur für die soziale Medien“. Zu den Kunden gehören unter anderem Reuters, Bloomberg und die New York Times.

Pegida mag dich analysierte detailliert die Facebook-Freunde von Pegida. Das Projekt wurde viral und von fast allen Medien aufgegriffen. Die Kernaussage: Pegida-Mitglieder sind arbeitslose Männer in ihren Dreißigern. Auch wenn diese These sehr gefällig ist, sollte man mit derartigen Analysen vorsichtig sein, da Facebook-Fans von Pegida nur eine Teilmenge der Grundgesamtheit Pegida bilden.

Diese Aufzählung ist natürlich unvollständig. Ich freue mich aber auf weitere Beispiele, wie Journalisten mit Social Media-Recherche Erfolg haben können.

Beitrag teilen:

WM 2014 Brasilien: Die besten interaktiven Grafiken

Auch zur diesjährigen Fußball-WM gab es wieder viele verschieden Ansätze, das Fußballgeschehen datenjournalistisch und multimedial aufzubereiten. Was am Ende zählt sind jedoch die Ergebnisse, und die lassen sich dieses Jahr wirklich sehen. WELTMEISTER! Trotzdem habe ich eine kleine, persönliche, Auswahl der zehn besten interaktiven Grafiken zur WM 2014 in Brasilien zusammengestellt.

10. Chartball: Who will win the World Cup?
Das Lieblingsspiel vor der WM: Raten wer Weltmeister wird. Chartball hat dazu eine sehr schöne Form der Visualisierung gefunden, auch wenn die Vorhersage nicht korrekt war. Die brasilianische Nationalmannschaft wurde ja allgemein schwer überschätzt – auch von den Kollegen bei FiveThirtyEight, welche die (falschen) Vorhersagen ebenfalls schick aufbereitet haben.

ChartballQuelle: http://chartball.com/projects/wc-powerrank/

 

9. Wall Street Journal: The Patterns of Penalties
Nette Auswertung der Elfmeter-Gewohnheiten der torgefährlichsten Schützen. Die Daten kommen von Opta, bei denen auch viele deutsche Redaktionen Kunde sind. Schade, dass niemand von den hiesigen Medien auf diese simple, aber interessante, Darstellung gekommen ist.

Wall Street Journal

Quelle: http://graphics.wsj.com/wc-penalty-kicks/

 

8. Tagesanzeiger: Tippinho
Die Schweizer drehen die Idee des WM-Tippspiels weiter und liefern ein Werkzeug, mit dem man selbst ausrechnen kann, wer Weltmeister wird. Die Schwierigkeit bei der Vorhersage von Spielergebnissen ist vor allem die unterschiedliche Gewichtung der einzelnen Faktoren, wie Zweikampfstärke, Offensivstärke und so weiter. Bei diesem Tippspiel kann man endlich selbst bestimmen, wie wichtig einem die einzelnen Faktoren sind. Am Schluss kann man noch mal an allen Reglern drehen und schauen welche Auswirken dies auf die Vorhersage hat. Statistik-Porno in HD.

Tagesanzeiger
Quelle: http://tippinho.tagesanzeiger.ch/

7. O Globo: Brasil jogo a jogo
Der brasilianische Nachrichtenmonopolist Globo visualisiert das Abschneiden des brasilianischen Kaders bei allen historischen Weltmeisterschaften. Schade nur, dass es die diesjährige WM noch nicht in die Auflistung geschafft hat. Kann ich aber verstehen.

O Globo
Quelle: http://infograficos.oglobo.globo.com/esportes/brasil-jogo-a-jogo.html

6. New York Times: How the world cup players are connected
Die Streber von der New York Times haben sich natürlich auch nicht lumpen lassen und visualisieren, wo die Spitzenspieler der Mannschaften schon überall gespielt haben. Die Grafik ist super, läuft aber selbst auf meinem goldenen Mac Book Pro nicht ganz flüssig. Meine Kollege von der SZ haben etwas ganz ähnliches versucht.

New York Times
Quelle: http://www.nytimes.com/interactive/2014/06/20/sports/worldcup/how-world-cup-players-are-connected.html

 

5. New York Times: The world’s ball
Ebenfalls von der New York Times kommen ein paar sehr schönen Animationen über den Aufbau der offiziellen WM-Bälle. Unbegreiflich ist nur, wieso man als Titel nicht „Balls of the World Cup“ gewählt hat. Wie konnte man den auslassen?

New York Times

Quelle: http://www.nytimes.com/interactive/2014/06/13/sports/worldcup/world-cup-balls.html

 

4. Google: What the world wanted to know during the World Cup
Schön aufbereitete Analyse der Suchanfragen während der WM-Spiele. Mir ist zwar unbegreiflich, wie man aus all den Suchanfragen derartige Informationen herauslesen kann, aber hey, immerhin ist das ein Projekt von Google.

GoogleQuelle: https://www.google.com/trends/worldcup?hl=en#/en-us/match/61/

 

3. Codehesive: World Cup ancestry
Der Londoner James Offer hat untersucht woher die Nationalspieler der einzelnen Kader kommen und wer das multiethnischste Team ist (Schweiz). Interessante Idee mit interessanten Ergebnissen.

Codehesive
Quelle: http://codehesive.com/wc-ancestry/

 

2. Bookmaker: The 12th man
Als zwölften Mann bezeichnet man gemeinhin die Fans eines Teams. Der britische Wettanbieter Bookmaker hat eine kleine Social Media-Analyse gemacht und ausgewertet welche Fans an welchem Tag am aktivsten waren. Die Ergebnisse sind recht vorhersehbar, trotzdem einen coole Anwendung.

BookmakersQuelle: http://bookmakers.co.uk/12th-man/

 

1. BBC International: Qual seleção tem o melhor histórico
Die BBC hat eine interessante historische Auswertung der WM-Ergebnisse gemacht. Spannend ist weniger die Darstellung, sondern eher die Filter, welche einem zum Beispiel die ewige Rivalität zwischen Deutschland und Italien zeigen und erklären. Wieso das ganze aber nur auf Portugiesisch verfügbar ist (oder?), mag mir nicht recht einleuchten.

BBC
Quelle: http://www.bbc.co.uk/portuguese/noticias/2013/12/131211_melhores_times_copa_vale_vj.shtml

Insgesamt gab es viele schöne Ideen und Umsetzungen. Es ist vor allem spannend zu sehen, wie immer mehr Unternehmen, welche nicht im Journalismus verwurzelt sind, sich mit Datenjournalismus und Storytelling beschäftigen. Etwa schade ist nur, dass die brasilianischen (Gastgeber-)Medien multimedial recht wenig zu bieten hatten. Egal. WELTMEISTER!

Beitrag teilen:

Plädoyer für mehr Open Source im Journalismus

GitHub Repository der New York Times

Der Journalismus hat Schritt für Schritt seinen Weg ins Internet gefunden. Interaktive Anwendungen und Datenjournalismus spielen einen immer größer werdende Rolle. Webseiten und Werkzeuge werden programmiert und zunehmend auch Geschichten.

Genutzt werden Anwendungen (Software) im Journalismus vor allem auf vier Ebenen:

  1. Datengewinnung und -auswertung
  2. Speichern, Verwalten und Bereitstellen von Daten
  3. Darstellung von Daten und Inhalten in Karten, Diagrammen, Animationen etc.
  4. Kommunikation und Organisation des journalistischen Prozess‘

Der journalistischen Prozess hängt mittlerweile viel von digitalen Werkzeugen ab. Zudem interessieren sich immer mehr Journalisten für Daten(-journalismus) und Programmieren. Daher ist es an Zeit, eine der besten Ideen der Softwareentwicklung auf den Journalismus zu übertragen: Open Source.

Der Begriff Open Source bedeutet „Offenlegung des Quellcodes“ (englisch: Source Code). Open Source gewann vor allem mit der Verbreitung des Internets an Bedeutung. Viele Webtechnologien die wir tagtäglich – auch unbewusst – nutzen, sind Open Source. Sie können von jedermann genutzt, verbessert und weitergegeben werden. Die kommerzielle Verwendung ist meistens erlaubt. Open Source hat viele Vorteile, die sich auch der Journalismus zunutze machen kann.

  • Transparenz: Das Offenlegen des Quellcodes ermöglicht es zu verstehen, wie eine Anwendung oder eine Geschichte funktioniert. Was wird mit den Daten gemacht? Wie kommt man zu einer Darstellung? Nur ein Bruchteil der Leser  kann programmieren und damit den Quellcode auch nachvollziehen. Jedoch vermittelt Open Source allen das Gefühl, dass sie theoretisch die formale Richtigkeit der Geschichte überprüfen könnten.
  • Fehlerkorrektur: Transparenz erfordert aber auch Mut. Vor allem aber erfordert sie den Mut Fehler eingestehen zu können. Entdeckt jemand einen Fehler im Quellcode, kann dieser ausgebessert werden. Das ist möglicherweise ärgerlich, aber besser wie wenn die Wahlergebnisse für alle Zeiten falsch dargestellt werden.
  • Nutzbarmachung & Weiterentwicklung: Wenn man ein Werkzeug entwickelt hat um Balken-Diagramme darzustellen, wieso sollte man es nicht für andere zur Verfügung stellen? Die Offenlegung des Quellcodes hätte den Vorteil, dass das Werkzeug weiterentwickeln werden könnte. Wenn man das Werkzeug das nächste Mal braucht, ist es vielleicht noch besser geworden und kann auch Torten-Diagramme darstellen. Vielleicht gelingt es auch jemandem etwas ganz Neues zu schaffen.
  • Partizipation: Wenn man über den offensichtlichen Nutzen hinaus denkt, kann Open Source auch mehr Partizipation seitens der Leser ermöglichen. Wenn die Struktur einer Geschichte bekannt ist, ist es auch einfacher diese weiterzudrehen. Open Source Plattformen wie GitHub sind letztendlich Kollaborations-Tools, welche es ihren Benutzer ermöglichen, über Ländergrenzen und Zeitzonen hinweg, zusammenzuarbeiten.

Als Journalisten fordern wir gerne Transparenz und Offenheit von allen Seiten ein, doch leben wir diese Werte auch selbst? Wenn wir von der Bundesregierung eine klares Bekenntnis zu offenen Daten und transparenten Haushalten fordern, wäre es nicht einfacher, wenn wir vormachen könnten wie das funktioniert? Open Source würde uns helfen diesen Prozess zu formalisieren. Natürlich soll und wird Open Source den Journalismus nicht fundamental umkrempeln und auch nicht die großen Aufgaben des  21. Jahrhundert lösen (Stichwort: Monetarisierung journalistischer Inhalte im Internet). Open Source soll kein Dogma sein, sondern eher eine Kultur der Offenheit und des Teiles. Open Source Software ist auch nicht automatisch gut und fehlerfrei, was uns der Heartbleed-Bug nahe geführt hat.

Natürlich ist ein gewichtiger Grund gegen Open Source der ökonomische Wettbewerb zwischen den Medien. Wieso sollte ein andere Nachrichtenseite mein Werkzeug nutzen können, in das ich viel Zeit und Geld investiert habe? Meines Erachtens sollte der Wettbewerb zwischen den Redaktionen auf Basis von gut recherchierten und originellen Geschichten ausgetragen werden und nicht auf Grundlage von Werkzeugen. Der Aufwand für die Entwicklung von Werkzeugen wird geteilt und jeder kann von der Arbeit der Anderen profitieren.

Allgemein glaube ich, dass der grundsätzliche Wille zu Open Source da ist. Die über durch Open Source transportieren Werte sind den Werten des Journalismus sehr ähnlich. In Deutschland gibt es aber bisher nur wenige konkreten Beispielen, wie man Open Source umsetzen kann. Die wohl einfachste Lösung wäre es mit kleinen Projekten anzufangen, um sich dann zu steigern. Im angelsächsischen Raum funktioniert das schon ganz gut. Mehrere große Nachrichtenorganisationen sind schon bei GitHub vertreten, einer sozialen Plattform, auf der viele bekannte Open Source-Programme entwickelt werden.

Open Source hat die Softwareentwicklung revolutioniert. Den Journalismus wird Open Source nicht revolutionieren, aber besser machen. Es wird nur Zeit endlich damit anzufangen!

Unvollständige Liste der Nachrichtenorganisationen auf GitHub:
Zeit OnlineBerliner MorgenpostNews York TimesWashington PostProRepublicaLos Angeles TimesThe Guardian und La Nación.

Sehr lesenswert: Nikki Usher von George Washington University zu Open source and journalism: Toward new frameworks for imagining news innovation

Beitrag teilen:

Nebeneinkünfte der Bundestagsabgeordneten visualisieren

Letzthin habe ich erklärt, wie man die Nebeneinkünfte der Bundestagsabgeordneten scrapen kann. Jetzt wird es Zeit diese Daten zu filtern und zu visualisieren. Leider machen es einem die angegebenen Einkommensstufen nicht gerade leicht eine eindeutige Geschichte zu finden und zu erzählen. Dazu aber später mehr.

Mein Tool der Wahl zu ersten Datenauswertung ist entweder Excel, OpenOffice oder LibreOffice. Auf der Suche nach einer Geschichte kann man schnell Daten filtern, sortieren oder visualisieren.

Eine erste Auswertung kann man über die Anzahl der Nebenkommen machen. In diesem Fall um die durchschnittliche Zahl der Nebeneinkommen pro Abgeordneten(-sitz) herauszufinden. Man sieht deutlich, welche Fraktion die meisten Nebeneinkommen hat.

nebeneinkuenfte-fraktionen
Durchschnittliche Anzahl der Nebeneinkünfte pro Sitz 

Spannend sind hierbei auch einzelne Politiker. Dr. Peter Gauweiler (CSU) und Dr. Daniela De Ridder (SPD) mit 19, beziehungsweise 13 Nebeneinkommen scheinen schwer beschäftig zu sein. Gauweiler verdient sein Geld als Anwalt in der eigenen Kanzlei und De Ridder als Beraterin im universitären Umfeld. Insgesamt haben nur ein Fünftel der Bundestagsabgeordneten ein Nebeneinkommen angegeben.

Stufenproblem: So bald man anfängt mit der Höhe der Nebeneinkünfte zu arbeiten, stößt man schnell auf ein Problem. Da nur Einkommensstufen angegeben sind, weiß man nicht genau wie viel der einzelne Abgeordnete eigentlich verdient. Es macht als Sinn, erstmal den unteren Grenzwert des Intervals für die Berechnung heranzuziehen. Für die Stufe 4, nehmen wir als ein Einkommen von 15.001 € an Damit lässt sich schon mal grob rechnen und kann sich sicher sein, dass man niemand ein zu hohes Nebeneinkommen anhängt.

Wer es nicht mehr vor Augen hat, das sind die einzelnen Einkommensstufen:

  • Stufe 1: 1.000 bis 3.500 €
  • Stufe 2: über 3.500 € bis 7.000 €
  • Stufe 3: über 7000 € bis 15.000 €
  • Stufe 4: über 15.000 € bis 30.000 €
  • Stufe 5: über 30.000 € bis 50.000 €
  • Stufe 6: über 50.000 € bis 75.000 €
  • Stufe 7: über 75.000 € bis 100.000 €
  • Stufe 8: über 100.000 € bis 150.000 €
  • Stufe 9: über 150.000 € bis 250.000 €
  • Stufe 10: über 250.000 €

Wenn wir aber mehrere Personen miteinander vergleichen wollen, reicht der untere Grenzwert nicht mehr aus. Dummerweise hat aber die Stufe 10 keinen oberen Grenzwert. Das heißt man weiß nicht, ob die Spitzenverdiener nur 250.001 € bekommen oder, überspitzt gesagt, 250.000.000 €. In meinem Diagramm habe ich versucht die nach offenen Intervalle durch einen Verlauf am oberen Ende des Balkens deutlich zu machen.

nebeneinkuenfte-topverdiener
Spitzenverdiener im Bundestag, Nebeneinkünfte in Intervallen

Auch wenn man nicht genau weiß, was Gauweiler, Stegemann, Michelbach und Harbarth tatsächlich verdienen, man kann davon ausgehen, dass es eine ganz schöne Summe ist. Ob da wohl noch Zeit für die Erfüllung des Bundestagsmandats bleibt? Hier lohnt es sich bestimmt noch mal genauer hinzuschauen.

Auch wenn man versucht die gesamten Nebeneinkünfte der einzelnen Fraktionen zu visualisieren, stößt man auf das Obergrenzenproblem. Auch hier bleibt einem nur in der Darstellung transparent zu machen, dass bei der Union das maximale Einkommen nach Oben hin offen ist.

nebeneinkuenfte-summe
Relative Nebeneinkünfte der Fraktionen pro Sitz (links) und einmal gesamt (rechts)

Das Ergebnis ist in meinen Augen eindeutig, obwohl wir nur ungefähre Intervalle angeben können. Die CDU/CSU-Fraktion hat sowohl absolut als auch relativ die höchsten Nebeneinkünfte. Ob die Nähe zur Wirtschaft gut ist, sei dahin gestellt. Für die Zukunft wäre es schön, ein noch feineres Stufenmodell zu haben. Zu dem sollte es keine Stufe 10 geben, welche nach oben hin offen ist. Im Vergleich zum vorherigen 3-Stufen-Modell ist aber auch das jetzige 10-Stufen-Modell schon eine große Verbesserung.

Interessant auch zum Weiterlesen: https://www.abgeordnetenwatch.de/blog/nebeneinkuenfte2014

Beitrag teilen:

Nebeneinkünfte der Abgeordneten mit Ruby scrapen

Die Nebeneinkünfte der Bundestagsabgeordneten sind endlich online, obwohl es diesmal ein wenig länger gedauert hat, bis auch der letzte Abgeordnete seine Einkommenserklärung abgegeben hat. Es ist immer spannend mal zu sehen was unsere Politiker eigentlich so nebenher verdienen. Da diese Daten vom Bundestag nicht systematisch aufbereitet werden, sondern auf die 631 Profilseiten der einzelnen Abgeordneten verstreut sind, fängt man erstmal nichts damit an. Um diese Daten in eine geeigneteres Format zu bringen, habe ich ein kleine Ruby-Script (Scraper) geschrieben.

Ich verwende für meinen Scraper die Ruby-Bibliothek Nokogiri. Diese Bibliothek ermöglicht es ganz einfach bestimmte HTML-Elemente über ihre Klasse oder ID anzusprechen.

1
2
3
4
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'json'

Zuerst brauchen wir die Liste aller Bundestagsabgeordneten und den Link zu ihrem Profil. Dafür speichern wir erst mal alle Indexseiten ab. Nur die Indexseiten für die Nachnamen mit Q und X schließen wir aus, da es diese Wahlperiode keine Abgeordneten mit den entsprechenden Nachnamen gibt.

6
7
8
9
alphabeticalList = []
(('A'..'Z').to_a-['Q','X']).each do |b|
  alphabeticalList &lt;&lt; "http://www.bundestag.de/bundestag/abgeordnete18/biografien/#{b}/"
end

Als Nächstes durchsucht das Skript die alphabetischen Indizes aller Abgeordneten nach Links zu den einzelnen Profilen. Wenn alles gut läuft, kommen wir auf  631 Abgeordneten-Profile insgesamt.

11
12
13
14
15
16
17
18
19
20
profileUrls = []
alphabeticalList.each do |url|
  doc = Nokogiri::HTML(open(url))
  urlList = doc.css('ul.standardLinkliste')
  urlList.css('li a').each do |l|
    profileUrls &lt;&lt; url+l['href']
  end
  sleep 1
  puts "Getting URLs from ..."+url[-3,2]+" ...found #{profileUrls.length}"
end

Jetzt schauen wir uns die Nebeneinkünfte der einzelnen Abgeordneten an. Ich habe mich hierfür für eine Datenstruktur nach dem Schema „Wie oft?“/“Welche Höhe?“ entschieden.

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
allMembers = []
profileUrls.each do |url|
  currentDoc = Nokogiri::HTML(open(url).read)
  currentDoc.encoding = 'UTF-8'
 
  nameAndParty = currentDoc.css('div.biografie h1').inner_html
  name, party = nameAndParty.split(',').map {|w| w.strip}
 
  member = {
      :name =~ name,
      :party =~ party,
      :s1m =~ 0,
      :s2m =~ 0,
      :s3m =~ 0,
      :s4m =~ 0,
      :s5m =~ 0,
      :s6m =~ 0,
      :s7m =~ 0,
      :s8m =~ 0,
      :s9m =~ 0,
      :s10m =~ 0,
      :s1j =~ 0,
      :s2j =~ 0,
      :s3j =~ 0,
      :s4j =~ 0,
      :s5j =~ 0,
      :s6j =~ 0,
      :s7j =~ 0,
      :s8j =~ 0,
      :s9j =~ 0,
      :s10j =~ 0
    }

Das HTML-Element mit der Klasse „p.voa_tab1“ enthält die Daten zu den Nebeneinkünften. Hat ein Bundestagsabgeordneter mehrere Nebeneinkünfte, kommt diese Element mehrfach vor. Jedes Mal wenn in einem Element ein bestimmtes Muster vorkommt,  wird der Zähler für das jeweilige Einkommen um 1 erhöht.

55
56
57
  currentDeclaration = currentDoc.css('p.voa_tab1')
  currentDeclaration.each do |a|
    str = a.inner_html

Wenn ein bestimmtes Muster vorkommt, wird das in der Konsole zurückgeben. Dadurch kann überprüft werden, ob der Scraper halbwegs richtig funktioniert. Jeder Abgeordnete ist ein Objekt und wird in ein Array geschrieben, es sei denn es handelt sich um Jakob Maria Mierscheid.

59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
    for i in 1..11
      if str.match(/\bStufe #{i}\b/) &amp;&amp; str.match(/monatlich/)
        puts str
        member[:"s#{i}m"] += 1
      end
    end
 
     for j in 1..11
      if str.match(/\bStufe #{j}\b/) &amp;&amp; str.match(/\bjährlich\b|(\s20(09|10|11|12|13|14))/)
        puts str
        member[:"s#{j}j"] += 1
      end
    end
  end
 
      puts "Name: #{member[:name].ljust(30)} Party: #{member[:party].ljust(10)}"
        unless name == "Jakob Maria Mierscheid"
      allMembers &lt;&lt; member
    end
end

Am Schluss schreiben wir alle Daten noch in eine JSON-Datei. Dieses Format ermöglicht es uns die Daten direkt in einer Webanwendung zu verwenden oder eine Tabelle daraus zu erstellen.

81
82
83
File.open("outsideIncome.json","w") do |f|
  f.write(allMembers.to_json)
end

Der Scraper hat momentan noch ein paar Schwächen, die ich aber nach und nach beseitigen werde:

  • Manchmal gibt es noch doppelte Ergebnisse, wenn die Bundestagsabgeordneten mehrere Nebeneinkünfte in einer Zeile angeben
  • Es wird noch nicht unterschieden, ob jemand ausgeschieden (z.B. Edathy) oder gestorben ist, was dazu führt, dass der Scraper zur Zeit 634 Nebenabgeordnete findet.

Aber: Wie kann man das Skript jetzt eigentlich nutzen? Ganz einfach, dazu müssen nur Ruby, Ruby Gems und Nokogiri installiert werden. Ist das geschehen, kann man das Skript mit ruby meinscraper.rb im Terminal ausgeführt werden.

Das vollständige Script findet ihr auf Github, zur weiteren Verwendung freigegeben. Eine bereinigte Tabelle mit allen Nebeneinkünften habe ich bei Google hochgeladen. Ich erhebe natürlich keinen Anspruch auf Vollständigkeit und Korrektheit. Wenn ihr Fehler finden solltet, gebt mir einfach kurz Bescheid!

Beitrag teilen:

Lobbyliste: Adressen direkt in Google Docs geocodieren

Wenn man eine Datensatz mit vielen Adressen hat, muss man diese manchmal von Hand geocodieren. Geocodieren heißt in diesem Fall, dass man jedem Ort Koordinaten zuweist.

Beispiel:
Adresse: Deutscher Bundestag, Platz der Republik 1, 11011 Berlin
Koordinaten: 51.1758057 Nord (Breitengrad = Latitude), 10.4541194 Ost (Längengrad = Longitude)

Manche Dienste (Google Fusion Tables, CartoDB usw.) bieten diesen Dienst schon von Haus aus an. Doch oftmals gibt es für nicht-zahlende Benutzer Beschränkungen. In meinem Beispiel versuche ich die Lobbyliste des Bundestags mit über 2000 Adressen zu geocodieren. Mit meinem kostenlosen CartoDB-Account könnte ich zum Beispiel nur 100 Adressen gecodieren.

Ich schreibe gerade noch eine Anleitung, wie ich das PDF in eine Tabelle umgewandelt habe. Diese werde ich in Kürze hier verfügbar machen. Soweit kann ich euch verraten: PDFs in Tabellen umzuwandeln ist kein Spaß 😉
geocode-01-data

Als ersten Schritt muss man ein Skript kopieren, dass wir später in Google Docs einfügen. Das JavaScript findet sich hier und wurde vom Kartendienstleister MapBox entwickelt. Einfach alles markieren und kopieren.

Nun muss man den Skripteditor öffnen…
geocode-03-scripteditor

… und den kompletten, bisher bestehenden Code function() {} mit dem eben kopiertem Code ersetzen. Außerdem muss man oben in der Titelzeile, wo noch Unbenannt steht, als Titel geo eintragen. Nach einem Klick auf Datei > Speichern kommt man wieder zur Tabelle zurück.
geocode-04-insertcode

Jetzt dürfte in der Menüleiste neben Hilfe noch ein weiterer Reiter Geo auftauchen. Ist das nicht der Fall, einfach die ganze Seite neu laden. Wenn der Reiter Geo jetzt auftaucht, können wir mit dem Geocodieren beginnen. Einfach im Reiter Geo > Geocode adresses auswählen. Nun muss das Skript einmalig autorisiert werden.

geocode-06-authorise

Nach der Autorisierung muss man in der Tabelle die Spalten auswählen, welche man geocodieren möchte. In unserem Fall ist das Adresse und Postleitzahl. Nun kann man nochmals auf Geo > Geocode adresses gehen. Es sollte nun das Geocodieren-Fenster aufgehen.

geocode-07-service

Unter Geocoding service kann man zwischen mapquest, yahoo und cicero auswählen – Bei mir funktionierte jedoch nur mapquest ohne API-Key. Mit einem Klick auf Geocode geht’s los. Bei mir hat das Geocodieren etwa ein dreiviertel Stunde gedauert.

geocode-08-done

Was sofort auffällt ist, dass da Geocoding-Skript der Tabelle drei neue Spalten hinzugefügt hat: geo_latitude, geo_longitude und geo_accuracy. Die ersten beiden Werte sind die Koordinaten, der dritte Wert gibt die Genauigkeit an.
geocode-09-columns

Manchmal kommt es vor das eine Adresse nicht geocodiert wurde. Bei mir war das zum Beispiel bei Adressen der Fall, bei denen ein Postfach angegeben wurde. Diese Adressen habe ich einfach noch mal geocodieren lassen, diesmal aber nur die Postleitzahl und der Ort. Die Genauigkeit der Geocodierung fällt in diesem Fall auf city, was aber für meine Visualisierungsidee vollkommen ausreicht.

Die Visualisierung habe ich in CartoDB gemacht. Wie man ein solche Cluster-Visualiserung macht, werde ich ein anderes Mal erklären.

geocode-10-visualize

Die vollständige Visualisierung findet ihr hier, den vollständigen Datensatz im Google Drive gibt es hier. Die Tabelle ist noch nicht perfekt und es fehlen noch einige Felder. Ich werde versuchen, dass noch besser hinzubekommen.

Sagt mir Bescheid wie ihr mit der Anleitung klar kommt.

Viel Spaß beim Experimentieren!

Beitrag teilen:

Sotschi 2014: Die besten interaktiven Grafiken

Zur Winterolympiade 2014 in Sotschi gab es dieses Jahr wieder einiges zu sehen. Mittlerweile stellt man jedoch eine gewissen Routine fest, was zum Beispiel die Darstellung von Zeitplänen, Ranglisten und so weiter angeht. Doch es gab auch echte Überraschungen: Ich stelle euch die – meine Erachten – besten zehn interaktiven Grafiken vor.


10. Zeit Online: So wird heute gedopt

Interessantes Thema abseits von Medaillen und Rekorden.

Zeit Online: Doping
Quelle: http://www.zeit.de/sport/2014-02/doping-olympische-spiele


9. Twitter: Two weeks of #Sochi2014 in 60 seconds
Gut gemachte Zeitrafferaufnahme aller Tweets zu Sotschi. Man merkt, dass Twitter mit Simon Rogers, vorher beim Guardian, einen echten Datenexperten an Bord hat.

Twitter: Sotschi Tweets
Quelle: http://cartodb.s3.amazonaws.com/static_vizz/sochi.htm


8. Zeit Online: Alternativer Medaillenspiegel
Zeit berechnet ihren Medaillenspiegel in dem die Ränge 1 bis 10 in die Wertung mit einbezogen werden. Daraus ergibt sich eine interessante neue Reihenfolge der Gesamtsieger.

Zeit Online: Medaillenspiegel

Quelle: http://www.zeit.de/sport/2014-02/alternativer-medaillenspiegel-nationenwertung


7. Neue Zürcher Zeitung: Iouri Podladtchikov
Persönliches, interaktives Feature über den russisch-schweizerischen Snowboarder und Olympiasieger Podladtchikov. Aufbereitet ist seine Siegesgeschichte im „Scrolly-telling“-Format mit eingestreuten interaktiven Infografiken.

NZZ: Iouri Podladtchikov
Quelle: http://iouri-in-sotschi.nzz.ch/


6. Fiasco Design: Interaktive Übersichtskarte im Comic
Nett gemachte Comic-Karte von Sotschi auf Basis von Mapbox.

Fiasco Design: Sochi map
Quelle: http://www.sochi2014interactivemap.com/#


5. Anti-Corruption Foundation: Comprehensive Corruption Report
Analytische Karte über die Kosten und Betrugsfälle rund um die Bauverhaben im Rahmen von Sotschi 2014. Die ACF scheint eine russische Bürgerrechtsgruppierung zu sein.

Anti Corruption Foundation
Quelle: http://sochi.fbk.info/en/report/


4. Washington Post: Are the Winter Olympics for the Rich?
Stück für Stück erklärt die Washington Post mit einer einfachen Grafik, wieso die Winterolympia vor allem was für Reiche (Länder) ist.

Washington Post: For the rich?
Quelle: http://www.washingtonpost.com/wp-srv/special/sports/2014-olympics/winter-vs-summer-olympics/

Die Washington Post hat außerdem noch ein paar andere interaktive Grafiken zu Olympia erstellt. Eine Übersicht darüber findet sich hier: http://www.washingtonpost.com/wp-srv/special/sports/2014-olympics/roundup/


3. Tagesanzeiger (Schweiz): So funktioniert… Slopestyle
Ein Sammlung verschiedener, sehr lieb gemachter, interaktiven Grafiken. Die einzelnen Grafiken haben zwar keinen hohen Interaktionswert, jedoch ist das Portal insgesamt sehr schön gestaltet und informativ.

Tagesanzeiger: Infografiken
Quelle: http://www.tagesanzeiger.ch/extern/storytelling/sotschi/infografiken/slopestyle.html


2. Wall Street Journal: Every Step to Sochi
Das WSJ trackt die Anzahl der Schritte und den Kalorienverbrauch von drei US-amerikanischen Wintersportlern. Das ganze geht in Richtung Sensor Journalism und passt auch zum zur Zeit sehr populären Selbstvermessungstrend.

WSJ: Calories
Quelle:http://graphicsweb.wsj.com/documents/sochi-fitbit-olympic-training/


1. New York Times: How Close They Came to Winning
Wieder einmal hat es die New York Times geschafft, einen relativ naheliegenden Ansatz kurzweilig und informativ umzusetzen. Auch die anderen interaktiven Grafiken zu Sotschi können sich sehen lassen, auch wenn es überwiegend darum geht, spezifische Techniken der jeweiligen Sportarten zu erklären. Ein Überblick über alle interaktive Olympia-Grafiken findet sich hier: http://www.nytimes.com/interactive/2014/02/11/sports/sochi-2014-interactive-stories.html

NYT: How Close They Came to Winning
Quelle: http://www.nytimes.com/interactive/2014/02/09/sports/olympics/finish-line.html?_r=2  

 

Habt ihr noch interaktive Grafiken gefunden, die es sich lohnt zu zeigen?

Beitrag teilen:

Vektorkarten: Shapefiles nach KML exportieren mit QGIS

Digitale Vektorkarten müssen oft als KML vorliegen, damit man sie zum Beispiel mit CartoDB oder Google Fusion Tables verwenden kann. Die Ausgangskarten kann man oft als sogenanntes ESRI-Shapefile herunterladen. Das Problem ist, dass Shapefiles aus mehreren Dateien bestehen (*.shp für die Geometrie, *.dbf für Daten, *.prj für die Projektion usw.). Das an XML angelehnte Dateiformat KML ist da deutlich praktischer, da es alle Daten in eine Datei zusammenfasst und diese für Menschen halbwegs lesbar bleiben.

In unserem Fall wollen wir eine Karte der Wahlkreise Deutschlands von der Website des Bundeswahlleiterbüros ins KML-Format umwandeln. Zum Konvertieren verwenden wir die mächtige Open Source Geo-Software QGIS. Diese ermöglicht es, Shapefiles zu bearbeiten und in verschiedene Formate zu exportieren.

Importieren kann man das Shapefile über Layer > Vektorlayer hinzufügen oder in dem man die Datei einfach auf die Arbeitsfläche von QGIS zieht. Sieht man jetzt eine Karte der Wahlkreise, hat alles geklappt. Im folgenden Schritt schauen wir uns an, was für Daten die Karte beinhaltet. Dazu klickt man mit Rechts auf den Layer Namen und geht anschließen auf Attributtabelle öffnen.qgis-open-table

Hier sieht man die Namen und Nummern der Wahlkreise. Wichtig ist es, sich zu überlegen, worüber man später seine Wahlkreise identifizieren möchte. In unserem Fall bietet sich WKR_NR an. Merken!qgis-attribute-table

Nach Schließen des Fensters öffnen wir den Export-Dialog Speichern als mit einem weiteren Rechts-Klick auf den Layer-Namen.

In dem aufgehenden Fenster muss als Format Keyhole Markup Language ausgewählt und ein Speicherort festgelegt werden. Unter mehr Einstellungen kann man nun die WKR_NR im Feld NameField eintragen und wenn man möchte, im Feld DescriptionField noch den Wahlkreisname WKR_NAME.qgis-export-dialog

Ältere Versionen von QGIS: In älteren Versionen von QGIS gibt es die beiden Felder Name- und Description-Field noch nicht. Hier gibt es nur eine Textfeld OGR Attributerzeugung. Um zum gleichen Ergebnis zu kommen, muss man hier einfach folgendes eintragen:

NameField=WKR_NR
DescriptionField=WKR_NAME

Mit einem Klick auf OK wird das KML exportiert. Ob alles geklappt hat, kann man überprüfen, indem man das KML mit Google Earth öffnet. Liegen die Wahlkreise dort wo sie liegen sollten (Deutschland) hat man gewonnen. Der Weiterverarbeitung der KML-Datei mit anderen Programmen und Anwendungen steht nun nichts mehr im Wege.

Für die Nerds: Durch das Ausfüllen von Name- und DescriptionField hat später jedes Polygon, beziehungsweise jeder Wahlkreis, die folgende Datenstruktur:

<Placemark>
    <name>1</name>
    <description>Flensburg Schleswig</description>
    <Polygon>9.982564417898971,54.644060720627934</Polygon>
</Placemark>

Happy coding!

Beitrag teilen: