Sunday, September 8, 2019

Chirp sounder measurements with KiwiSDRs (2)

Using the recent work on KiwiSDR waterfall recording (see kiwiclient/kiwiwfrecorder.py) it becomes possible to search for chirp sounder signals in KiwiSDR waterfall data, continuing the topic from this post.

kiwiwfrecorder.py connects both to the 'SND' and the 'W/F' websocket streams. The 'W/F' stream contains sequence numbers for each waterfall line which are used to synchronize the waterfall to the audio data. These sequence numbers can also be used to attach to each waterfall line a corresponding GNSS time tag obtained from the 'SND' stream. As the waterfall data can arrive before or after the audio data, both are combined in a third thread using python Queues for thread-safe communication.

About half an hour of waterfall data was recorded on the AB1LD KiwiSDR using the highest KiwiSDR waterfall speed which turns out to provide waterfall data about for each SND frame, i.e, each 512/12000 seconds. Thanks to the owner for setting up this KiwiSDR and allowing unrestricted access!.

Then the recorded waterfall data (saved in a .npy formatted file) was rebinned in time to 1024/12000 second bins and exported as a .png file. Switching from python to octave, a search for chirp sounders was performed for chirp rates from 80  kHz/s to 130 kHz/sec in steps of 1 kHz/sec: for each chirp rate and for each start time the content of the waterfall bins was summed up along the corresponding line (Hough transform).

Two chirp sounders were found, each having a repetition rate of 720 seconds (12 minutes) with chirp rates of 82 kHz/sec and 100 kHz/sec, respectively. It might be interesting that this list of chirp sounders contains entries for three chirps sounders with 720 second periods located in Norfolk, VA, Kingsville, TX, and in Puerto Rico.

The plots below show zoomed waterfall diagrams around the chirps and on the bottom panel the result of the chirp search, i.e, the sums of waterfall bins along lines with a given slope.


1st chirp sounder detected using the AB1LD KiwiSDR

2nd chirp sounder detected using the AB1LD KiwiSDD

4 comments:

Anonymous said...

Hi,

This looks great.

I was trying to use the kiwiwfrecorder.py but it didn't seem to work.

Note that I have successfully extracted waterfall data from the server of interest using the microkiwi_waterfall.py script.

I have included the debug log output by the script
===================
python kiwiwfrecorder.py -s [server] --log=debug
2020-01-17 10:05:05,112 pid 6592 Failed to connect, sleeping and reconnecting error='Values instance has no attribute 'timestamp''
2020-01-17 10:05:05,112 pid 6592 Failed to connect, sleeping and reconnecting error='Values instance has no attribute 'timestamp''
2020-01-17 10:05:08,138 pid 6592 Failed to connect, sleeping and reconnecting error='Values instance has no attribute 'timestamp''
2020-01-17 10:05:08,141 pid 6592 Failed to connect, sleeping and reconnecting error='Values instance has no attribute 'timestamp''
2020-01-17 10:05:11,164 pid 6592 Failed to connect, sleeping and reconnecting error='Values instance has no attribute 'timestamp''
2020-01-17 10:05:11,167 pid 6592 Failed to connect, sleeping and reconnecting error='Values instance has no attribute 'timestamp''
2020-01-17 10:05:11,569 pid 6592 gc []
===================

Can you advise what im doing wrong, or what the problem might be?

Thanks very much,
Mark

hcab14 said...

Hi Mark,

which version of kiwirecorder do you use?

Can you try using https://github.com/jks-prv/kiwiclient/tree/jks-v0.1 ?

This kind of error showed up a while ago and was fixed.

Anonymous said...

Hi,

Yes I downloaded that a while ago.

Other factors might be that I am running python 2.7 from windows 10.

Should I be using python 3 for these scripts?

hcab14 said...

Please verify that you indeed use the latest version (and the correct branch jks-v0.1). In case it still does not work, please ask your question here: https://valentfx.com/vanilla/categories/kiwisdr-wsprdaemon-kiwirecorder

Both, python2 and python3 should work.