コード例 #1
0
    def pass_two(self):
        ''' Second pass of ccdproc '''
        extras.cl_bye(self.verb)

        print(" Making 2nd pass on images: %s " % len(self.scifiles),
              file=sys.stderr)
        print(" \t\t\tdome flats", file=sys.stderr)

        # Set more params
        mscred.ccdproc.ccdtype = 'object'
        mscred.ccdproc.noproc = 'no'

        mscred.ccdproc.xtalkcor = 'no'
        mscred.ccdproc.fixpix = 'no'
        mscred.ccdproc.overscan = 'yes'
        mscred.ccdproc.trim = 'yes'
        mscred.ccdproc.zerocor = 'yes'
        mscred.ccdproc.darkcor = 'no'
        mscred.ccdproc.flatcor = 'yes'
        mscred.ccdproc.sflatcor = 'no'
        mscred.ccdproc.split = 'no'
        mscred.ccdproc.merge = 'no'

        #mscred.ccdproc.xtalkfile   = '!xtalkfil'
        #mscred.ccdproc.fixfile     = 'BPM'
        mscred.ccdproc.saturation = '!saturate'
        mscred.ccdproc.sgrow = 1
        mscred.ccdproc.bleed = 20000
        mscred.ccdproc.btrail = 20
        mscred.ccdproc.bgrow = 0
        mscred.ccdproc.biassec = '!biassec'
        mscred.ccdproc.trimsec = '!trimsec'
        mscred.ccdproc.zero = self.Zero
        mscred.ccdproc.dark = 'Dark'
        mscred.ccdproc.flat = self.Dflat + "*"
        mscred.ccdproc.sflat = self.Sflat + "*"
        mscred.ccdproc.minreplace = 1.0

        mscred.ccdproc.interactive = 'no'
        mscred.ccdproc.function = 'legendre'
        mscred.ccdproc.order = 1
        mscred.ccdproc.sample = '*'
        mscred.ccdproc.naverage = 1
        mscred.ccdproc.niterate = 1
        mscred.ccdproc.low_reject = 3.0
        mscred.ccdproc.high_reject = 3.0
        mscred.ccdproc.grow = 0.0
        mscred.ccdproc.fd = ''
        mscred.ccdproc.fd2 = ''
        mscred.ccdproc.mode = 'h'

        mscred.ccdproc.images = self.scilist
        mscred.ccdproc.output = ''
        #mscred.ccdproc.bpmasks     = self.bplist

        # Run it
        mscred.ccdproc()

        extras.cl_bye(self.verb)
        return
コード例 #2
0
ファイル: skyflat.py プロジェクト: boada/planckClusters
    def fixpix(self):

        N = self.Namps
        for filter in self.obsfilters:

            # Avoid if Sflat was not created
            if len(self.forsky[filter]) < 4:
                print("# Skipping %s filter, no sky images available" % filter,
                      file=sys.stderr)
                continue

            flat = self.Sflat + filter
            print("Fixpix %s" % flat)

            for i in range(N):
                image = "%s[%s]" % (flat, i + 1)
                mask = os.path.join(
                    self.BCSPIPE,
                    "LIB/MosaicII/BPM/bpmSum%s_0511.pl" % str(i + 1))
                proto.fixpix(image,
                             mask,
                             linterp="INDEF",
                             cinterp="INDEF",
                             verbose="yes",
                             pixels="no")

                extras.cl_bye()

        return
