#!/bin/bash
#SBATCH --job-name=EHD_ffpost
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=5
#SBATCH --time=00:30:00
#SBATCH --output=/home/tanpv/Progs/claude/QG_1/logs/ffpost_%j.out
#SBATCH --error=/home/tanpv/Progs/claude/QG_1/logs/ffpost_%j.err
set -euo pipefail
ROOT=/home/tanpv/Progs/claude/QG_1
PY=/home/tanpv/.conda/envs/ehd/bin/python
export LD_LIBRARY_PATH=/home/tanpv/.conda/envs/ehd/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export OMP_NUM_THREADS=5 MKL_NUM_THREADS=5
cd "$ROOT"

echo "=== stage 25: v4 full-field ResU-Net single-member out-of-sample inventory ==="
$PY scripts/25_verify_v3zoo.py --indir outputs/loyo_pred_v4ff --pattern "pred_v4ff_*.npz" --out-prefix v4ff

echo "=== head-to-head: v4 true-spatial ffresunet  vs  v3 box-index resunet ==="
$PY - <<'PY'
import pandas as pd, os
T="results/tables"
v4=pd.read_csv(f"{T}/v4ff_scores_by_model_block.csv")
v3=pd.read_csv(f"{T}/v3dl_scores_by_model_block.csv")
a=v4[v4.family=="ffresunet"][["block","bss","SEDI","auc"]].rename(
    columns={"bss":"bss_v4","SEDI":"SEDI_v4","auc":"auc_v4"})
b=v3[v3.family=="resunet"][["block","bss","SEDI","auc"]].rename(
    columns={"bss":"bss_v3","SEDI":"SEDI_v3","auc":"auc_v3"})
order=["W1","W2","W3","W4","W5","W6"]
m=a.merge(b,on="block").set_index("block").reindex(order).reset_index()
m["d_bss"]=(m.bss_v4-m.bss_v3).round(4)
m["d_SEDI"]=(m.SEDI_v4-m.SEDI_v3).round(4)
m.to_csv(f"{T}/v4_vs_v3_resunet.csv",index=False)
pd.set_option("display.width",140)
print(m.to_string(index=False))
print("\n[post] wrote results/tables/v4_vs_v3_resunet.csv")
print("[post] positive d_bss / d_SEDI => the TRUE spatial field beats the box-index resunet")
PY
echo "=== done $(date +%T) ==="
