Отслеживание лунного посадочного модуля SpaceIL Beresheet

Кто-нибудь знает, доступны ли орбитальные данные Beresheet на NASA Horizons?

Некоторые органы перечислены по ссылочному номеру без названия:

https://ssd.jpl.nasa.gov/horizons_batch.cgi?batch=1&MAKE_EPHEM=%20%27YES%27&&TABLE_TYPE=%20%27VECTORS%27&&OUT_UNITS=%20%27KM-S%27&&REF_SYSTEM=%20%27J2000%27&&VEC_LABELS= %20%27YES%27&&CSV_FORMAT=%20%27YES%27&&OBJ_DATA=%20%27NO%27&&VEC_TABLE=%20%272%27&&STEP_SIZE=%20%271%20h%27&&START_TIME=%20%272018-09-1%2000:00% 27&&STOP_TIME=%20%272018-12-03%2017:01%27&&COMMAND=%20%27 *%27&CENTER=%20%27500@399%27&

Этот сайт не обновляется в режиме реального времени, а только по расписанию:

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 декабря)

Ответы (2)

Вкратце: Получите самые последние 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.

X, Y, Z созвездия

@PearsonArtPhoto рассказал мне о

где вы можете получить TLE, и

которые имеют пропагаторы SGP4, поэтому они могут преобразовывать TLE в положения и скорости с центром на Земле.

Я спросил о том, как PyEphem работает под капотом PyEphem — как он вычисляет положение планет? .

Затем я узнал, что есть более новый пакет Python под названием Skyfield , который действительно крут!

Skyfield загружает и считывает те же Эпегериды разработки JPL (также как произносится «Эфемериды»? ), которые Horizons использует для положений объектов Солнечной системы, и может принимать ручные TLE или загружать их из Celestrak для вас!

Что означает «ТЛЭ»?
@jumpjack Я внес изменения, эти строки вверху, они с 1, а затем с 2, это два набора линейных элементов.
как мне интерпретировать вывод целестрака?
@jumpjack Я уже дал вам три TLE для Beresheet и объяснил, как их использовать для получения векторов состояния. Это много. В своем вопросе вы также даете ссылку на векторы состояния. Что еще вам нужно именно? (вектор состояния [ Икс , у , г , в Икс , в у , в г ] )
@jumpjack данные в этих ссылках на текстовые файлы являются векторами состояния, поэтому они готовы к работе. Ты можешь сказать Икс , у , г потому что цифры вроде 1000 или 10000 км. Следующие три числа, такие как 0,1 или 1,0, представляют собой скорость в км/сек. Я не могу этого гарантировать, но, вероятно, это правда. Это рассчитанная орбита, и хотя космический корабль должен внимательно следить за ней, это имитация, а не реальные данные.
@jumpjack, когда у вас есть TLE, есть много способов их использовать. Я сам использую древнюю программу для DOS под названием STSPLUS, но я не могу рекомендовать ее...
@jumpjack хорошо, векторы состояния в текстовых файлах интересны. data_s1.txt— векторы состояния космического корабля, а data_m.txt — только векторы положения (но не скорости) Луны. Я сделаю заговор для вас через некоторое время.
спасибо, я уже сделал сюжет, но данные не обновляются...
@jumpjack Я добавил второй ответ просто для удовольствия.

Вот график данных в 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()