satpos - Einleitung

Warum dieses Projekt?

Ich war lange am überlegen was ich als Maturaprojekt machen will. Schlussendlich hatte ich eine Projektidee die viele meiner Interessen ansprach. Dieses Teilprojekt behandelt dabei die Softwaretechnische Umsetzung einer Library, die die Position von Satelliten, und später auch von Himmelskörpern ermitteln können soll.

Allgemeine Informationen

Die Library selber ist Open Source und unter die GPL-Lizenz gestellt. Programmiert ist sie in C++, es werden später wahrscheinlich aber auch Schnittstellen zu anderen Programmiersprachen entstehen.

Ich mach mir viel Mühe um die Library auf einem hohen Niveau zu Programmieren, weshalb in diesem Status noch viele Änderungen auftreten können. Diese umfassen kleine Änderungen im internen Aufbau bis zum umbenennen, hinzufügen oder löschen von Klasse, Funktionen und Variablen. Man sollte daher nicht glauben dass ein Programm beim updaten auf eine neuere Version ohne Modifikationen lauffähig bleibt. Das ist nicht vermeidbar und auch nicht der Sinn von einer Library die erst im Entstehen ist. Fehler sollten ja nicht aus kompatibilitätsgründe erhalten bleiben sondern verschwinden, und dafür ist der Status pre-alpha unter anderem ja auch da.

Was kann die Library?

Nun zu den Funktionen der Library. Wie oben schon kurz genannt soll sie Programmierer die Arbeit abnehmen, die bei der Ermittlung von Satellitenpositionen im Orbit und deren weiteren Verarbeitung anfallen. Bahnberechnungen sind allgemein sehr komplex, was sich auch in der Library wiederspiegelt. Dabei ist nicht der Aufbau das komplexe sondern die Implementierung der vielen Formeln, die dazu noch Kreuz und Quer in Verbindung stehen.

Ein dabei sehr zentrales Objekt ist dabei die Zeit. Sie ist für viele andere Klassen von Bedeutung weshalb der Status in diesem Teilbereich schon sehr weit fortgeschritten ist. Das fängt an beim Einlesen der aktuellen Systemzeit an und geht bis zu spezielle Algorithmen zum Umrechnen der verschiedenen verwendeten Zeitformate.

Jetzt eine genaue Auflistung aller Funktionen zu starten wäre sinnlos, das wird wo anders erledigt und wäre nur verwirrend. Aber man kann schon grob die aktuellen und zukünftigen Implementierungen auflisten:

  • Einlesen von Standarddatensätzen (TLE), möglicherweise auch über das Netzwerk
  • Berechnung von Bahnparametern für bestimmte Zeitpunkte
  • Implementierung von Modellen für die Störungsberechnung
  • Berechnung von am Boden wichtige Daten, angefangen bei der Ausrichtung von Antennen
  • Berechnung von Empfangs/Sende-Parameter (Dopplereffekt, Dämpfung, etc.)
  • Berechnung von der Position von Himmelskörpern (wird relativ spät hinzukommen)
  • andere kleine Sachen die derzeit noch nicht sicher sind, oder die Liste zu lange machen

Bahnberechnungen, wie komplex sie sind, oder doch nicht?

Bahnberechnungen erfordern normalerweise fundierte Physik und Mathematikkenntnisse. Diese Aufgaben wird ihnen die Library später hoffentlich so weit wie möglich abnehmen, derzeit sind die wirklich komplexen Teile der Bahnberechnung nicht einmal ansatzweise enthalten. Ich will hier auch noch sagen dass ich kein Physik, Mathematik oder Informatikstudent bin. Ich gehe in eine Technische HTL und hab noch ein paar Jahre zur Matura. Vom Schulstoff ausgehend bin ich mit Ausnahme in der Informatik in etwa auf dem Klassenniveau.

Der Großteil der Arbeit liegt aber sowieso in der Programmierung. Es gibt spezielle Literatur für die Bahnberechnung, von denen ich welche besitze. Das Problem beim Abschreiben von Formeln ist dann leider dass man deren Funktionsweise nicht versteht, was aber zum Glück für die Funktion meistens nicht wichtig ist. Die Implementierung von Formeln ist schon komplex genug wenn sie über die Grundrechenarten hinausgehen. Ich hatte schon diverse Fehler bei trigonometrischen Berechnungen weil ich nicht in das Bogenmaß umgerechnet hatte. Die Implementierung des Newton-Verfahren funktioniert aktuell auch noch nicht korrekt weshalb ich derzeit alternative Verfahren verwende. Dieses Problem wird aber hoffentlich bald gelöst werden.

Hat ihnen der Beitrag gefallen?, wenn ja teilen sie ihn

Kommentare

VerÖffentlichen Sie ihre Kommentare ...