#!/bin/bash # Full REAL-data EHD pipeline. Every input is built from the actual 1.5 deg MARS # download (txtm/srf_daily/srf_24h/plev), so nothing is mixed with the proxy. # Steps 1-3 are moderate login-node preprocessing; step 4 submits the multi-node # SLURM array + reduce. Proxy outputs are left untouched (separate dirs). set -e cd /home/tanpv/Progs/claude/HW_EC_10 PY=/home/tanpv/.conda/envs/ehd/bin/python COARSE=outputs/real/tx_ec_1.5_real.nc DSDIR=outputs/downscale_real TXDS=$DSDIR/pred/pred_bcsd.npy PRED=outputs/real/ec15_predictors.nc echo "==== [1/4] real coarse Tx from txtm (native 1.5 deg) $(date '+%F %T') ====" if [ ! -f "$COARSE" ]; then $PY -u src/build_ec_tx.py --root data/nc/txtm \ --pattern "txtm_cf_{year}-{mmdd}.nc" --out "$COARSE" --jobs 10 else echo " exists, skip"; fi echo "==== [2/4] real BCSD downscaling $(date '+%F %T') ====" if [ ! -f "$TXDS" ]; then $PY -u src/downscale.py --method bcsd --coarse "$COARSE" \ --out "$DSDIR/baselines.json" else echo " exists, skip"; fi echo "==== [3/4] real 46-var predictor cube $(date '+%F %T') ====" if [ ! -f "$PRED" ]; then $PY -u src/build_ec15_real.py --jobs 10 --out "$PRED" else echo " exists, skip"; fi echo "==== [4/4] submit multi-node EHD on REAL inputs $(date '+%F %T') ====" bash src/launch_ehd_full.sh \ --pred "$PRED" --txds "$TXDS" \ --out outputs/downscale/ehd_full_real.json \ --part-dir outputs/downscale/fold_parts_real echo "==== pipeline dispatched $(date '+%F %T') ===="