示例#1
0
文件: admit1.py 项目: astroumd/admit
        cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1])
        a[cubespectrum1].setkey('pos', maxpos)
    elif len(cslist) > 0:
        cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1, cslist])
    else:
        #cubespectrum1 = a.addtask(CubeSpectrum_AT(), [bandcube1,csttab1])
        cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1, csmom0])
    csptab1 = (cubespectrum1, 0)

    if stop == 'contsub': a.exit(1)

if usePV:
    # PVSlice
    if len(pvslice) == 4:
        # hardcoded with a start,end
        slice1 = a.addtask(admit.PVSlice_AT(slice=pvslice, width=pvwidth),
                           [bandcube1, csmom0])
    elif len(pvslit) == 4:
        # hardcoded with a center,len,pa
        slice1 = a.addtask(admit.PVSlice_AT(slit=pvslit, width=pvwidth),
                           [bandcube1, csmom0])
    else:
        # use cubesum's map to generate the best slice
        # the PPP method didn't seem to work so well yet, and is slow, so still commented out here
        #slice1 = a.addtask(PVSlice_AT(width=5),[bandcube1,csttab1])     <--  BUG with summary needed a figure CSM style input makes
        slice1 = a.addtask(admit.PVSlice_AT(width=pvwidth),
                           [bandcube1, csmom0])
    a[slice1].setkey(
        'clip',
        2.0)  # this is like a numsigma factor (sigma determined internally)
    a[slice1].setkey('gamma', 1.0)  # SB185 works better with gamma=4
示例#2
0
文件: admit5.py 项目: teuben/admit
# Master project.
p = admit.Project('all-cubes.admit', commit=False)

# Flow tasks.
t0 = p.addtask(admit.Ingest_AT(file='concat.spw17.image.fits'))
t1 = p.addtask(admit.CubeStats_AT(), [t0])
t2 = p.addtask(admit.CubeSum_AT(numsigma=5.0, sigma=1.0), [t0, t1])
t3 = p.addtask(admit.CubeSpectrum_AT(alias='spec11'), [t0, t2])
t4 = p.addtask(admit.LineSegment_AT(minchan=4, maxgap=4, numsigma=6.0),
               [t1, t3])
t5 = p.addtask(admit.ContinuumSub_AT(fitorder=1, pad=40), [t0, t4])
t5a = p.addtask(admit.CubeStats_AT(), [t5])
t6 = p.addtask(admit.CubeSpectrum_AT(alias='spec12'), [t5, t2])
t7 = p.addtask(admit.Moment_AT(mom0clip=2.0, numsigma=[3.0]), [t5, t1])
t8 = p.addtask(admit.PVSlice_AT(clip=0.3, width=5), [t5, t2])
t9 = p.addtask(admit.PVCorr_AT(), [t8, t1])
t10 = p.addtask(
    admit.LineID_AT(csub=[1, 1], minchan=3, maxgap=4, numsigma=6.0), [t5a, t6])
t11 = p.addtask(admit.LineCube_AT(pad=40), [t5, t10])
t12 = p.addtask(admit.Moment_AT(mom0clip=2.0, moments=[0, 1, 2]), [t11, t1])
t13 = p.addtask(admit.CubeSpectrum_AT(), [t11, t12])

p.run()

# Flow tasks.
t20 = p.addtask(admit.Ingest_AT(file='concat.spw19.image.fits'))
t21 = p.addtask(admit.CubeStats_AT(), [t20])
t22 = p.addtask(admit.CubeSum_AT(numsigma=4.0, sigma=1), [t20, t21])
t24 = p.addtask(admit.CubeSpectrum_AT(alias='spec13'), [t20, t22])
t26 = p.addtask(admit.LineSegment_AT(minchan=3, numsigma=4.0), [t21, t24])
示例#3
0
# >0 force single cuberms sigma from cubestats; <0 would use rms(freq) table
a[moment1].setkey('sigma', 99.0)
csmom0 = (moment1, 0)

# CubeSpectrum
if len(maxpos) > 0:
    cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1])
    a[cubespectrum1].setkey('pos', maxpos)
else:
    cubespectrum1 = a.addtask(admit.CubeSpectrum_AT(), [bandcube1, csmom0])
csptab1 = (cubespectrum1, 0)

# PVSlice
if len(pvslice) == 4:
    # hardcoded with a start,end
    slice1 = a.addtask(admit.PVSlice_AT(slice=pvslice, width=5),
                       [bandcube1, csmom0])
