Example #1
0
    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
Example #2
0
    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
Example #3
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
Example #4
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
Example #5
0
    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()