Waterfall.py
Was ist waterfall.py?
waterfall.py ist ein von Chris OE5DXL in Python3 geschriebenes Tool zum erstellen eines Langzeit-Wasserfalldiagramm als *.png Grafikdatei. Es nutzt dabei Daten des sdrtst Empfängers.
- Frequenzbereich und Abtastrate sind frei einstellbar.
- In Verbindung mit sondeudp können auch die Seriennummern der Wettersonden in der Grafik integriert werden.
- Es ist KEIN! live Diagramm wie in GQRX oder SDR# u.ä.
- Es können mehrere Instanzen von waterfall.py gleichzeitig laufen, z.B. pro SDR-Stick einer.
- Der Wasserfall wird parallel zur Dekodierung erzeugt, kann also jederzeit gestartet und gestoppt werden, ohne Einfluss auf die Dekodierung von Wettersonden.
Installation und Einrichtung
Hinweis: Um waterfall.py nutzen zu können, sind die dxlAPRS Tools vom 3. März 2021 oder neuer notwendig (sdrtst und sondeudp).
waterfall.py kann direkt vom Server von Chris oe5dxl geladen werden
wget -N --no-check-certificate https://oe5dxl.hamspirit.at:8024/wettersonde/waterfall.py
Damit es funktioniert muss Python3 installiert sein. Dies ist z.B. bei RaspberryPi OS (Raspbian) bereits der Fall. Bei anderen Systemen muss Python3 ggf. erst installiert werden: https://realpython.com/installing-python/
Falls notwendig, kann das Python-Modul PIL nachinstalliert werden: https://pillow.readthedocs.io/en/latest/installation.html
Mögliche Anpassungen in waterfall.py
IP=("0.0.0.0",18500)
waterfall.py lauscht auf Port 18500 für alle IP-Quellen.
CONTRAST=3.0 BRIGHTNESS=50.0
Einstellungen für die Wasserfalldarstellung.
im.save("/tmp/w.png")
Hierhin wird die Wasserfalldatei geschrieben.
Benutzung
Konfiguration in der sdrcfg.txt
In die sdrcfg.txt muss eine zusätzliche Zeile mit Parametern eingefügt werden, z.B.:
s 402.000 404.000 2500 1 3000
- Wert: Startfrequenz
- Wert: Endfrequenz
- Wert: Bandbreite in Hz pro Bildspalte (vertikale Pixelspalte)
- Wert: Geschwindigkeit. 1 = 2ms pro Bildspalte (schnellste Aufnahme). 6 = 12ms pro Bildspalte. Die Aufnahme wird mit steigendem Wert langsamer.
- Wert: ZF-Bandbreite in Hz. Um CPU Zeit zu sparen sollten hier die üblichen Werte verwendet werden, also z.B. 3000, 6000, 12000 usw.
Konfiguration von sdrtst
In sdrtst müssen die Daten zu waterfall.py ausgeleitet werden mit -L IP:Port. Bei mehreren Instanzen von waterfall.py müssen unterschiedliche Ports verwendet werden.
Beispiel:
sdrtst -t 127.0.0.1:18100 -r 16000 -s sondepipe0 -Z 100 -c sdrcfg0.txt -e -k -v -L 127.0.0.1:18500
Konfiguration von sondeudp
Damit die Sondennummern mitgeschrieben werden können, müssen die Daten von Sondeudp ebenfalls an waterfall.py übertagen werden mit -M IP:Port. Bei mehreren Instanzen von waterfall.py müssen unterschiedliche Ports verwendet werden.
Beispiel:
sondeudp -f 16000 -o sondepipe0 -I MYCALL-11 -L SDR0 -u 127.0.0.1:18000 -c 0 -v -n 0 -W 5 -M 127.0.0.1:18500