def integrate_data(self,quantity,*domains,**kwargs): return_list = False if 'domains' in kwargs: domains = kwargs['domains'] return_list = True #end if if 'return_list' in kwargs: return_list = kwargs['return_list'] #end if if quantity not in SpaceGridBase.quantities: msg = 'requested integration of quantity '+quantity+'\n' msg +=' '+quantity+' is not a valid SpaceGrid quantity\n' msg +=' valid quantities are:\n' msg +=' '+str(SpaceGridBase.quantities) self.error(msg) #end if q = self.data[quantity] results = list() nblocks = q.shape[-1] qi = zeros((nblocks,)) if len(domains)==0: for b in xrange(nblocks): qi[b] = q[...,b].sum() #end for (mean,var,error,kappa)=simstats(qi) else: for domain in domains: for b in xrange(nblocks): qb = q[...,b] qi[b] = qb[domain].sum() #end for (mean,var,error,kappa)=simstats(qi) res = QAobject() res.mean = mean res.error = error res.data = qi.copy() results.append(res) #end for #end for if len(domains)<2: return mean,error else: if not return_list: return tuple(results) else: means = list() errors = list() for res in results: means.append(res.mean) errors.append(res.error) #end for return means,errors
def integrate_data(self, quantity, *domains, **kwargs): return_list = False if 'domains' in kwargs: domains = kwargs['domains'] return_list = True #end if if 'return_list' in kwargs: return_list = kwargs['return_list'] #end if if quantity not in SpaceGridBase.quantities: msg = 'requested integration of quantity ' + quantity + '\n' msg += ' ' + quantity + ' is not a valid SpaceGrid quantity\n' msg += ' valid quantities are:\n' msg += ' ' + str(SpaceGridBase.quantities) self.error(msg) #end if q = self.data[quantity] results = list() nblocks = q.shape[-1] qi = zeros((nblocks, )) if len(domains) == 0: for b in xrange(nblocks): qi[b] = q[..., b].sum() #end for (mean, var, error, kappa) = simstats(qi) else: for domain in domains: for b in xrange(nblocks): qb = q[..., b] qi[b] = qb[domain].sum() #end for (mean, var, error, kappa) = simstats(qi) res = QAobject() res.mean = mean res.error = error res.data = qi.copy() results.append(res) #end for #end for if len(domains) < 2: return mean, error else: if not return_list: return tuple(results) else: means = list() errors = list() for res in results: means.append(res.mean) errors.append(res.error) #end for return means, errors