Ephemeris Objects

A good introduction into how ephemeris objects have to be treated in CASA can be found in Section 4.7.11 Manipulation of Ephemeris Objects in the CASA Cookbook. However, in some cases the explanation is not elaborate enough, in particular when it comes to getting ephemeris data from objects that do not have a JPL catalog number (e.g., comets).

Retrieving your own ephemeris table

Horizons Web-Interface to obtain your own ephemeris table

In Section 4.7.11.1 you see an example of how to get your own ephemeris table:

import recipes.ephemerides.request as jplreq
jplreq.request_from_JPL(objnam='Mars',startdate='2012-01-01',enddate='2013-12-31',
date_incr='0.1 d', get_axis_orientation=False,
get_axis_ang_orientation=True,
get_sub_long=True, use_apparent=False, get_sep=False,
return_address='YOUR_EMAIL_ADDESS',
mailserver='YOUR_MAIL_SERVER_ADDRESS')

It is important to note that this function will fail if your ephemeris object is not in the list of known objects (which is defined within this function). So retrieving the ephemeris table of comets like “C/2012 S1 ISON” will fail.

However, there is a workaround for that. You can directly go to the Horizons Web-Interface and generate your ephemeris table there.

To maintain compatibility with the ephemeris table that you can request through jplreq.request_from_JPL() it is important to keep to these guidelines (maybe other solutions also work, but if you just follow these points it'll definitely work):

<HTML><blockquote>

</blockquote></HTML> Your ephemeris table can then be used by CASA to attach the ephemeris to the measurement set :

fixplanets(vis = 'ISON.ms',
  field = 'ISON',
  fixuvw = True,
  direction = 'ison.eph')

Then you can reset the observer frame to the cometocentric frame by :

cvel(vis = 'ISON.ms',
  outputvis='cvel_ISON.ms',
  outframe='SOURCE',
  mode = 'velocity',
  start = '-10km/s',
  width = '0.2km/s',
  nchan = 101,
  restfreq = '354.50547GHz')

and you can then image that with :

clean(vis = 'ISON.ms',
  imagename = 'ISON.line',
  ...
  mode = 'velocity',
  start = '-10km/s',
  width = '0.2km/s',
  nchan = 101,
  restfreq = '354.50547GHz')
In clean(), you have to specify the same velocity grid again, leaving out the variable outframe. mode='channel' will not work.