Software für die Sternwarte Teil 12: geometric hash code und die Sternensuche

Reminiszenz

Ich denke, es nicht die schlechteste Idee, wenn wir innehalten und uns Gedanken über das machen, was wir bis jetzt über astrometry.net wissen. Mal nachdenken, was war das denn alles?

  • astrometry.net ist eine Anwendung für´s plate-solving
  • plate-solving bedeutet, den Inhalt eines beliebigen Sternenbildes zu identifizieren
  • dazu verwendet astrometry.net als Referenz den 2MASS-Sternenkatalog
  • Der 2MASS-Sternenkatalog enthält 500 Millionen Sterne mit deren Daten
  • Krass! Viel zu viele Daten für unseren Rechner

Bis hierher war es einigermaßen verständlich für uns. Dann jedoch beschlossen wir, etwas tiefer in die Materie einzusteigen. Und je tiefer wir einstiegen, umso mehr begannen wir zu schwitzen. Was war das, denn nur, was uns so zum Schwitzen brachte?

  • Die Daten von 500 Millionen Sternen sind viel zu viel Input für unseren Rechner
  • Datenreduktion ist angesagt

Wir fanden heraus, wie die Datenflut etwas eingedämmt werden konnte.

  • Stellen wir uns den 2MASS-Katalog als ein riesiges Sternenfoto vor, das 500 Millionen Sterne zeigt
  • Wir legen ein engmaschiges Netz über das Riesenfoto (grid)
  • Und behalten in jeder Masche des Netzes nur die 10 hellsten Sterne
  • Der Rest fliegt in den Mülleimer

Klasse, damit haben wir die Datenmenge ganz beträchtlich reduziert. Nun müssen wir uns nur noch überlegen, wie wir diese Referenz-Daten aufbereiten müssen, damit ein sinnvoller Vergleich unseres Such-Sternenbildes mit dem Referenzkatalog möglich ist.

  • Wir konstruieren nach bestimmten Regeln in jeder Masche des Netzes Sternenvierecke
  • Diese Sternenvierecke nennen wir quads
  • Jedes dieser Sternenvierecke bekommt sein eigenes Koordinatensystem
  • Ursprung des Koodinatensystems ist Stern A mit den Koordinaten 0,0
  • Maximum des Koordinatensystems ist Stern B mit den Koordinaten 1,1
  • Damit ist für jedes quad die Lage seines eigenen Koordinatensystems im Referenz-Sternenbild festgelegt
  • Die Koordinaten der restlichen beiden Sterne des quads können nun abgelesen werden

Wenn wir ehrlich sind, haben wir die riesige Datenmenge des 2MASS-Katalogs gar nicht selbst reduziert. Wir waren lediglich mit unseren Gedanken dabei. Und auch die Konstruktion der quads war nicht unser Werk. Das haben die Jungs von astrometry.net freundlicherweise für uns erledigt.

Astrometry.net hat versucht, in jeder Masche des Netzes 16 quads zu konstruieren

Damit sind wir am Ende unseres kleinen Rückblickes angekommen. Schauen wir nun einmal, was wir mit diesen quads anfangen können.

Weiter geht´s im Spiel der quads…

Schauen wir uns nochmal so ein quad an:

Geometric hash code

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

Die Lage der vier Sterne des quads in seinem eigenen lokalen Koordinatensystem ist bekannt:

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

Das war es eigentlich schon. Und ob ihr es glaubt oder nicht, damit haben wir das Rad neu erfunden. Denn wir können nun mit ganz wenigen Angaben das quad exakt definieren.

Alles was wir dazu brauchen, sind die Koordinaten der Sterne C und D im lokalen Koodinatensystem das quads. Die Koordinaten der Sterne A und B dürfen wir als bekannt festlegen. Denn sie betragen immer 0,0 für Stern A und 1,1 für Stern B.

Die Koordinaten der Sterne C und D repräsentieren den sogenannten „geometric hash code“ eines quads.

Index-files

Nun brauchen wir uns nur noch eine Tabelle zu malen und ein paar Daten reinschreiben. Fein säuberlich, Zeile für Zeile. Eine Zeile für jedes quad.

In einer solchen Zeile steht der gometric hash code des entsprechenden quads und die globalen Koordinaten der 4 beteiligten Sterne.

Und diese Tabelle speichern wir als Index-file ab.

Wie schon einmal erwähnt, hat uns astrometry.net freundlicherweise die Datenreduktion und die Konstruktion der quads abgenommen. Auch die Tabelle wurde von den Jungs und Mädels dort bereits fertig ausgefüllt und uns als Index-files zur Verfügung gestellt.

