Skip to content

RF Post-Processing

This page is mainly for maintainers and operators.

If you already received a processed .nc file and only want to analyze the data, start in the tutorial track instead:

The active RF post-processing path is:

  • processing/parsing/extract_csi_from_smb_v2.py

It performs:

  1. scan each hostname folder for RF result files
  2. parse JSON, JSON-lines, text, YAML, CSV, or legacy archive formats
  3. recover experiment_id, cycle_id, hostname, pilot_phase, and pilot_amplitude
  4. apply the cable correction from client/ref-RF-cable.yml
  5. join with rover positions from server/record/data/exp-*-positions.csv
  6. drop consecutive duplicate-position cycles using grid.min_spacing / 5 per axis
  7. write one NetCDF dataset

Useful commands:

Terminal window
python processing/parsing/extract_csi_from_smb_v2.py
python processing/parsing/extract_csi_from_smb_v2.py --max-measurements 10
python processing/parsing/extract_csi_from_smb_v2.py --output results/csi_custom.nc
python docs/scripts/export_notebook_movies.py

The resulting dataset contains:

  • coordinates: experiment_id, cycle_id, hostname
  • rover variables: rover_x, rover_y, rover_z, position_available
  • RF variables: csi_real, csi_imag, csi_available
  • dataset attributes with coverage counts, duplicate-position filter metadata, and last-measurement metadata

The recommended analysis workflow is now published as notebook-backed docs pages:

Example videos generated from the merged-dataset movie tutorial: