Can't create waterfall png files [fixed in kiwirecorder v1.2]
With the greatly improved propagation conditions many WD sites like KPH, KFS and VK7JJ are beginning to experience severe overloading, especially at grayline times of day. In order to determine how much to reduce LNA gain and/or add blocking filters, I would like WD to record 0-30 MHz spectrum pngs when it detects such severe overload conditions. But neither kiwi recorder's help menu nor the examples in the Makefile have produced png files.
Using --wf does output a list of WF data, but --wf-png only records wav files.
What am I missing?
===============
pi@AI6VN-DemoRx-Pi4:~/wsprdaemon/kiwiclient/wf-test $ python3 -u /home/pi/wsprdaemon/kiwiclient/kiwirecorder.py -V
kiwirecorder v1.1
pi@AI6VN-DemoRx-Pi4:~/wsprdaemon/kiwiclient/wf-test $ python3 -u /home/pi/wsprdaemon/kiwiclient/kiwirecorder.py --wf --server-host=10.33.33.33 --server-port=8073 -f 15000 -z 0 --log_level info -u krec-WF --tlimit=5
2023-04-01 17:32:16,876 pid 20879 started waterfall recorder 0
2023-04-01 17:32:16,985 pid 20879 Kiwi server version: 1.590
2023-04-01 17:32:16,987 pid 20879 wf samples: start|center|stop 0.0|15000.0|30000.0 kHz, span 30000 kHz, rbw 29.297 kHz, cal -16 dB
2023-04-01 17:32:17,141 pid 20879 wf samples: 1024 bins, min -140 dB @ 26862.2 kHz, max -67 dB @ 25014.7 kHz
2023-04-01 17:32:18,059 pid 20879 wf samples: 1024 bins, min -142 dB @ 6891.5 kHz, max -66 dB @ 25014.7 kHz
2023-04-01 17:32:19,042 pid 20879 wf samples: 1024 bins, min -142 dB @ 9178.9 kHz, max -67 dB @ 25014.7 kHz
2023-04-01 17:32:20,058 pid 20879 wf samples: 1024 bins, min -161 dB @ 18563.0 kHz, max -67 dB @ 25014.7 kHz
2023-04-01 17:32:21,044 pid 20879 wf samples: 1024 bins, min -147 dB @ 967.7 kHz, max -67 dB @ 25014.7 kHz
2023-04-01 17:32:22,039 pid 20879 wf samples: 1024 bins, min -135 dB @ 2111.4 kHz, max -67 dB @ 25014.7 kHz
pi@AI6VN-DemoRx-Pi4:~/wsprdaemon/kiwiclient/wf-test $ ll
total 0
pi@AI6VN-DemoRx-Pi4:~/wsprdaemon/kiwiclient/wf-test $ python3 -u /home/pi/wsprdaemon/kiwiclient/kiwirecorder.py --wf-png --server-host=10.33.33.33 --server-port=8073 -f 15000 -z 0 --log_level info -u krec-WF --tlimit=5
2023-04-01 17:32:57,894 pid 20958 started sound recorder 0
2023-04-01 17:32:58,000 pid 20958 Kiwi server version: 1.590
2023-04-01 17:32:58,049 pid 20958 GNSS position: lat,lon=[+38.09, -122.95]
Block: 00000001, RSSI: -96.7 2023-04-01 17:32:58,408 pid 20958 Started a new file: 20230402T003258Z_15000000_am.wav
Block: 0000001f, RSSI: -96.9
pi@AI6VN-DemoRx-Pi4:~/wsprdaemon/kiwiclient/wf-test $
Comments
kiwirecorder supports so many options now that the code doesn't complain when all invalid sets of options are used. The included Makefile is a big help.
The problem here is that
--wf-png
requires--wf
to setup the waterfall channel.--wf-png
without--wf
is silently ignored. It should probably enforce--wf
.I did try adding both --wf and --wf-png in both orders before posting, but doing that causes a python error:
pi@AI6VN-DemoRx-Pi4:~/wsprdaemon/kiwiclient/wf-test $ python3 -u /home/pi/wsprdaemon/kiwiclient/kiwirecorder.py --wf --wf-png --server-host=10.33.33.33 --server-port=8073 -f 15000 -z 0 --log_level info -u krec-WF --tlimit=5
2023-04-01 22:12:23,301 pid 21572 started waterfall recorder 0
2023-04-01 22:12:23,402 pid 21572 Kiwi server version: 1.590
2023-04-01 22:12:23,406 pid 21572 wf samples: start|center|stop 0.0|15000.0|30000.0 kHz, span 30000 kHz, rbw 29.297 kHz, cal -16 dB
2023-04-01 22:12:23,406 pid 21572 --wf_png: mindb -155, maxdb -30, cal -16 dB
Traceback (most recent call last):
File "/home/pi/wsprdaemon/kiwiclient/kiwi/worker.py", line 44, in run
self._recorder.run()
File "/home/pi/wsprdaemon/kiwiclient/kiwi/client.py", line 653, in run
self._process_ws_message(received)
File "/home/pi/wsprdaemon/kiwiclient/kiwi/client.py", line 190, in _process_ws_message
self._process_message(tag, body)
File "/home/pi/wsprdaemon/kiwiclient/kiwi/client.py", line 422, in _process_message
self._process_wf(body[1:]) ## skip 1st byte
File "/home/pi/wsprdaemon/kiwiclient/kiwi/client.py", line 545, in _process_wf
self._process_waterfall_samples(seq, samples)
File "/home/pi/wsprdaemon/kiwiclient/kiwirecorder.py", line 500, in _process_waterfall_samples
pixels.append(self._cmap_r[ci])
TypeError: array indices must be integers
pi@AI6VN-DemoRx-Pi4:~/wsprdaemon/kiwiclient/wf-test $
A quick check: it works for me using your same parameters. Let me look at that colormap issue though..
~/kiwiclient 529 m wf-png
python3 -u kiwirecorder.py --wf --wf-png -s ai64 -p 8073 -f 15000 -z 0 --log_level info -u krec-WF --tlimit=5
2023-04-02 20:40:56,782 pid 68793 started waterfall recorder 0
2023-04-02 20:40:56,931 pid 68793 Kiwi server version: 1.591
2023-04-02 20:40:56,931 pid 68793 wf samples: start|center|stop 0.0|15000.0|30000.0 kHz, span 30000 kHz, rbw 29.297 kHz, cal -13 dB
2023-04-02 20:40:56,931 pid 68793 --wf_png: mindb -155, maxdb -30, cal -13 dB
2023-04-02 20:40:57,063 pid 68793 wf samples: 1024 bins, min -148 dB @ 4076.2 kHz, max -102 dB @ 27507.3 kHz
2023-04-02 20:40:57,968 pid 68793 wf samples: 1024 bins, min -146 dB @ 4310.9 kHz, max -101 dB @ 29442.8 kHz
2023-04-02 20:40:58,973 pid 68793 wf samples: 1024 bins, min -138 dB @ 1583.6 kHz, max -99 dB @ 234.6 kHz
2023-04-02 20:41:00,015 pid 68793 wf samples: 1024 bins, min -145 dB @ 6451.6 kHz, max -102 dB @ 28152.5 kHz
2023-04-02 20:41:01,052 pid 68793 wf samples: 1024 bins, min -146 dB @ 21524.9 kHz, max -100 dB @ 322.6 kHz
2023-04-02 20:41:01,967 pid 68793 wf samples: 1024 bins, min -161 dB @ 7566.0 kHz, max -100 dB @ 322.6 kHz
2023-04-02 20:41:01,968 pid 68793 --wf_png: writing file 20230402T084056Z_15000000_am.png
Yeah, it would have to be a data dependent problem on the waterfall values sent by 10.33.33.33 Like getting a NaN somehow.
Is there some way I could connect to that from here so I could add some debugging code?
I have just emailed remote access instructions to you at support@kiwisdr.com
Please update from the repo. Using the -v option will show
kiwirecorder v1.2
versus the priorv1.1
Another update to the repo that gives sensible defaults when
--wf-png
is used (namely,--speed=4
and--quiet
). Thanks Rob.Another update to the repo adds new option
--wf-peaks=N
that saves the strongest N spectrum peaks information to a .txt file.