elif len(pvslit) == 4:
    # hardcoded with a center,len,pa
    slice1 = a.addtask(admit.PVSlice_AT(slit=pvslit, width=5),
                       [bandcube1, csmom0])
else:
    # use cubesum's map to generate the best slice
    slice1 = a.addtask(admit.PVSlice_AT(width=5), [bandcube1, csmom0])
    a[slice1].setkey('clip', 0.3)  # TODO: this is an absolute number for mom0
    a[slice1].setkey('gamma', 1.0)  # SB185 works better with gamma=4
a[slice1].setkey('smooth', pvSmooth)  # smooth, in pixel numbers
pvslice1 = (slice1, 0)

corr1 = a.addtask(admit.PVCorr_AT(), [pvslice1, csttab1])
pvcorr1 = (corr1, 0)
示例#4
0
    else:
        Tasks.append(
            p.addtask(
                admit.Ingest_AT(alias='incube',
                                file=cubefile,
                                pb=pbcorfile,
                                box=KEYS["box"])))

    Tasks.append(p.addtask(admit.CubeStats_AT(alias='instats'), ['incube']))
    Tasks.append(
        p.addtask(admit.CubeSum_AT(sigma=1, numsigma=3.0, alias='insum'),
                  ['incube', 'instats']))
    Tasks.append(
        p.addtask(admit.CubeSpectrum_AT(alias='spec1'), ['incube', 'insum']))
    Tasks.append(
        p.addtask(admit.PVSlice_AT(alias="cubepv", width=KEYS["width"]),
                  ['incube', 'insum']))
    Tasks.append(
        p.addtask(
            admit.LineID_AT(csub=[1, 1],
                            minchan=KEYS["minchan"],
                            numsigma=KEYS["numsigma"],
                            alias='lines'), ['instats', 'spec1']))
    Tasks.append(
        p.addtask(admit.LineCube_AT(alias='cutcubes', pad=KEYS["pad"]),
                  ['incube', 'lines']))
    Tasks.append(
        p.addtask(
            admit.Moment_AT(alias='linemom',
                            mom0clip=3.0,
                            numsigma=KEYS["cutoff"],
示例#5
0
    #
    # Set-up all ADMIT Flow tasks for execution including their aliases and connections
    # The aliases allow you to refer to a task's input by the alias name of the (previous) 
    # task providing that input.
    #

    # Add spectral line processing to flow
    if KEYS["specpb"] == None:
        Tasks.append(p.addtask(admit.Ingest_AT(file=cubefile, alias='incube')))
    else:
        Tasks.append(p.addtask(admit.Ingest_AT(file=cubefile, alias='incube', pb=KEYS["specpb"])))

    Tasks.append(p.addtask(admit.CubeStats_AT      (alias='instats'),                                                                  ['incube']))
    Tasks.append(p.addtask(admit.CubeSum_AT        (alias='insum',    sigma=1, numsigma=3.0),                                          ['incube', 'instats']))
    Tasks.append(p.addtask(admit.CubeSpectrum_AT   (alias='spec1'),                                                                    ['incube', 'insum']))
    Tasks.append(p.addtask(admit.PVSlice_AT        (                  width=KEYS["width"]),                                            ['incube', 'insum']))
    Tasks.append(p.addtask(admit.LineID_AT         (alias='lines',    csub=[0,0], minchan=KEYS["minchan"], numsigma=KEYS["numsigma"]), ['instats','spec1']))
    Tasks.append(p.addtask(admit.LineCube_AT       (alias='cutcubes', pad=KEYS["pad"]),                                                ['incube', 'lines']))
    Tasks.append(p.addtask(admit.Moment_AT         (alias='linemom',  mom0clip=2.0, numsigma=KEYS["cutoff"], moments=[0, 1, 2]),       ['cutcubes', 'instats']))
    Tasks.append(p.addtask(admit.CubeSpectrum_AT   (alias='linespec'),                                                                 ['cutcubes', 'linemom']))
    # While 'linemom' produces 3 moment image BDPs, the default input is taken 
    # here, which is the first BDP which is the zeroth moment.  This relies on
    # Moment_AT's default behavior of putting the zeroth moment in the 
    # BDP index 0.
    Tasks.append(p.addtask(admit.PVSlice_AT        (                  width=KEYS["width"]),                                            ['cutcubes', 'linemom']))


    # If given, add continuum map processing to flow
    if contfile != None:
        if KEYS["contpb"] == None:
            Tasks.append(p.addtask(admit.Ingest_AT (alias='incont',     file=contfile)))