Wer hat hier diese Woche hingeschaut? watched.earth rechnet Satellitenüberflüge nach und zeigt die echten Bilder
Zusammenfassung
Armaan Gupta zeigt mit der Webanwendung watched.earth für jeden Ort der Erde, welche Satelliten in den letzten sieben Tagen darüber geflogen sind, und holt die echten Aufnahmen dieser Überflüge aus öffentlichen Archiven. Die Bahnrechnung mit SGP4 für rund 400 Erdbeobachtungs-, Wetter-, Radar- und bemannte Satelliten läuft vollständig im Browser, die Bilder stammen von Sentinel-2, Landsat und NASA GIBS. Der Beitrag erklärt, wie die Suche ohne verpasste Überflüge auskommt, was die vier Stufen von „Watched“ bis „Passed overhead“ bedeuten und wer bei einer Abfrage welche Daten sieht.
Was die Seite zeigt
Man gibt einen Ort, Koordinaten oder den eigenen Standort ein oder wählt ein Beispiel wie Central Park, Gizeh oder Area 51. Während der Globus dorthin schwenkt, rechnet der Browser die Bahnen der letzten Woche nach und notiert jeden Moment, in dem der Ort im Blickfeld eines Satelliten lag. Gleichzeitig durchsucht die Seite die Bildarchive, ordnet jedes Foto dem Überflug zu, der es aufgenommen hat, und prüft, ob genau dieser Punkt unter Wolken lag.
Für Central Park meldete die Seite am 9. November 2026 gegen 21 Uhr UTC 250 Satelliten in sieben Tagen und mindestens 26 veröffentlichte Bilder. Die schärfste Aufnahme stammte von Sentinel-2A am 4. November um 10:52 Ortszeit: 5,6 Grad neben der Senkrechten, 0 Prozent Wolken, 10 m pro Pixel. Die übrigen Bilder waren überwiegend Tagesmosaike der Wettersatelliten NOAA-20, NOAA-21, Terra und Aqua mit 250 bis 375 m pro Pixel.
Ein Überflug lässt sich abspielen: Der Satellit fliegt seine echte Bahn, der Aufnahmestreifen zieht über den Ort, und das Foto baut sich Zeile für Zeile in Flugrichtung auf, so wie die Kamera es aufgenommen hat. Geteilte Links zeigen eine Vorschaukarte aus dem echten Bild.
Vier Stufen statt einer Zahl
Jeder Überflug bekommt eine von vier Stufen. „Watched“ heißt: Ein echtes Bild dieses Orts liegt in einem öffentlichen Archiv. „Likely watched“ heißt: Der Streifen einer fest nach unten blickenden Kamera wie Sentinel-2 oder Landsat lag bei Tageslicht über dem Ort, ein Bild ist aber nicht veröffentlicht, noch nicht eingetroffen oder wegen Wolken verworfen. „Could have pointed here“ steht für schwenkbare kommerzielle Kameras und Radarsatelliten in Reichweite; ob sie hingeschaut haben, sagt der Betreiber nicht. „Passed overhead“ meint Stationen wie ISS und Tiangong, die mindestens 10 Grad über dem Horizont vorbeiflogen.
Bei Central Park verteilten sich die Überflüge auf 26 Bilder, 212 „Likely watched“, 1.622 „Could have pointed here“ und 74 „Passed overhead“. Die Schlagzeile mit 250 Satelliten zählt jeden Satelliten mit mindestens einem Überflug, gleich welcher Stufe; belegt sind nur die Bilder. Das README sagt es deutlich: Die Anwendung schreibt „watched“, nie „photographed“.
Geostationäre Wettersatelliten wie GOES und Himawari fliegen nie über einen Ort hinweg, sondern blicken alle zehn Minuten auf eine halbe Erde. Sie werden getrennt aufgeführt und nicht mitgezählt.
Wie die Suche keinen Überflug verpasst
Die Bahndaten (Element-Sätze) kommen von CelesTrak, das sie aus den Bahnverfolgungsdaten der US Space Force veröffentlicht; ein GitHub-Workflow holt alle sechs Stunden eine frische Kopie. Ausgewertet wird mit SGP4, dem Standardmodell für diese Daten, in der Umsetzung von satellite.js.
Statt in festen Schritten zu suchen, nutzt die Anwendung eine Ratengrenze. Der Winkel am Erdmittelpunkt zwischen Satellit und Ort kann sich nicht schneller ändern als die höchste Winkelgeschwindigkeit der Bahn plus 10 Prozent Reserve plus Erdrotation. Daraus ergibt sich, wie weit die Suche springen darf, ohne einen Eintritt ins Blickfeld zu überspringen: zwischen 5 Sekunden und 30 Minuten. Verdächtige Abschnitte verfeinert ein Goldener-Schnitt-Verfahren auf 0,1 s für den nächsten Punkt und eine Bisektion auf 0,5 s für Ein- und Austritt.
Gegen eine Brute-Force-Suche im Sekundentakt über 22 bewusst schwierige Fälle (beide Pole, Datumsgrenze, Null Island, Streifen bis hinab zu 32 km) fehlte laut README kein Überflug, die größte Zeitabweichung lag bei 0,65 s. Eine Woche für 394 Satelliten mit 1.860 Überflügen dauert in Node auf einem Kern 1,3 s; der Browser verteilt die Arbeit auf bis zu vier Web Worker, auf Telefonen zwei.
Der Globus zeigt alle 16.894 Objekte des Katalogs. Dafür rechnet ein Vertex-Shader in jedem Bild für jedes Objekt die Kepler-Gleichung mit vereinfachten Bahnelementen. Das ist im Median auf etwa 17 km genau, jedes zwanzigste Objekt liegt über 100 km daneben. Für die Darstellung reicht das, für die Überflugsuche verwendet die Anwendung immer das volle SGP4.
Archivzeit ist nicht Überflugzeit
Die Bildarchive beschreiben jede Szene im gemeinsamen Katalogformat STAC. Dessen Zeitstempel markiert bei Sentinel-2 den Beginn des aufgenommenen Streifens, der Minuten vor dem Überflug über einen bestimmten Ort beginnen kann; in einem gemessenen Fall waren es 6 min 53 s. Ein Foto wird deshalb dem Überflug desselben Satelliten (gleiche NORAD-Katalognummer) zugeordnet, dessen nächster Punkt zwischen 10 Minuten vor und 60 Minuten nach diesem Zeitstempel liegt. Angezeigt wird immer die berechnete Überflugzeit.
Die Sentinel-2- und Landsat-Bilder werden über das ganze Bild gleich bearbeitet: Schwarz- und Weißpunkt, Helligkeitskurve, etwas mehr Sättigung, geglättete Kompressionsblöcke und leichtes Nachschärfen. Hinzugefügt oder entfernt wird nichts. Weil die Bilder das Kartengitter des Archivs behalten, kann Norden einige Grad neben oben liegen; ein Nordpfeil im geöffneten Bild zeigt die Richtung.
Was die Seite nicht sehen kann
In den öffentlichen Bildern ist ein Pixel bestenfalls 10 m breit, ein Auto ist ein Pixel, Menschen sind nicht zu erkennen. Kommerzielle Kameras aus der Stufe „Could have pointed here“ lösen bis etwa 30 cm auf, ihre Betreiber veröffentlichen aber weder, wohin sie geschaut haben, noch was sie gesehen haben. Militärische und nachrichtendienstliche Satelliten stehen größtenteils nicht in den öffentlichen Katalogen.
Die Bahndaten sind bei Ausgabe auf etwa einen Kilometer genau und laufen danach davon, die Überflugzeiten können deshalb um einige Sekunden abweichen. Die Archive veröffentlichen Bilder einige Stunden bis zwei Tage nach der Aufnahme; die jüngsten Überflüge haben oft noch kein Bild.
Wer bei einer Abfrage mitliest
Die Bahnrechnung läuft im Browser, die eigene Datenbank speichert laut README keine genauen Koordinaten, keine IP-Adressen und keine Cookies. Für eine Abfrage hält sie eine Zelle von etwa 10 km (0,1 Grad) samt Land und Ort fest, für geteilte Links einen auf etwa 1 km (0,01 Grad) gerundeten Punkt. Nutzungsereignisse hängen an einer zufälligen Kennung, die nur so lange lebt wie der Browser-Tab, und werden nach 90 Tagen gelöscht.
Andere Dienste sehen den Ort trotzdem. Der Geocoder Photon von komoot erhält den eingetippten Text oder bei „Use my location“ die Koordinaten, Planetary Computer und NASA GIBS sehen den Punkt und seine Umgebung, um die Bilder zu liefern. Vercel Web Analytics erhält die Seitenadresse, die bei einem Ortslink Koordinaten und Namen enthält, und beachtet den Schalter ?noanalytics=1 nicht. Beim Abruf der Startseite am 9. November 2026 luden sich das Vercel-Analyseskript und eine Statistikabfrage an Supabase für den Zähler der geprüften Orte.
Ideen
- Öffentliche Bahndaten und SGP4 genügen, um eine Woche Überflüge für jeden Ort nachzurechnen.
- Eine Ratengrenze für den Blickwinkel macht die Suche lückenlos statt nur engmaschig.
- Archivzeitstempel markieren den Beginn eines Aufnahmestreifens, nicht den Moment über dem Ort.
- Vier Stufen trennen belegte Aufnahmen sauber von bloßer Möglichkeit.
- Für die Darstellung reicht ein vereinfachtes Bahnmodell auf der GPU, für die Suche nicht.
- Rechnen im Browser hält genaue Koordinaten vom eigenen Server fern.
- Offene STAC-Archive liefern Sentinel-2- und Landsat-Szenen per einfacher Suchanfrage.
Einsichten
- Die Seite ist ein Lehrstück in ehrlicher Beschriftung: Sie trennt „ein Bild existiert“, „hätte aufnehmen können“ und „flog vorbei“. Die eindrucksvolle Zahl in der Schlagzeile entsteht erst durch die weite Bedeutung von „watched“; belastbar ist nur die Zahl der Bilder.
- Datensparsamkeit im eigenen Backend löst die Frage nur zum Teil: Geocoder, Bildarchive und das Analysewerkzeug des Hosters sehen den Ort trotzdem. Wer eine Anwendung auf Datenschutz prüft, muss jeden angefragten Dienst betrachten, nicht nur die Datenbank.
- Zwischen dem Gefühl, beobachtet zu werden, und dem, was offene Daten zeigen, liegt viel: Öffentlich sind 10 m pro Pixel. Die wirklich scharfen Kameras gehören Firmen und Militärs, die nicht sagen, wohin sie schauen, und genau diese Lücke macht die Seite sichtbar.
Zitate
- „No. At best a pixel here is 10 m across. A car is one pixel. You’re not in it.“ (watched.earth, Abschnitt „The short version“ auf die Frage „Can it see me?“; sinngemäß: Nein. Ein Pixel ist hier bestenfalls 10 m breit. Ein Auto ist ein Pixel. Du bist nicht darauf.)
- „The app says watched, never photographed.“ (README von dev-Armaan/satellites; sinngemäß: Die Anwendung sagt „beobachtet“, nie „fotografiert“.)
Fakten
- Der Katalog vom 9. November 2026, 17:02 UTC, enthielt 16.894 Objekte von CelesTrak; er wird alle sechs Stunden erneuert.
- Nach Überflügen durchsucht werden rund 400 Satelliten mit bekannter Kamera, Radar oder Besatzung, im Testfall des README 394.
- Sentinel-2 erfasst einen etwa 290 km breiten Streifen, Landsat etwa 185 km; schwenkbare kommerzielle Kameras neigen sich 30 bis 45 Grad.
- Gegen eine Sekunden-Brute-Force über 22 Grenzfälle fand die Suche alle Überflüge, mit höchstens 0,65 s Zeitabweichung.
- Der Code steht unter MIT-Lizenz auf GitHub (dev-Armaan/satellites); das Repository entstand am 8. November 2026.
Referenzen
- Watched: Something watched you this week (watched.earth)
- GitHub: dev-Armaan/satellites, Quellcode und README mit Methodik und Datenschutz
- Hacker News: Show HN: Every satellite that passed over any place this week, and its photos
- CelesTrak: Bahndaten (Element-Sätze)
- GitHub: satellite.js, SGP4 in JavaScript
- Microsoft Planetary Computer
- Element 84: Earth Search
- NASA GIBS (Global Imagery Browse Services)
- Hackaday: Web Satellite Tracker Plays The Music Of The Spheres (OrbitalWiki)
Kritik
- Die Infoseite der Anwendung nennt unter „Who else sees it“ nur Photon und die Bildarchive. Dass Vercel Web Analytics bei Ortslinks Koordinaten und Ortsnamen erhält und den Schalter ?noanalytics=1 nicht beachtet, steht nur im README.
Bemerkungen
- Das Repository entstand einen Tag vor der Vorstellung auf Hacker News und trägt die Versionsnummer 0.1; Methodik und Grenzen sind trotzdem ungewöhnlich gründlich dokumentiert.
- Hackaday stellte am selben Tag mit OrbitalWiki einen verwandten Ansatz vor: Dort spielt jeder Satellit beim höchsten Punkt seines Überflugs einen Ton, Instrument und Oktave ergeben sich aus den Bahndaten.
Empfehlungen
- Den eigenen Ort eingeben und die Bilder mit Wolkenangabe ansehen; die anderen drei Stufen als Möglichkeit lesen, nicht als Beleg.
- Wer sparsam sein will, gibt eine Nachbarstraße oder gerundete Koordinaten ein statt „Use my location“; geteilte Links enthalten den Ort auf etwa 1 km gerundet.
- Die offenen Archive auch direkt nutzen: Die STAC-Schnittstellen von Planetary Computer und Element 84 liefern Sentinel-2- und Landsat-Szenen per Suche nach Ort und Zeitraum, etwa mit dem Python-Paket pystac-client.
- Zum Selbsthosten das Repository klonen und npm run dev starten; ohne konfiguriertes Backend wird nichts erfasst.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.