def analyze_local(self): from spacegrid import SpaceGrid nbe = QAanalyzer.method_info.nblocks_exclude self.info.nblocks_exclude = nbe data = self.data #why is this called 3 times? print nbe #transfer hdf data sg_pattern = re.compile(r'spacegrid\d*') nspacegrids=0 # add simple data first for k,v in data._iteritems(): if not sg_pattern.match(k): self._add_attribute(k,v) else: nspacegrids+=1 #end if #end for # add spacegrids second opts = QAobject() opts.points = self.reference_points opts.nblocks_exclude = nbe self.spacegrids=[] if nspacegrids==0: self.spacegrids.append(SpaceGrid(data.spacegrid,opts)) else: for ig in range(nspacegrids): sg=SpaceGrid(data['spacegrid'+str(ig+1)],opts) self.spacegrids.append(sg) #end for #end if #reorder atomic data to match input file for Voronoi grids if self.run_info.type=='bundled': self.info.reordered=True #end if if not self.info.reordered: self.reorder_atomic_data() #end if #convert quantities outside all spacegrids outside = QAobject() iD,iT,iV = tuple(range(3)) outside.D = QAobject() outside.T = QAobject() outside.V = QAobject() outside.E = QAobject() outside.P = QAobject() value = self.outside.value.transpose()[...,nbe:] #mean,error = simplestats(value) mean,var,error,kappa = simstats(value) outside.D.mean = mean[iD] outside.D.error = error[iD] outside.T.mean = mean[iT] outside.T.error = error[iT] outside.V.mean = mean[iV] outside.V.error = error[iV] E = value[iT,:]+value[iV,:] #mean,error = simplestats(E) mean,var,error,kappa = simstats(E) outside.E.mean = mean outside.E.error = error P = 2./3.*value[iT,:]+1./3.*value[iV,:] #mean,error = simplestats(P) mean,var,error,kappa = simstats(P) outside.P.mean = mean outside.P.error = error self.outside = outside self.outside.data = obj( D = value[iD,:], T = value[iT,:], V = value[iV,:], E = E, P = P ) return