Ejemplo n.º 1
0
    def integrate(self, pbp, data, flags, var, inttime):
        for ap in util.pbp32ToBP(pbp):
            fpol = util.apFPol(ap)
            self.seenpols.add(fpol)

            if fpol in self.seenaps:
                self.seenaps[fpol].add(ap)
            else:
                self.seenaps[fpol] = set((ap, ))

        self.integData[pbp] = (data, flags, var, inttime)
Ejemplo n.º 2
0
    def integrate (self, pbp, data, flags, var, inttime):
        for ap in util.pbp32ToBP (pbp):
            fpol = util.apFPol (ap)
            self.seenpols.add (fpol)

            if fpol in self.seenaps:
                self.seenaps[fpol].add (ap)
            else:
                self.seenaps[fpol] = set ((ap, ))

        self.integData[pbp] = (data, flags, var, inttime)
Ejemplo n.º 3
0
    def _read(self, gen):
        ccs = self.ccs
        first = True
        interval = self.interval

        # Try to avoid doing tests and member lookups
        # inside the inner loop. Probably totally
        # unneccessary ...

        integs = [x.integrate for x in ccs]
        fis = [x.flushInteg for x in ccs]
        fas = [x.flushAcc for x in ccs]

        # Go!

        for inp, preamble, data, flags in gen:
            data = data.copy()
            flags = flags.copy()

            time = preamble[3]
            bp = util.mir2pbp32(inp, preamble)

            var = inp.getVariance()
            inttime = inp.getVarFloat('inttime')

            # Some first checks.

            if not util.pbp32IsInten(bp): continue
            if not flags.any(): continue

            if first:
                time0 = int(time - 0.5) + 0.5
                tmin = time - time0
                tmax = tmin
                tprev = tmin
                first = False

            t = time - time0

            if abs(t - tprev) > SECOND:
                for fi in fis:
                    fi()
                tprev = t

            if (t - tmin) > interval or (tmax - t) > interval:
                for fa in fas:
                    fa()
                tmin = tmax = t

            # Store info for this vis

            tmin = min(tmin, t)
            tmax = max(tmax, t)
            for integ in integs:
                integ(bp, data, flags, var, inttime)

            if self.uvdPlot:
                self.uvdists.accum(util.pbp32ToBP(bp),
                                   np.sqrt((preamble[0:3]**2).sum()))

        # Clean up last interval

        for fi in fis:
            fi()
        for fa in fas:
            fa()
Ejemplo n.º 4
0
    def _read (self, gen):
        ccs = self.ccs
        first = True
        interval = self.interval

        # Try to avoid doing tests and member lookups
        # inside the inner loop. Probably totally
        # unneccessary ...

        integs = [x.integrate for x in ccs]
        fis = [x.flushInteg for x in ccs]
        fas = [x.flushAcc for x in ccs]

        # Go!

        for inp, preamble, data, flags in gen:
            data = data.copy ()
            flags = flags.copy ()

            time = preamble[3]
            bp = util.mir2pbp32 (inp, preamble)

            var = inp.getVariance ()
            inttime = inp.getVarFloat ('inttime')

            # Some first checks.

            if not util.pbp32IsInten (bp): continue
            if not flags.any (): continue

            if first:
                time0 = int (time - 0.5) + 0.5
                tmin = time - time0
                tmax = tmin
                tprev = tmin
                first = False

            t = time - time0

            if abs (t - tprev) > SECOND:
                for fi in fis: fi ()
                tprev = t

            if (t - tmin) > interval or (tmax - t) > interval:
                for fa in fas: fa ()
                tmin = tmax = t

            # Store info for this vis

            tmin = min (tmin, t)
            tmax = max (tmax, t)
            for integ in integs: integ (bp, data, flags, var, inttime)

            if self.uvdPlot:
                self.uvdists.accum (util.pbp32ToBP (bp),
                                    np.sqrt ((preamble[0:3]**2).sum ()))

        # Clean up last interval

        for fi in fis: fi ()
        for fa in fas: fa ()