Background
Cable insertion loss is a common source of chamber drift (connector wear, cable flex fatigue). The active-cal drift tracker records the generated TRP Cal file + reference-file metadata, but it does not currently capture cable-loss measurements (.s2p Touchstone files) that operators run during a full cal session.
Goal
Extend drift tracking so .s2p cable-loss files measured during or alongside an active cal are ingested as a third cal type, with their own compare + plot workflow.
Acceptance Criteria
Notes
- User noted they do not currently have a consistent archive of historical
.s2p files — this may need to start building an archive from the next cal onward. Prioritize accordingly.
- Consider: should cable-loss drift automatically subtract from active-cal drift numbers? That is a debatable correction — capture the raw numbers first, leave correction as a separate flag/feature.
Related: v1 tracker at plot_antenna/cal_drift.py. Existing RF tool scikit-rf is not currently a dependency; evaluate whether to add it vs. hand-roll a minimal Touchstone parser.
Background
Cable insertion loss is a common source of chamber drift (connector wear, cable flex fatigue). The active-cal drift tracker records the generated TRP Cal file + reference-file metadata, but it does not currently capture cable-loss measurements (.s2p Touchstone files) that operators run during a full cal session.
Goal
Extend drift tracking so
.s2pcable-loss files measured during or alongside an active cal are ingested as a third cal type, with their own compare + plot workflow.Acceptance Criteria
plot_antenna/cal_drift.py(S21 magnitude over frequency; dB or linear input both accepted)..s2pfiles appear ascal_type = "cable_loss"rows inruns.csv..s2pfiles and compare any two for drift (ΔdB vs frequency, single-pol plot — no H/V split).cal_drift_ingestrecognizes.s2pfiles alongsideTRP Cal *.txt..s2pfile + parse/compare tests..s2ppair (when available) ingests cleanly and produces a drift plot.Notes
.s2pfiles — this may need to start building an archive from the next cal onward. Prioritize accordingly.Related: v1 tracker at
plot_antenna/cal_drift.py. Existing RF toolscikit-rfis not currently a dependency; evaluate whether to add it vs. hand-roll a minimal Touchstone parser.