Я ознакомился с моделью SGP4. Проблема, с которой я столкнулся, заключается в том, что результаты находятся в кадре TEME.
Как преобразовать TEME в J2000?
Был бы рад также, если вы предложите способ в python
или julia
.
Проблема решается с помощью пакетов Skyfield
и в python.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
часть? Я не очень понимаю, что здесь происходит. Дата и время, когда вы хотите преобразовать TEME time
в J2000? Это должно быть выражено в днях?time
используется, но никогда не определяется. Ошибаются imports
. Это не сработало бы в python 2.7, не говоря уже о python 3.Я опубликовал пакет julia под названием SatelliteToolbox.jl , в котором есть все преобразования, связанные с моделью IAU-76/FK5 (ITRF, MOD, TOD, GCRF, PEF и т. д.), и теперь я также добавил поддержку TEME. Однако вам нужно использовать master
ветку, потому что она еще не выпущена.
Чтобы установить пакет из master
, вы можете сделать это:
Pkg.add("SatelliteToolbox")
Pkg.checkout("SatelliteToolbox")
Если у вас есть вектор, представленный в TEME r_teme
, вы можете преобразовать его в J2000, используя:
D_J2000_TEME = rTEMEtoGCRF(JD_TT)
r_j2000 = D_J2000_TEME*r_teme
где JD_TT
юлианский день по земному времени. Если у вас есть только юлианский день в формате UTC, вы можете использовать JD_TT = JD_UTCtoTT(JD_UTC)
.
Этот пакет также имеет собственную реализацию SGP4 ( пока без битов SDP4 ). Вычисленные векторы от пропагатора орбиты (положение и скорость) представлены в TEME и могут быть преобразованы в J2000 с помощью описанной выше процедуры.
Обратите внимание, что определение TEME в этом пакете совпадает с определением, используемым Vallado, поскольку у нас нет «официального» определения TEME. Кроме того, все эти функции преобразования были тщательно протестированы на примерах в папке книги Вальядо (как вы можете видеть в ./test/
).
С новейшим коммитом это еще проще:
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)
Тарлан дал правильный ответ, но я хотел присоединиться к тем, кто не использует Python или какое-либо другое программное обеспечение, которое здесь не обсуждается.
По общему мнению, преобразование непосредственно между инерциальными системами отсчета становится запутанным и нетривиальным. В результате было бы лучше перевести TEME в фиксированную/псевдофиксированную систему отсчета, прежде чем преобразовывать ее в выбранную вами инерциальную систему отсчета.
Это работает не только для J2000, но и для любого фрейма. Преобразование координат TEME в ECF довольно распространено, особенно в телекоммуникационных компаниях, которые хотят знать, какое покрытие будут обеспечивать их спутники. Оттуда переход к ECF к любой инерциальной системе отсчета, в которой вы работаете, будет тривиальным, если вы понимаете взаимосвязь между вашей фиксированной и инерциальной системами координат.
Как преобразовать TEME в J2000? [используя Python]
См.: " astropysics/astropysics/coords/coordsys.py ", который находится в пакете Astrophysics .
Смотрите также:
" Отслеживание следов спутников на поверхности Земли " или
« Пересмотр отчета Spacetrack #3: Rev 2 », Приложение C — Система координат TEME.
Исходный код (C++, FORTRAN, Java, MATLAB, Pascal. Всего: 1 229 282 байт, ZIP-файл).
пользователь7073
Тарлан Мамедзаде