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)
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)
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()
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 ()