Wie berechnet man mit SPICE Sonnenaufgang und Sonnenuntergang?

Ich habe hier erwähnt , dass SPICE verwendet werden kann, um Sonnenaufgang und Sonnenuntergang zu berechnen. Wie?

Gemäß der offiziellen Dokumentation wird SPICE verwendet, um Folgendes zu berechnen:

  • Konvertierungen von Zeitsystemen
  • Positionen von Raumfahrzeugen und natürlichen Körpern
  • Ausrichtung von Raumfahrzeugen und Instrumenten
  • Referenzrahmentransformationen
  • Beleuchtungswinkel

Ich weiß, dass Sonnenaufgang und Sonnenuntergang aus den Koordinaten der Sonne und der Sonnenaufgangsgleichung berechnet werden können .

Ich habe mich gefragt, ob SPICE einen bestimmten Algorithmus für diesen Zweck hat?

Das ist eine interessante und legitime Frage; Mit SPICE können Sie einen Standort auf vielen Körpern des Sonnensystems mit Breiten- und Längengrad angeben und eine Höhe und einen Azimut eines anderen Körpers berechnen, und zumindest für die Erde können Sie die atmosphärische Refraktion korrigieren, und ich glaube, SPICE wird Ihnen helfen, nach einem zu suchen Zeit, wenn die Höhe Null ist (Sonnenaufgang/Sonnenuntergang). Hier ist ein Beispiel für die Horizons-Website von JPL, von der ich glaube, dass sie selbst SPICE verwendet. Aber ich frage mich, ob Sie zusätzlich zu Ihrer gestellten Frage daran interessiert wären, es auch zu versuchen
…etwas, das viel einfacher sein könnte? Wenn Sie sich in Python versuchen möchten, dann überprüfen Sie rhodesmill.org/skyfield/almanac.html. Skyfield verwendet die gleichen JPL Development Ephemerides wie Horizons und SPICE, ist aber um einiges einfacher und intuitiver zu verwenden, weil es ein modernes ist Python-Implementierung und nicht etwas, das ursprünglich für Karriere-JPL-Missionsplaner entwickelt wurde, die Mainframes in den 1980er Jahren verwendeten . Was für einen Unterschied machen 40 Jahre!

Antworten (1)

Ich bin kein SPICE-Experte, aber hier sind einige mögliche Lösungen (es sei denn, Sie möchten natürlich die Almanach-Methoden von Skyfield ausprobieren !)

Erste Möglichkeit, aber alle diese funktionieren möglicherweise nicht

diese Antwort verlinkt auf diesen Kommentar Links zu SPICE-Tutorials, aktualisiert am 11. Dezember 2019 Links zur 69-Folien-Präsentation SPICE Geometry Finder (GF) Subsystem; Suche nach Zeiten, in denen bestimmte geometrische Bedingungen vom Januar 2020 auftreten .

  • Viel SPICE-Software berechnet einen Geometrieparameter zu einem gegebenen Zeitpunkt t, dh x = f(t). Beispiel: Wie hoch ist die Raumsonde am 30. März 2011 um 14:57:08 Uhr über dem Mars?
  • Das Geometry Finder-Subsystem macht das Gegenteil: Es findet Zeiten, in denen bestimmte geometrische Ereignisse auftreten

GF bietet zwei Haupttypen von APIs zur Ereignissuche

  • Boolesch: eine geometrische Bedingung (ein Ereignis) ist wahr oder falsch – Numerisch: eine geometrische Größe hat einen bestimmten Wert, liegt innerhalb eines bestimmten Bereichs oder hat ein lokales oder globales Maximum oder Minimum erreicht

In Ihrem Fall würden Sie eine Position auf einem Körper angeben und dann nach Zeiten suchen, in denen die Höhe 0 oder 0 +/- klein war.

Eine andere Möglichkeit, dies scheint genau das zu sein, wonach Sie suchen

  • https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/spkcpo_c.html

    Beispiele

    Die für diese Beispiele gezeigten numerischen Ergebnisse können je nach Plattform unterschiedlich sein. Die Ergebnisse hängen von den als Eingabe verwendeten SPICE-Kerneln, dem Compiler und den unterstützenden Bibliotheken sowie der maschinenspezifischen
    arithmetischen Implementierung ab.

    1. Berechnen Sie das scheinbare Azimut und die Elevation der Sonne, wie sie von einem bestimmten Oberflächenpunkt auf der Erde aus gesehen werden.

      Aufgabenbeschreibung

      In diesem Beispiel verwenden wir den Standort der DSN-Station
      DSS-14 als unseren Oberflächenpunkt.

      Wir führen die Berechnung des Sonnenazimuts und der Elevation auf zwei Arten durch:

      • Verwenden eines Stationsrahmenkerns, um die
        Spezifikation eines topozentrischen Referenzrahmens bereitzustellen, der bei DSS-14 zentriert ist.

      • Inline-Berechnung der Transformation vom erdfesten, erdzentrierten Rahmen ITRF93 zu einem topozentrischen Rahmen, der bei DSS-14 zentriert ist.

      Beachten Sie, dass sich die Ergebnisse der beiden Berechnungen geringfügig unterscheiden. Es gibt drei Quellen für die Unterschiede:

      1. Die Stationsposition ist aufgrund der tektonischen Plattenbewegung zeitabhängig, und die Epochen der Stationspositionen, die zur Angabe der Achsen des topozentrischen Rahmens verwendet werden, sind in den beiden Fällen unterschiedlich. Dadurch ergeben sich unterschiedliche Ausrichtungen der Rahmenachsen relativ zum Rahmen ITRF93.

      2. Die beiden Berechnungen verwenden unterschiedliche Erdradien; dies führt zur Berechnung verschiedener geodätischer Breiten der Station. Dieser Unterschied wirkt sich auch auf die topozentrische Rahmenorientierung relativ zu ITRF93 aus.

      3. Die Stationsbewegung zwischen ET und der Epoche, in der das DSS-14_TOPO-Frame spezifiziert ist, trägt einen sehr kleinen Versatz – in der Größenordnung von 10 cm – zum Stations-Sonnenpositionsvektor bei, der im ITRF93-Frame ausgedrückt wird.

und da ist noch viel mehr.

Es scheint, dass Sie dasselbe in Python mit SpicyPy tun können

Ermitteln Sie Azimut und Höhe der scheinbaren Position des Mondes, wie sie von der DSN-Station DSS-13 aus gesehen wird, indem Sie die folgenden Schritte ausführen:

  1. Ermitteln Sie den scheinbaren Positionsvektor des Mondes relativ zur DSN-Station DSS-13 im topozentrischen Referenzrahmen DSS-13_TOPO zur Epoche ET. Verwenden Sie Lichtzeit- und Sternfehlerkorrekturen.

Für diesen Schritt müssen Sie eine Stations-SPK-Datei geladen haben, die geozentrische Stationspositionsvektoren bereitstellt, sowie einen Rahmenkern, der topozentrische Referenzrahmen angibt, die an den jeweiligen DSN-Stationen zentriert sind. (Andere Kernel werden ebenfalls benötigt; Sie müssen diese auswählen.)

  1. Wandeln Sie den Positionsvektor in Breitenkoordinaten um. Verwenden Sie für diese Berechnung die Routine spiceypy.reclat.

  2. Berechnen Sie Azimut und Höhe des Mondes wie folgt: Azimut ist das Negative der topozentrischen Länge und liegt im Bereich von 0 bis 360 Grad; Die Höhe ist gleich der topozentrischen Breite. Anzeige der Ergebnisse in Grad.

Danke für die ausführliche Antwort