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.8577cotra 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)
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).
% cotra restfreq=115.271204 z=0.183193 ... Doppler: 115.271204 97.423839 z=0.183193 v= 49959.7546 vopt= 54919.8798 vrad= 46416.6706We 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)