Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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')