def gridGalaxy(galaxy='IC0342', setup='13CO_C18O', datadir='/lustre/pipeline/scratch/DEGAS/', overwrite=True, release='QA1', edgetrim = 100, basebuff = 64, plotTimeSeries=True, PostprocOnly=False, scanblorder=11, posblorder=7, pipeversion=None, **kwargs): # Override automatic version; needed for development sometimes. if pipeversion is None: pipeversion = pkg_resources.get_distribution("degas").version setup_dict = {'13CO_C18O':'13co_c18o', 'HCN_HCO+':'hcn_hcop', '12CO':'12co'} filelist = glob.glob(os.path.join(datadir,galaxy,setup,"*.fits")) OutputDirectory = os.path.join(datadir,galaxy,"images") if not os.access(OutputDirectory, os.W_OK): try: os.mkdir(OutputDirectory) os.chdir(OutputDirectory) except OSError: raise else: os.chdir(OutputDirectory) if '12CO' in setup: filename = galaxy + '_' + setup + '_v{0}'.format(pipeversion) maskfile= (datadir + '/masks/BOOLEAN_MASKS/' + galaxy + '.' + setup_dict[setup] + '.mask.fits') if not PostprocOnly: gbtpipe.griddata(filelist, startChannel=edgetrim, endChannel=1024-edgetrim, outdir=OutputDirectory, flagSpike=True, spikeThresh=3, flagRMS=True, plotTimeSeries=plotTimeSeries, flagRipple=True, rippleThresh=1.2, pixPerBeam=4.0, rmsThresh=1.1, robust=False, blorder=scanblorder, plotsubdir='timeseries/', windowStrategy='cubemask', maskfile=maskfile, outname=filename, **kwargs) postprocess.cleansplit(filename + '.fits', spectralSetup=setup, HanningLoops=1, spatialSmooth=1.3, maskfile=maskfile, blorder=posblorder, **kwargs) else: filename = galaxy + '_' + setup + '_v{0}'.format(pipeversion) maskfile= (datadir + '/masks/BOOLEAN_MASKS/' + galaxy + '.' + setup_dict[setup] + '.mask.fits') if not PostprocOnly: if os.path.exists(maskfile): warnings.warn("Processing with mask {0}".format(maskfile)) gbtpipe.griddata(filelist, startChannel=edgetrim, endChannel=1024-edgetrim, outdir=OutputDirectory, flagSpike=True, spikeThresh=3, flagRMS=True, plotTimeSeries=plotTimeSeries, flagRipple=True, rippleThresh=1.2, pixPerBeam=4.0, rmsThresh=1.1, robust=False, blorder=scanblorder, plotsubdir='timeseries/', windowStrategy='cubemask', maskfile=maskfile, outname=filename, **kwargs) else: warnings.warn("Mask file not found. Proceeding to grid without mask file") gbtpipe.griddata(filelist, startChannel=edgetrim, endChannel=1024-edgetrim, outdir=OutputDirectory, flagSpike=True, spikeThresh=3, flagRMS=True, plotTimeSeries=plotTimeSeries, flagRipple=True, rippleThresh=1.2, pixPerBeam=4.0, rmsThresh=1.1, robust=False, blorder=scanblorder, plotsubdir='timeseries/', outname=filename, **kwargs) if os.path.exists(maskfile): warnings.warn("Processing with mask {0}".format(maskfile)) postprocess.cleansplit(filename + '.fits', spectralSetup=setup, HanningLoops=1, blorder=posblorder, spatialSmooth=1.3, maskfile=maskfile, **kwargs) else: warnings.warn("Processing without mask") postprocess.cleansplit(filename + '.fits', spectralSetup=setup, HanningLoops=1, blorder=posblorder, spatialSmooth=1.3, **kwargs)
def gridGalaxy(galaxy='IC0342', setup='13CO_C18O', datadir='/lustre/pipeline/scratch/DEGAS/', overwrite=True, release='QA1', edgetrim=100, basebuff=64, plotTimeSeries=True, PostprocOnly=False, **kwargs): pipeversion = pkg_resources.get_distribution("degas").version origDir = os.getcwd() filelist = glob.glob(os.path.join(datadir, galaxy, setup, "*.fits")) OutputDirectory = os.path.join(datadir, galaxy, "images") if not os.access(OutputDirectory, os.W_OK): try: os.mkdir(OutputDirectory) except OSError: raise os.chdir(OutputDirectory) if '12CO' in setup: filename = galaxy + '_' + setup + '_v{0}'.format(pipeversion) if not PostprocOnly: gbtpipe.griddata(filelist, startChannel=edgetrim, endChannel=1024 - edgetrim, baselineRegion=[ slice(edgetrim, edgetrim + basebuff, 1), slice(1024 - edgetrim - basebuff, 1024 - basebuff, 1) ], outdir=OutputDirectory, flagRMS=True, plotTimeSeries=plotTimeSeries, flagRipple=True, pixPerBeam=4.0, plotsubdir='timeseries', outname=filename, **kwargs) postprocess.cleansplit(os.path.join(OutputDirectory, filename + '.fits'), spectralSetup=setup, HanningLoops=1, spatialSmooth=1.3, **kwargs) else: filename = galaxy + '_' + setup + '_v{0}'.format(pipeversion) if not PostprocOnly: gbtpipe.griddata( filelist, startChannel=edgetrim, endChannel=1024 - edgetrim, # do whole region. May not work for # strong lines like 12CO. baselineRegion=[slice(edgetrim, 1024 - edgetrim, 1)], #baselineRegion = [slice(edgetrim, # edgetrim+basebuff,1), # slice(448,576,1), # slice(1024-edgetrim-basebuff, # 1024-edgetrim,1)], outdir=OutputDirectory, blorder=5, flagSpike=True, spikeThresh=3.0, flagRMS=True, rippleThresh=2.0, plotTimeSeries=plotTimeSeries, flagRipple=True, pixPerBeam=4.0, plotsubdir='timeseries', outname=filename, **kwargs) postprocess.cleansplit(os.path.join(OutputDirectory, filename + '.fits'), spectralSetup=setup, HanningLoops=1, spatialSmooth=1.3, **kwargs) os.chdir(origDir)
def gridGalaxy(galaxy='IC0342', setup='13CO_C18O', datadir='/lustre/pipeline/scratch/DEGAS/', overwrite=True, release='QA1', edgetrim=100, basebuff=64, plotTimeSeries=True, PostprocOnly=False, **kwargs): pipeversion = pkg_resources.get_distribution("degas").version # Note that we also use a few channels in the middle. filelist = glob.glob(datadir + galaxy + '/' + setup + '/*fits') OutputDirectory = datadir + galaxy + '/images/' if not os.access(OutputDirectory, os.W_OK): try: os.mkdir(OutputDirectory) os.chdir(OutputDirectory) except OSError: raise if '12CO' in setup: filename = galaxy + '_' + setup + '_v{0}'.format(pipeversion) if not PostprocOnly: gbtpipe.griddata(filelist, startChannel=edgetrim, endChannel=1024 - edgetrim, baselineRegion=[ slice(edgetrim, edgetrim + basebuff, 1), slice(1024 - edgetrim - basebuff, 1024 - basebuff, 1) ], outdir=OutputDirectory, flagRMS=True, plotTimeSeries=plotTimeSeries, flagRipple=True, pixPerBeam=4.0, plotsubdir='timeseries', outname=filename, **kwargs) postprocess.cleansplit(OutputDirectory + filename + '.fits', spectralSetup=setup, HanningLoops=1, spatialSmooth=1.3, **kwargs) else: filename = galaxy + '_' + setup + '_v{0}'.format(pipeversion) if not PostprocOnly: gbtpipe.griddata(filelist, startChannel=edgetrim, endChannel=1024 - edgetrim, baselineRegion=[ slice(edgetrim, edgetrim + basebuff, 1), slice(448, 576, 1), slice(1024 - edgetrim - basebuff, 1024 - basebuff, 1) ], outdir=OutputDirectory, blorder=5, flagRMS=True, plotTimeSeries=plotTimeSeries, flagRipple=True, pixPerBeam=4.0, plotsubdir='timeseries', outname=filename, **kwargs) postprocess.cleansplit(OutputDirectory + filename + '.fits', spectralSetup=setup, HanningLoops=1, spatialSmooth=1.3, **kwargs)
filelist = glob.glob('testdir/*fits') # Trim 100 channels from the end of each spectrum # (which is 1024 channels long, in total) edgetrim = 100 # Use a 64 channel window for baselining on each end of the spectrum. basebuff = 64 # Note that we also use a few channels in the middle. # Grid them dataz. gbtpipe.griddata(filelist, startChannel=edgetrim, endChannel=1024 - edgetrim, baselineRegion=[ slice(edgetrim, edgetrim + basebuff, 1), slice(448, 576, 1), slice(1024 - edgetrim - basebuff, 1024 - basebuff, 1) ], flagRMS=True, flagRipple=True, pixPerBeam=4.0) # Postprocess the data degas.cleansplit('ngc1068.fits') # Now, we have a calibrated cube. Let's make pictures. mpl.rcParams['font.family'] = 'serif' mpl.rcParams['font.serif'] = 'FreeSerif' hcn = SpectralCube.read('NGC1068_HCN_rebase3_smooth1.fits')