コード例 #3
0
def set_ccdproc(obs, verb=None):
    '''Initialize ccdproc'''

    print(" initializing mscred.ccdproc", file=sys.stderr)

    mscred.ccdproc.images = ''
    mscred.ccdproc.output = ''
    mscred.ccdproc.bpmasks = ''
    mscred.ccdproc.ccdtype = ''
    mscred.ccdproc.noproc = 'no'

    #mscred.ccdproc.xtalkcor    = 'yes'
    #mscred.ccdproc.fixpix      = 'no'
    mscred.ccdproc.xtalkcor = 'no'
    mscred.ccdproc.fixpix = 'no'
    mscred.ccdproc.overscan = 'yes'
    mscred.ccdproc.trim = 'yes'
    mscred.ccdproc.zerocor = 'no'
    mscred.ccdproc.darkcor = 'no'
    mscred.ccdproc.flatcor = 'no'
    mscred.ccdproc.sflatcor = 'no'
    mscred.ccdproc.split = 'no'
    mscred.ccdproc.merge = 'no'
    #mscred.ccdproc.merge       = 'yes'

    #mscred.ccdproc.xtalkfile   = '!xtalkfil'
    #mscred.ccdproc.xtalkfile   = "bcspipe$LIB/MosaicII/xtalk/test2.dat"
    #mscred.ccdproc.xtalkfile   = os.path.join(obs.BCSPIPE,"LIB/MosaicII/xtalk/test2.dat")
    #mscred.ccdproc.fixfile     = 'BPM'
    mscred.ccdproc.saturation = 'INDEF'
    mscred.ccdproc.sgrow = 0
    mscred.ccdproc.bleed = 'INDEF'
    mscred.ccdproc.btrail = 20
    mscred.ccdproc.bgrow = 0
    mscred.ccdproc.biassec = '!biassec'
    mscred.ccdproc.trimsec = '!trimsec'
    mscred.ccdproc.zero = obs.Zero
    mscred.ccdproc.dark = 'Dark'
    mscred.ccdproc.flat = obs.Dflat + "*"
    mscred.ccdproc.sflat = obs.Sflat + "*"
    mscred.ccdproc.minreplace = 1.0

    mscred.ccdproc.interactive = 'no'
    mscred.ccdproc.function = 'legendre'
    mscred.ccdproc.order = 1
    mscred.ccdproc.sample = '*'
    mscred.ccdproc.naverage = 1
    mscred.ccdproc.niterate = 1
    mscred.ccdproc.low_reject = 3.0
    mscred.ccdproc.high_reject = 3.0
    mscred.ccdproc.grow = 0.0
    mscred.ccdproc.fd = ''
    mscred.ccdproc.fd2 = ''
    mscred.ccdproc.mode = 'h'
    extras.cl_bye(verb)

    return
コード例 #4
0
def setIraf(obs, verb=None):
    # Set vars
    extras.cl_bye(verb)
    iraf.set(imclobber="yes")
    iraf.set(clobber="yes")
    iraf.set(Verbose='yes')

    # Initialize some tasks
    print(" setting up IRAF's initial params", file=sys.stderr)
    #set_instrument(verb)
    set_mscred(verb)
    set_ccdproc(obs, verb)
    return
コード例 #5
0
    def combine(self):

        extras.cl_bye(self.verb)

        print(" Making superbias image with %s files:" % len(self.flatfiles),
              file=sys.stderr)
        for i in self.flatfiles:
            print("\t%s" % i, file=sys.stderr)
        for filter in self.filters:
            print("\t\t\t--> %s_%s.fits" % (self.Dflat, filter),
                  file=sys.stderr)

        # Modify the params in ccdproc that changed
        mscred.ccdproc.ccdtype = 'flat'
        mscred.ccdproc.noproc = 'no'
        mscred.ccdproc.zerocor = 'yes'

        # And the params for flatcombine
        mscred.flatcombine.combine = "average"
        mscred.flatcombine.reject = "avsigclip"
        mscred.flatcombine.ccdtype = "DFLAT"
        mscred.flatcombine.process = self.process
        mscred.flatcombine.subsets = 'yes'
        mscred.flatcombine.delete = 'no'
        mscred.flatcombine.scale = "mode"
        mscred.flatcombine.statsec = ""
        mscred.flatcombine.nlow = 1
        mscred.flatcombine.nhigh = 1
        mscred.flatcombine.nkeep = 1
        mscred.flatcombine.mclip = 'yes'
        mscred.flatcombine.lsigma = 3.0
        mscred.flatcombine.hsigma = 3.0
        mscred.flatcombine.rdnoise = "0."
        mscred.flatcombine.gain = "1."
        mscred.flatcombine.snoise = "0."
        mscred.flatcombine.pclip = -0.5
        mscred.flatcombine.blank = 1.
        mscred.flatcombine.mode = "hl"
        # Make the call

        print("# Will use flatlist %s" % self.flatlist)

        mscred.flatcombine(self.flatlist, output=self.Dflat)

        print("# flatcombine is ready")

        extras.cl_bye(self.verb)
        return
