OrbitFM / README.md
postcn's picture
Update README.md
56251dd verified
|
Raw
History Blame Contribute Delete
34.2 kB
metadata
license: apache-2.0
base_model: Datadog/Toto-2.0-2.5B
pipeline_tag: time-series-forecasting
library_name: pytorch
tags:
  - time-series
  - time-series-forecasting
  - foundation-model
  - fine-tuned
  - satellite
  - orbit-prediction
  - orbit-propagation
  - orbital-mechanics
  - TLE
  - SGP4
  - space-weather
  - LEO
  - aerospace
  - toto
language:
  - en
  - ko
metrics:
  - rmse
model-index:
  - name: OrbitFM
    results:
      - task:
          type: time-series-forecasting
          name: Satellite orbit prediction (TLE element forecasting)
        dataset:
          type: tle-archive
          name: >-
            Historical TLE archive (2005-2024, LEO) + CelesTrak SW-All space
            weather
        metrics:
          - type: rmse
            name: Median position RMSE @ 30-day horizon (km)
            value: 140.46
          - type: rmse
            name: Mean position RMSE @ 30-day horizon (km)
            value: 798.75

OrbitFM โ€” TLE-based Satellite Orbit Forecasting Model

OrbitFM โ€” TLE ๊ธฐ๋ฐ˜ ์œ„์„ฑ ๊ถค๋„ ์˜ˆ์ธก ๋ชจ๋ธ

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 Details / ๋ชจ๋ธ ์ƒ์„ธ

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๋กœ ์ „ํŒŒํ•ด ์œ„์น˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

Why not just SGP4? / ์™œ 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:

  • Atmospheric drag variation driven by solar EUV flux (F10.7) and geomagnetic activity (Ap), which modulates the secular decay of mean motion โ€” the dominant source of along-track position error;
  • Slow drift of BSTAR and mean motion that a single TLE snapshot cannot capture;
  • Secular rates of RAAN and argument of perigee that evolve over time.

๊ฐ€์žฅ ์ตœ๊ทผ TLE๋ฅผ SGP4๋กœ ์ „ํŒŒํ•˜๋Š” ๋ฐฉ์‹์€ ํ˜„์žฌ์˜ drag ์ƒํƒœ์™€ ์š”์†Œ ๋ณ€ํ™”์œจ์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋œ๋‹ค๊ณ  ์•”๋ฌต์ ์œผ๋กœ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฉฐ์น  ์ด์ƒ์˜ horizon์—์„œ๋Š” ๋‹ค์Œ ์š”์ธ๋“ค์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

  • ํƒœ์–‘ EUV ํ”Œ๋Ÿญ์Šค(F10.7)์™€ ์ง€์ž๊ธฐ ํ™œ๋™(Ap)์ด ์œ ๋ฐœํ•˜๋Š” ๋Œ€๊ธฐ ํ•ญ๋ ฅ ๋ณ€ํ™” โ€” mean motion์˜ ์žฅ๊ธฐ ๊ฐ์‡ ๋ฅผ ์ขŒ์šฐํ•˜๋ฉฐ along-track ์œ„์น˜ ์˜ค์ฐจ์˜ ์ง€๋ฐฐ์  ์›์ธ;
  • ๋‹จ์ผ TLE ์Šค๋ƒ…์ˆ์œผ๋กœ๋Š” ํฌ์ฐฉํ•  ์ˆ˜ ์—†๋Š” BSTAR์™€ mean motion์˜ ๋А๋ฆฐ drift;
  • ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” RAAN๊ณผ argument of perigee์˜ ์žฅ๊ธฐ ๋ณ€ํ™”์œจ.

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 ์ „ํŒŒ ๋ฐฉ์‹์— ๊ฒฐ์—ฌ๋œ ๋ฐ”๋กœ ๊ทธ ์ •๋ณด์ž…๋‹ˆ๋‹ค.


Channel / Feature Design / ์ฑ„๋„ยทํ”ผ์ฒ˜ ์„ค๊ณ„

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) ๋ฌธ๋งฅ ์ฑ„๋„์ž…๋‹ˆ๋‹ค.

Predicted orbital channels (in loss, indices 0โ€“5) / ์˜ˆ์ธก ๋Œ€์ƒ orbital ์ฑ„๋„ (loss ํฌํ•จ, ์ธ๋ฑ์Šค 0โ€“5)

