035 — QC threshold sensitivity sweep

035 — QC threshold sensitivity sweep#

Run the four science-validation tests across a grid of QC threshold combinations (cycle-confidence x day-score) to identify the operating point that maximises validation pass-rate without over-pruning data.

Output: 035_threshold_sensitivity.csv + .json for the publication-quality scorecard.

Runs on the bundled synthetic sample (sweep grid produces a small output since validation skips on synthetic).

from palmwtc.config import DataPaths
from palmwtc.validation import DEFAULT_CONFIG

paths = DataPaths.resolve()
print(paths.describe())
print(f"Validation DEFAULT_CONFIG keys: {list(DEFAULT_CONFIG)[:6]}...")
DataPaths (source=sample (bundled synthetic), site=libz):
  raw_dir       = /home/runner/work/palmwtc/palmwtc/src/palmwtc/data/sample/synthetic
  processed_dir = /home/runner/work/palmwtc/palmwtc/src/palmwtc/data/sample/Data/Integrated_QC_Data
  exports_dir   = /home/runner/work/palmwtc/palmwtc/src/palmwtc/data/sample/exports
  config_dir    = /home/runner/work/palmwtc/palmwtc/src/palmwtc/data/sample/config
  extras        = <none>
Validation DEFAULT_CONFIG keys: ['co2_flux_col', 'h2o_flux_col', 'co2_slope_col', 'radiation_col', 'temp_col', 'vpd_col']...
# Sensitivity sweep across (cycle_confidence, day_score) grid
# uses run_science_validation under the hood. On synthetic, all
# validation runs report "skipped" — sweep returns an empty grid.

print("[stub] full sensitivity sweep is run-on-real-data only.")
print("API: from palmwtc.validation import run_science_validation")
print("     for thr_cyc in [0.4, 0.5, 0.6]:")
print("       for thr_day in [0.5, 0.6, 0.7]:")
print("         result = run_science_validation(cycles, ...)")
[stub] full sensitivity sweep is run-on-real-data only.
API: from palmwtc.validation import run_science_validation
     for thr_cyc in [0.4, 0.5, 0.6]:
       for thr_day in [0.5, 0.6, 0.7]:
         result = run_science_validation(cycles, ...)

The sweep output drives the production threshold choice in palmwtc.windows.DEFAULT_CONFIG. For palmwtc 0.1 the defaults match those validated on the LIBZ dataset; updates require a fresh sweep.