Skip to content

Version 0.7

Latest
Compare
Choose a tag to compare
@RemingtonRohel RemingtonRohel released this 10 Jun 17:54
739c553

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