コード例 #6
0
ファイル: skyflat.py プロジェクト: boada/planckClusters
    def badpix(self, fix=None):

        N = self.Namps

        express = "a > 1 ? 0 : 1"

        for filter in self.obsfilters:

            # Avoid if Sflat was not created
            if len(self.forsky[filter]) < 4:
                print("# Skipping %s filter, no sky images available" % filter,
                      file=sys.stderr)
                continue

            flat = self.Sflat + filter
            bpmdir = "%s_BPM" % flat

            print("Making bpm for %s" % flat)

            # Check if the destination folder exists
            if os.path.exists(bpmdir):
                print("Will put mask files to: %s" % bpmdir, file=sys.stderr)
            else:
                print("Will create new folder: %s" % bpmdir, file=sys.stderr)
                os.mkdir(bpmdir)

            for i in range(N):

                image = "%s[%s]" % (flat, i + 1)
                mask = "%s/mask_%s.pl" % (bpmdir, i + 1)

                # make bpm
                images.imutil.imexpr(express, mask, image)
                extras.cl_bye()

                # Correct the Sky flat
                if fix:
                    # Interpolate bad pixels
                    proto.fixpix(image,
                                 mask,
                                 linterp="INDEF",
                                 cinterp="INDEF",
                                 verbose="yes",
                                 pixels="no")
                    extras.cl_bye()

        return
コード例 #7
0
    def fixpix(self):

        N = self.Namps
        for file in self.scifiles:

            print("Fixpix %s" % file)

            for i in range(N):
                image = "%s[%s]" % (file, i + 1)
                mask = os.path.join(
                    self.BCSPIPE,
                    "LIB/MosaicII/BPM/bpmSum%s_0511.pl" % str(i + 1))
                proto.fixpix(image,
                             mask,
                             linterp="INDEF",
                             cinterp="INDEF",
                             verbose="yes",
                             pixels="no")
                extras.cl_bye()

        return
コード例 #8
0
ファイル: skyflat.py プロジェクト: boada/planckClusters
    def make_fringe(self, ver=""):

        extras.cl_bye()
        #mscred.mscmedian.input        = skyflat
        #mscred.mscmedian.output       = tmpmedian
        mscred.mscmedian.xwindow = 129
        mscred.mscmedian.ywindow = 129
        mscred.mscmedian.outtype = "median"
        mscred.mscmedian.zloreject = -20000.0
        mscred.mscmedian.zhireject = 30000.0
        mscred.mscmedian.verbose = "yes"
        mscred.mscmedian.fmedian = "yes"
        mscred.mscmedian.hmin = -20000.0
        mscred.mscmedian.hmax = 30000.0
        mscred.mscmedian.zmin = -20000.0
        mscred.mscmedian.zmax = 30000.0
        mscred.mscmedian.fd = ""
        mscred.mscmedian.mode = "h"

        # Run it for each filter with fringe
        for filter in self.frgfilters:

            # Avoid if not observed
            if filter not in self.obsfilters:
                print(" No %s-band observations... skipping" % filter,
                      file=sys.stderr)
                continue

            # Avoid if Sflat was not created
            if len(self.forsky[filter]) < 4:
                print("# Skipping %s filter, no sky images available" % filter,
                      file=sys.stderr)
                continue

            print(" Making Fringe for filter %s " % filter, file=sys.stderr)

            skyflat = self.Sflat + ver + filter
            tmpmedian = "tmpMedian_" + filter
            print("\trunning mscmedian...\t %s --> %s " % (skyflat, tmpmedian),
                  file=sys.stderr)
            if os.path.isfile(tmpmedian + ".fits"):
                os.remove(tmpmedian + ".fits")
                print(" removed file: %s" % (tmpmedian + ".fits"),
                      file=sys.stderr)

                # 1 - Make the median
            mscred.mscmedian(skyflat, tmpmedian, 129, 129)
            extras.cl_bye()

            # 2 - run mscarith on the sky image
            Fringe = self.Fringe + filter
            print("\trunning mscarith...\t %s - %s = %s " %
                  (skyflat, tmpmedian, Fringe),
                  file=sys.stderr)

            mscred.mscarith(skyflat, "-", tmpmedian, Fringe)
            extras.cl_bye()

        print(" Fringe images ready", file=sys.stderr)
        return
