Schlagwort-Archiv: fusion table

Visualisierung des laut.fm-Netzwerks mit Google Fusion Table

Netzwerke mit Google Fusion Tables

Das Netzwerk von Radio Würzblog
bei der alten laut.fm-Seite.

Die Webradio-Plattform laut.fm, die kleine Schwester der Musik-Website laut.de, arbeitet gerade an einem Relaunch, der schon als Beta-Version zu sehen ist. Eine Funktion, die, wie es im Moment aussieht, dem Umbau zum Opfer fallen wird, ist das sogenannte Netzwerk. Hier konnte ein Radiosender befreundete Radiostationen bei laut.fm eintragen – eine gute Möglichkeit, um den Hörer über den musikalischen Tellerrand lenken zu können.

Um Stand des Netzwerks auf den letzten Metern seiner Existenz zu dokumentieren, durfte wieder mal Google Fusion Tables herhalten.

An die kompletten Netzwerkdaten kam ich über die laut.fm-API. Über den Aufruf von http://api.laut.fm/stations kam ich an die Liste aller Stationen im JSON-Format. Für jeden Sender habe ich dann die jeweilige Netzwerk-Liste über die Network-API erhalten, z. B. http://api.laut.fm/station/wuerzblog/network. Die ganze Schleife lief in PHP und gab eine CSV-Datei aus, die ich dann in eine Google Fusion Table importierte. In der Spalte Station1 steht die Station, dessen Netzwerk-Daten ich aufgerufen hatte, in Station2 die jeweiligen Netzwerk-Sender. Ein Netzwerkpfeil geht also von Station1 zu Station2.

Die Tabelle mit den Netzwerk-Daten in Google Fusion Tables

Über den Punkt “Experiment” kann man diese Daten dann als Netzwerk darstellen lassen

Visualisierung des laut.fm-Netzwerks mit Google Fusion Table

Die interaktive Karte kann gezoomt werden, die einzelnen Punkte mit der Maus verschoben werden — das Netzwerk verschiebt sich über einen Gummiband-Effekt mit — und wohl aus Perfomancegründen kann die Anzahl der angezeigten Netzwerkpunkte verändert werden. Die Farben geben die Spalte an, in diesem Fall aber uninteressant, da jede Station sowohl in der ersten als auch in der zweiten Spalte auftauchen kann. Ich habe die Farboption eher aus optischen Gründen verwendet.

Und hier sieht man – welcher Sender mag welchen anderen Sender! 🙂


>> Die Netzwerk-Karte in einem eigenen Fenster

Laut.fm-Stationen in Deutschland-1

Knabberkarte: Laut.fm-Stationen in Deutschland

Ich habe ein wenig mit der API von laut.fm herumgespielt, der Webradio-Plattform, bei der ich auch selbst ein Radio laufen habe.

Über die API kann man allerhand Informationen über die Webradios und deren Programm auslesen. Leider bisher nur auslesen, eine Möglichkeit die API schreibend zu nutzen und damit von außen z. B. das Sendeprogramm zu ändern, gibt es noch nicht.

Die API spuckt als Daten im JSON-Format aus. Praktischerweise liest Google Refine JSON-Daten ein — und damit steht einem ein großer Spielplatz zur Verfügung! 🙂

Als einfachen Testlauf wollte ich eine Karte erstellen, auf denen die Standorte der Webradios von laut.fm zu sehen sind. Die Radiomacher haben im Backend von laut.fm die Möglichkeit die Stadt aus der sie Senden anzugeben. Daraus wird ein Datensatz mit der Längen- und Breitenangabe der Stadt angelegt, den man auch über die API auslesen kann.

Dummerweise gibt es in manchen Städten mehrere Radios. Und da mein keine Straße in den laut.fm-Einstellungen angeben kann oder freie Koordinaten, landen alle Radios in der Stand am selben Punkt. Es entsteht also ein Stapel aus Markierungen auf der Karte, von denen aber nur die oberste Sichtbar ist. Was tun?

Die einzige Möglichkeit ist, die Koordinaten der einzelnen Webradios ein klein wenig zu verändern — Google Refine Basic zeigt, wie das geht. Leider sitzen durch diese Transformation der Koordinaten die Punkte auf der Karte auf einer Line — was recht unschön aussieht und bei großen Städte wie Berlin einen “Strich aus Webradios” durch die Landschaft zieht. Eine natürlicher wirkende Verteilung wäre schöner.

