Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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