コード例 #9
0
ファイル: skyflat.py プロジェクト: boada/planckClusters
    def super_skyflat(self, ver=""):

        self.output = self.Sflat + ver
        print(" Creating super sky-flat with %s images" % len(self.scifiles),
              file=sys.stderr)

        extras.cl_bye()
        #mscred.sflatcombine.input       = self.scilist
        #mscred.sflatcombine.output      = self.output
        mscred.sflatcombine.combine = "average"
        #mscred.sflatcombine.combine     = "median"
        mscred.sflatcombine.reject = "ccdclip"
        mscred.sflatcombine.ccdtype = "object"
        mscred.sflatcombine.subsets = "yes"
        mscred.sflatcombine.masktype = "!objmask"
        mscred.sflatcombine.maskvalue = "0.0"
        mscred.sflatcombine.scale = "mode"
        mscred.sflatcombine.statsec = ""
        mscred.sflatcombine.nkeep = "1"
        mscred.sflatcombine.nlow = "1"
        mscred.sflatcombine.nhigh = "1"
        mscred.sflatcombine.mclip = "yes"
        mscred.sflatcombine.lsigma = "6.0"
        mscred.sflatcombine.hsigma = "3.0"
        mscred.sflatcombine.rdnoise = "rdnoise"
        mscred.sflatcombine.gain = "gain"
        mscred.sflatcombine.snoise = "0."
        mscred.sflatcombine.pclip = "-0.5"
        mscred.sflatcombine.blank = "1.0"
        mscred.sflatcombine.grow = "3.0"
        mscred.sflatcombine.fd = ""
        mscred.sflatcombine.mode = "h"
        #mscred.sflatcombine()

        # Go filter by filter to avoid iraf's crash
        for filter in self.obsfilters:

            if filter not in self.skyfilters:
                print("# Skipping %s filter, no need for Sflat" % filter,
                      file=sys.stderr)
                continue

            if len(self.forsky[filter]) < 4:
                print("# Skipping %s filter, no sky images available" % filter,
                      file=sys.stderr)
                continue

            for l in self.forsky[filter]:
                print("\t%s" % l, file=sys.stderr)
            print("\t\t\t\t --> %s %s" % (self.output, filter),
                  file=sys.stderr)

            #mscred.sflatcombine.input       = self.objlist[filter]
            mscred.sflatcombine.input = extras.imfile(self.forsky[filter])
            mscred.sflatcombine.output = self.output
            mscred.sflatcombine()
            extras.cl_bye(self.verb)

        extras.cl_bye(self.verb)
        return
コード例 #10
0
ファイル: zerocombine.py プロジェクト: boada/planckClusters
    def combine(self):

        print("\n Making superbias image with %s files:" % len(self.zerofiles),
              file=sys.stderr)
        if self.verb:
            for i in self.zerofiles:
                print("\t%s" % i, file=sys.stderr)
            print("\t\t\t--> %s" % self.Zero + ".fits", file=sys.stderr)

        # Avoid clobbering -- way around imclobber = yes not working
        if os.path.isfile(self.Zero + ".fits"):
            print(" Moving of %s.fits to %s.fits.old" % (self.Zero, self.Zero),
                  file=sys.stderr)
            shutil.move(self.Zero + ".fits", self.Zero + ".fits.old")

        # And the params for zerocombine
        iraf.mscred.zerocombine.combine = 'average'
        iraf.mscred.zerocombine.reject = 'minmax'
        iraf.mscred.zerocombine.ccdtype = 'zero'
        iraf.mscred.zerocombine.process = self.process
        iraf.mscred.zerocombine.delete = 'no'
        iraf.mscred.zerocombine.scale = 'none'
        iraf.mscred.zerocombine.statsec = ''
        iraf.mscred.zerocombine.nlow = 0
        iraf.mscred.zerocombine.nhigh = 1
        iraf.mscred.zerocombine.nkeep = 1
        iraf.mscred.zerocombine.mclip = 'yes'
        iraf.mscred.zerocombine.lsigma = 3.0
        iraf.mscred.zerocombine.hsigma = 3.0
        iraf.mscred.zerocombine.rdnoise = '0.'
        iraf.mscred.zerocombine.gain = '1.'
        iraf.mscred.zerocombine.snoise = '0.'
        iraf.mscred.zerocombine.pclip = -0.5
        iraf.mscred.zerocombine.blank = 0.0
        iraf.mscred.zerocombine.mode = 'h'
        # Make the call
        iraf.mscred.zerocombine(self.zerolist, output=self.Zero)
        extras.cl_bye(self.verb)
        return
