MSc thesis · Operation of Space Systems · Universidad de Sevilla

Satellites get lost in thin air.

At 500 km there is still just enough air to slow a satellite down, and it is the hardest part of predicting where the satellite will be. I trained a neural network on five years of measurements from four satellites: it halves the error of the standard model, NRLMSISE-00, and when real orbits are propagated, the drift that error causes is seven times smaller.

Show
Day
Measured density, relative to the daily mean 0.5×2×

Drag to rotate · move the clock to fly the orbits

Density error, unseen year 12.6 %25.0 % NRLMSISE-00 → corrected, over 2023, which the model never saw in training
Orbit drift after 3 days 0.16 km1.07 km error caused by the density model, median of 18 real orbital arcs
The standard model's worst arc 0.6 km75 km GRACE-FO, June 2023, three days ahead: NRLMSISE-00 missed by 75 km, the network by 0.6
Real measurements 2.0 M four satellites, 2019 to 2023, one every five minutes

Where is the satellite after three days?

Each dot is a real five-day arc flown by Swarm or GRACE-FO in 2023: two days to fit the orbit, three to predict it. Gravity, integrator and starting conditions are identical for both models; only the air density changes. The distance from the centre line is the error that the density model alone is responsible for.

Scenario

All 18 arcs as a table
SatelliteStartAp maxDensity bias NRLMSISE Density bias networkDrift NRLMSISE (3 d)Drift network (3 d)

How it works

The model does not replace the physics. It keeps the standard atmosphere and learns only the part it gets wrong.

01

Measure

Accelerometers on Swarm A, B, C and GRACE-FO 1 feel the drag, and from it the real air density along the orbit: every five minutes from 2019 to 2023, between 458 and 543 km.

02

Correct

The network predicts only what the last three hours of measurements cannot tell. Five networks are averaged, so the result does not depend on one lucky training run.

03

Propagate

Real orbits are fitted and propagated with each density, with a J2–J4 gravity field, Sun, Moon and radiation pressure, and then compared against GPS positions.

One day along the orbit

Satellite

The result I almost published

My first network scored 14.9 %. It was a mirage: 274 of the 275 test days had a training day right next to them, so the network was interpolating, not predicting. Tested honestly, on a year it had never seen, it was worth nothing.

Later, retraining the same network with a different random seed moved its error more than any change of architecture did. So instead of picking a winner from one run, I built a selection protocol over 72 trainings. Every number on this page comes from that honest test.

Density error on the 2023 test set. Step four is the mean of five training runs; step five averages the predictions of five networks.

What it took

PythonTensorFlow / Keras NumPy · pandas · SciPyOrbit determination Numerical propagationJ2–J4, third body, radiation pressure Time-series validationData-leakage diagnosis Bootstrap & non-parametric testsEnsembles & model selection Reproducible pipelines