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.
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 line852
, 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.