Doppler Shift

The current doppler shift calculations in the CARMA system are done using a local/linear approximation, which starts to break down at large distances/doppler shifts. See bugzilla 334 for the discussion how to fix this. The CGS tool now correctly uses high-Z for velocities. See for example this GBT memo on the tolerances.

With the MIRIAD program cotra you can compute for a large doppler shift (often given in terms of z=) what the appropriate rest frequency should be in order for the object to appears at VLSR=0:

% cotra z=1
Doppler:  115.271204  57.635602 z=1.000000 v= 179875.4748 vopt= 299792.4580 vrad= 149896.2290

% cotra z=299792,o
Doppler:  115.271204  57.635646 z=0.999998 v= 179875.3282                   vrad= 149896.1145

% cotra z=149896,r
Doppler:  115.271204  57.635690 z=0.999997 v= 179875.1817 vopt= 299791.5420

% cotra z=179875,x
Doppler:  115.271204  57.635745 z=0.999995                vopt= 299790.9726 vrad= 149895.8577

cotra will also give you the LSR and GSR corrections if you give the RA,DEC of your source. Here's the relevant section from the help page on the two keywords you need to know about:
Keyword: z
         Redshift (unitless) or velocity (km/s).
         If velocity is given,  the optical or radio definition
         in a 2nd argument needs to be specified. Valid are
         'o' (optical), 'r' (radio) and 'x' (relativistic).
         Default : 0
Keyword: restfreq
         Rest frequency of a spectral line in GHz. 
         Default: 115.271204 (the CO 0-1 transition)

Some reminders:

  1. For given linear velocities (i.e. V > c is allowed) :
    V_opt = V_rad / (1 + V_rad/c)
    V_rad = V_opt / (1 - V_opt/c)

Heliocentric vs. LSR

CARMA used to only accept RADIO/LSR, but as of Feb 2013 converts to RADIO/LSR if the source catalogue says otherwise. A dangerous situation can occur with sources of which you only have Heliocentric, as CARMA uses NOVAS V2, which uses the old 20 km/s towards (18h,+30) in B1900 coordinates. This is equivalent to MIRIAD's
cotra uvw=10.3,15.3,7.7
, but if you use another source of this conversion, you could wind up with a wrong velocity labeling. (5 km/s differences between the various LSR assumptions are not uncommon).

Example

Here is an example for the object labeled B1 in the EGNoG survey (Bauermeister et al.). This source has a known redshift z=0.183193 (when given in 'z' notation, is always employs the optical definition, i.e. Vopt=54920 km/s). First we check with cotra the rest frequency of CO(1-0):
% cotra restfreq=115.271204 z=0.183193
...
Doppler:           115.271204  97.423839 z=0.183193 v=  49959.7546 vopt=  54919.8798 vrad=  46416.6706
We will use this rest frequency of 97.423839 in the correlator setup tool (CGS) and set a Vlsr=0 recession velocity, also in the source catalog file.
% cat /array/rt/catalogs/c0834.cat
#| Source |   RA          |   DEC        | Parallax | Velocity | VelFrame | VelDef |  PMRA     | PMDEC     |  ID  |  PntType | Comments |
#|  s     |   hms         |   dms        |    r     |    r     |    s     |   s    |   r       |   r       |  i   |  s       | s        |
#|        |               |              |  mas     |   km/s   |          |        |  mas/year |  mas/year |      |          |          |
  B1        22:35:28.64     13:58:12.62     0.0         0.0        LSR      RADIO     0.000       0.000       1      RADIO
...
and in CGS we create a correllator setup, which the observing script generator needs:
% cat $EGN/def/c0834I.1C_97B1.1/c0834I_1C_97B1.obs
# -*- python -*-
# template observing script: version 1.16 2011/03/16 03:53:05
...
# Tuning options
tuning = {
   'restfreq' : 97.4237,  # [GHz] Line rest frequency 
   'sideband' : LSB,    # Sideband for first LO (LSB or USB)
   'IFfreq'   : 3.0,   # [GHz] IF frequency
}
...
# Correlator configuration.
# For best sensitivity, a band should be placed at an IF frequency > 2 GHz.
# Also, the band should not overlap IF=5 GHz.
# NOTE: The configastroband() commands should all be indented by the same amount!
def setCorrelator(tuning):
   lo1 = 100.4237
   configastroband(1, "LL", BW500, lo1 - 2.1025, AUTO, 'none', 'none', bits=CORR_3BIT)
   configastroband(2, "LL", BW500, lo1 - 2.5513, AUTO, 'none', 'none', bits=CORR_3BIT)
   configastroband(3, "LL", BW500, lo1 - 3.0000, AUTO, 'none', 'none', bits=CORR_3BIT)
   configastroband(4, "LL", BW500, lo1 - 3.4487, AUTO, 'none', 'none', bits=CORR_3BIT)
   configastroband(5, "LL", BW500, lo1 - 3.8975, AUTO, 'none', 'none', bits=CORR_3BIT)
   configastroband(6, "LL", BW500, lo1 - 6.8363, AUTO, 'none', 'none', bits=CORR_3BIT)
   configastroband(7, "LL", BW500, lo1 - 7.2850, AUTO, 'none', 'none', bits=CORR_3BIT)
   configastroband(8, "LL", BW500, lo1 - 7.7338, AUTO, 'none', 'none', bits=CORR_3BIT)


Last updated: 27-nov-2012 PJT