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:
- scan each hostname folder for RF result files
- parse JSON, JSON-lines, text, YAML, CSV, or legacy archive formats
- recover
experiment_id,cycle_id,hostname,pilot_phase, andpilot_amplitude - apply the cable correction from
client/ref-RF-cable.yml - join with rover positions from
server/record/data/exp-*-positions.csv - drop consecutive duplicate-position cycles using
grid.min_spacing / 5per axis - write one NetCDF dataset
Useful commands:
python processing/parsing/extract_csi_from_smb_v2.pypython processing/parsing/extract_csi_from_smb_v2.py --max-measurements 10python processing/parsing/extract_csi_from_smb_v2.py --output results/csi_custom.ncpython docs/scripts/export_notebook_movies.pyThe 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:
- Notebook: RF Xarray Structure
- Notebook: Acoustic Xarray Structure
- Notebook: RF Dataset Overview
- Notebook: Rover Positions
- Notebook: CSI Per Position
- Notebook: RF And Acoustic At One Position
- Notebook: CSI Movies
Example videos generated from the merged-dataset movie tutorial: