Problems encountered when writing astronomy/astrodynamic program

334 views Asked by At

I am attempting to write a program that will show me the sky from a certain point on the earth with certain solar system bodies using the JPL Horizons Ephemeris. There are two problems I encountered: the astroquery.jplhorizons module will not work, and I do not have a sufficient 3D graphics module that I know how to use. Here is the code from the first problem; it was a test directly from the documentation (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)

The docs say I should get this:

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

However, instead I get this error when I run from my terminal:

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.

I don't know what to do about this. For the 3D question, I have dabbled a little in OpenGL and I find it too difficult and I would like something simpler. Usually when I do 3D graphics I use Processing (https://processing.org/), and something like that would be perfect. Thanks for the help.

1

There are 1 answers

0
kolenda On

I've tried to look at the source code of this library but the line numbers didn't match yours so you need to check this in your code.

Look at the file core.py and line 852, there's your error. You can print the value/object that is used there and see if it's something you expect. In Python errors are often propagated further, so if the value is wrong you need to check where did you get it from and debug there.

If you show us the line with your error we may be able to help you more.