Neues von der Sternwarte: geometric hash code und die Sternensuche

Reminiszenz

Ich denke, es wird am besten sein, wenn wir kurz zurückdenken und das bisher erreichte zusammenfassen:

Wir haben mit Astrometry.net eine Anwendung gefunden, die es uns ermöglicht, ein beliebiges Fotos vom Sternenhimmel mit einer umfassenden Sternenkartei abzugleichen und damit den Inhalt des Fotos zu identifizieren.

Wir konnten nach einigen Mühen astrometry.net auf openSUSE Tumbleweed kompilieren und installieren. Und wir waren in der Lage, die Referenzdateien jener umfassenden Sternenkartei auf auf die Festplatte unseres Astro-Rechners zu laden.

Danach ergriff uns die Neugier und wir wollten etwas mehr Einblick erhalten, wie astrometry.net es anstellt, aus der Flut der Daten in der Sternenkartei die Sterndaten in unserem Foto herauszufinden.

Wir fanden heraus, das wohl die Referenzdateien, die astrometry.net aus der Sternenkartei gebildet hat, für dieses Wunder verantwortlich waren.

Um die Größe dieser Referenzdateien, die wir nun Index-Files nennen wollen, in Grenzen zu halten, war eine Datenreduzierung erforderlich.

Wir legten über den gesamten Referenz-Sternenhimmel ein feinmaschiges Raster und behielten in jedem Fels des Rasters nur die 10 hellsten Sterne. Den Rest warfen wir in ein schwarzes Loch.

In jedem dieser Rasterfelder versuchten wir nach gewissen Regeln dann Sternenvierecke zu konsturieren. Nun ja, eigentlich hat astrometry.net das freundlicherweise für uns schon getan. Wir haben nur versucht, das an einem kleinen Beispiel nachzuspielen.

Astrometry.net hat versucht, in jedem der Felder 16 verschiedene Sternvierecke zu bilden. Und man hat diesen Sternvierecken einen besonderen Namen gegeben, nämlich quad.

Und mit diesen quads wurde es dann so richtig interessant. Denn jedes dieser quads lebt in seinen eigenen kleinen Welt, sprich in seinem eigenen lokalen Koordinatensystem.

Wie so ein lokales Koordinatensystem erzeugt wird, haben wir in einem vorherigen Artikel schon einmal durchgespielt. Hier nochmal ganz grob eine Zusammenfassung:

Wir suchen für den Beginn ein beliebiges Rasterfeld heraus. Der hellste der 10 Sterne bekommt den Namen A und wird der Ursprung des lokalen Koordinatensystems werden.
3 weitere Sterne ergänzen das Ganze zu einem Sternenviereck, also zu einem quad.
Der am weitesten von Stern A entfernte Stern bekommt den Namen B und steht für die Koordinaten 1,1, also für die Grenze des Koordinatensystems. Wir hatten nämlich vereinbart, daß jede Achse nicht größer als 1 werden darf.
Mit dieser Verreinbarung lassen sich nun einfach die Koordinaten der beiden noch fehlenenden Sterne C und d ermitteln.

Zur Erinnerung ein kleiner Screenshot, den ihr wohl schon kennt:

Geometric hash code

Was ist nun das besondere an diesen quads? Überlegen wir mal…

Die Lage der vier Sterne in ihrem lokalen Koordinatensystem ist bekannt:

  • Stern A: Koordinaten 0,0
  • Stern B: Koordinaten 1,1
  • Stern C: Koordinaten xC , yC
  • Stern D: Koordinaten xD , yD

Und damit haben wir den geometischen hash code diese Quald gefunden. Denn er ist nichts anderes als die lokalen Koordinaten von Stern C und Stern D.

Wir speichern den hash code dieses quads in einem Index-File ab und haben damit schon einmal vier Sterne erschlagen. Nun müssen wir nur noch die globalen Koordinaten jedes der vier Sterne dem Datensatz hinzufügen und sind damit gerüstet für Durchsuchung des Sternenhimmels nach den Sternen auf unserem Foto.

Für jedes quad hat astrometry.net den hash-code und die globalen Koordinaten in den Index-files gespeichert (und einiges mehr, was für die Sternensuche selbst aber nicht relevant ist).

Und es gibt Index-Files nicht nur für den Bildwinkel unseren Fotos, sondern für viele andere Bildwinkel ebenfalls.

Sternensuche

Ich denke, ihr werdet es schon fast erahnen, wie astrometry.net nun auf Suche nach den Sternen in unserem Foto vorgeht. Richtig! Es werden quads gebastelt.

Astrometry.net schaut sich unser Foto an und gruppiert die Sterne zu lauter Sternvierecken, also zu quads. Von jedem dieser quads wird dann der hash-code ermittelt und mit den in den Index-Files gespeicherten hash-codes verglichen.

Stimmen zwei hash-codes ungefähr überein (ungefähr, weil die Sterne ja hin- und herhüpfen können), so wird dieses quad als Kandidat für die Lösung des Suchproblems markiert.

Stellen wir dieses Problem noch einmal nach, mit nur einem quad, um es nicht zu unübersichtlich werden zu lassen.

Das Suchbild

Von diesem Foto wollen wir wissen, was da drauf abgebildet ist, also wo am Sternenhimmel es sich befindet

quads

Jagen wir also astrometry.net über dieses Bild. Die Anwendung wird die Sterne zu vielen Sternenvierecken, also zu quads gruppieren. Eines dieser quads male ich mal hier rein:

Der Vergleich

Diese Viereckform kennen wir doch von irgendwoher, oder? Ich weiß es. Die haben wir schon mal in einem Referenzbild gesehen:

Sind zwar mehr Sterne drauf bei unserem Foto, aber die Lage der Hauptsterne stimmt. Nur ist das Bild irgendwie verdreht.

Koordinatensystem

Egal, malen wir in unser Foto das lokale Koordinatensystem zum quad rein:

 

geometric hash code

und zeichnen in dieses lokale Koordinatensystem die Koordinaten für die Sterne C und D rein. Damit haben wir unseren hash-code:

Noch´n Vergleich

Ich will Osterhase heißen, wenn dieser hash-code dem code aus dem Referenzbild nicht verdächtig ähnlich sieht. Bis auf die Bildfelddrehung…

Ergebnis des Vergleichs

Was erkennen wir aus dem Vergleich?

Genau, die hash-codes unseres Fotos und des Bildes aus der Referenzkartei sind ähnlich, wenn nicht sogar identisch. Und das ist unabhängig davon, ob der Bildwinkel beider Aufnahmen vergleichbar ist oder ob eines der Bilder gedreht ist.

Die große Ähnlichkeit der hash-codes macht das entsprechende Referenzbild (sprich Index-File) zum Favoriten auf eine wahrheitsgetreue Auflösung des Bildes.

Im zum Index-File gehörigen Referenzbild befinden sich an anderer Stelle andere Quads. Wir müssen nur noch nachschauen, ob bei unserem Foto an diese Stellen auch vergleichbare Sternvierecke sind (über die hash-codes).

Sind mehrere Quads unseres Fotos ähnlich denen im Referenzbild, setzt astrometry.net das Problem auf gelöst. Falls es ein Trugschluß war, geht die Sternenjagd über den hash-code von quads weiter.

Nachwort

Damit möchte ich des Thema astrometry.net für´s erste beenden. Aber keinen Angst. Es gibt noch mehr von der Anwendung zu berichten, wenn wir wirklich ans Sterngucken mit kstars und EKOS gehen

Also, stay tuned, bis demnächst in diesem Theater 🙂

 

 

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.