Для проекта мне нужны точные позиции спутников в ICRF. После некоторых поисков я не смог определить какой-либо онлайн-ресурс, предоставляющий такие временные ряды. Подробно меня интересуют временные ряды координат Grace1 и Grace2 за 2017 и 2018 годы. Есть ли они где-нибудь в открытом доступе?
До сих пор я нашел источники для элементов буксировочной линии (TLE), которые я пытался преобразовать с помощью pyEmph , но я не нашел удобного способа получить координаты ICRF из астрометических геоцентрических позиций, и мне также любопытно, будет ли точность разумной таким образом. (ср . точность TLE ), так как мне нужна точность в субметровом диапазоне.
Skyfield на http://rhodesmill.org/skyfield (обратите внимание на сходство с расположением PyEphem, а не на совпадение) делает именно то, о чем вы просите. Вы даете ему TLE и получаете координаты в ICRF (или множество других вариантов).
Тем не менее, вы не доберетесь лучше, чем на несколько километров от TLE, они просто не настолько точны с самого начала, как и распространятель SGP4, с которым они используются. Для того, чтобы получить "...точность в субметровом диапазоне", вам придется найти некоторые тщательно реконструированные (и теперь уже исторические!) данные об орбите от ученых, работающих с космическим кораблем "Грейс".
Я начертил геоцентрическое положение, но вот числовые значения для Geocentric, J2000.0 относительно барицентра Солнечной системы относительно экватора Земли и плоскостей эклиптики:
[ -725.97623801 -4703.39226501 4823.26596748 ]
[ -1.37224552e+08 5.15960658e+07 2.23564481e+07]
[ -1.37224552e+08 5.62313492e+07 -1.20962433e+04]
TLE = """1 25544U 98067A 18051.96457625 .00002577 00000-0 46169-4 0 9990
2 25544 51.6416 238.1089 0003437 117.8478 357.3261 15.54125912100440"""
L1, L2 = TLE.splitlines()
import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import Loader, EarthSatellite
load = Loader('~/Documents/fishing/SkyData')
data = load('de421.bsp')
ts = load.timescale()
planets = load('de421.bsp')
earth = planets['earth']
ts = load.timescale()
minutes = np.arange(0, 93, 0.5)
time = ts.utc(2018, 2, 27, 0, minutes)
ISS_Geo = EarthSatellite(L1, L2)
ISS_ICRF = earth + EarthSatellite(L1, L2)
ISS_Geo_pos = ISS_Geo.at(time).position.km
ISS_ICRF_pos = ISS_ICRF.at(time).position.km
ISS_ICRF_eclpos = ISS_ICRF.at(time).ecliptic_position().km
for thing in ISS_Geo_pos, ISS_ICRF_pos, ISS_ICRF_eclpos:
print thing[:, 0]
plt.figure()
for thing in ISS_Geo_pos:
plt.plot(thing)
plt.show()
Дэвид Хаммен
lenxn
ооо
ооо