WSPR – der Film

Ein Gastbeitrag von Michael Renner, DD0UL. Funkamateur, Informatiker, Projektleiter und Journalist.

WSPR ist eine phantasitsche Betriebsart wenn es darum geht Ausbeitungsbedingungen zu erforschen und
etwas über die Abstrahung der eigenen Station zu erfahren. Doch der Blick auf die Weltkarte gibt nur den Augenblick wieder, dabei wäre das Wissen über den zeitlichen Verlauf oft auch interessant. Zum Glück ist es nicht schwer einen Film der Karte zu erstellen.

 

Um aus dem Blick auf die WSPR-Karte mit den Stationen in Reichweite einen Film zu machen der 24 Stunden darstellt braucht es nicht viel. Zuerst ist der Browser zu nennen der alles darstellen soll, sagen wir „Firefox“. Dann braucht es eine Software die den Browser steuert, damit der regelässig das Bild aktualisiert und den richtigen Bildausschnitt wählt. Für Firefox bietet sich hier das Plugin Selenium an, das einen „Test Case Recorder“ mitbringt, sodass das Ablaufprogramm (fast) nur geklickt, aber nicht programmiert werden muss.
Für die einzelnen Screenshots kann unter Linux scrot sorgen.


Um die einzelnen Bilder mit Text zu versehen und einen Bildausschnitt zu wählen kommt imagemagick zum Einsatz. Die Aufgabe aus vielen Einzelbilder schliesslich ein mp4 zu erstellen übernimmt ffmpeg bzw. libav.

Es lohnt sich einige Gedanken über das Timing der Screenshots zu machen. Die WSPR-Webseite kann die Daten der letzten zehn oder 30 Minuten darstellen, über eine oder drei, sechs, zwölf oder 24 Stunden. Die WSPR-Software kann so eingestellt werden, dass entweder permanent oder seltener gesendet wird. Die Screenshots schliesslich können in beliebigen Abständen erstellt werden, häufiger als tatsächlich gesendet wird müssen sie aber nicht angefertigt werden. Statt nun eine komplizierte Formel zu erstellen die diese drei Parameter ein Einklang bringt peilen wir über den Daumen was bei einem gegebenen Sendezyklus alle 10 Minuten einen schönen Verlauf im Film ergäbe:
Der Browser sollte alle 10 Minuten das Bild neu laden und die Stationen über die letzen 30 Minuten darstellen. Damit kommt in den Verlauf etwas Ruhe statt einzelne Stationen allzu hektisch aufblitzen und vielleicht im nächsten Bild wieder verschwinden zu lassen.

Eine weitere Überlegung betrifft den Desktop von dem „gefilmt“ werden soll. Der fällt während dieser Zeit für andere Aufgaben weg, auch sollte er eine gewisse Mindestgrösse haben, damit der Film mit dem Bildausschnitt der Karte nicht die Grösse einer Briefmarke bekommt. Linuxnutzer können mit rdesktop auf dem eigenen Rechner eine neue Session öffnen und dabei eine beliebige Grösse des Desktops wählen, beispielsweise mit
  
$ rdesktop -g 2366×1500 localhost

die Grösse wählen, die die Erstellung eines 1080p Films erlaubt. Für die ersten Experimente lassen wir diese
Komplexität weg und arbeiten auf dem Desktop an dem wir auch sitzen. Zuerst wird also der Firefox und die
Seite http://dev.wsprnet.org/drupal/wsprnet/map geöffnet und anschliessend das zuvor installierte Selenium gestartet.

