Проблемы, возникающие при написании астрономии / астродинамической программы - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь написать программу, которая покажет мне небо из определенной точки на земле с определенными телами Солнечной системы, используя эфемериды JPL Horizons.Я столкнулся с двумя проблемами: модуль astroquery.jplhorizons не будет работать, и у меня нет достаточного модуля трехмерной графики, который я знаю, как использовать.Вот код из первой задачи;это был тест непосредственно из документации (https://astroquery.readthedocs.io/en/latest/jplhorizons/jplhorizons.html).

from astroquery.jplhorizons import Horizons
obj = Horizons(id='Ceres', location='568',
            epochs={'start':'2010-01-01', 'stop':'2010-03-01','step':'10d'})
eph = obj.ephemerides()
print(eph)

Документы говорят, что я должен получить это:

targetname    datetime_str   datetime_jd ...   GlxLat  RA_3sigma DEC_3sigma
  ---            ---             d      ...    deg      arcsec    arcsec
---------- ----------------- ----------- ... --------- --------- ----------
   1 Ceres 2010-Jan-01 00:00   2455197.5 ... 24.120057       0.0        0.0
   1 Ceres 2010-Jan-11 00:00   2455207.5 ... 20.621496       0.0        0.0
   1 Ceres 2010-Jan-21 00:00   2455217.5 ... 17.229529       0.0        0.0
   1 Ceres 2010-Jan-31 00:00   2455227.5 ...  13.97264       0.0        0.0
   1 Ceres 2010-Feb-10 00:00   2455237.5 ... 10.877201       0.0        0.0
   1 Ceres 2010-Feb-20 00:00   2455247.5 ...  7.976737       0.0        0.0

Однако вместо этого я получаю эту ошибку при запуске из моеготерминал:

Traceback (most recent call last):
 File ".\astrotest.py", line 4, in <module>
    eph = obj.ephemerides()
File "C:\Users\ct_sk\AppData\Local\Programs\Python\Python36-32\lib\site-packages\astroquery\utils\class_or_instance.py", line 25, in f
    return self.fn(obj, *args, **kwds)
File "C:\Users\ct_sk\AppData\Local\Programs\Python\Python36-32\lib\site-packages\astroquery\utils\process_asyncs.py", line 29, in newmethod
    result = self._parse_result(response, verbose=verbose)
File "C:\Users\ct_sk\AppData\Local\Programs\Python\Python36-32\lib\site-packages\astroquery\jplhorizons\core.py", line 946, in _parse_result
    data = self._parse_horizons(response.text)
File "C:\Users\ct_sk\AppData\Local\Programs\Python\Python36-32\lib\site-packages\astroquery\jplhorizons\core.py", line 852, in _parse_horizons
    raise IOError('Cannot parse table column names.')
OSError: Cannot parse table column names.

Я не знаю, что с этим делать. Что касается 3D-вопроса, я немного побаловался в OpenGL, и мне это слишком сложно, и я хотел бы что-то попроще. Обычно, когда яделаю 3D графику, я использую обработку (https://processing.org/), и что-то подобное было бы идеально. Спасибо за помощь.

1 Ответ

0 голосов
/ 26 ноября 2018

Я пытался просмотреть исходный код этой библиотеки, но номера строк не совпадали с вашими, поэтому вам нужно проверить это в своем коде.

Посмотрите файл core.py и строку852, здесь ваша ошибка.Вы можете напечатать значение / объект, который там используется, и посмотреть, ожидаете ли вы этого.В Python ошибки часто распространяются дальше, поэтому, если значение неверно, вам нужно проверить, откуда вы его взяли и там отладить.

Если вы покажете нам строку с вашей ошибкой, мы можем помочь вамбольше.

...