#!/usr/bin/env bash
# SpectrumNet experiment (docs/research/08-spectrumnet.md): inspect the urban maps, train U-Nets on 3.5 GHz / Rx 1.5 m,
# apply them to the 2 km mosaic. Data: scripts/get_spectrumnet.sh --full. Results: runs/spectrumnet/.
# Runs that already have a test.json are skipped. COMPARE_NPZ: maps written by rcm_ml.cloudrf_compare (git-ignored), for
# agreement with our tracer on the mosaic.
set -euo pipefail
cd "$(dirname "$0")/.."
PY=${PY:-.venv/bin/python}
COMPARE_NPZ=${COMPARE_NPZ:-runs/cloudrf/mosaic_2km_anchor/compare.npz}
export PYTHONPATH=.
R=runs/spectrumnet
train() {  # name, flags...
  local name=$1; shift
  [ -f $R/$name/test.json ] || $PY -m rcm_ml.spectrumnet train --name "$name" "$@" > /dev/null
}
$PY -m rcm_ml.spectrumnet inspect > /dev/null
train geom_seed0 --seed 0 & train geom-dist_seed0 --dist --seed 0; wait
train geom-gate_seed0 --gate --seed 0 & train geom-dist-gate_seed0 --dist --gate --seed 0; wait
train geom-dist-gate_seed1 --dist --gate --seed 1 & train geom-dist-gate_seed2 --dist --gate --seed 2; wait
$PY -m rcm_ml.spectrumnet mosaic --compare-npz "$COMPARE_NPZ" --fig \
  --runs $R/geom_seed0,$R/geom-dist_seed0,$R/geom-gate_seed0,$R/geom-dist-gate_seed0,$R/geom-dist-gate_seed1,$R/geom-dist-gate_seed2 > /dev/null