Es lohnt sich vorher die Koordinaten des eigenen Standorts raus zu suchen. Für meinen QTH, ein kleiner
Ort nicht weit von Lyon, wäre das 46° Latitude (Breite) und 4° Longitude (Länge), für München beispielsweise sind es 49° und 11° (hier hilft Wikipedia). Mit diesen Werten können wir dafür sorgen, dass der eigene Standort auf der Karte mittig dargestellt wird. Nun ist es Zeit den Selenium Action Recorder zu starten (Action | Record)
und die passenden Werte in die WSPR-Felder einzugeben. Das eigene Call, die Koordinaten, das Band, je nach Lust und Laune die Anzeige der Tag-Nacht-Grenze einschalten oder auch nicht und natürlich die Periode auszuwählen, in der angezeigt werden soll. Nach einem Mausklick auf „Update“ lädt die Seite neu, zeigt aber noch den ganzen Erdball an. Das kann man so lassen oder, je nach persönlicher Preferenz und erwarteter Reichweite des eigenen Signals, einmal, zweimal oder dreimal auf das „+“ Symbol der Googlekarte klicken. Wurde das durchgespielt ist es an der Zeit die Aufnahme in Selenium zu stoppen (Action | Record). Damit haben wir einen Ablaufplan, der sich nun wiederholen lässt. Allerdings gibt es noch eine kleine Ungeschicklichkeit im Code, der tatsächlich von Hand verbessert werden muss. Die WSPR-Seite ist nicht immer schnell. Lädt nun der Automatismus die Seite neu und versucht anschliessend den Mausklick auf das „+“ zu simulieren während die Seite noch gar nicht zu Ende geladen wurde scheitert die weitere Verarbeitung. Deswegen sollte eine kleine Pause zwischen „laden“ und klicken“ eingefügt werden:
 
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>

Dieser Ablaufplan wird nun gespeichert (File | Save Test Case) damit er später wieder verwendet werden kann. Ein Ablaufplan der genau dies alles macht kann hier runtergeladen werden, das spart die tiefere Einarbeitung in den Seleniumrekorder.
Nun ist es an der Zeit sich über die Screenshots Gedanken zu machen. Im einfachsten Fall reicht ein
 
$ while true ; do scot ; sleep 300 ; done

das nach 24 Stunden abgebrochen wird und mit ffmpeg zum mp4 weiter verarbeitet wird. Mehr Komfort bietet das Script wsprfilm.sh, das sich um die Screenshots, den Bildausschnitt und die Erstellung des mp4 kümmert. Es kann als Basis für eigene Erweiterungen dienen.

Mit den Vorgaben werden 288 Screenshots im Abstand von 300s erstellt (288/300s=24 Stunden), der vollständige Bildschirm ist 1920×1080 Pixel gross, der Bildausschnitt wird mit 1650×650 Pixel gewählt, zusätzlich wird in jedem Bild das aktuelle Datum und das Band vermerkt. Zum Schluss wird das mp4 erstellt und mit Datum und Band abgespeichert. Je nach Bildschirmgrösse und gewünschtem Ausschnitt auf der Weltkarte müssen die Parameter angepasst werden was knifflig sein kann. Die Abbildung hier im Artikel zeigt wo die Werte im Beispielscript zu zu liegen kommen.

Nach so viel Vorbereitung wirkt die Praxis fast trivial: Tranceiver und WSPR-Anwendung starten, das Script starten (es wartet 30 Sesunden bevor der erste Screenshot gemacht wird), in Selenium unter „Options | Schedule tests to run periodically“ die Ausführung alle 5 Minuten wählen und „OK“ klicken. Jetzt noch das Browserfenster in den Vordergrund holen und für die nächsten 24 Stunden die Füsse still halten.

Der fertige Film kann betrachtet oder wie diese Aufnahme auf Youtube hochgeladen werden.

Im Beispielfilm wird zwischen 05:30 Uhr und genau 09:00 Uhr keine Karte angezeigt. Das ist kein Fehler im Script sondern ein Problem zwischen der WSPR-Seite und Google. Denn die Google Map API erlaubt nur 25.000 Aufrufe pro Tag. Die scheinen derzeit um etwa 05:30 Uhr deutsche Zeit erreicht zu sein. Um 9 Uhr MEZ (oder genauer gesagt Mitternacht an Googles Firmensitz in Kalifornien) wird der Zähler zurück auf 0 gesetzt, die Karte funktioniert danach wieder.

 

 

0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.