Post-flight data analysis plan and tooling for BLESS (BEXUS HaLow Evaluation in Stratospheric Systems, BX38/39).
The plan updates SED v4 §7.1. It turns the ground-station logs of the flight into a model of how stratospheric conditions affect the Wi-Fi HaLow link, and it measures how much range GROUP mode adds over STA mode.
Status: skeleton v0. Stages E0 and E1 have working code. E2 onwards are specified in docs/PLAN.md and still to be built.
- Only ground-station logs exist. There are no on-board logs; the SPI Flash is not read.
- Valid link quality is the payload RSSI inside a HaLow packet, in STA mode. In GROUP the payload reports
rssi = 0. E-Link RSSI and the ground-module RSSI are not the measurement. - Flight policy: start in STA, stay in STA until the HaLow link is lost, then switch manually to GROUP on the payload and in GS Config. No automation. See
docs/FLIGHT_PROCEDURE.md. - The radiation sensor is not used.
RandRacumare removed from the model. - Data in scope: Radar Hill to Dome/MPF link tests (12 and 15 Oct 2026) and the flight. MPF-to-MPF bench tests are out of scope.
| Path | Content |
|---|---|
docs/PLAN.md |
Stages E0–E8, corrections to SED §7.1, models and schedule from T0 |
docs/DATA_CONTRACT.md |
Columns of every log, validity rules and known quirks |
docs/FLIGHT_PROCEDURE.md |
What to record during the flight and the manual STA → GROUP procedure |
docs/DECISIONS.md |
Decisions taken and decisions still open |
docs/BACKLOG.md |
Ordered tasks to be ready when the data arrives |
config/ |
In-scope session ids (radar_hill_sessions.txt) and RF set-up (rf_config.json) |
src/bless_analysis/ |
Python package: schema, manifest, inventory, geometry, modes, labels (E3), metrics (E4), models (E5-E6), contrast (E7), run (E3-E8) |
tests/ |
Unit tests (standard unittest) |
data/raw/ |
Original logs. Never committed. Read-only after E0 |
data/manifests/ |
SHA-256 manifests of raw data. Committed |
reports/ |
Generated reports |
python -m venv .venv && . .venv/Scripts/activate # Windows Git Bash; on Linux: .venv/bin/activate
pip install -r requirements.txt
export PYTHONPATH=src
python -m unittest discover -s tests -v
# E0: freeze and verify a raw-data folder
python -m bless_analysis.manifest write data/raw --out data/manifests/MANIFEST.sha256
python -m bless_analysis.manifest verify data/raw --manifest data/manifests/MANIFEST.sha256
# E1: inventory and integrity report, Radar Hill sessions only
python -m bless_analysis.inventory data/raw --sessions config/radar_hill_sessions.txt --out reports# E3-E8 rehearsal: clean table, metrics, models, verdicts, figures and report in reports/
python -m bless_analysis.run data/raw/radar_hill --sessions config/radar_hill_sessions.txt \
--config config/rf_config.json --out reportsdata/raw/ holds one folder per ground station: radar_hill/ and dome/.
The in-scope sessions are listed in config/radar_hill_sessions.txt: three from 12 Oct and four from 15 Oct. For the flight, add its session ids to that file or to a new one.
Raw logs are not stored in this repository. They live on the team's shared drive with three verified copies. This repository stores only their hashes (data/manifests/), the code and the reports.