# 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์—์„œ ๋ˆ„์ ํ•ฉ์‚ฐํ•ฉ๋‹ˆ๋‹ค.

Input-only physics features (indices 6โ€“21) / ์ž…๋ ฅ ์ „์šฉ ๋ฌผ๋ฆฌ ํŒŒ์ƒ ํ”ผ์ฒ˜ (์ธ๋ฑ์Šค 6โ€“21)

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 elements

cm-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 ์ˆœํ™˜ ์ธ์ฝ”๋”ฉ

Input-only space-weather features (indices 22โ€“24) / ์ž…๋ ฅ ์ „์šฉ ์šฐ์ฃผ๊ธฐ์ƒ ํ”ผ์ฒ˜ (์ธ๋ฑ์Šค 22โ€“24)

  • 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์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€"ํ•˜๋Š” ๋ฐฉ์‹์„ ์ด๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Auxiliary anchors (not model input/output) / ๋ณด์กฐ anchor ์ •๋ณด (๋ชจ๋ธ ์ž…์ถœ๋ ฅ ์•„๋‹˜)

[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 ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ ˆ๋Œ€ ๊ธฐ์ค€๊ฐ’์ž…๋‹ˆ๋‹ค.


Data & Preprocessing Pipeline / ๋ฐ์ดํ„ฐยท์ „์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ

Raw TLE archives are noisy; the cleaning pipeline was one of the largest accuracy levers.

์›๋ณธ TLE archive์—๋Š” ๋…ธ์ด์ฆˆ๊ฐ€ ๋งŽ์œผ๋ฉฐ, ์ •์ œ ํŒŒ์ดํ”„๋ผ์ธ์€ ๊ฐ€์žฅ ํฐ ์ •ํ™•๋„ ํ–ฅ์ƒ ์š”์ธ ์ค‘ ํ•˜๋‚˜์˜€์Šต๋‹ˆ๋‹ค.

  1. Group & sort โ€” parse raw TLE text files, group records by NORAD ID, sort by epoch, drop duplicate/near-duplicate epochs.
  2. Physical-integrity filter โ€” drop records with impossible elements: eccentricity โˆ‰ [0, 1), inclination โˆ‰ (0ยฐ, 180ยฐ), mean motion โˆ‰ (0.1, 20) rev/day.
  3. Early-record drop โ€” discard the first 5 TLEs of each object (pre-stabilization, least reliable).
  4. LEO filter โ€” keep objects with median mean motion โ‰ฅ 11.25 rev/day.
  5. Robust outlier removal โ€” per satellite, flag any record deviating from the time-linear interpolation of its neighbors by more than 6 MAD robust scales, on each smoothly-evolving quantity (mean motion, inclination, eccentricity, log-BSTAR, cumulative mean-anomaly phase, unwrapped RAAN/argp); union of flags removed, up to 2 passes. This is a cheap, dependency-free equivalent of the DBSCAN-on-differences cleaning that the cm-tle-pred benchmark reports as its single biggest accuracy gain.
  6. Daily-grid resampling โ€” TLE epochs are irregular, so each element series is linearly interpolated onto a 1-day grid; grid days farther than 2 days from any real TLE are masked out of loss and evaluation.
  7. Angle handling โ€” mean anomaly โ†’ cumulative phase via mean motion; RAAN/argp unwrapped; all angles additionally exposed as sin/cos input features.
  8. Feature assembly โ€” 6 orbital + 16 physics + 3 solar channels + 5 auxiliary anchors, cached as a compressed .npz per configuration.

  1. ์ •๋ ฌ ๋ฐ ๊ทธ๋ฃนํ™” โ€” ์›๋ณธ TLE ํ…์ŠคํŠธ ํŒŒ์ผ์„ ํŒŒ์‹ฑํ•ด NORAD ID ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , epoch ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ ๋’ค ๋™์ผยท๊ทผ์ ‘ epoch์˜ ์ค‘๋ณต record๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฌผ๋ฆฌ์  ๋ฌด๊ฒฐ์„ฑ ํ•„ํ„ฐ โ€” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•œ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ record ์ œ๊ฑฐ: eccentricity โˆ‰ [0, 1), inclination โˆ‰ (0ยฐ, 180ยฐ), mean motion โˆ‰ (0.1, 20) rev/day.
  3. ์ดˆ๊ธฐ record ์ œ๊ฑฐ โ€” ๊ฐ ๋ฌผ์ฒด์˜ ์ฒซ 5๊ฐœ TLE ํ๊ธฐ (๊ถค๋„ ์•ˆ์ •ํ™” ์ด์ „์œผ๋กœ ์‹ ๋ขฐ๋„๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์Œ).
  4. LEO ํ•„ํ„ฐ โ€” mean motion ์ค‘์•™๊ฐ’ โ‰ฅ 11.25 rev/day์ธ ๋ฌผ์ฒด๋งŒ ์œ ์ง€.
  5. Robust outlier ์ œ๊ฑฐ โ€” ์œ„์„ฑ๋ณ„๋กœ, ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ณ€ํ™”ํ•ด์•ผ ํ•˜๋Š” ๊ฐ ๋ฌผ๋ฆฌ๋Ÿ‰(mean motion, inclination, eccentricity, log-BSTAR, mean anomaly ๋ˆ„์  ์œ„์ƒ, unwrap๋œ RAAN/argp)์— ๋Œ€ํ•ด ์–‘์ชฝ ์ด์›ƒ record์˜ ์‹œ๊ฐ„ ์„ ํ˜• ๋ณด๊ฐ„๊ฐ’์—์„œ 6 MAD robust scale ์ด์ƒ ๋ฒ—์–ด๋‚˜๋Š” record๋ฅผ flagํ•˜๊ณ , flag์˜ ํ•ฉ์ง‘ํ•ฉ์„ ์ตœ๋Œ€ 2ํšŒ ๋ฐ˜๋ณต ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” cm-tle-pred ๋ฒค์น˜๋งˆํฌ๊ฐ€ ๋‹จ์ผ ์ตœ๋Œ€ ์ •ํ™•๋„ ํ–ฅ์ƒ ์š”์ธ์œผ๋กœ ๋ณด๊ณ ํ•œ DBSCAN ๊ธฐ๋ฐ˜ ์ •์ œ์˜ ์ €๋น„์šฉยท๋ฌด์˜์กด์„ฑ ๋“ฑ๊ฐ€ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
  6. Daily-grid ์žฌํ‘œ์ง‘ โ€” TLE epoch ๊ฐ„๊ฒฉ์€ ๋ถˆ๊ทœ์น™ํ•˜๋ฏ€๋กœ ๊ฐ ์š”์†Œ ์‹œ๊ณ„์—ด์„ 1์ผ ๊ฐ„๊ฒฉ grid๋กœ ์„ ํ˜• ๋ณด๊ฐ„ํ•˜๊ณ , ์‹ค์ œ TLE์—์„œ 2์ผ ์ด์ƒ ๋–จ์–ด์ง„ grid day๋Š” mask ์ฒ˜๋ฆฌํ•˜์—ฌ loss์™€ ํ‰๊ฐ€์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค.
  7. ๊ฐ๋„ ์ฒ˜๋ฆฌ โ€” mean anomaly๋Š” mean motion ๊ธฐ๋ฐ˜ ๋ˆ„์  ์œ„์ƒ์œผ๋กœ ๋ณ€ํ™˜; RAAN/argp๋Š” unwrap; ๋ชจ๋“  ๊ฐ๋„๋Š” ์ถ”๊ฐ€๋กœ sin/cos ์ž…๋ ฅ ํ”ผ์ฒ˜๋กœ๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  8. ํ”ผ์ฒ˜ ์กฐ๋ฆฝ โ€” orbital 6 + ๋ฌผ๋ฆฌ 16 + ์šฐ์ฃผ๊ธฐ์ƒ 3 ์ฑ„๋„ + ๋ณด์กฐ anchor 5๊ฐœ๋ฅผ ๊ตฌ์„ฑ๋ณ„ ์••์ถ• .npz ์บ์‹œ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

Satellites with fewer than 64 observed grid days are excluded at cache-build time.

๊ด€์ธก๋œ grid day๊ฐ€ 64์ผ ๋ฏธ๋งŒ์ธ ์œ„์„ฑ์€ ์บ์‹œ ์ƒ์„ฑ ๋‹จ๊ณ„์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.


Training / ํ•™์Šต

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๊ฐ€ ์ขŒ์šฐํ•˜๋ฏ€๋กœ, ์ด ๊ฐ€์ค‘์น˜๋Š” ํ•™์Šต ๋ชฉ์  ํ•จ์ˆ˜๋ฅผ ์œ„์น˜ ์ •ํ™•๋„์™€ ์ •๋ ฌ์‹œํ‚ต๋‹ˆ๋‹ค.

Data split (forecast-honest time split) / ๋ฐ์ดํ„ฐ ๋ถ„ํ•  (๋ฏธ๋ž˜ ๋ˆ„์ถœ ์—†๋Š” ์‹œ๊ฐ„ ๊ธฐ์ค€ ๋ถ„ํ• )

The default split is by time, so evaluation is a true forecasting test with no future leakage:

  • Train: windows ending before 2022-01-01
  • Validation: windows ending in [2022-01-01, 2023-01-01)
  • Test: windows ending on/after 2023-01-01

๊ธฐ๋ณธ ๋ถ„ํ• ์€ ์‹œ๊ฐ„ ๊ธฐ์ค€์ด๋ฏ€๋กœ, ํ‰๊ฐ€๋Š” ๋ฏธ๋ž˜ ์ •๋ณด ๋ˆ„์ถœ์ด ์—†๋Š” ์‹ค์ œ ์˜ˆ์ธก ์‹œํ—˜์ด ๋ฉ๋‹ˆ๋‹ค.

  • Train: 2022-01-01 ์ด์ „์— ๋๋‚˜๋Š” window
  • Validation: [2022-01-01, 2023-01-01) ๊ตฌ๊ฐ„์— ๋๋‚˜๋Š” window
  • Test: 2023-01-01 ์ดํ›„์— ๋๋‚˜๋Š” window

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 ์˜ต์…˜์œผ๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค.


Evaluation / ํ‰๊ฐ€

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.

  1. Element RMSE โ€” mean motion, inclination, eccentricity as absolute error; mean anomaly / RAAN / argp as circular error.
  2. Position RMSE (km) โ€” predicted elements โ†’ SGP4 โ†’ TEME position at tโ‚€+ฮ”, Euclidean distance to the truth-TLE-derived position. In the reported 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.

ํ‰๊ฐ€ ์ง€ํ‘œ.

  1. ๊ถค๋„ ์š”์†Œ RMSE โ€” mean motion, inclination, eccentricity๋Š” ์ ˆ๋Œ€ ์˜ค์ฐจ, mean anomaly / RAAN / argp๋Š” circular error๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  2. ์œ„์น˜ RMSE (km) โ€” ์˜ˆ์ธก ์š”์†Œ โ†’ SGP4 โ†’ tโ‚€+ฮ” ์‹œ์ ์˜ TEME ์œ„์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ground truth TLE ๊ธฐ๋ฐ˜ ์œ„์น˜์™€์˜ ์œ ํด๋ฆฌ๋“œ ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๊ณ ๋œ sgp4 ๋ณต์› ๋ชจ๋“œ์—์„œ๋Š” ๋ชจ๋ธ ์˜ˆ์ธก์ด ๊ตฌ๊ฐ„ ํ‰๊ท  mean motion์œผ๋กœ SGP4๋ฅผ ๊ตฌ๋™ํ•˜๋ฉฐ(drag ์ด์ค‘ ๋ฐ˜์˜์„ ๋ง‰๊ธฐ ์œ„ํ•ด BSTAR๋Š” 0์œผ๋กœ ์„ค์ •), ์œ„์ƒ ๊ณ„์‚ฐ์€ ํ•ด์„์ (SGP4)์œผ๋กœ ์œ ์ง€ํ•˜๋˜ ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•œ ๊ฐ์‡ ์œจ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

Position RMSE vs. SGP4 persistence baseline / ์œ„์น˜ RMSE โ€” SGP4 persistence baseline ๋Œ€๋น„ (test split, ์ตœ๋Œ€ 1,500๊ฐœ ์œ„์„ฑ)

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). ์ด๋Š” ๊ฐœ์„ ์ด ์ผ๋ถ€ ํŠน์ด ์œ„์„ฑ์— ์˜ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ ์œ„์„ฑ ๋‹ค์ˆ˜์—์„œ ์•ˆ์ •์ ์œผ๋กœ ๋‚˜ํƒ€๋‚จ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Per-element median RMSE @ 30-day horizon / ๊ถค๋„ ์š”์†Œ๋ณ„ 30์ผ ์ค‘์•™๊ฐ’ RMSE

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) ์˜ค์ฐจ์˜ ํ•ต์‹ฌ ์›์ธ์ž…๋‹ˆ๋‹ค.


