!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Copyright 2011 California Institute of Technology !!! !!! swap_sidebands.class !!! !!! 2011-05-16 version 1.0 Initial release !!! 2011-06-03 version 1.1 Copyright notice !!! 2014-11-17 version 2.0 sradford !!! update for changes in class variable names !!! !!! @swap_sidebands [ new_restf(MHz) ] !!! !!! Swaps signal and image sidebands. Optionally moves reference channel and !!! frequency. !!! !!! Use case: You have observed 12CO, 13CO, and C18O lines simultaneously with !!! wideband receiver and spectrometer by doppler-tracking the 12CO frequency. !!! The spectrometer was centered at the 12CO frequency in the signal sideband. !!! Now you want scans *centered* at 13CO (or C18O) that was in the image !!! sideband. !!! !!! file in ... !!! file out ... !!! find ... !!! set variable spectro write !!! set variable calibration write !!! for i 1 to found !!! get next !!! @swap_sidebands 220398.6765 !!! write !!! next !!! !!! C18O (J=2-1) 219560.3568 MHz !!! 13CO (J=2-1) 220398.6765 MHz !!! 12CO (J=2-1) 230538.0000 MHz sic\let clight = 2.99792458e5 /new double ! Speed of light (km/s) sic\let new_restf = r%head%spe%image /new double sic\let new_image = r%head%spe%restf /new double sic\let new_rchan = r%head%spe%rchan /new real sic\let new_fres = -r%head%spe%fres /new real ! No change (topocentric!!!) sic\let new_vres = -r%head%spe%vres /new real sic\if ("&1 ".ne." ") then sic\let new_restf = &1 sic\end if sic\let new_image = (r%head%spe%restf+r%head%spe%image)-new_restf sic\let new_rchan = r%head%spe%rchan+(new_restf-r%head%spe%image)*(1+r%head%spe%doppler)/new_fres sic\let new_vres = -clight*new_fres/((1+r%head%spe%doppler)*new_restf) sic\let r%head%spe%restf = new_restf sic\let r%head%spe%image = new_image sic\let r%head%spe%rchan = new_rchan sic\let r%head%spe%fres = new_fres sic\let r%head%spe%vres = new_vres sic\define real r4 sic\let r4 = r%head%cal%tatms sic\let r%head%cal%tatms = r%head%cal%tatmi sic\let r%head%cal%tatmi = r4 sic\let r4 = r%head%cal%taus sic\let r%head%cal%taus = r%head%cal%taui sic\let r%head%cal%taui = r4