File | Date | Author | Commit |
---|---|---|---|
FFTW | 2025-06-16 |
![]() |
[4ddcd3] initial commit |
OrthPoly | 2025-06-16 |
![]() |
[4ddcd3] initial commit |
StatisticsCS | 2025-06-16 |
![]() |
[4ddcd3] initial commit |
Stokes | 2025-06-24 |
![]() |
[7f92b3] Stokes - support for single thread (run in call... |
python | 2025-06-27 |
![]() |
[e8c2c8] utils.py - improved header function; new precis... |
sidmon5 | 2025-06-24 |
![]() |
[7f92b3] Stokes - support for single thread (run in call... |
sound | 2025-06-16 |
![]() |
[4ddcd3] initial commit |
.gitignore | 2025-06-17 |
![]() |
[18390b] Working with fixes. |
Header.txt | 2025-06-19 |
![]() |
[19ab4b] Converted markdown to html. |
Readme.md | 2025-06-27 |
![]() |
[a5696b] Simplified Readme; details moved to Wiki. |
install | 2025-06-19 |
![]() |
[45fd4d] update |
plot | 2025-06-24 |
![]() |
[36dec5] GOES fixes for plots. |
sidmon | 2025-06-24 |
![]() |
[36dec5] GOES fixes for plots. |
sidmon5.net.sln | 2025-06-18 |
![]() |
[6e0816] update |
sidmon5.net
This package is a VLF receiver for monitoring VLF transmitter signals for evidence of transients indicating ionospheric disturbances, usually caused by x-ray bursts from the sun. It takes sample pairs from dual-channel sound cards and spectrally processes them to Stokes parameters.
In sidmon5 data sets, there are four Stokes parameters per transmitter, plus four for a total-power 'transmitter' that can be used as a diagnostic or for flagging data points to be ingnored in post processing.
sidmon5
was the precursor of this program. The motivation for this new .Net version is that sidmon5
is not able to keep up with the data in its python environment, even when multiprocessing was employed. Although python with numpy can be fast, particularly when processing large arrays, the larger number of smaller steps involved in the extraction of spectral-line intensities is slow in the interpretive environment of python.
So sidmon5.net
was developed in .Net in C# and Visual Basic. Running on a Raspberry Pi 4B, it requires only a 15% usage of a cpu-core while data utilization is 100%. An earlier version streamed samples from alsaaudio through a python program via stdout to a .Net program. But the current version streams data from libsoundio through its C API to a 100% .Net program.
The plot utility is written in python.
Other notes.
sidmon5
, the acquisition program is inspired by SuperSID, but was written independently.plot.py
) evolved from supersid_plot.py
. Data are saved to the output file in the following format:
yyyy-mm-ddThh:mm:ss.fffffffZ,I1,Q1,U1,V1,I2,Q2,U2,V2, ...
2025-06-04T21:19:32.5520007Z,21.46,-21.64,-3.42,-0.10,20.43,-15.56,13.20,1.88,45.37,18.29,-42.19,-11.10
...
Requires libsoundio.
See the Wiki for additional information.
Clone the program to a directory
cd <dir>
git clone https://git.code.sf.net/p/sidmon5-net/code sidmon5.net
Run the installation script.
cd sidmon5.net
./install dependencies
./install configure
The first installs linux packages needed by the program, including FFTW, libsoundio, and .Net. The second creates
/etc/sidmon5.net/install_location
- for the sidmon installation directory,/etc/sidmon5.net/user
- install user,/etc/sidmon5.net/events_location
- forthe installation directory for SWPC events reports (default is subdirectory EventsReports
), and/etc/sidmon5.net/goes_location
- for the directory where GOES x-ray intensities are placed./etc/sidmon5.net/data_location
- for the directory into which data are deposited and from which data are read (default is subdirectory data
).The first path should not be changed, but use the commands
echo "<eventspath>" | sudo tee /etc/sidmon5.net/events_location
echo "<goesdatapath>" | sudo tee /etc/sidmon5.net/goes_location
echo "<datapath>" | sudo tee /etc/sidmon5.net/data_location
to update the others to the actual destination directories. The configuration step will not modify them once they are defined.
Useful aliases for pasting into .bashrc
or elsewhere:
alias sidmon='/etc/init.d/sidmon'
alias audio="$(cat /etc/sidmon5.net/install_location)/python/audio.py"
alias plot="$(cat /etc/sidmon5.net/install_location)/plot"
alias plot.py="$(cat /etc/sidmon5.net/install_location)/python/plot.py"
The file sidmon
is placed in /etc/init.d/
during installation for use to control sidmon. It is not configured as a service.
Generate a header file starting with Header.txt
. In that file, edit the following lines
device
- for the sound device. sidmon5.net
needs a sound device that delivers 32 bit floats. Run audio hardware
to list sound devices on the system and look for the name plughw:DEVICE=nnnn,DEV=0
where 'nnnn' is the correct sound-card name. Enter that device name.sampleratesetting
- for the sample (frame) rate at which the sound card will run. Enter the same into the sampleratemeasured
line, at least for now. Start with 96000 Hz. One need not be limited to 'supported' frame rates if one is careful to fully test a choice with audio
.There are settings for transmitters, transmitter groups, and antenna characteristics that can be edited as needed.
The location of the header file can be anywhere as defined in sidmon
, but consider placing it in the data directory, in which case a path need not be provided in sidmon
.
Inspect the output of sidmon info
and look for errors or empty entries that might indicate incomplete installation and configuration.
See the Wiki for details of the configuration (header) file.
To control and monitor sidmon5 using the sidmon
alias,
sidmon start # start
sidmon stop # stop
sidmon restart # restart
sidmon status # view status (Running | Stopped)
sidmon info # print installation information and status
sidmon log | err # print tail of stdout and stderr log files
sidmon tail # print tail of current data file
sidmon cron # list installed cron tasks
when queried from another computer, use a command like
ssh <user>@<ip> "/etc/init.d/sidmon <subcommand>"
There are convenience functions.
install aliases # list useful aliases for pasting into .bashrc
install version # display versions of .Net and FFTW
The python program plot.py
is used for time plots and scatter plots. There is also a Bash script plot
with a simplified syntax. Additional information in the Wiki.
See the SuperSID reference below and other sources for information on loop antennas and the ins and outs of SID detection.