コード例 #11
0
    def fixpix_sky(self):

        N = self.Namps
        for filter in self.obsfilters:

            flat = self.Sflat + filter
            bpmdir = "%s_BPM" % flat

            print("Correcting for bpm for %s" % flat)

            for file in self.forsky[filter]:

                for i in range(N):
                    mask = "%s/mask_%s.pl" % (bpmdir, i + 1)
                    scifile = "%s[%s]" % (file, i + 1)
                    proto.fixpix(scifile,
                                 mask,
                                 linterp="INDEF",
                                 cinterp="INDEF",
                                 verbose="yes",
                                 pixels="no")
                    extras.cl_bye()

        return
コード例 #12
0
    def correct_fringe(self):

        print(" Correcting images with fringe map", file=sys.stderr)

        # Run it for each filter with fringe
        for filter in self.frgfilters:

            print(" Correcting Fringe for filter %s " % filter,
                  file=sys.stderr)
            # Set up names
            fringe = self.Fringe + filter

            # Avoid if not observed
            if filter not in self.obsfilters:
                print(" No %s-band observations... skipping" % filter,
                      file=sys.stderr)
                continue

            for ima in self.forsky[filter]:
                print("\t%s" % ima, file=sys.stderr)
            print("\t\t\t\t with fringe: %s" % fringe, file=sys.stderr)

            #print images, fringe, extras.imlist_append(images,"_msk"), extras.imlist_append(images,"_sky")

            extras.cl_bye(self.verb)
            mscred.rmfringe.input = extras.imfile(self.forsky[filter])
            mscred.rmfringe.output = ''
            mscred.rmfringe.fringe = fringe
            #mscred.rmfringe.masks       = extras.imfile_append(self.forsky[filter],"_msk")
            #mscred.rmfringe.fringemasks = ""
            #mscred.rmfringe.background  = extras.imfile_append(self.forsky[filter],"_sky")
            mscred.rmfringe.ncblk = "5"
            mscred.rmfringe.nlblk = "5"
            mscred.rmfringe.extfit = ""
            mscred.rmfringe.logfile = ""
            mscred.rmfringe.verbose = "yes"
            mscred.rmfringe.mode = "h"
            mscred.rmfringe()
            extras.cl_bye(self.verb)

        extras.cl_bye(self.verb)
        return