Ja, diese vielen Index-files, die wir vor einiger Zeit auf unsere Festplatte geladen haben, enthalten diese Tabelle in unterschiedlichen Bildauflösungen.

Sternensuche

So, jetzt müssen wir nur noch erkunden, wie die Sternensuche nun tatsächlich vor sich geht. Was haben wir?

Wir haben zum einen unser Suchbild, von dem wir wissen wollen, wie die Sterne drin heißen.
Und wir haben zum anderen eine Menge Index-files, die als Referenz gelten sollen.

Wie können wir das eine mit dem anderen vergleichen?

Noch mehr Index-files

Jagen wir also astrometry.net über unser Suchbild.

Astrometry.net wird mit unserem Suchbild ähnliches machen, was es mit dem Riesenbild des 2MASS-Sternenkatalags auch schon getan hat:

  • In unserem Suchbild werden quads konstruiert
  • Jedes dieser quads bekommt sein eigenes lokales Koordinatensystem
  • Damit liegt der geometric hash code eines jeden quads fest

Und nun haben wir doch tatsächlich etwas zum Vergleichen. Wir können nämlich die geometrischen hash codes der quads aus unserem Suchbild mit denen in den Index-files vergleichen.

Und das geht so:

Noch ein Vergleich

  • Wir schnappen uns das erste quad in unserem Suchbild und lassen den gometrischen hash code ausrechnen
  • Wir vergleichen diesen geometrischen hash code nacheinander mit den geometrischen hash codes in den Index-files
  • 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:

Koordinatensystem

Das quad bekommt sein eigenes lokales Koordinatensystem

geometric hash code

Nun markieren wir die Koordinaten der Sterne C und D. Diese Koordinaten sind der geometrische hash-code des quads

Kurze Pause

Ich denke, wir sollten uns nun ein Glas Wein gönnen, bevor wir weitermachen. Irgendwie müssen wir unseren rauchenden Kopf ja löschen.

Also, kurze Pause 🙂

Drei Schoppen Wein später:

Ergebnis des Vergleichs

Wir haben also den hash code des quads aus unserem Suchbild:

Und wir haben einen hash code in den Index-files gefunden, der sehr ähnlich ist:

Die beiden Bilder schaun total verschieden aus, oder? Schaut euch aber mal die Koordinaten der Sterne C und D in beiden Bildern an. Richtig, diese sind identisch.

Das bedeutet, der geometrische hash code ist unabhängig von der Bildfelddrehung und im Prinzip auch unabhängig von der Größe des Bildes, also von dessen Auflösung. Es ist egal, wie wir die Kamera ausgerichtet haben und mit welcher Brennweite wir fotografiert haben. Der geometrische hash code wird immer der gleiche sein.

Klasse! Ein Vergleich, ohne auf jede Kleinigkeit aufpassen zu müssen 🙂

Die Lösung

Der hash code des quads in unserem Suchbild ist einem hash code im Index-file sehr ähnlich. Deshalb wurde dieses Referenz-file als möglicher Lösungskandidat markiert.

Brauchen wir noch eine Bestätigung

Wir schauen wieder in unser Suchbild und nehmen ein quad von einer anderen Stelle des Bildes. Davon lassen wir den hash code ausrechnen.

Nun schaun wir, ob in dem als möglicher Lösungskandidat markierten Referenzbild ein identischer hash code zu finden ist.

Finden wir dort einen identischen hash code oder wenigstens einen sehr ähnlichen, dann ist es schon sehr wahrscheinlich, daß unser Problem gelöst ist. Ganz sicher können wir aber noch immer nicht sein.

Noch ne Bestätigung

Nun müssen wir nur noch sicherstellen, daß sich die entsprechenden quads auch an den richtigen Stellen befinden.

Dazu nehmen wir die globalen Koordinaten der Quad-Sterne im Referenzbild und schauen im Suchbild nach, ob sich dort vergleichbare Koordinaten ausrechnen lassen.

Problem gelöst

Falls die Quads sich in Relation zueinander an den richtigen Stellen befinden, können wir das Problem als gelöst betrachten.

Doch nicht alles so, wie es soll

Falls die Relation nicht stimmt, sich also dort, wo eigentlich das zweite quad auftauchen sollte, kein entsprechendes zu finden ist, ist etwas faul. Damit müssen wir astrometry.net weiter in den Index-files nach Übereinstimmungen suchen lassen.

Nachwort

Ich gebe es zu, das war jetzt schwere Kost. Wer bis jetzt durchgehalten hat, darf sich den letzten Schoppen Wein aus der Flasche gönnen.

Damit möchte ich des Thema astrometry.net für´s erste beenden. Aber keinen Angst. Es gibt noch mehr von dieser Anwendung zu berichten, wenn wir wirklich ans Sternegucken 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.