def getRMSes(full=False): """ Runs these commands in the terminal: imstat in=IRC+10216/MAPSCorrect/irc+10216.co3-2.v.cm imstat in=OrionKL/MAPSCorrect/orkl_080106.co3-2.v.cm imstat in=NGC7538/MAPSCorrect/NGC7538S-s4.co3-2.v.cm imstat in=NGC1333/MAPSCorrect/iras2a.aver.co3-2.v.cm """ for folder, source in zip(folders, sources): if full: miriad.imstat({ 'in': '../{}/MAPSCorrect/{}.co3-2.v.full.cm'.format(folder, source) }) else: miriad.imstat({ 'in': '../{}/MAPSCorrect/{}.co3-2.v.cm'.format(folder, source) })
for stk in ['i', 'q', 'u', 'v']: miriad.clean({ 'map': '{}.{}.mp'.format(src, stk), 'beam': '{}.bm'.format(src), 'out': '{}.{}.cc'.format(src, stk), 'niters': 1000, 'cutoff': tall }) miriad.restor({ 'map': '{}.{}.mp'.format(src, stk), 'beam': '{}.bm'.format(src), 'model': '{}.{}.cc'.format(src, stk), 'out': '{}.{}.cm'.format(src, stk), }) miriad.imstat({'in': '{}.i.cm'.format(src), 'region': 'box(6,6,50,122)'}) input('Press return to continue') for stk in ['q', 'u', 'v']: miriad.cgdisp({ 'type': 'cont,pix', 'labtyp': 'arcsec,arcsec', 'device': '/xs', 'options': 'full,beambl,3val', 'csize': '0,1,0,0', 'in': '{0}.{1}.cm,{0}.i.cm'.format(src, stk), 'range': '{},lin,1'.format(rng), 'cols1': 2, 'slev': 'a,{}'.format(rms), 'levs1': '-21,-18,-15,-12,-9,-6,-3,3,6,9,12,15,18,21',
def disp(uvo, uvc, so, mapdir, lines=[], stokesVrms=[]): """ 1. Plot uncorrected channel map 2. Plot corrected channel map """ for i, lin in enumerate(lines): # for lin in ['cnt', 'co3-2', 'sio8-7']: devicetype = 'ps/cps' filename = lin src = '{}/{}.{}'.format(mapdir, so, lin) nxy = '1,1' path = '{}.v-i.perc'.format(src) if os.path.exists(path): shutil.rmtree(path) path = '{}.v-i.perc.uncorrected'.format(src) if os.path.exists(path): shutil.rmtree(path) rms = stokesVrms[i] if lin == 'cnt': for suffix in ['', 'uncorrected.']: opts = { 'exp': '100*<{0}.{1}v.cm>/<{0}.{1}i.cm>'.format(src, suffix), 'mask': '<{}.{}i.cm>.gt.0.4'.format(src, suffix), } suffix = '.uncorrected' if suffix != '' else '' opts['out'] = '{}.v-i.perc{}'.format(src, suffix) miriad.maths(opts) else: for suffix in ['', 'uncorrected.']: val = 6 if suffix == '' else 8 opts = { 'exp': '100*<{0}.{1}v.cm>/<{0}.{1}i.cm>'.format(src, suffix), 'mask': '<{}.{}i.cm>.gt.{}'.format(src, suffix, val), } suffix = '.uncorrected' if suffix != '' else '' opts['out'] = '{}.v-i.perc{}'.format(src, suffix) miriad.maths(opts) for datatype in ['uncorr', 'corr']: cgdispOpts = { 'type': 'cont,cont', 'labtyp': 'arcsec,arcsec', 'options': 'full,beambl,3val', 'csize': '0,1,0,0', 'cols1': 2, 'cols2': 8, 'levs1': '-95,-75,-55,-35,-15,15,35,55,75,95', 'nxy': nxy, } if datatype is 'uncorr': # flux plot cgdispOpts['slev'] = 'p,1,a,{}'.format(rms) cgdispOpts['device'] = '{}.uncorr.{}'.format( filename, devicetype) cgdispOpts[ 'in'] = '{0}.uncorrected.i.cm,{0}.uncorrected.v.cm'.format( src) cgdispOpts['levs2'] = '-8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8' miriad.cgdisp(cgdispOpts) miriad.imstat({ 'in': '{}.i.cm'.format(src), 'region': 'box(3,3,50,125)' }) miriad.imstat({ 'in': '{}.v.cm'.format(src), 'region': 'box(3,3,50,125)' }) input("Press enter to continue...") # v/i plot cgdispOpts['slev'] = 'p,1,a,1' cgdispOpts['device'] = '{}.uncorr.perc.{}'.format( filename, devicetype) cgdispOpts[ 'in'] = '{0}.uncorrected.i.cm,{0}.v-i.perc.uncorrected'.format( src) cgdispOpts['levs2'] = '-6,-5,-4,-3,-2,-1,1,2,3,4,5,6' miriad.cgdisp(cgdispOpts) input("Press enter to continue...") else: # flux plot cgdispOpts['slev'] = 'p,1,a,{}'.format(rms) cgdispOpts['device'] = '{}.corr.{}'.format( filename, devicetype) cgdispOpts['in'] = '{0}.i.cm,{0}.v.cm'.format(src) cgdispOpts['levs2'] = '-8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8' miriad.cgdisp(cgdispOpts) miriad.imstat({ 'in': '{}.i.cm'.format(src), 'region': 'box(3,3,50,125)' }) miriad.imstat({ 'in': '{}.v.cm'.format(src), 'region': 'box(3,3,50,125)' }) input("Press enter to continue... ") # v/i plot cgdispOpts['slev'] = 'p,1,a,1' cgdispOpts['device'] = '{}.corr.perc.{}'.format( filename, devicetype) cgdispOpts['in'] = '{0}.i.cm,{0}.v-i.perc'.format(src) cgdispOpts['levs2'] = '-6,-5,-4,-3,-2,-1,1,2,3,4,5,6' miriad.cgdisp(cgdispOpts) input("Press enter to continue... ")