Beispiel #1
0
    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
Beispiel #2
0
  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
Beispiel #3
0
    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)
Beispiel #4
0
  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)
Beispiel #5
0
  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
Beispiel #6
0
    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