def calibrate_session(filename, mapnames, ifnum=0, gbtpath='/Users/adam/observations/gbt/', sessionnumber=None, refscans_list=None, scanranges=None, tau=0.02, obsmodes=None, sourcenames=None): root = filename while root != os.path.splitext(root)[0]: root = os.path.splitext(root)[0] if sessionnumber is None: sessionnumber = int(root[-2:]) filepyfits = pyfits.open(filename,memmap=True) datapfits = filepyfits[1].data dataarr = datapfits.DATA if datapfits.DATA[-1,:].sum() == 0: log.warn("READING USING PFITS") import pfits datapfits = pfits.FITS(filename).get_hdus()[1].get_data() dataarr = numpy.reshape(datapfits['DATA'],datapfits['DATA'].shape[::-1]) for feed in (1,2): for sampler in samplers[ifnum]: OK = (datapfits['FEED'] == feed) * (datapfits['SAMPLER'] == sampler) if OK.sum() > 0: pl.plot(datapfits['LST'][OK], dataarr[OK,1000:2000].mean(axis=1), ',', label='Feed %i Sampler %s' % (feed,sampler)) pl.savefig(root+'_secondhalf_continuum_nolimits.png') pl.gca().set_ylim(1,5) pl.savefig(root+'_secondhalf_continuum.png') if scanranges is None: scanranges = [(min(r)+1,max(r)-1) for r in refscans_list] if obsmodes is None: obsmodes = [None for r in refscans_list] if sourcenames is None: sourcenames = [None for r in refscans_list] for refscans, scanrange, mapname, obsmode, sourcename in zip(refscans_list, scanranges, mapnames, obsmodes, sourcenames): outpath = '%s%smap/' % (gbtpath,mapname) ref1,ref2 = min(refscans),max(refscans) for sampler,feednum in zip(samplers[ifnum],feeds[ifnum]): calibrate_map_scans.calibrate_cube_data(filename, outpath+'Session%i_%ito%i_%s_F%i.fits' % (sessionnumber,ref1,ref2,sampler,feednum), scanrange=scanrange, feednum=feednum, sampler=sampler, filepyfits=filepyfits, datapfits=datapfits, tau=tau, dataarr=dataarr, refscans=refscans, sourcename=sourcename, obsmode=obsmode)
extension=1, exclude_spectral_ends=10) elif sampler in ["B18","B22","D34","D38"]: # h2c18o off_template = make_off_template.make_off(filename, scanrange=scanrange, #exclude_velo=[-10,70], interp_vrange=[-150,250], interp_polyorder=10, sampler=sampler, feednum=feednum, sourcename=sourcename, savefile=savefile, clobber=True, extension=1, exclude_spectral_ends=10) else: off_template = None outfn = outpath+'14A_110_2_%ito%i_%s_F%i.fits' % (ref1,ref2,sampler,feednum) calibrate_map_scans.calibrate_cube_data(filename, outfn, scanrange=scanrange, #min_scale_reference=10, feednum=feednum, refscans=refscans, sampler=sampler, filepyfits=filepyfits, datapfits=datapfits, tau=0.03, dataarr=dataarr, obsmode=obsmode, sourcename=sourcename, off_template=off_template)
elif sampler in ('D33','D37'): # H110a off_template = make_off_template.make_off(filename, scanrange=scanrange, obsmode=obsmode, exclude_velo=[-50,150], interp_vrange=[-150,250], interp_polyorder=10, sampler=sampler, savefile=savefile, clobber=True, exclude_spectral_ends=10) else: off_template = None print "Sanity check. Off_template: ",off_template calibrate_map_scans.calibrate_cube_data(filename, outpath+'12B_221_%ito%i_%s_F1.fits' % (ref1,ref2,sampler), scanrange=scanrange, feednum=1, refscans=refscans, sampler=sampler, filepyfits=filepyfits, datapfits=datapfits, tau=0, dataarr=dataarr, obsmode=obsmode, exclude_spectral_ends=10., min_scale_reference=10, sourcename=sourcename, off_template=off_template)
) ): s1,s2 = scanrange savefile = os.path.join(paths.AGBT15B_129_3_path, "AGBT15B_129_03_{0}_fd{1}_if{2}_sr{3}-{4}" .format(sampler,feednum,ifnum,s1,s2)) log.info(savefile) outfn = os.path.join(paths.outpath, '15B_129_3_%ito%i_%s_F%i.fits' % (s1,s2,sampler,feednum)) calibrate_map_scans.calibrate_cube_data(filename, outfn, scanrange=scanrange, #min_scale_reference=10, feednum=feednum, refscans=refscans, sampler=sampler, filepyfits=filepyfits, datapfits=datapfits, # ignored b/c gain tau=0.50, #tsys=np.median(tsys[gainsOK]), #gain=gain_dict, dataarr=dataarr, obsmode=obsmode, sourcename=sourcename, highfreq=False, verbose=True, )