set -euo pipefail cd /home/irteam/data-vol1/models/OrbitFM PY=/home/irteam/.conda/envs/orbit/bin/python ROOT=/home/irteam/data-vol1/models/OrbitFM SW=$ROOT./data/SW-All.csv # CACHE=$ROOT./cache/tle_v4_TLEs_5acc79_2005-2024_20_g1_v5cmtle_feats_c1s1m64L1.npz SPLIT_MODE=time mkdir -p ./cache ./ckpt ./eval_out if [ ! -s "$SW" ]; then echo "[0] downloading space weather -> $SW" curl -L -o "$SW" https://celestrak.org/SpaceData/SW-All.csv fi if [ ! -f "$CACHE" ]; then echo "[1] building v4 cache -> $CACHE" $PY ./utils/tle_dataset.py \ --start-year 2005 --end-year 2024 \ --sw-csv "$SW" --cache-dir ./cache \ --window-patches 3 --min-grid-points 64 else echo "[1] cache present: $CACHE" fi $PY ./train/train.py --cache-file "$CACHE" --out ./ckpt \ --model Datadog/Toto-2.0-2.5B --window-patches 8 --batch-size 16 \ --lr 4e-5 --max-steps 10000 --warmup 1000 --val-every 2000 \ --drift-loss-weight 4.0 --split-mode "$SPLIT_MODE" \ --train-until 2022-01-01 --valid-until 2023-01-01 $PY ./eval/eval.py --cache-file "$CACHE" \ --ckpt ./ckpt/toto_v2_Toto-2.0-2.5B.pt --model Datadog/Toto-2.0-2.5B \ --split test --split-mode "$SPLIT_MODE" --recon sgp4 \ --context-days 64 --horizon-days 30 --horizons 1 3 7 14 30 60 90 120 \ --per-sat-samples 50 --max-eval-sats 1500 \ --out-csv ./eval_out/per_sat_2.5b_test.csv $PY ./eval/eval.py --cache-file "$CACHE" \ --ckpt ./ckpt/toto_v2_Toto-2.0-2.5B.pt --model Datadog/Toto-2.0-2.5B \ --split test --split-mode "$SPLIT_MODE" --recon integrate \ --context-days 64 --horizon-days 30 --horizons 1 3 7 14 30 60 90 120 \ --per-sat-samples 50 --max-eval-sats 1500 \ --out-csv ./eval_out/per_sat_2.5b_test_integrate.csv echo "[done] per-satellite CSVs in ./eval_out/"