def getview(self, view, pbar): from pygeode.tools import partial_sum import numpy as np ti = self.ti sum = np.zeros(view.shape, self.dtype) count = np.zeros(view.shape, dtype='int32') for slices, [data], bins in loopover(self.var, view, pbar): partial_sum(data, slices, sum, count, ti, bins) return sum
def getview (self, view, pbar): from pygeode.tools import partial_sum import numpy as np ti = self.ti sum = np.zeros (view.shape, self.dtype) count = np.zeros (view.shape, dtype='int32') for slices, [data], bins in loopover (self.var, view, pbar): partial_sum (data, slices, sum, count, ti, bins) return sum
def getview(self, view, pbar): from pygeode.tools import partial_sum import numpy as np ti = self.ti xx = np.zeros(view.shape, self.dtype) x = np.zeros(view.shape, self.dtype) nx = np.zeros(view.shape, dtype='int32') nx2 = np.zeros(view.shape, dtype='int32') for slices, [data], bins in loopover(self.var, view, pbar): partial_sum(data, slices, x, nx, ti, bins) partial_sum(data**2, slices, xx, nx2, ti, bins) x /= nx var = (xx - nx * x**2) / (nx - 1) return np.sqrt(var)
def getview (self, view, pbar): from pygeode.tools import partial_sum import numpy as np ti = self.ti xx = np.zeros (view.shape, self.dtype) x = np.zeros (view.shape, self.dtype) nx = np.zeros (view.shape, dtype='int32') nx2 = np.zeros (view.shape, dtype='int32') for slices, [data], bins in loopover (self.var, view, pbar): partial_sum (data, slices, x, nx, ti, bins) partial_sum (data**2, slices, xx, nx2, ti, bins) x /= nx var = (xx - nx*x**2) / (nx - 1) return np.sqrt(var)
def getview (self, view, pbar): from pygeode.tools import partial_sum import numpy as np from pygeode.axis import Coef from pygeode.var import Var ti = self.ti taxis = self.var.axes[ti] # Get number of seconds since start of data secs = taxis.reltime(units='seconds') # Wrap it as a var, so we can use it in the loop below secs = Var([taxis], values=secs) cview = view.remove(Coef) # view without regard to a 'coefficient' axis X = np.zeros(cview.shape, self.dtype) nX = np.zeros(cview.shape, int) F = np.zeros(cview.shape, self.dtype) nF = np.zeros(cview.shape, int) XF = np.zeros(cview.shape, self.dtype) nXF = np.zeros(cview.shape, int) X2 = np.zeros(cview.shape, self.dtype) nX2 = np.zeros(cview.shape, int) for slices, (data,t), bins in loopover ([self.var, secs], cview, pbar): partial_sum (data, slices, F, nF, ti, bins) partial_sum (t, slices, X, nX, ti, bins) partial_sum (data*t, slices, XF, nXF, ti, bins) partial_sum (t**2, slices, X2, nX2, ti, bins) F /= nF X /= nX XF /= nXF X2 /= nX2 # print '??', X2 - X**2 A = XF - X*F B = X2*F - X*XF icoef = view.index(Coef) coef = view.integer_indices[icoef] out = np.empty(view.shape, self.dtype) # Stick the two coefficients together into a single array out[...,np.where(coef==0)[0]] = B[...,None] out[...,np.where(coef==1)[0]] = A[...,None] out /= (X2 - X**2)[...,None] return out
def getview(self, view, pbar): from pygeode.tools import partial_sum import numpy as np from pygeode.axis import Coef from pygeode.var import Var ti = self.ti taxis = self.var.axes[ti] # Get number of seconds since start of data secs = taxis.reltime(units='seconds') # Wrap it as a var, so we can use it in the loop below secs = Var([taxis], values=secs) cview = view.remove( Coef) # view without regard to a 'coefficient' axis X = np.zeros(cview.shape, self.dtype) nX = np.zeros(cview.shape, int) F = np.zeros(cview.shape, self.dtype) nF = np.zeros(cview.shape, int) XF = np.zeros(cview.shape, self.dtype) nXF = np.zeros(cview.shape, int) X2 = np.zeros(cview.shape, self.dtype) nX2 = np.zeros(cview.shape, int) for slices, (data, t), bins in loopover([self.var, secs], cview, pbar): partial_sum(data, slices, F, nF, ti, bins) partial_sum(t, slices, X, nX, ti, bins) partial_sum(data * t, slices, XF, nXF, ti, bins) partial_sum(t**2, slices, X2, nX2, ti, bins) F /= nF X /= nX XF /= nXF X2 /= nX2 # print '??', X2 - X**2 A = XF - X * F B = X2 * F - X * XF icoef = view.index(Coef) coef = view.integer_indices[icoef] out = np.empty(view.shape, self.dtype) # Stick the two coefficients together into a single array out[..., np.where(coef == 0)[0]] = B[..., None] out[..., np.where(coef == 1)[0]] = A[..., None] out /= (X2 - X**2)[..., None] return out