Loadingโฆ
Loadingโฆ
OrbitFM is a satellite orbit prediction model that forecasts future orbital elements โ and, through SGP4, future satellite positions โ directly from a satellite's historical Two-Line Element (TLE) time series. It is built by continued pretraining (fine-tuning) of the Datadog/Toto-2.0-2.5B time-series foundation model on 20 years (2005โ2024) of cleaned, daily-resampled TLE records for low-Earth-orbit (LEO) objects, enriched with physics-derived features and space-weather (solar / geomagnetic) driver channels.
OrbitFM์ ์์ฑ์ ๊ณผ๊ฑฐ TLE(Two-Line Element) ์๊ณ์ด๋ก๋ถํฐ ๋ฏธ๋ ๊ถค๋ ์์๋ฅผ โ ๊ทธ๋ฆฌ๊ณ SGP4๋ฅผ ํตํด ๋ฏธ๋ ์์ฑ ์์น๋ฅผ โ ์ง์ ์์ธกํ๋ ์์ฑ ๊ถค๋ ์์ธก ๋ชจ๋ธ์ ๋๋ค. ์๊ณ์ด ํ์ด๋ฐ์ด์ ๋ชจ๋ธ Datadog/Toto-2.0-2.5B๋ฅผ, ์ ์ ํ ์ผ ๋จ์๋ก ์ฌํ์งํ 20๋ ์น(2005โ2024) ์ ๊ถค๋(LEO) ์์ฑ TLE ๊ธฐ๋ก์ ๋ฌผ๋ฆฌ ํ์ ํผ์ฒ์ ์ฐ์ฃผ๊ธฐ์(ํ์ยท์ง์๊ธฐ ํ๋) ์ฑ๋์ ๋ํด continued pretraining(fine-tuning)ํ์ฌ ๋ง๋ค์์ต๋๋ค.
The standard operational approach โ propagating the last observed TLE forward with SGP4 ("persistence") โ is very strong at short horizons but degrades quickly as atmospheric drag, solar activity, and secular element drift accumulate. OrbitFM learns these drift dynamics from data: at horizons of 7 days and beyond it roughly halves the mean position error of the SGP4 persistence baseline, and at the 30-day horizon it reduces the median per-satellite position RMSE from โ966 km to โ140 km, beating the baseline on 81.3% of evaluated satellites.
๊ธฐ์กด ์ด์ฉ ๋ฐฉ์ โ ๋ง์ง๋ง์ผ๋ก ๊ด์ธก๋ TLE๋ฅผ SGP4๋ก ์ ํํ๋ "persistence" ๋ฐฉ์ โ ์ ๋จ๊ธฐ ์์ธก์์๋ ๋งค์ฐ ๊ฐ๋ ฅํ์ง๋ง, ๋๊ธฐ ํญ๋ ฅยทํ์ ํ๋ยท๊ถค๋ ์์์ ์ฅ๊ธฐ drift๊ฐ ๋์ ๋ ์๋ก ์ค์ฐจ๊ฐ ๋น ๋ฅด๊ฒ ์ปค์ง๋๋ค. OrbitFM์ ์ด๋ฌํ drift ๋์ญํ์ ๋ฐ์ดํฐ์์ ํ์ตํฉ๋๋ค. 7์ผ ์ด์ horizon์์ SGP4 persistence baseline์ ํ๊ท ์์น ์ค์ฐจ๋ฅผ ์ฝ ์ ๋ฐ์ผ๋ก ์ค์ด๋ฉฐ, 30์ผ horizon์์๋ ์์ฑ๋ณ ์์น RMSE ์ค์๊ฐ์ ์ฝ 966 km์์ ์ฝ 140 km๋ก ๋ฎ์ถ๊ณ ํ๊ฐ ๋์ ์์ฑ์ **81.3%**์์ baseline๋ณด๋ค ์ฐ์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์์ต๋๋ค.
| Model type | Decoder-style multivariate time-series foundation model (Toto-2 architecture), continued-pretrained for orbital element forecasting |
| Base model | Datadog/Toto-2.0-2.5B (~2.5B parameters) |
| Task | Multivariate time-series forecasting โ satellite orbital element / position prediction |
| Input | Per-satellite daily-grid multivariate series, 25 channels (6 orbital targets + 16 physics features + 3 space-weather features), default context of 8 patches ร 32 days = 256 days (evaluation uses 64-day contexts) |
| Output | Quantile forecasts (pinball/quantile head) of the 6 orbital target channels over the forecast horizon; median quantile used for point forecasts |
| Position reconstruction | Predicted element drifts are anchored at the last observed TLE, integrated into absolute elements, and converted to TEME position via SGP4 |
| Training data | Public TLE archives, 2005โ2024, LEO objects only (median mean motion โฅ 11.25 rev/day), outlier-cleaned; space weather from CelesTrak SW-All.csv |
| Languages | Not applicable (numeric time series) |
| License | Apache-2.0 |
| Developed by | ์ธ์ข ๋ํ๊ต ์ธ๊ณต์ง๋ฅ ์ฐ๊ตฌ์ค & PCN R&S ์ฐ๊ตฌ์ |
The model consumes a per-satellite daily-grid multivariate series of 25 channels and outputs quantile forecasts for the 6 orbital target channels; the median quantile is used as the point forecast, and positions are recovered by anchoring the predicted drifts at the last observed TLE and propagating with SGP4.
๋ชจ๋ธ์ ์์ฑ๋ณ 25์ฑ๋ daily-grid ๋ค๋ณ๋ ์๊ณ์ด์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ 6๊ฐ orbital target ์ฑ๋์ ๋ํ quantile ์์ธก์ ์ถ๋ ฅํฉ๋๋ค. point forecast๋ก๋ ์ค์๊ฐ quantile์ ์ฌ์ฉํ๋ฉฐ, ์์ธก๋ drift๋ฅผ ๋ง์ง๋ง ๊ด์ธก TLE์ anchorํ์ฌ ์ ๋ ์์๋ก ๋ณต์ํ ๋ค SGP4๋ก ์ ํํด ์์น๋ฅผ ๊ณ์ฐํฉ๋๋ค.
Propagating the most recent TLE with SGP4 implicitly assumes the current drag state and element rates stay fixed. Over multi-day horizons, this ignores:
๊ฐ์ฅ ์ต๊ทผ TLE๋ฅผ SGP4๋ก ์ ํํ๋ ๋ฐฉ์์ ํ์ฌ์ drag ์ํ์ ์์ ๋ณํ์จ์ด ๊ทธ๋๋ก ์ ์ง๋๋ค๊ณ ์๋ฌต์ ์ผ๋ก ๊ฐ์ ํฉ๋๋ค. ๋ฉฐ์น ์ด์์ horizon์์๋ ๋ค์ ์์ธ๋ค์ด ๋ฌด์๋ฉ๋๋ค.
OrbitFM consumes the satellite's recent element history plus the space-weather record, and predicts how the elements will drift โ exactly the information a single-TLE propagation lacks.
OrbitFM์ ์์ฑ์ ์ต๊ทผ ๊ถค๋ ์์ ์ด๋ ฅ์ ์ฐ์ฃผ๊ธฐ์ ๊ธฐ๋ก์ ๋ํ์ฌ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํ๊ณ , ๊ถค๋ ์์๊ฐ ์์ผ๋ก ์ด๋ป๊ฒ driftํ ์ง๋ฅผ ์์ธกํฉ๋๋ค โ ๋จ์ผ TLE ์ ํ ๋ฐฉ์์ ๊ฒฐ์ฌ๋ ๋ฐ๋ก ๊ทธ ์ ๋ณด์ ๋๋ค.
The model input is a fixed 25-channel daily-grid series per satellite. Only the first 6 channels are prediction targets; the rest are input-only context (masked out of the loss).
๋ชจ๋ธ ์ ๋ ฅ์ ์์ฑ๋ณ ๊ณ ์ 25์ฑ๋ daily-grid ์๊ณ์ด์ ๋๋ค. ์ฒ์ 6๊ฐ ์ฑ๋๋ง ์์ธก ๋์์ด๋ฉฐ, ๋๋จธ์ง๋ loss์์ ์ ์ธ๋๋ ์ ๋ ฅ ์ ์ฉ(input-only) ๋ฌธ๋งฅ ์ฑ๋์ ๋๋ค.
| # | Channel | Meaning (EN) | ์๋ฏธ (KR) |
|---|---|---|---|
| 0 | d_bstar_slog_per_day |
Daily drift of signed-log1p(BSTAR) โ drag coefficient trend | signed log BSTAR์ ์ผ๋ณ ๋ณํ๋ (drag ๊ณ์ ์ถ์ธ) |
| 1 | d_mean_motion_per_day |
Daily drift of mean motion โ orbital decay rate | mean motion์ ์ผ๋ณ ๋ณํ๋ (๊ถค๋ ๊ฐ์ ์จ) |
| 2 | eccentricity |
Absolute eccentricity | ์ด์ฌ๋ฅ ์ ๋๊ฐ |
| 3 | inclination_deg |
Absolute inclination (deg) | ๊ถค๋๊ฒฝ์ฌ๊ฐ ์ ๋๊ฐ (deg) |
| 4 | draan_deg_per_day |
RAAN secular rate (deg/day) | RAAN ์ผ๋ณ ๋ณํ์จ (deg/day) |
| 5 | dargp_deg_per_day |
Argument-of-perigee secular rate (deg/day) | argument of perigee ์ผ๋ณ ๋ณํ์จ (deg/day) |
Drift (residual) targets. BSTAR and mean motion barely change in absolute terms over a forecast window, so predicting absolutes collapses to persistence. OrbitFM instead predicts their per-day deltas โ zero-mean, small-magnitude drift signals โ which amplifies exactly the learning signal that separates the model from persistence. Absolute anchors live in an auxiliary array and the trajectory is reconstructed as anchor + cumulative predicted delta.
Drift(residual) target ์ค๊ณ. BSTAR์ mean motion์ forecast window ์์์ ์ ๋๊ฐ์ด ๊ฑฐ์ ๋ณํ์ง ์์ผ๋ฏ๋ก, ์ ๋๊ฐ์ ์ง์ ์์ธกํ๋ฉด ๋ชจ๋ธ์ด persistence์ ๊ฐ๊น์ด ์์ธก์ผ๋ก ์๋ ดํ๊ฒ ๋ฉ๋๋ค. OrbitFM์ ๋์ ๋ ๋ณ์์ ์ผ๋ณ delta โ ํ๊ท ์ด 0์ ๊ฐ๊น๊ณ ํฌ๊ธฐ๊ฐ ์์ drift ์ ํธ โ ๋ฅผ ์์ธกํ์ฌ, ๋ชจ๋ธ์ persistence์ ๊ตฌ๋ถ ์ง๋ ํ์ต ์ ํธ๋ฅผ ๊ทธ๋๋ก ์ฆํญํฉ๋๋ค. ์ ๋๊ฐ anchor๋ ๋ณด์กฐ(aux) ๋ฐฐ์ด์ ์ ์ฅ๋๋ฉฐ, ๊ถค์ ์ anchor + ์์ธก delta์ ๋์ ํฉ์ผ๋ก ๋ณต์๋ฉ๋๋ค.
Angles are never predicted in absolute form. Mean anomaly, RAAN, and argument of perigee are 0โ360ยฐ circular variables; predicting them directly creates 359ยฐ-vs-1ยฐ discontinuity artifacts. Mean anomaly is unwrapped into a cumulative phase using mean motion (more reliable than the TLE rev counter), and the forecast phase is re-integrated trapezoidally from the predicted mean-motion trajectory. RAAN/argp are forecast as daily rates and cumulatively summed from the anchor.
์ ๋ ๊ฐ๋๋ ์ง์ ์์ธกํ์ง ์์ต๋๋ค. mean anomaly, RAAN, argument of perigee๋ 0โ360ยฐ๋ฅผ ์ํํ๋ ๊ฐ๋ํ ๋ณ์์ด๋ฏ๋ก, ์ง์ ์์ธกํ๋ฉด 359ยฐ์ 1ยฐ์ฒ๋ผ ์ค์ ๋ก๋ ๊ฐ๊น์ด ๊ฐ์ด ์์น์ ์ผ๋ก ๋ฉ๊ฒ ํํ๋๋ ๋ฌธ์ ๊ฐ ์๊น๋๋ค. mean anomaly๋ mean motion์ ์ด์ฉํด ๋์ ์์์ผ๋ก unwrapํ๋ฉฐ(TLE์ rev counter ํ๋๋ณด๋ค ์ ๋ขฐ๋๊ฐ ๋์), ์์ธก ์์์ ์์ธก๋ mean motion ๊ถค์ ์ผ๋ก๋ถํฐ ์ฌ๋ค๋ฆฌ๊ผด ์ ๋ถ์ผ๋ก ๋ณต์ํฉ๋๋ค. RAAN/argp๋ ์ผ๋ณ ๋ณํ์จ๋ก ์์ธกํ ๋ค anchor์์ ๋์ ํฉ์ฐํฉ๋๋ค.
Engineered features inspired by the cm-tle-pred benchmark, computed per grid day from the elements (fully vectorized two-body Kepler solve, no per-day sgp4init):
sat_rx, sat_ry, sat_rz โ ECI position (km); sat_vx, sat_vy, sat_vz โ ECI velocity (km/s)semimajor_axis (km), period_min (min/rev), apoapsis_alt, periapsis_alt (km)ma_cos/ma_sin, raan_cos/raan_sin, argp_cos/argp_sin โ cyclical encodings of the angular elementscm-tle-pred ๋ฒค์น๋งํฌ์์ ์ฐฉ์ํ ์์ง๋์ด๋ง ํผ์ฒ๋ก, ๊ฐ grid day์ ๊ถค๋ ์์๋ก๋ถํฐ ๊ณ์ฐ๋ฉ๋๋ค(์์ ๋ฒกํฐํ๋ ์ด์ฒด Kepler ํ์ด ์ฌ์ฉ, ์ผ๋ณ sgp4init ์์).
sat_rx, sat_ry, sat_rz โ ECI ์์น (km); sat_vx, sat_vy, sat_vz โ ECI ์๋ (km/s)semimajor_axis ์ฅ๋ฐ๊ฒฝ (km), period_min ๊ถค๋ ์ฃผ๊ธฐ (๋ถ/rev), apoapsis_alt ์์ง์ ๊ณ ๋, periapsis_alt ๊ทผ์ง์ ๊ณ ๋ (km)ma_cos/ma_sin, raan_cos/raan_sin, argp_cos/argp_sin โ ๊ฐ๋ํ ์์์ sin/cos ์ํ ์ธ์ฝ๋ฉf107 โ daily observed F10.7 cm solar radio flux (solar EUV proxy)
f107_81 โ 81-day centered mean of F10.7
ap โ daily average Ap geomagnetic index
f107 โ ์ผ๋ณ ๊ด์ธก F10.7 cm ํ์ ์ ํ ํ๋ญ์ค (ํ์ EUV ๋๋ฆฌ ์งํ)
f107_81 โ F10.7์ 81์ผ ์ค์ฌ ์ด๋ํ๊ท
ap โ ์ผํ๊ท Ap ์ง์๊ธฐ ์ง์
Source: CelesTrak SW-All.csv (daily since 1957; columns F10.7_OBS, F10.7_OBS_CENTER81, AP_AVG). These exogenous drag drivers are what allow a learned model to beat "hold the last mean motion constant" at multi-day horizons.
์ถ์ฒ: CelesTrak SW-All.csv (1957๋
๋ถํฐ ์ผ ๋จ์; F10.7_OBS, F10.7_OBS_CENTER81, AP_AVG ์ด ์ฌ์ฉ). ์ด ์ธ์์ drag ๊ตฌ๋ ๋ณ์๋ค์ด ์๊ธฐ์ ํ์ต ๊ธฐ๋ฐ ๋ชจ๋ธ์ด ๋ฉฐ์น ์ด์์ horizon์์ "๋ง์ง๋ง mean motion์ ๊ทธ๋๋ก ์ ์ง"ํ๋ ๋ฐฉ์์ ์ด๊ธธ ์ ์์ต๋๋ค.
[mean_anomaly, RAAN, argp, mean_motion_abs, bstar_slog_abs] per grid day โ the absolute reference values used to anchor/reconstruct forecasts and to compute truth.
grid day๋ณ [mean_anomaly, RAAN, argp, mean_motion_abs, bstar_slog_abs] โ ์์ธก ๋ณต์์ anchor ๋ฐ ground truth ๊ณ์ฐ์ ์ฌ์ฉ๋๋ ์ ๋ ๊ธฐ์ค๊ฐ์
๋๋ค.
Raw TLE archives are noisy; the cleaning pipeline was one of the largest accuracy levers.
์๋ณธ TLE archive์๋ ๋ ธ์ด์ฆ๊ฐ ๋ง์ผ๋ฉฐ, ์ ์ ํ์ดํ๋ผ์ธ์ ๊ฐ์ฅ ํฐ ์ ํ๋ ํฅ์ ์์ธ ์ค ํ๋์์ต๋๋ค.
.npz per configuration..npz ์บ์๋ก ์ ์ฅํฉ๋๋ค.Satellites with fewer than 64 observed grid days are excluded at cache-build time.
๊ด์ธก๋ grid day๊ฐ 64์ผ ๋ฏธ๋ง์ธ ์์ฑ์ ์บ์ ์์ฑ ๋จ๊ณ์์ ์ ์ธ๋ฉ๋๋ค.
Fine-tuning (continued pretraining) from Toto-2.0-2.5B pretrained weights, with the next-patch quantile (pinball) loss in Toto's asinh-scaled space applied only to the 6 orbital channels โ physics and solar channels are context the model reads but is never asked to forecast.
Toto-2.0-2.5B ์ฌ์ ํ์ต ๊ฐ์ค์น๋ก๋ถํฐ fine-tuning(continued pretraining)ํ์์ผ๋ฉฐ, Toto์ asinh ์ค์ผ์ผ ๊ณต๊ฐ์์์ next-patch quantile(pinball) loss๋ฅผ 6๊ฐ orbital ์ฑ๋์๋ง ์ ์ฉํ์ต๋๋ค. ๋ฌผ๋ฆฌ ํผ์ฒ์ ์ฐ์ฃผ๊ธฐ์ ์ฑ๋์ ๋ชจ๋ธ์ด ์ฝ๊ธฐ๋ง ํ๊ณ ์์ธกํ๋๋ก ์๊ตฌ๋์ง ์๋ ๋ฌธ๋งฅ ์ ๋ณด์ ๋๋ค.
| Hyperparameter | Value |
|---|---|
| Base checkpoint | Datadog/Toto-2.0-2.5B (pretrained init) |
| Objective | Next-patch quantile pinball loss (asinh-scaled), orbital channels only |
| Drift-channel loss weight | ร4.0 on d_bstar_slog_per_day and d_mean_motion_per_day |
| Optimizer | AdamW (ฮฒโ = 0.9, ฮฒโ = 0.95, weight decay 0) |
| Learning rate | 4e-5, linear warmup 1,000 steps, cosine decay to lr/10 |
| Max steps | 10,000 |
| Batch size | 16 |
| Context window | 8 patches ร patch_size 32 = 256 days (stride 4 patches) |
| Precision | bf16 autocast (CUDA) |
| Gradient clipping | 1.0 |
| Validation | Every 2,000 steps; best-validation and final checkpoints saved |
| Seed | 42 |
The two drift channels (d_bstar_slog_per_day, d_mean_motion_per_day) receive a ร4.0 loss weight: SGP4 along-track position error is governed by mean motion and drag, so upweighting them aligns the training objective with position accuracy.
๋ drift ์ฑ๋(d_bstar_slog_per_day, d_mean_motion_per_day)์๋ 4๋ฐฐ์ loss ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ต๋๋ค. SGP4์ along-track ์์น ์ค์ฐจ๋ mean motion๊ณผ drag๊ฐ ์ข์ฐํ๋ฏ๋ก, ์ด ๊ฐ์ค์น๋ ํ์ต ๋ชฉ์ ํจ์๋ฅผ ์์น ์ ํ๋์ ์ ๋ ฌ์ํต๋๋ค.
The default split is by time, so evaluation is a true forecasting test with no future leakage:
๊ธฐ๋ณธ ๋ถํ ์ ์๊ฐ ๊ธฐ์ค์ด๋ฏ๋ก, ํ๊ฐ๋ ๋ฏธ๋ ์ ๋ณด ๋์ถ์ด ์๋ ์ค์ ์์ธก ์ํ์ด ๋ฉ๋๋ค.
A cm-tle-pred-style satellite-level 70/15/15 split (deterministic by NORAD-ID hash; every record of a satellite in one split) is also supported via --split-mode satellite.
cm-tle-pred ๋ฐฉ์์ ์์ฑ ๋จ์ 70/15/15 ๋ถํ (NORAD ID ํด์ ๊ธฐ๋ฐ ๊ฒฐ์ ์ ๋ถํ ; ํ ์์ฑ์ ๋ชจ๋ record๊ฐ ๊ฐ์ split์ ์ํจ)๋ --split-mode satellite ์ต์
์ผ๋ก ์ง์๋ฉ๋๋ค.
Protocol. Per-satellite evaluation on the time-split test set (windows ending 2023+): at each anchor the model receives 64 days of true context (solar channels fed as true context), then forecasts the next horizon. Up to 50 anchors per satellite, up to 1,500 satellites. For horizons โค patch size a single forward pass is used (no autoregressive feedback of predicted solar values).
ํ๊ฐ ๋ฐฉ์. ์๊ฐ ๊ธฐ์ค test set(2023๋ ์ดํ์ ๋๋๋ window)์ ๋ํ ์์ฑ๋ณ(per-satellite) ํ๊ฐ์ ๋๋ค. ๊ฐ anchor ์์ ์์ ๋ชจ๋ธ์ 64์ผ์ ์ค์ context(solar ์ฑ๋์ ์ค์ ๊ฐ)๋ฅผ ์ ๋ ฅ๋ฐ์ ์ดํ horizon์ ์์ธกํฉ๋๋ค. ์์ฑ๋น ์ต๋ 50๊ฐ anchor, ์ต๋ 1,500๊ฐ ์์ฑ์ ํ๊ฐํ์ต๋๋ค. horizon์ด patch size ์ดํ์ธ ๊ฒฝ์ฐ ๋จ์ผ forward pass๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์์ธก๋ solar ๊ฐ์ ์๊ธฐํ๊ท์ ํผ๋๋ฐฑ์ด ์์ต๋๋ค.
Baseline. SGP4 persistence โ propagate the last observed TLE unchanged to the target time (the standard operational method).
Baseline. SGP4 persistence โ ๋ง์ง๋ง ๊ด์ธก TLE๋ฅผ ๊ทธ๋๋ก ๋ชฉํ ์์ ๊น์ง ์ ํํ๋ ๋ฐฉ์(ํ์ค ์ด์ฉ ๋ฐฉ๋ฒ)์ ๋๋ค.
Metrics.
sgp4 reconstruction mode, the model's forecast drives SGP4 through an interval-averaged predicted mean motion (BSTAR zeroed to avoid double-counting drag), so the phase stays analytic but at the model's predicted decay rate.ํ๊ฐ ์งํ.
sgp4 ๋ณต์ ๋ชจ๋์์๋ ๋ชจ๋ธ ์์ธก์ด ๊ตฌ๊ฐ ํ๊ท mean motion์ผ๋ก SGP4๋ฅผ ๊ตฌ๋ํ๋ฉฐ(drag ์ด์ค ๋ฐ์์ ๋ง๊ธฐ ์ํด BSTAR๋ 0์ผ๋ก ์ค์ ), ์์ ๊ณ์ฐ์ ํด์์ (SGP4)์ผ๋ก ์ ์งํ๋ ๋ชจ๋ธ์ด ์์ธกํ ๊ฐ์ ์จ์ ๋ฐ๋ฆ
๋๋ค.| Horizon | Model mean RMSE (km) | Baseline mean RMSE (km) | Mean improvement / ํ๊ท ๊ฐ์ ์จ | Model median RMSE (km) | Baseline median RMSE (km) | Model wins / ๋ชจ๋ธ ์ฐ์ธ ์์ฑ ๋น์จ |
|---|---|---|---|---|---|---|
| 1 d | 6.10 | 6.01 | โ1.4% | 3.76 | 2.86 | 55.6% |
| 3 d | 16.73 | 24.89 | +32.8% | 9.69 | 11.75 | 55.5% |
| 7 d | 56.55 | 110.50 | +48.8% | 22.70 | 49.05 | 74.0% |
| 14 d | 199.97 | 399.04 | +49.9% | 50.54 | 192.29 | 82.9% |
| 30 d | 798.75 | 1589.82 | +49.8% | 140.46 | 966.21 | 81.3% |
At 1 day the persistence baseline is already near-optimal โ the last TLE is still fresh โ and the model is on par. From 3 days onward the learned drift model pulls ahead, and from 7 days onward it cuts mean position error roughly in half. The median-error gap is even larger (30 d: 140 km vs. 966 km), showing the improvement holds for the typical satellite rather than being driven by a few outliers.
1์ผ horizon์์๋ ๋ง์ง๋ง TLE์ ์ ๋ณด๊ฐ ์์ง ์ ํจํด persistence baseline์ด ์ด๋ฏธ ๊ฑฐ์ ์ต์ ์ด๋ฉฐ, ๋ชจ๋ธ์ ๊ทธ์ ๋๋ฑํ ์์ค์ ๋๋ค. 3์ผ๋ถํฐ ํ์ต๋ drift ๋ชจ๋ธ์ด ์์๊ธฐ ์์ํ๊ณ , 7์ผ ์ด์์์๋ ํ๊ท ์์น ์ค์ฐจ๋ฅผ ์ฝ ์ ๋ฐ์ผ๋ก ์ค์ ๋๋ค. ์ค์๊ฐ ๊ธฐ์ค ๊ฒฉ์ฐจ๋ ๋ ํฝ๋๋ค(30์ผ: 140 km vs 966 km). ์ด๋ ๊ฐ์ ์ด ์ผ๋ถ ํน์ด ์์ฑ์ ์ํ ๊ฒ์ด ์๋๋ผ ์ผ๋ฐ์ ์ธ ์์ฑ ๋ค์์์ ์์ ์ ์ผ๋ก ๋ํ๋จ์ ๋ณด์ฌ์ค๋๋ค.
| Element | Model | Baseline | Note (EN) | ํด์ (KR) |
|---|---|---|---|---|
| Mean motion | 0.000154 rev/day | 0.000178 rev/day | Model learns part of the decay drift | ๋ชจ๋ธ์ด mean motion drift๋ฅผ ์ผ๋ถ ํ์ต |
| Mean anomaly | 47.03ยฐ | 77.33ยฐ | Long-horizon phase advantage | ์ฅ๊ธฐ phase ์์ธก์์ ๋ชจ๋ธ ์ฐ์ธ |
| Inclination | 0.00185ยฐ | 0.00227ยฐ | Small but consistent gain | ์์ ์ฐจ์ด์ง๋ง ๋ชจ๋ธ์ด ๊ฐ์ |
| Eccentricity | 5.48e-5 | 7.84e-5 | Gain at long horizon | ์ฅ๊ธฐ horizon์์ ๋ชจ๋ธ์ด ๊ฐ์ |
| RAAN | 0.00560ยฐ | 63.11ยฐ | Rate forecasting vs. no-rate baseline โ largest gap | RAAN ๋ณํ์จ ์์ธก ํจ๊ณผ๊ฐ ๋งค์ฐ ํผ |
| Argument of perigee | 10.60ยฐ | 42.04ยฐ | Rate forecasting improves over baseline | ๊ฐ๋ ๋ณํ์จ ์์ธก์ผ๋ก baseline ๋๋น ๊ฐ์ |
The RAAN / argp gains are structural: the persistence baseline holds these angles' rates at zero, while OrbitFM forecasts the daily rates and integrates them. The mean-anomaly gain reflects the mean-motion drift being modeled โ the driver of long-horizon phase (along-track) error.
RAAN / argp์ ๊ฐ์ ์ ๊ตฌ์กฐ์ ์ ๋๋ค. persistence baseline์ ์ด ๊ฐ๋๋ค์ ๋ณํ์จ์ 0์ผ๋ก ๊ณ ์ ํ๋ ๋ฐ๋ฉด, OrbitFM์ ์ผ๋ณ ๋ณํ์จ์ ์์ธกํด ์ ๋ถํ๊ธฐ ๋๋ฌธ์ ๋๋ค. mean anomaly์ ๊ฐ์ ์ mean motion drift๊ฐ ๋ชจ๋ธ๋ง๋ ๊ฒฐ๊ณผ๋ก, ์ด๋ ์ฅ๊ธฐ phase(along-track) ์ค์ฐจ์ ํต์ฌ ์์ธ์ ๋๋ค.
The repository provides the fine-tuned checkpoint (ckpt/toto_v2_Toto-2.0-2.5B-001.pt, ~9.8 GB) and the training / evaluation pipeline (train/train.py, eval/eval.py, utils/). The model is a Toto-2 checkpoint; loading follows the Toto-2 API with the fine-tuned state dict.
์ด ์ ์ฅ์๋ fine-tuning๋ ์ฒดํฌํฌ์ธํธ(ckpt/toto_v2_Toto-2.0-2.5B-001.pt, ์ฝ 9.8 GB)์ ํ์ต/ํ๊ฐ ํ์ดํ๋ผ์ธ(train/train.py, eval/eval.py, utils/)์ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ธ์ Toto-2 ์ฒดํฌํฌ์ธํธ์ด๋ฉฐ, Toto-2 API๋ก ๋ก๋ํ ๋ค fine-tuning๋ state dict๋ฅผ ์ ์ฉํฉ๋๋ค.
import torch
from toto2 import Toto2Model # Toto-2 modeling code
# 1. Load the fine-tuned checkpoint on top of the base architecture
# ๋ฒ ์ด์ค ์ํคํ
์ฒ ์์ fine-tuning๋ ์ฒดํฌํฌ์ธํธ๋ฅผ ๋ก๋
model = Toto2Model.from_pretrained("Datadog/Toto-2.0-2.5B")
ckpt = torch.load("ckpt/toto_v2_Toto-2.0-2.5B-001.pt", map_location="cuda")
model.load_state_dict(ckpt["model"])
model = model.to("cuda").eval()
# 2. Build the 25-channel daily-grid context for one satellite
# ์์ฑ 1๊ธฐ์ 25์ฑ๋ daily-grid context ๊ตฌ์ฑ
# (see utils/tle_dataset.py: build_daily_series / TLEDatasetV2)
# target: (B, 25, T) float โ 6 orbital + 16 physics + 3 solar channels
# target_mask: (B, 25, T) bool โ orbital channels use the coverage mask
batch = {
"target": context.to("cuda"),
"target_mask": mask.to("cuda"),
"series_ids": torch.zeros(context.shape[0], 25, dtype=torch.long, device="cuda"),
}
# 3. Forecast 30 days of element drift (quantile output; take the median knot)
# 30์ผ์น ์์ drift ์์ธก (quantile ์ถ๋ ฅ์์ ์ค์๊ฐ ์ฌ์ฉ)
q = model.forecast(batch, horizon=30, decode_block_size=None, has_missing_values=True)
median_idx = model.output_head.knots.index(0.5)
pred = q[median_idx].float().cpu().numpy() # (B, 25, 30) โ use channels 0..5
# 4. Reconstruct absolute elements from the last observed TLE anchor,
# then propagate to a position with SGP4 (see eval/eval.py)
# ๋ง์ง๋ง ๊ด์ธก TLE anchor์์ ์ ๋ ์์๋ฅผ ๋ณต์ํ ๋ค SGP4๋ก ์์น ์ ํ
from tle_dataset import reconstruct_track
track = reconstruct_track(anchor_aux, pred[0, :6].T) # per-day absolute elements
End-to-end reproduction (cache build โ train โ eval) is scripted in main.sh:
์ ์ฒด ์ฌํ ๊ณผ์ (์บ์ ์์ฑ โ ํ์ต โ ํ๊ฐ)์ main.sh์ ์คํฌ๋ฆฝํธ๋ก ์ ๋ฆฌ๋์ด ์์ต๋๋ค.
# build the 2005-2024 daily-grid cache (downloads SW-All.csv if missing)
# 2005-2024 daily-grid ์บ์ ์์ฑ (SW-All.csv๊ฐ ์์ผ๋ฉด ์๋ ๋ค์ด๋ก๋)
python utils/tle_dataset.py --start-year 2005 --end-year 2024 \
--sw-csv data/SW-All.csv --cache-dir ./cache --window-patches 3 --min-grid-points 64
# fine-tune Toto-2.0-2.5B / Toto-2.0-2.5B fine-tuning
python train/train.py --cache-file $CACHE --model Datadog/Toto-2.0-2.5B \
--window-patches 8 --batch-size 16 --lr 4e-5 --max-steps 10000 --warmup 1000 \
--drift-loss-weight 4.0 --split-mode time \
--train-until 2022-01-01 --valid-until 2023-01-01
# evaluate on the test split (SGP4 reconstruction) / test split ํ๊ฐ (SGP4 ๋ณต์)
python eval/eval.py --cache-file $CACHE --ckpt ./ckpt/toto_v2_Toto-2.0-2.5B-001.pt \
--model Datadog/Toto-2.0-2.5B --split test --split-mode time --recon sgp4 \
--context-days 64 --horizon-days 30 --horizons 1 3 7 14 30 \
--per-sat-samples 50 --max-eval-sats 1500
Dependencies: PyTorch, numpy, pandas, sgp4, huggingface_hub, tqdm, plus the Toto-2 modeling code.
์์กด์ฑ: PyTorch, numpy, pandas, sgp4, huggingface_hub, tqdm, ๊ทธ๋ฆฌ๊ณ Toto-2 ๋ชจ๋ธ๋ง ์ฝ๋.
Intended: research on data-driven orbit prediction; medium-horizon (3โ30 day) LEO orbit forecasting studies; conjunction-screening research; TLE data-quality and space-weather-coupling analysis; baseline for satellite time-series foundation-model research.
Out of scope / not intended: operational collision avoidance or safety-of-flight decisions without independent validation; high-precision ephemeris generation (this is a TLE/SGP4-fidelity model, not a numerical-propagation replacement); non-LEO regimes (MEO/GEO/HEO were filtered out of training); maneuvering-satellite prediction (maneuvers are not modeled).
๊ถ์ฅ ์ฉ๋: ๋ฐ์ดํฐ ๊ธฐ๋ฐ ๊ถค๋ ์์ธก ์ฐ๊ตฌ; ์ค๊ธฐ(3โ30์ผ) LEO ๊ถค๋ ์์ธก ์ฐ๊ตฌ; conjunction screening ์ฐ๊ตฌ; TLE ๋ฐ์ดํฐ ํ์ง ๋ฐ ์ฐ์ฃผ๊ธฐ์ ์ฐ๋ ๋ถ์; ์์ฑ ์๊ณ์ด ํ์ด๋ฐ์ด์ ๋ชจ๋ธ ์ฐ๊ตฌ์ baseline.
๋น๊ถ์ฅ / ๋ฒ์ ์ธ: ๋ ๋ฆฝ ๊ฒ์ฆ ์๋ ์ค์ด์ฉ ์ถฉ๋ ํํผยท๋นํ ์์ ์์ฌ๊ฒฐ์ ; ๊ณ ์ ๋ฐ ๊ถค๋๋ ฅ(ephemeris) ์์ฑ(๋ณธ ๋ชจ๋ธ์ TLE/SGP4 ์ ํ๋ ์์ค์ ๋ชจ๋ธ์ด๋ฉฐ ์์น ์ ํ์ ๋์ฒด์ฌ๊ฐ ์๋); ๋น-LEO ๊ถค๋(MEO/GEO/HEO๋ ํ์ต์์ ์ ์ธ๋จ); ๊ธฐ๋(maneuver) ์์ฑ ์์ธก(๊ธฐ๋์ ๋ชจ๋ธ๋ง๋์ง ์์).
Short horizons (~1 day): the SGP4 persistence baseline is already near-optimal; the model provides no meaningful advantage there.
Per-satellite variance: on a minority of satellites the model is worse than the baseline โ difficulty varies with orbit regime, TLE quality, drag variability, and maneuver activity.
No feature ablation yet: the reported numbers are for the full model (physics + space-weather features together); the independent contribution of each feature group has not been isolated.
True future space weather is unknown at inference time. Evaluation feeds observed (true) solar context; operational use would require forecast space-weather inputs (or a variant trained without solar channels), which may reduce accuracy.
Maneuvers and anomalies are not modeled; station-keeping or deorbit burns will break the drift assumptions.
Truth is TLE-derived: both training targets and evaluation truth inherit TLE/SGP4 accuracy limits (TLEs themselves carry km-level errors).
์ด๋จ๊ธฐ horizon (~1์ผ): SGP4 persistence baseline์ด ์ด๋ฏธ ๊ฑฐ์ ์ต์ ์ด๋ฏ๋ก ๋ชจ๋ธ์ ์ด์ ์ด ์ ํ์ ์ ๋๋ค.
์์ฑ๋ณ ํธ์ฐจ: ์ผ๋ถ ์์ฑ์์๋ ๋ชจ๋ธ์ด baseline๋ณด๋ค ์ฑ๋ฅ์ด ๋ฎ์ต๋๋ค โ ๊ถค๋ ํน์ฑ, TLE ํ์ง, drag ๋ณ๋์ฑ, ๊ธฐ๋ ์ฌ๋ถ์ ๋ฐ๋ผ ์์ธก ๋์ด๋๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค.
ํผ์ฒ ablation ๋ฏธ์ํ: ๋ณด๊ณ ๋ ์์น๋ ๋ฌผ๋ฆฌ ํผ์ฒ์ ์ฐ์ฃผ๊ธฐ์ ํผ์ฒ๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ต์ข ๋ชจ๋ธ ๊ธฐ์ค์ด๋ฉฐ, ๊ฐ ํผ์ฒ๊ตฐ์ ๋ ๋ฆฝ์ ๊ธฐ์ฌ๋๋ ์์ง ๋ถ๋ฆฌ ๊ฒ์ฆ๋์ง ์์์ต๋๋ค.
์ถ๋ก ์์ ์ ๋ฏธ๋ ์ฐ์ฃผ๊ธฐ์ ๊ฐ์ ์ ์ ์์ต๋๋ค. ํ๊ฐ์์๋ ๊ด์ธก๋(์ค์ ) solar context๋ฅผ ์ ๋ ฅํ์ผ๋, ์ค์ด์ฉ์์๋ ์ฐ์ฃผ๊ธฐ์ ์๋ณด๊ฐ(๋๋ solar ์ฑ๋ ์์ด ํ์ตํ ๋ณํ ๋ชจ๋ธ)์ด ํ์ํ๋ฉฐ ์ด ๊ฒฝ์ฐ ์ ํ๋๊ฐ ๋ฎ์์ง ์ ์์ต๋๋ค.
๊ธฐ๋๊ณผ ์ด์ ์ด๋ฒคํธ๋ ๋ชจ๋ธ๋ง๋์ง ์์ต๋๋ค. station-keeping์ด๋ deorbit burn์ drift ๊ฐ์ ์ ๊นจ๋จ๋ฆฝ๋๋ค.
Ground truth๊ฐ TLE ๊ธฐ๋ฐ์ ๋๋ค. ํ์ต target๊ณผ ํ๊ฐ truth ๋ชจ๋ TLE/SGP4์ ์ ํ๋ ํ๊ณ(TLE ์์ฒด๊ฐ km ์์ค ์ค์ฐจ ๋ณด์ )๋ฅผ ๋ฌผ๋ ค๋ฐ์ต๋๋ค.
TLE data is publicly distributed (e.g., CelesTrak / Space-Track) and this model adds no sensing capability beyond it. Nevertheless, orbit predictions should not be used as the sole basis for conjunction-assessment or safety-critical decisions; operational users must validate against authoritative special-perturbation ephemerides.
TLE ๋ฐ์ดํฐ๋ ๊ณต๊ฐ์ ์ผ๋ก ๋ฐฐํฌ๋๋ฉฐ(CelesTrak / Space-Track ๋ฑ), ๋ณธ ๋ชจ๋ธ์ ๊ทธ ์ด์์ ๊ด์ธก ๋ฅ๋ ฅ์ ์ถ๊ฐํ์ง ์์ต๋๋ค. ๋ค๋ง ๊ถค๋ ์์ธก์ conjunction ํ๊ฐ๋ ์์ ๊ด๋ จ ์์ฌ๊ฒฐ์ ์ ๋จ๋ ๊ทผ๊ฑฐ๋ก ์ฌ์ฉํด์๋ ์ ๋๋ฉฐ, ์ค์ด์ฉ ์ฌ์ฉ์๋ ๊ณต์ธ๋ special-perturbation ๊ถค๋๋ ฅ๊ณผ์ ๊ต์ฐจ ๊ฒ์ฆ์ ์ํํด์ผ ํฉ๋๋ค.
@misc{orbitfm2026,
title = {OrbitFM: TLE-based Satellite Orbit Forecasting by Continued Pretraining of a Time-Series Foundation Model},
author = {{์ธ์ข
๋ํ๊ต ์ธ๊ณต์ง๋ฅ ์ฐ๊ตฌ์ค & PCN R\&S}},
year = {2026},
note = {Fine-tuned from Datadog Toto-2.0-2.5B on 2005--2024 LEO TLE archives with space-weather channels}
}
Base model: please also cite Datadog Toto-2.
๋ฒ ์ด์ค ๋ชจ๋ธ: Datadog Toto-2๋ ํจ๊ป ์ธ์ฉํด ์ฃผ์ธ์.
Acknowledgements: space-weather data from CelesTrak; data-cleaning and feature-engineering design informed by the cm-tle-pred benchmark analysis; TLE parsing/propagation via the sgp4 Python package.
๊ฐ์ฌ์ ๊ธ: ์ฐ์ฃผ๊ธฐ์ ๋ฐ์ดํฐ๋ CelesTrak์์ ์ ๊ณต๋ฐ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ์ ์ ๋ฐ ํผ์ฒ ์์ง๋์ด๋ง ์ค๊ณ๋ cm-tle-pred ๋ฒค์น๋งํฌ ๋ถ์์ ์ฐธ๊ณ ํ์ต๋๋ค. TLE ํ์ฑ/์ ํ์๋ sgp4 Python ํจํค์ง๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
Datadog/Toto-2.0-2.5B