You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Major Features
Logging:structlog is now used for consistent log formatting, with pretty formatting in the console and JSON
formatting saved to logfiles. Log forwarding is also supported using the graypy extended log format (GELF). Separate
log levels can be used for each type of log handler (console, logfile, or aggregator), specified in the config file.
Config file format: The config file format has been updated to be more intuitive, particularly for configuring the
connections to N200s. Each N200 field in the config file now supports an addr field and three channel fields.
These channel fields map to the one transmit and two receive channels on the front of each N200. The value of each
field is a physical antenna that the channel is connected to. This format removes any redundancy or edge case
configurations that previously were not supported.
Created a daemon for automating restarts of the radar, with optional Slack webhook integration for automated alerts
if the radar has restarted consecutive times.
Made the realtime process optional. It can be disabled by passing --realtime-off to steamed_hams.py.
Experiment Slice changes
The DecimationScheme object for filtering and downsampling raw voltage samples can now be defined per slice.
Slices that are CONCURRENT interfaced must share the same DecimationScheme.
Complex phases of transmit antennas now stored in data files as tx_antenna_phases.
To create an experiment slice that does not transmit, you must omit tx_beam_order or set it to None, and set rxonly to True
Experiments may now specify a function for calculating the complex phase for each antenna for beamforming received data, using the rx_antenna_pattern field.
Enabled tuning of the N200 center frequencies for TX and RX during an experiment. Tuning occurs at the start of an
averaging period, so all slices that are SEQUENCE or CONCURRENT interfaced must share center frequencies. Center frequencies can be specified per-slice using the txctrfreq and rxctrfreq fields.
Renamed rx_int_antennas to rx_intf_antennas.
Minor Features
Directory structure: The code base has been refactored. The source code for running the radar is in src/,
scripts for starting/stopping the radar, installing dependencies, etc. are in scripts/, the scheduler code is
in scheduler/, config files are in config/, and tests are in tests/.
Negative CPID is only used if the --embargo flag is passed to steamed_hams.py. This can be configured in the
schedule as needed.
In multi-beam averaging periods, all beams are served by the realtime module.
Created a Jupyter notebook for testing out new DecimationScheme objects and visualizing their performance.
Added more options for array configuration in the NEC generation script.
Removed the email functionality of the scheduler.
Added Slack webhook integration to notify when a schedule file has been synced to a site computer.
Updated the scheduler to verify that all future experiments are valid, i.e. the experiment files exist and the
fields of each slice pass the internal checks of Borealis