Upload folder using huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
datasets:
|
| 3 |
+
- jgalego/orbit2vec-windows
|
| 4 |
+
- juliensimon/space-track-tle-history
|
| 5 |
+
- juliensimon/space-track-satcat
|
| 6 |
+
- RhynoWu/starlink-maneuver-db
|
| 7 |
+
library_name: pytorch
|
| 8 |
+
license: mit
|
| 9 |
+
model_name: orbit2vec
|
| 10 |
+
pipeline_tag: feature-extraction
|
| 11 |
+
tags:
|
| 12 |
+
- space
|
| 13 |
+
- satellites
|
| 14 |
+
- tle
|
| 15 |
+
- embeddings
|
| 16 |
+
- contrastive-learning
|
| 17 |
+
- weird2vec
|
| 18 |
+
---
|
| 19 |
+
|
| 20 |
+
# orbit2vec
|
| 21 |
+
|
| 22 |
+
Embeddings for satellite orbit histories. Two windows of the same object, a month apart, should land close together; other objects should land apart. Part of Weird2Vec, embedding models for data nobody embeds.
|
| 23 |
+
|
| 24 |
+
> [!NOTE]
|
| 25 |
+
> **What is a TLE?** A two-line element set is the public record of an orbit: mean motion, eccentricity, inclination, node, perigee and drag, at one epoch. Space-Track publishes them for every tracked object, several times a day. A month of them is a trajectory, including its manoeuvres and decay.
|
| 26 |
+
|
| 27 |
+
## 🚀 Usage
|
| 28 |
+
|
| 29 |
+
The repo holds the script that trained the model, so one command embeds the last 32 days of a TLE file (oldest first, one object) and names the nearest catalogued objects:
|
| 30 |
+
|
| 31 |
+
```
|
| 32 |
+
uv run https://huggingface.co/jgalego/orbit2vec/resolve/main/orbit2vec.py embed --tle history.txt
|
| 33 |
+
```
|
| 34 |
+
|
| 35 |
+
It prints the nearest objects, a guess for regime, constellation or object type and owner, inclination and altitude drift, and the 256-dimensional embedding.
|
| 36 |
+
|
| 37 |
+
## 🛰️ Data
|
| 38 |
+
|
| 39 |
+
[jgalego/orbit2vec-windows](https://huggingface.co/datasets/jgalego/orbit2vec-windows): daily mean elements from [juliensimon/space-track-tle-history](https://huggingface.co/datasets/juliensimon/space-track-tle-history), grouped by constellation and owner with [juliensimon/space-track-satcat](https://huggingface.co/datasets/juliensimon/space-track-satcat). Repeated epochs are collapsed to the latest TLE per UTC day. Windows are 32 days long; training pairs are adjacent windows of one object, 10% of the objects are held out, and the test pair is the two windows from 2026-02-28 to 2026-05-02. Manoeuvre labels come from [RhynoWu/starlink-maneuver-db](https://huggingface.co/datasets/RhynoWu/starlink-maneuver-db) and are used for evaluation only.
|
| 40 |
+
|
| 41 |
+
## 🏋️ Training
|
| 42 |
+
|
| 43 |
+
Each day becomes 11 features: altitude, its change within the window, eccentricity, inclination and its change, the node and perigee angles as sine and cosine, drag and its rate. Days without a TLE are masked. A transformer encodes the window and a contrastive loss pulls two augmented views (random crop, dropped days) of adjacent windows of the same object together against the rest of the batch. Most of a batch shares one window, so satellites of the same shell compete. Small heads predict regime, constellation, owner, inclination and drift.
|
| 44 |
+
|
| 45 |
+
Not trained yet.
|
| 46 |
+
|
| 47 |
+
## 📊 Results
|
| 48 |
+
|
| 49 |
+
Each object's later test window is matched against the earlier windows of all test test objects. *Seen* objects were in training, in other months; *unseen* objects never were. The baseline matches the mean of the standardized inputs.
|
| 50 |
+
|
| 51 |
+
Not evaluated yet.
|
| 52 |
+
|
| 53 |
+
## ⚠️ Limitations
|
| 54 |
+
|
| 55 |
+
- Mean elements from public TLEs only; accuracy is a few km and classified objects are missing.
|
| 56 |
+
- Windows are 32 days, so slow decay and long manoeuvre campaigns look like noise.
|
| 57 |
+
- Manoeuvre labels cover Starlink only.
|