コード例 #13
0
ファイル: crmask.py プロジェクト: boada/planckClusters
    def craverage(self):
        ''' Run IRAF craverage '''

        N = self.Namps

        craverage.input = "List"
        craverage.output = ""
        craverage.crmask = ""
        craverage.average = ""
        craverage.sigma = ""

        craverage.navg = "7"
        craverage.nrej = "3"
        craverage.nbkg = "5"
        craverage.nsig = "50"
        craverage.var0 = "0.0"
        craverage.var1 = "0.0"
        craverage.var2 = "0.0"

        craverage.crval = "1"
        craverage.lcrsig = "10.0"
        craverage.hcrsig = "3.75"
        craverage.crgrow = "0.0"

        craverage.objval = "0"
        craverage.lobjsig = "10.0"
        craverage.hobjsig = "5.5"
        craverage.objgrow = "0.0"
        craverage.mode = "al"

        filenames = []
        for line in open(self.scilist[1:]).readlines(
        ):  # Trick to avoid the '@' in filenames

            file = line.split()[0]
            filenames.append(file)

            print("Doing file: %s" % file, file=sys.stderr)

            for i in range(N):
                print("craverage %s[%s]" % (file, i + 1), file=sys.stderr)
                input = "%s[%s]" % (file, i + 1)
                crmask = "%s_crmask_%s" % (file, i + 1)
                craverage(input, output="", crmask=crmask)
                extras.cl_bye()

        # And now we do the mask combination and fixpix
        express = "max(a,b)"
        for ima in filenames:

            # Merging masks
            print(" Merging masks for %s" % ima, file=sys.stderr)
            for i in range(N):

                n = i + 1

                hfile = "%s[%s]" % (ima, n)
                mask1 = "%s_crmask_%s.fits[1]" % (ima, n)
                mask2 = "%s_BPM/bpm_im%s.pl" % (ima, n)
                maskout = "%s_BPM/bpmcr_im%s.fits" % (ima, n)

                images.imutil.imexpr(express, maskout, mask1, mask2)

                print("\t\tUpdating header information for %s" % hfile,
                      file=sys.stderr)

                images.imutil.hedit(hfile,
                                    "BPM",
                                    maskout,
                                    add='no',
                                    delete='no',
                                    ver='no',
                                    show='yes',
                                    update='yes')
                images.imutil.hedit(maskout,
                                    "BPM",
                                    maskout,
                                    add='no',
                                    delete='no',
                                    ver='no',
                                    show='yes',
                                    update='yes')
                extras.cl_bye()

            # Fixing bad pixels
            print(" Fixpix Interpolating bad pixels %s" % ima, file=sys.stderr)
            for i in range(N):

                n = i + 1
                image = "%s[%s]" % (ima, n)
                mask = "%s_BPM/bpmcr_im%s.fits" % (ima, n)

                proto.fixpix(image,
                             mask,
                             linterp="INDEF",
                             cinterp="INDEF",
                             verbose="yes",
                             pixels="no")
                extras.cl_bye()
コード例 #14
0
ファイル: skyflat.py プロジェクト: boada/planckClusters
    def objmasks(self):

        extras.cl_bye(self.verb)
        # Fix objmasks1
        nproto.objmasks1.exps = ""
        nproto.objmasks1.gains = ""
        nproto.objmasks1.catalogs = ""
        nproto.objmasks1.catdefs = ""
        nproto.objmasks1.dodetect = "yes"
        nproto.objmasks1.dosplit = "no"
        nproto.objmasks1.dogrow = "yes"
        nproto.objmasks1.doevaluate = "no"
        nproto.objmasks1.skytype = "block"
        nproto.objmasks1.fitstep = "10"
        nproto.objmasks1.fitblk1d = "10"
        nproto.objmasks1.fithclip = "2.0"
        nproto.objmasks1.fitlclip = "3.0"
        nproto.objmasks1.fitxorder = "1"
        nproto.objmasks1.fityorder = "1"
        nproto.objmasks1.fitxterms = "half"
        nproto.objmasks1.blknsubblks = "2"
        nproto.objmasks1.updatesky = "yes"
        nproto.objmasks1.sigavg = "4.0"
        nproto.objmasks1.sigmax = "4.0"
        nproto.objmasks1.bpval = "INDEF"
        nproto.objmasks1.splitmax = "INDEF"
        nproto.objmasks1.splitstep = "0.4"
        nproto.objmasks1.splitthresh = "5.0"
        nproto.objmasks1.sminpix = "8"
        nproto.objmasks1.ssigavg = "10.0"
        nproto.objmasks1.ssigmax = "5.0"
        nproto.objmasks1.magzero = "INDEF"
        nproto.objmasks1.mode = "ql"

        # One filter at a time
        for filter in self.filters:

            print(" running object masks for filter %s on images" % filter,
                  file=sys.stderr)
            for i in self.forsky[filter]:
                print("\t%s" % i, file=sys.stderr)

            # The old way --  all at one
            #nproto.objmasks.images    = self.scilist
            #nproto.objmasks.objmasks  = self.msklist
            #nproto.objmasks.skys      = self.skylist
            nproto.objmasks.images = extras.imfile(self.forsky[filter])
            nproto.objmasks.objmasks = extras.imfile_append(
                self.forsky[filter], "_msk")
            nproto.objmasks.omtype = "numbers"
            nproto.objmasks.skys = extras.imfile_append(
                self.forsky[filter], "_sky")
            nproto.objmasks.sigmas = ""
            nproto.objmasks.masks = "!BPM"
            nproto.objmasks.extnames = ""
            nproto.objmasks.logfiles = "STDOUT"
            nproto.objmasks.blkstep = "1"
            nproto.objmasks.blksize = "-10"
            nproto.objmasks.convolve = "block 3 3"
            nproto.objmasks.hsigma = "3.0"
            nproto.objmasks.lsigma = "10.0"
            nproto.objmasks.hdetect = "yes"
            nproto.objmasks.ldetect = "no"
            nproto.objmasks.neighbors = "8"
            nproto.objmasks.minpix = "6"
            nproto.objmasks.ngrow = "2"
            nproto.objmasks.agrow = "2.0"
            nproto.objmasks.mode = "h"  # to avoid prompt
            # Run
            nproto.objmasks()
            extras.cl_bye(self.verb)

        return
