Identified: Qianfan Polar Group 07 ("Thousand Sails")
The train observed from Denmark and the UK at
21:13–21:14 BST on 2026-04-07 (20:13–20:14 UTC) was
Qianfan Polar Group 07,
an 18‑satellite Chinese "SpaceSail" megaconstellation batch launched on a Long March 8 from Wenchang Commercial Space Launch Site at
13:32 UTC that same day —
6h 41m before the sighting.
How the candidates were ruled out
I propagated each candidate to the exact observation time using its own TLE (independently verified against
satellite.js in Node, then cross‑checked inside Sitrec which matched
byte‑for‑byte):
| Candidate | COSPAR | TLE source | Position at 20:14 UTC | Verdict |
|---|
| Starlink G17-35 | 2026-073 | Celestrak sup-gp.php?FILE=starlink-g17-35, epoch 03:52 UTC April
7 | antipodal to UK, closest pass at 19:17 UTC (−56 min) or 20:44 UTC off Iceland (+30 min) | ruled out |
| STP-S29A | 2026-074 | Space-track full history, epoch 20:25 UTC April 7 (+12 min from observation — zero propagation
uncertainty) | all 9 objects at 37–39°S, 77–79°W (South Atlantic / Patagonia), 115–118° from UK | ruled out |
| Guowang | 2026-076 | Space-track satcat | still on pad — launched April 8, 28 h after the
observation | physically impossible |
| Qianfan Polar Group 07 | 2026-075 | Kevin Fetter's amateur TLE
(https://www.satobs.org/seesat/Apr-2026/0032.html) | 56.07°N, 10.08°E — 12 km from Copenhagen | 
MATCH |
The Qianfan-7 pass from Denmark
Propagating the Fetter TLE (epoch 2026-04-07T14:29:31Z, just 57 min post-launch and ~5h 44m before the observation — very short
back‑propagation, meter‑level accuracy):
Code:
Epoch: 2026-04-07T14:29:31Z
Inclination: 88.97° (near-polar, prograde)
Altitude: 854 km (deployed directly at operational altitude)
Period: 102.0 min
RAAN: 331.06°
Sub‑satellite point and
az/el from Denmark (56°N, 10°E) second‑by‑second across the window:
| UTC | BST | Sub-sat point | Azimuth from DK | Elevation | Range |
|---|
| 20:13:00 | 21:13:00 | 56.9°N, 10.1°E | 3.1° (N) | 82.4° (near zenith) | 905
km |
| 20:14:00 | 21:14:00 | 53.5°N, 10.0°E | 179.5° (S) | 70.1° | 949 km |
| 20:15:00 | 21:15:00 | 50.0°N, 9.9°E | 180.3° (S) | 48.3° | 1151 km |
| 20:16:00 | 21:16:00 | 46.5°N, 9.8°E | 180.7° (S) | 33.6° | 1447 km |
At
21:13 BST the train was literally overhead (
82° elevation, just 3° north of zenith) from a Denmark observer. One minute
later it was
due south, 70° up, and by 21:16 it was tracking low into the south at 34° elevation. That is an
exact match for
ThomasH's description:
It was 21:14 (UK time) looking South East and South from Denmark
Eighteen brand‑new Qianfan satellites at 900 km altitude, still tightly clustered just 6h 40m after deployment, would have been a bright
naked‑eye train moving almost due south across the Danish sky.
Why Sitrec seemed "wrong" earlier
It wasn't. Every propagation Sitrec did on every TLE it was given was mathematically correct (verified independently against
satellite.js in Node to 0 m difference). The problem was purely about
which TLEs were loaded:
- Sitrec's nightsky default only loads the Celestrak Starlink supplemental feed (
sup-gp.php?FILE=starlink). That feed
contains no Chinese launches.
- Celestrak's
last-30-days feed also didn't yet contain Qianfan-7 (the qianfan group was last updated at
Polar Group 06, 2025-233, and Polar Group 07 hadn't been added at the time of the sighting or for several days after).
- Space-track
gp_history returned 204 (empty) for COSPAR 2026-075 — USSPACECOM hadn't catalogued it yet. Space-track's
catalogue lag for Chinese launches can be days.
- The only publicly available TLE for Qianfan-7 within 24 hours of the sighting was Kevin Fetter's amateur optical fit on
SeeSat-L — posted the same night he saw the train pass near Alkaid. That's the TLE used for this analysis.
Credit where due
- @jarlrmai and @flarkey — for the hypothesis that led us off the wrong track (G17-35) and onto a Chinese launch that actually
was in orbit at the right time.
- @flarkey — for identifying the launch itself (SpaceSail / Polar Group 07, via
https://www.china-in-space.com/p/qianfans-seventh-satellite-group).
- Kevin Fetter (SeeSat-L) — for optically tracking and fitting a TLE within hours of the launch, without which no official public
source had the data at the time the thread was posted.
- @ThomasH and the other Denmark observers — for a precise and accurate report (21:14 UK time, looking SE and S from Denmark).
The report turned out to be correct to within ~1 minute of time and ~10° of direction; the apparent mismatches with G17-35 and STP-S29A
were because those were the wrong sats.
Lessons for Sitrec
- Sitrec's nightsky sitch needs a way to easily load launches other than Starlink (Qianfan, Guowang, Kuiper, STP, etc.) — currently only
the Starlink supplemental is loaded automatically.
- The "In Range: 100.0%" display can be misleading for freshly‑launched trains that aren't actually in the loaded catalogue, or when the
simulation time is outside the epoch range of the loaded TLEs.
- Amateur TLEs from SeeSat-L and similar networks are sometimes the only source of data for a fresh Chinese launch for several days,
and it would be useful to ingest them on request.
These are all improvements I'll take back to the Sitrec side.
TL;DR — You all saw SpaceSail. Sitrec was right, your eyes were right, and the reason nothing in Sitrec matched is that the
correct satellite's TLE wasn't in any public source Sitrec was pulling from yet. Kevin Fetter fitted the orbit optically, posted it to
SeeSat-L, and it lines up perfectly with your sighting: 82° elevation, 3° north of zenith over Denmark at 21:13 BST, descending due
south through 70°/48°/34° over the next three minutes.