Ich habe mich mit dem SGP4-Modell vertraut gemacht. Das Problem, mit dem ich konfrontiert war, ist, dass die Ergebnisse im TEME-Frame sind.
Wie konvertiere ich den TEME in J2000?
Würde mich auch freuen, wenn du eine Methode in python
oder vorschlägst julia
.
Das Problem wird mit den Paketen Skyfield
und in Python gelöst.Astropy
import skyfield.sgp4lib as sgp4lib
from astropy import coordinates as coord, units as u
from astropy.time import Time
# time- J2000 date
# p,v- vectors, result of SGP4 in TEME frame
date= datetime.datetime(2000, 1, 1, 12, 0) + datetime.timedelta(days=time - 2451545)
# Conversion from TEME to ITRS
p,v= sgp4lib.TEME_to_ITRF(time,np.asarray(p),np.asarray(v)*86400)
v=v/86400
# Conversion from ITRS to J2000
now = Time(date)
itrs = coord.ITRS(p[0]*u.km, p[1]*u.km, p[2]*u.km, v[0]*u.km/u.s, v[1]*u.km/u.s, v[2]*u.km/u.s, obstime=now)
gcrs = itrs.transform_to(coord.GCRS(obstime=now))
p,v=gcrs.cartesian.xyz.value,gcrs.velocity.d_xyz.value
days=time - 2451545
Teil bitte erklären? Ich verstehe nicht wirklich, was hier passiert. Ist time
die Datumszeit, zu der Sie von TEME zu J2000 konvertieren möchten? Soll es in Tagen ausgedrückt werden?time
wird verwendet, aber niemals definiert. Die imports
sind falsch. Dies hätte in Python 2.7 nicht funktioniert, geschweige denn in Python 3.Ich habe ein Julia-Paket namens SatelliteToolbox.jl veröffentlicht , das alle Konvertierungen im Zusammenhang mit dem IAU-76/FK5-Modell (ITRF, MOD, TOD, GCRF, PEF usw.) enthält, und jetzt habe ich auch die Unterstützung für TEME hinzugefügt. Sie müssen jedoch den master
Zweig verwenden, da er noch nicht veröffentlicht ist.
Um das Paket von zu installieren master
, können Sie Folgendes tun:
Pkg.add("SatelliteToolbox")
Pkg.checkout("SatelliteToolbox")
Wenn Sie einen Vektor in TEME dargestellt haben r_teme
, können Sie ihn in J2000 konvertieren, indem Sie:
D_J2000_TEME = rTEMEtoGCRF(JD_TT)
r_j2000 = D_J2000_TEME*r_teme
wo JD_TT
ist der Julianische Tag in der irdischen Zeit. Wenn Sie nur den Julianischen Tag in UTC haben, können Sie JD_TT = JD_UTCtoTT(JD_UTC)
.
Dieses Paket hat auch eine native Implementierung von SGP4 ( noch ohne SDP4-Bits ). Die berechneten Vektoren vom Orbitpropagator (Position und Geschwindigkeit) werden in TEME dargestellt und können unter Verwendung des obigen Verfahrens in J2000 konvertiert werden.
Beachten Sie, dass die Definition von TEME in diesem Paket mit der von Vallado verwendeten identisch ist, da wir keine "offizielle" TEME-Definition haben. Darüber hinaus wurden all diese Transformationsfunktionen ausführlich anhand der Beispiele im Buchordner von Vallado (wie Sie in sehen können ./test/
) getestet.
Mit dem neuesten Commit ist es noch einfacher:
using SatelliteToolbox
# Julian day at 2018-Feb-12 15:35:22 UTC
JD_UTC = DatetoJD(2018,2,12,15,35,22)
# DCM that rotates the TEME frame of Date `JD_UTC` into J2000.
D_J2000_TEME = rECItoECI(TEME(), J2000(), JD_UTC)
# Quaternion that rotates the TEME frame of Date `JD_UTC` into J2000.
q_J2000_TEME = rECItoECI(Quaternion, TEME(), J2000(), JD_UTC)
Tarlan ist mit seiner Antwort genau richtig, aber ich wollte für diejenigen mitkommen, die Python nicht verwenden oder eine andere Software verwenden, die hier nicht besprochen wird.
Der allgemeine Konsens ist, dass die direkte Konvertierung zwischen Trägheitsrahmen chaotisch und nicht trivial wird. Daher wäre es am besten, TEME in einen festen/pseudofesten Rahmen zu bringen, bevor Sie ihn in den Trägheitsrahmen Ihrer Wahl umwandeln.
Dies funktioniert nicht nur für J2000, sondern für jeden Rahmen. TEME-zu-ECF-Koordinatentransformationen sind ziemlich verbreitet, insbesondere bei Telekommunikationsunternehmen, die wissen möchten, welche Art von Abdeckung ihre Satelliten bieten werden. Von dort aus ist es trivial, zu ECF zu dem Trägheitsrahmen zu wechseln, in dem Sie arbeiten, wenn Sie die Beziehung zwischen Ihrem festen und Ihrem Trägheitskoordinatensystem verstehen.
Wie konvertiere ich den TEME in J2000? [mit Python]
Siehe: " astrophysics/astropysics/coords/coordsys.py ", das aus dem Astrophysics -Paket stammt.
Siehe auch:
„ Tracking von Satellitenspuren auf der Erdoberfläche “ bzw
„ Revisiting Spacetrack Report #3: Rev 2 “, Anhang C – TEME-Koordinatensystem.
Quellcode (C++, FORTRAN, Java, MATLAB, Pascal. Gesamt: 1.229.282 Bytes, .ZIP-Datei).
Benutzer7073
Tarlan Mamadzada