How to Use / ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

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 Use / ์‚ฌ์šฉ ๋ชฉ์ 

  • 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) ์œ„์„ฑ ์˜ˆ์ธก(๊ธฐ๋™์€ ๋ชจ๋ธ๋ง๋˜์ง€ ์•Š์Œ).

Limitations / ํ•œ๊ณ„

  1. Short horizons (~1 day): the SGP4 persistence baseline is already near-optimal; the model provides no meaningful advantage there.

  2. 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.

  3. 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.

  4. 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.

  5. Maneuvers and anomalies are not modeled; station-keeping or deorbit burns will break the drift assumptions.

  6. Truth is TLE-derived: both training targets and evaluation truth inherit TLE/SGP4 accuracy limits (TLEs themselves carry km-level errors).

  7. ์ดˆ๋‹จ๊ธฐ horizon (~1์ผ): SGP4 persistence baseline์ด ์ด๋ฏธ ๊ฑฐ์˜ ์ตœ์ ์ด๋ฏ€๋กœ ๋ชจ๋ธ์˜ ์ด์ ์ด ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค.

  8. ์œ„์„ฑ๋ณ„ ํŽธ์ฐจ: ์ผ๋ถ€ ์œ„์„ฑ์—์„œ๋Š” ๋ชจ๋ธ์ด baseline๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค โ€” ๊ถค๋„ ํŠน์„ฑ, TLE ํ’ˆ์งˆ, drag ๋ณ€๋™์„ฑ, ๊ธฐ๋™ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์˜ˆ์ธก ๋‚œ์ด๋„๊ฐ€ ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

  9. ํ”ผ์ฒ˜ ablation ๋ฏธ์ˆ˜ํ–‰: ๋ณด๊ณ ๋œ ์ˆ˜์น˜๋Š” ๋ฌผ๋ฆฌ ํ”ผ์ฒ˜์™€ ์šฐ์ฃผ๊ธฐ์ƒ ํ”ผ์ฒ˜๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ ์ตœ์ข… ๋ชจ๋ธ ๊ธฐ์ค€์ด๋ฉฐ, ๊ฐ ํ”ผ์ฒ˜๊ตฐ์˜ ๋…๋ฆฝ์  ๊ธฐ์—ฌ๋„๋Š” ์•„์ง ๋ถ„๋ฆฌ ๊ฒ€์ฆ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  10. ์ถ”๋ก  ์‹œ์ ์— ๋ฏธ๋ž˜ ์šฐ์ฃผ๊ธฐ์ƒ ๊ฐ’์€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ‰๊ฐ€์—์„œ๋Š” ๊ด€์ธก๋œ(์‹ค์ œ) solar context๋ฅผ ์ž…๋ ฅํ–ˆ์œผ๋‚˜, ์‹ค์šด์šฉ์—์„œ๋Š” ์šฐ์ฃผ๊ธฐ์ƒ ์˜ˆ๋ณด๊ฐ’(๋˜๋Š” solar ์ฑ„๋„ ์—†์ด ํ•™์Šตํ•œ ๋ณ€ํ˜• ๋ชจ๋ธ)์ด ํ•„์š”ํ•˜๋ฉฐ ์ด ๊ฒฝ์šฐ ์ •ํ™•๋„๊ฐ€ ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  11. ๊ธฐ๋™๊ณผ ์ด์ƒ ์ด๋ฒคํŠธ๋Š” ๋ชจ๋ธ๋ง๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. station-keeping์ด๋‚˜ deorbit burn์€ drift ๊ฐ€์ •์„ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค.

  12. Ground truth๊ฐ€ TLE ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค. ํ•™์Šต target๊ณผ ํ‰๊ฐ€ truth ๋ชจ๋‘ TLE/SGP4์˜ ์ •ํ™•๋„ ํ•œ๊ณ„(TLE ์ž์ฒด๊ฐ€ km ์ˆ˜์ค€ ์˜ค์ฐจ ๋ณด์œ )๋ฅผ ๋ฌผ๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค.

Ethical & Safety Considerations / ์œค๋ฆฌยท์•ˆ์ „ ๊ณ ๋ ค์‚ฌํ•ญ

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 ๊ถค๋„๋ ฅ๊ณผ์˜ ๊ต์ฐจ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


Citation / ์ธ์šฉ

@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 ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.