tmin = var.min(axis=0),
    tmax = var.max(axis=0),
    savail = 1.*(~var2d.mask).sum(axis=1)/var2d.shape[1],
    smean = var2d.mean(axis=1),
    sstd = var2d.std(axis=1),
    smin = var2d.min(axis=1),
    smax = var2d.max(axis=1),
)
dstats['thist'] = N.ma.zeros((nbins-1, ny, nx), 'l')
dstats['shist'] = N.ma.zeros((nt, nbins-1), 'l')
for ibin in xrange(nbins-1):
    valid = (varm>=bins[ibin])&(varm<bins[ibin+1])
    dstats['thist'][ibin] = valid.filled(False).sum(axis=0)
    dstats['shist'][:, ibin] = valid.filled(False).reshape((nt, -1)).sum(axis=1)
dstats['thist'][:, maskyx] = N.ma.masked
dstats['shist'][:, maskt] = N.ma.masked


# Indirect using StatAccum
sa = StatAccum(tall=True, sall=True, bins=bins)
sa += var[:7]
sa += var[7:]
istats = sa.get_stats()

# Unitest
result = []
for key in sorted(dstats.keys()):
    value = N.ma.allclose(dstats[key], istats[key])
    result.append(('assertTrue', value))
#    print key, value
Пример #2
0
)
dstats['thist'] = N.ma.zeros((nbins - 1, ny, nx), 'l'), N.ma.zeros(
    (nbins - 1, ny, nx), 'l')
dstats['shist'] = N.ma.zeros((nt, nbins - 1), 'l'), N.ma.zeros((nt, nbins - 1),
                                                               'l')
for ivar, varm in enumerate([varm1, varm2]):
    for ibin in xrange(nbins - 1):
        valid = (varm >= bins[ibin]) & (varm < bins[ibin + 1])
        dstats['thist'][ivar][ibin] = valid.filled(False).sum(axis=0)
        dstats['shist'][ivar][:, ibin] = valid.filled(False).reshape(
            (nt, -1)).sum(axis=1)
    dstats['thist'][ivar][:, maskyx] = N.ma.masked
    dstats['shist'][ivar][maskt, :] = N.ma.masked

# Indirect using StatAccum
sa = StatAccum(tall=True, sall=True, bins=bins)
sa += var1[:7], var2[:7]
sa += var1[7:], var2[7:]
istats = sa.get_stats()

# Unitest
result = []
for key in sorted(dstats.keys()):
    if isinstance(dstats[key], tuple):
        for i in 0, 1:
            value = N.ma.allclose(dstats[key][i], istats[key][i])
            result.append(('assertTrue', value))
    else:
        value = N.ma.allclose(dstats[key], istats[key])
        result.append(('assertTrue', value))
var1.id = 'ssh'
var2 = var1.clone()
var2[:] += N.ma.sin(var1)*100
var1[3:13, 5:9, 3:7] = MV2.masked
var2[5:15, 7:12, 1:5] = MV2.masked
var2.long_name = 'Sea level'
var2.id = 'sla'
mask = var1.mask|var2.mask # common mask
vmax = var2.max()
bins = N.linspace(-0.1*vmax, 0.9*vmax, 14)
nbins = len(bins)
restart_file = code_file_name(ext='nc')
print restart_file

# Normal
sa0 = StatAccum(tall=True, sall=True, bins=bins)
sa0 += var1[:7], var2[:7]

# Dump
sa0.dump(restart_file)

# Load from scratach
sa1 = StatAccum(restart=True, restart_file=restart_file)

## Intermediate load
#sa1 = StatAccum(tall=True, sall=True, bins=bins)
#sa1 += var1[:5], var2[:5]
#sa1.load(restart_file)
#
# Finish stats
sa0 += var1[7:], var2[7:]