Ein Lösungsansatz — noch nicht perfekt — ist folgender:

In der Spalte mit der Längenangabe “Edit cells – Transform …” anwählen. Dann diesen GREL-Code verwenden:

value+(toNumber(row.index - row.record.fromRowIndex) *
toNumber(sin(length(cells["name"].value))) * 0.004)

Die erste Zeile ist analog zu der oben genannten linearen Methode. In der zweiten Zeile wird als Faktor ein “zufallsähnlicher Wert” gebildet. Über die Länge des Wortes in der Spalte “name” wird der Sinuswert berechnet — da sind wir schon nah am Zufall dran. Und dieser Wert wird mit 0.004 multipliziert. Dieser Wert ist noch der Knackpunkt — er bestimmt letztlich, wie nahe die Punkte auf der Karte beieinander liegen sollen. Und das hängt davon ab, ab welchem Zoomfaktor dir Punkte optisch unterscheidbar sein sollen. Und auch davon, wie groß die Stadt ist. In Berlin passen viel mehr Punkte mit größeren Abständen als nach Altötting. Hier muss man einfach Werte ausprobieren.

Dann exportiert man die Karte von Google Refine nach Google Fusion Table, gibt den beiden Koordinatenspalten den Typ “location” und lässt sich schon die Karte visualisieren! 🙂


Link zur Google Fusion Table der Karte

Punkt statt Komma

Google Fusion Table und das dezimale Komma

Fusion Table ist ein feines Werkzeug der Google-Familie, um Daten zu visualisieren. Aber die Online-Software ist in der Beta-Version und hat einfach noch sein Macken.

Eine Macke ist, dass es nur Englisch kann. Damit meine ich nicht die Oberfläche, die zwar auch Englisch ist, aber durchaus verständlich. Nein, schlimm ist, dass es nur das englische Zahlenformat versteht, und da ist das Dezimaltrennzeichen der Punkt und nicht wie im deutschsprachigen Raum das Komma. Ein Viertel wird in Deutschland 0,25 geschrieben und in z. B. England 0.25.

Wenn man nun in einer Google Tabelle — früher in Google Docs, jetzt in Google Drive zu erstellen — Wert mit “deutschen” Dezimalbrüchen hat und diese in Fusion Table importiert, dann wird die Zahl nicht mehr als Zahl behandelt, sondern als Text. Aus den Werten zum Beispiel eine Tortengrafik zu machen, ist dann nicht mehr möglich, da mit einer Zeichenfolge nicht gerechnet werden kann.

Abhilfe

Wie kann man das Problem lösen, bis dieser Fehler in Fusion Table behoben wird?

Der leichte Weg ist, in der ursprünglichen Google Tabelle das Gebietsschema zu ändern. Man sagt der Tabelle einfach, dass man nicht in Deutschland ist, sondern im Vereinigten Königreich, den Vereinigten Staaten, in Australien oder sonstwo.

Über Datei  …

… Tabelleinstellungen kommt man zum Gebietsschema 

… wo man sich ein anderes Gebiet auswählen kann. Australien bietet sich an — englischsprachig und in der Liste ganz oben.

Google ändert dann automatisch das Dezimaltrennzeichen. Dann importiert man diese Tabelle in Fusion Table und kann in der Tabellenkalkulation das Gebietsschema wieder auf Deutschland zurücksetzen — aus den Punkten werden wieder Kommas. Die in Fusion Table importierten Dezimalbrüche sind mit dem Punkt getrennt und Berechnungen funktionieren reibungslos.

Die Alternative

Wer aus welchen Gründen auch immer das Gebietsschema nicht ändern will, der kann in der Google Tabelle ein weitere Spalte mit einem Punkt-Dezimalbruch erstellen. Die Goggle-Tabelle kann als Tabellenkalkulation mit Formeln umgehen und mit der Funktion SUBSTITUTION kann man das Komma durch einen Punkt austauschen.

In Google Fusion führt man alle numerischen Berechnungen einfach mit der Spalte mit den Punkt-Dezimalzahlen durch — funktioniert.

Zu hoffen bleibt, dass Google bald den Fehler mit den Dezimaltrennzeichen behebt und auch mit deutschsprachigen Gebietsschemata umgehen kann.