Кто-нибудь знает, доступны ли орбитальные данные Beresheet на NASA Horizons?
Некоторые органы перечислены по ссылочному номеру без названия:
Этот сайт не обновляется в режиме реального времени, а только по расписанию:
https://www.n2yo.com/satellite/?s=44049
Я также нашел необработанные данные, используемые в официальном симуляторе, но они тоже выглядят не обновленными, просто запланированными.
Симулятор: http://live.spaceil.com
Необработанные данные:
http://live.spaceil.com/data/data_s1.txt (22/2 - 12/4)
http://live.spaceil.com/data/data_s2.txt (4/4 - 4/12)
http://live.spaceil.com/data/data_m.txt (22 февраля - 16 декабря)
Вкратце: Получите самые последние TLE от Celestrak сейчас и продолжайте их загружать (вот несколько, которые я недавно получил от Celestrak) или получите все исторические TLE от Space-Track (но вы должны зарегистрироваться и следовать их правилам). Используйте SGP4 для интерпретации TLE, и простой способ сделать это — использовать пакет Python Skyfield.
Horizons не обновляется в режиме реального времени, орбитальные решения обновляются каждые несколько месяцев. Это не то место, где нужно искать данные типа «отслеживание».
From Celestrak: https://celestrak.org/satcat/tle.php?CATNR=44049
BERESHEET
1 44049U 19009B 19056.12000000 -.00000410 00000-0 00000+0 0 9999
2 44049 27.0110 11.2380 8290697 180.2020 59.3930 1.03728676 24
BERESHEET
1 44049U 19009B 19057.86922840 -.00000449 00000-0 00000+0 0 9998
2 44049 27.6586 10.3444 8300888 181.1251 352.8363 1.03793705 46
BERESHEET
1 44049U 19009B 19059.41777308 -.00000504 00000-0 00000+0 0 9990
2 44049 27.6559 10.1226 8300930 181.4837 211.4679 1.03800294 67
Вы можете понять цифры, заглянув сюда , сюда и сюда .
Я помню, когда я впервые понял, что могу получать спутниковые координаты, которые постоянно обновляются из Интернета. Декабрь 2015 г.: Можно ли применить парсинг к этой странице, которая активно пересчитывается? Это был знаменитый запуск Orbcomm компанией SpaceX, и я «отслеживал спутники», просматривая веб-сайт, на котором показывалось положение спутников, чтобы визуализировать, как спутники медленно удалялись друг от друга в течение следующих нескольких дней.
Потом я открыл для себя Space Exploration SE и все стало лучше! Более удобный способ загрузки позиций спутников Orbcomm-2.
@PearsonArtPhoto рассказал мне о
где вы можете получить TLE, и
которые имеют пропагаторы SGP4, поэтому они могут преобразовывать TLE в положения и скорости с центром на Земле.
Я спросил о том, как PyEphem работает под капотом PyEphem — как он вычисляет положение планет? .
Затем я узнал, что есть более новый пакет Python под названием Skyfield , который действительно крут!
Skyfield загружает и считывает те же Эпегериды разработки JPL (также как произносится «Эфемериды»? ), которые Horizons использует для положений объектов Солнечной системы, и может принимать ручные TLE или загружать их из Celestrak для вас!
data_s1.txt
— векторы состояния космического корабля, а data_m.txt — только векторы положения (но не скорости) Луны. Я сделаю заговор для вас через некоторое время.Вот график данных в data_s1.txt
(космический корабль) и data_m.txt
(Луна). Существуют правильные векторы состояния для космического корабля
а только векторы положения Луны.
. Есть еще одна проблема, они не выравниваются правильно!! Космический корабль не вращается вокруг Луны!! @@
Я думаю, что может быть что-то странное с данными. ошибка намного больше, чем 1/81, так что это больше, чем просто барицентр по сравнению с координатами центра Земли. Что-то не так. Во всяком случае, вот!
Скрипт Python:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
with open('data_s1.txt', 'r') as infile:
slines = infile.readlines()
slines = [ [float(x) for x in line.strip().split(',')[1:]] for line in slines[1:-1]]
sstates = np.array(zip(*slines))
with open('data_m.txt', 'r') as infile:
mlines = infile.readlines()
mlines = [ [float(x) for x in line.strip().split(',')[1:]] for line in mlines[1:-1]]
mstates = np.array(zip(*mlines))
if True:
fig = plt.figure(figsize=[10, 8]) # [12, 10]
ax = fig.add_subplot(1, 1, 1, projection='3d')
x, y, z = sstates[:3]
ax.plot(x, y, z, '-r')
x, y, z = mstates[:3]
ax.plot(x, y, z, '-b')
ax.set_xlim(-405000, 405000)
ax.set_ylim(-405000, 405000)
ax.set_zlim(-405000, 405000)
plt.show()
ооо
ооо