コード例 #15
0
    def pass_three(self, skyfilters=('i', 'z')):

        self.skyfilters = skyfilters
        ''' Thrid pass of ccdproc '''
        extras.cl_bye(self.verb)

        print(" Making 3rd pass on images: %s " % len(self.scifiles),
              file=sys.stderr)
        print(" \t\t\tsky flats", file=sys.stderr)

        # Set more params
        mscred.ccdproc.ccdtype = 'object'
        mscred.ccdproc.noproc = 'no'

        mscred.ccdproc.xtalkcor = 'no'
        mscred.ccdproc.fixpix = 'no'
        mscred.ccdproc.overscan = 'no'
        mscred.ccdproc.trim = 'no'
        mscred.ccdproc.zerocor = 'no'
        mscred.ccdproc.darkcor = 'no'
        mscred.ccdproc.flatcor = 'no'
        mscred.ccdproc.sflatcor = 'yes'
        mscred.ccdproc.split = 'no'
        mscred.ccdproc.merge = 'no'

        #mscred.ccdproc.xtalkfile   = '!xtalkfil'
        #mscred.ccdproc.fixfile     = 'BPM'
        mscred.ccdproc.saturation = '!saturate'
        mscred.ccdproc.sgrow = 1
        mscred.ccdproc.bleed = 20000
        mscred.ccdproc.btrail = 20
        mscred.ccdproc.bgrow = 0
        mscred.ccdproc.biassec = '!biassec'
        mscred.ccdproc.trimsec = '!trimsec'
        mscred.ccdproc.zero = self.Zero
        mscred.ccdproc.dark = 'Dark'
        mscred.ccdproc.flat = self.Dflat + "*"
        mscred.ccdproc.sflat = self.Sflat + "*"
        mscred.ccdproc.minreplace = 1.0

        mscred.ccdproc.interactive = 'no'
        mscred.ccdproc.function = 'legendre'
        mscred.ccdproc.order = 1
        mscred.ccdproc.sample = '*'
        mscred.ccdproc.naverage = 1
        mscred.ccdproc.niterate = 1
        mscred.ccdproc.low_reject = 3.0
        mscred.ccdproc.high_reject = 3.0
        mscred.ccdproc.grow = 0.0
        mscred.ccdproc.fd = ''
        mscred.ccdproc.fd2 = ''
        mscred.ccdproc.mode = 'h'

        #mscred.ccdproc.images      = self.scilist
        #mscred.ccdproc.output      = ''
        #mscred.ccdproc.bpmasks     = self.bplist

        # Do it filter by filter to avoid non Sflat images
        for filter in self.obsfilters:

            if len(self.forsky[filter]) < 1:
                print("# Skipping %s filter, no sky images available" % filter,
                      file=sys.stderr)
                continue

            if filter not in self.skyfilters:
                print("# Skipping %s filter, no need sky image for " % filter,
                      file=sys.stderr)
                continue

            mscred.ccdproc.images = extras.imfile(self.object[filter])
            mscred.ccdproc.output = ''
            mscred.ccdproc.bpmasks = extras.imfile_append(
                self.object[filter], "_BPM")

            # Run it
            mscred.ccdproc()
            extras.cl_bye(self.verb)

        return