Астероид 2013 TX68 5 марта 2016 г., близкое сближение и расчет с помощью Skyfield.

На этой веб- странице НАСА описывается сближение астероида 2013 TX68 5 марта 2016 года и показано распределение вероятности точки наибольшего сближения на основе единственных доступных на данный момент данных — измерений за три или четыре дня в октябре 2013 года.

Скриншот (5 февраля 2016 г.) с сайта [ http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2013%20TX68;orb=1] , который я нашел здесь .

скриншот веб-страницы НАСА о TX68 2013 г.

Я попытался загрузить DE431 в Skyfield из любопытства, чтобы посмотреть, смогу ли я научиться использовать такие решения (которые иногда могут включать значительную неопределенность), но меня немедленно остановила ошибка, показанная ниже.

Вопрос: Как справиться с этой ошибкой? И, шире, как начать использовать орбитальные решения астероидов в Skyfield?

>>> data421 = load('de421.bsp')  # this worked
>>> data431 = load('de431.bsp')  # few seconds delay, and then:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/yournamehere/anaconda2/anaconda/envs/myenv/lib/python2.7/site-packages/skyfield/iokit.py", line 43, in load
    download(url, path, verbose=verbose)
  File "/Users/yournamehere/anaconda2/anaconda/envs/myenv/lib/python2.7/site-packages/skyfield/iokit.py", line 74, in download
    raise IOError('cannot get {1} because {2}'.format(url, e))
IndexError: tuple index out of range
Ошибка указывает на то, что формат данных не соответствует ожидаемому программой. Поэтому вам нужно выяснить, какой формат данных ожидает Skyfield.
@Hobbes Skyfield читает многие эфемериды НАСА (DExxx), но не эту, которая меня удивила, и это только первая часть вопроса.
Вы можете попробовать пропинговать Брэндона на github ( github.com/skyfielders/python-skyfield ), он довольно хорошо отвечает. Очевидные предложения: 1) что произойдет, если сначала загрузить ПРОСТО de431.bsp без de421.bsp? Единственный de431.bsp, который у меня есть, состоит из двух частей. Вы используете комбинированную версию? Ваш файл de431.bsp правильного размера, полностью загружен и т. д.?
Спасибо @barrycarter - та же ошибка, даже если я сначала попробую de431. Я поковырялся и обнаружил, что DE431 довольно большой, возможно, была проблема с местом, я проверю это. «Две части» звучат так, как будто это может быть то, о чем говорит сообщение об ошибке. Попробую пропинговать его (я там не активен, надо будет вспомнить как) пока вроде он мои вопросы рано или поздно находит. Возможно, это тот случай, когда мне следует попробовать использовать систему Horizons .
Если вам просто нужны позиции в фиксированное время, Horizons — это то, что вам нужно. Если вы действительно хотите рассчитать траекторию, я не уверен, что DE431 будет иметь это, но, возможно, вы могли бы объединить его с данными об астероидах. Не стесняйтесь пинговать меня напрямую (см. профиль), а затем опубликовать результаты здесь, если мы что-нибудь найдем.
Поскольку речь идет о тысячах километров, выбор эфемерид на самом деле не так важен. Я понимаю, что реальная задача состоит в том, чтобы взять элементы орбиты (слева) в гелиоцентрических координатах J2000 и сопоставить их с BCRS Skyfield ( @barrycarter Celestial Reference System. )

Ответы (3)

Хотя вселенная вращается вокруг меня, я предполагаю, что вы имели в виду барицентрическую небесную систему отсчета :)

ГОРИЗОНЫ дадут вам эти элементы, если вы используете эти настройки:

введите описание изображения здесь

Астероид TX 68 2013 пролетит рядом с Землей 5 марта 2016 года.

Мне нравится ваше видео, спасибо за ссылку! Это использование динамики Солнечной системы НАСА ? Может быть, вы могли бы выложить ссылку, которая открывает ssd с загруженным астероидом? Кроме того, это «чутье объектива» над землей в 1:54? И наблюдая с 1:57 до 1:59, траектория астероида (белая линия) в левой части экрана меняется на странную форму - как бы изгибается над земной орбитой. Это реально? Что случилось?

Ошибка IndexError: tuple index out of rangeпросто потому, что я неправильно набрал два индекса в сообщении об ошибке в этом исходном файле. Python имеет нулевые индексы, поэтому я должен был ввести:

IOError('cannot get {0} because {1}'.format(url, e))

Вместо этого, как вы можете видеть, я, кажется, произвел совершенно неправильное:

IOError('cannot get {1} because {2}'.format(url, e))

Это исправление будет в следующей версии Skyfield (и спасибо, что указали на проблему, с которой вы столкнулись!). На данный момент вы можете отредактировать исходный файл вручную, если хотите увидеть сообщение об ошибке, которое пытается напечатать ваш код, а именно:

OSError: cannot get ftp://ssd.jpl.nasa.gov/pub/eph/planets/bsp/de431.bsp ...

Проблема в том, что de431.bspв этом каталоге нет:

ftp://ssd.jpl.nasa.gov/pub/eph/planets/bsp/

Может быть, вы хотели дать имя de431t.bspфайлу? (В этом случае у вас должно быть больше свободного места на диске, чем у меня — его размер составляет 3,4 ГБ!)

Учитывая, что сближение с астероидом произошло в 2016 году, вы можете использовать гораздо меньшие эфемериды DE430. И если вы не пытаетесь предсказать его местоположение с точностью, скажем, до 1 метра, вы без проблем сможете использовать гораздо меньшие эфемериды DE421 или DE405.

У вас есть источник эфемерид для астероида? Или вы захотите создать его из орбитальных элементов?

Спасибо, что зашли! Да, мне понадобился день, чтобы понять, что - для практических целей десятков километров - выбор эфемерид не связан с элементами орбиты астероида. Я один из тех людей, которые практически живут на питоне, поэтому я хотел бы либо автоматически загрузить, либо просто скопировать/вставить орбитальные элементы в скрипт неба и использовать либо tx68.at(jd).position.kmкоординаты (x, y, z) tx68 в BCRS, или here.at(jd).observe(tx68).apparent().altaz()чтобы получить видимое положение в небе.
И действительно, если бы это началось, я бы достиг предела дискового пространства!