File size: 1,755 Bytes
d196012
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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/"