yi = N.array(yi)
zi = N.array(zi)
xxg, yyg = N.meshgrid(xg, yg)
xo = xxg.ravel()
yo = yyg.ravel()
vgm = variogram_model('linear', n=0, s=sill, r=range)

# Setup the kriger
sck = SimpleCloudKriger(xi, yi, zi, vgf=vgm, farvalue=farvalue)

# Interpolate
zo = sck(xo, yo)

# Check a far value
zzg = zo.reshape(ny, nx)
N.testing.assert_allclose(zzg[-1, -1],farvalue)

# Plot
vmin = min(zi.min(), zo.min())
vmax = max(zi.max(), zo.max(), farvalue)
cmap = 'cmocean_ice'
kw = dict(vmin=vmin, vmax=vmax)
P.pcolormesh(xxg, yyg, zzg, cmap=cmap, **kw)
P.colorbar()
P.scatter(xi, yi, c=zi, s=100, cmap=cmap, **kw)
P.axis('image')
P.title('Simple kriging with fixed far value')
P.savefig(code_file_name(ext='.png'))
P.show()
P.close()
                mask = frac<=1.e-3
                frac[mask] = 1.
                frac = N.resize(frac, varo.shape)
                mask = N.resize(mask, varo.shape)
                varo[:] /= frac
                varo[:] = MV2.masked_where(mask, varo, copy=0)
#        del r
        gc.collect()
        if rank==0: 
            print >>f, ' plot'
            P.figure(figsize=(12, 6))
            P.subplots_adjust(right=0.9)
            P.subplot(121)
            P.pcolormesh(xi, yi, vari[0,0].asma(),vmin=vmin,vmax=vmax)
            P.axis([xmin, xmax, ymin, ymax])
            P.colorbar()
            P.title('Original')
            P.subplot(122)
            P.pcolormesh(xo, yo, varo[0,0].asma(),vmin=vmin,vmax=vmax)
            P.axis([xmin, xmax, ymin, ymax])
            P.title(tool.upper()+' / '+method.upper())
            P.colorbar(extend='min')#cax=P.axes([0.92, 0.3, 0.02, 0.6]))
            figfile = basefile+'_%(tool)s_%(method)s.png'%vars()
            if os.path.exists(figfile): os.remove(figfile)
            P.savefig(figfile)
            P.close()
        del varo
if rank==0:print >>f, 'Done'
f.close()

示例#3
0
# Norm
frac = diag['dstAreaFractions']
mask = frac == 0.
frac[mask] = 1.
varo[:] /= frac
varo[:] = MV2.masked_where(mask, varo, copy=0)

# Plot
rc('font', size=9)
kw = dict(vmin=vari.min(), vmax=vari.max())
axis = [xxbi.min(), xxbi.max(), yybo.min(), yybo.max()]
P.figure(figsize=(7, 3))
P.subplot(121, aspect=1)
P.pcolormesh(xxbi, yybi, vari, **kw)
P.colorbar(shrink=0.7)
add_grid(gridi, color='0.5')
add_grid(grido)
P.axis(axis)
P.title('Original: max=%g min=%g' % (vari.max(), vari.min()))
P.subplot(122, aspect=1)
P.pcolormesh(xxbo, yybo, varo, **kw)
P.colorbar(shrink=0.7)
add_grid(gridi)
add_grid(grido, color='0.5')
P.axis(axis)
P.title('Regridded: max=%g min=%g' % (varo.max(), varo.min()))
P.tight_layout()
savefigs(code_file_name(), verbose=False)
P.close()
rcdefaults()
示例#4
0

# Plot

vmin = min(zi.min(), zo.min(), zoe.min())
vmax = max(zi.max(), zo.max(), zoe.max())
vmax = max(abs(vmin), abs(vmax))
vmin = -vmax
cmap = 'cmocean_tempo'
cmap = 'cmocean_delta'
kw = dict(vmin=vmin, vmax=vmax)
P.figure(figsize=(6, 5.5))

ax = P.subplot(221)
P.pcolormesh(xxg, yyg, zzg, cmap=cmap, **kw)
P.colorbar()
P.scatter(xi, yi, c=zi, s=100, cmap=cmap, **kw)
P.title('Without obs error')

P.subplot(222, sharex=ax, sharey=ax)
P.pcolormesh(xxg, yyg, zzge, cmap=cmap, **kw)
P.colorbar()
P.scatter(xi, yi, c=zi, s=100, cmap=cmap, **kw)
#P.axis('image')
P.title('With obs error')

P.subplot(223, sharex=ax, sharey=ax)
vmax = abs(zzge-zzg).max()
vmin = -vmax
P.pcolormesh(xxg, yyg, zzge-zzg, cmap=cmap, vmin=vmin, vmax=vmax)
P.colorbar()
示例#5
0
rr = P.linspace(0, P.sqrt(xg.ptp()**2+yg.ptp()**2), 100)
vv = ock.variogram_func(rr)

# Plot
P.figure(figsize=(8, 8))
axis = [xg.min(), xg.max(), yg.min(), yg.max()]
kwmm = dict(vmin=zi.min(), vmax=zi.max())
kwsc = dict(lw=0.2, **kwmm)
ax = P.subplot(221, aspect=1)
P.imshow(zzg,  extent=axis, interpolation='bilinear', origin='lower', alpha=.2, **kwmm)
P.scatter(xi, yi, c=zi, s=20, lw=0.2, **kwmm)
P.axis(axis)
P.title('Input points')
P.subplot(222, aspect=1)
P.scatter(xo, yo, c=zo, s=40, lw=0.2, **kwmm)
P.axis(axis)
P.title('Interpolated points')
P.subplot(223, aspect=1)
P.scatter(xo, yo, c=zoe, s=40, lw=0.2, vmin=0, vmax=100)
P.axis(axis)
P.colorbar(shrink=.8)
P.title('Relative interpolation error')
P.subplot(224)
P.plot(rr, vv)
P.xlabel('Distance')
P.ylabel('Error')
P.title('Fitted variogram')
P.tight_layout()
savefigs(code_file_name(), verbose=False)
P.close()
# Format and convert
xx, yy = N.meshgrid(N.arange(-2, 4, 0.25), N.arange(-1, 5, 0.25))
nxy = xx.shape
xx.shape = -1
yy.shape = -1
pp, qq = [], []
for x, y in zip(xx, yy):
    p, q = curv2rect(x1,x2,x3,x4,y1,y2,y3,y4,x,y)
    pp.append(p)
    qq.append(q)
pp = N.array(pp)
qq = N.array(qq)

# Plot
xp = [x1, x2, x3, x4, x1]
yp = [y1, y2, y3, y4, y1]
P.subplot(211)
levels = N.array([-10, 0, 1, 10.])
o = P.contourf(xx.reshape(nxy), yy.reshape(nxy), pp.reshape(nxy), levels=levels)
P.colorbar(o)
P.plot(xp, yp, 'k')
P.subplot(212)
o = P.contourf(xx.reshape(nxy), yy.reshape(nxy), qq.reshape(nxy), levels=levels)
P.colorbar(o)
P.plot(xp, yp, 'k')
figfile = code_file_name(ext='png')
if os.path.exists(figfile): os.remove(figfile)
P.savefig(figfile)
P.close()

    
# Norm
frac = diag['dstAreaFractions']
mask = frac==0.
frac[mask]=1.
varo[:] /= frac
varo[:] = MV2.masked_where(mask, varo, copy=0)

# Plot
rc('font', size=9)
kw = dict(vmin=vari.min(), vmax=vari.max())
axis = [xxbi.min(), xxbi.max(), yybo.min(), yybo.max()]
P.figure(figsize=(7, 3))
P.subplot(121, aspect=1)
P.pcolormesh(xxbi, yybi, vari, **kw)
P.colorbar(shrink=0.7)
add_grid(gridi, color='0.5')
add_grid(grido)
P.axis(axis)
P.title('Original: max=%g min=%g'%(vari.max(), vari.min()))
P.subplot(122, aspect=1)
P.pcolormesh(xxbo, yybo, varo, **kw)
P.colorbar(shrink=0.7)
add_grid(gridi)
add_grid(grido, color='0.5')
P.axis(axis)
P.title('Regridded: max=%g min=%g'%(varo.max(), varo.min()))
P.tight_layout()
savefigs(code_file_name(), verbose=False)
P.close()
rcdefaults()
pp, qq = [], []
for x, y in zip(xx, yy):
    p, q = curv2rect(x1, x2, x3, x4, y1, y2, y3, y4, x, y)
    pp.append(p)
    qq.append(q)
pp = N.array(pp)
qq = N.array(qq)

# Plot
xp = [x1, x2, x3, x4, x1]
yp = [y1, y2, y3, y4, y1]
P.subplot(211)
levels = N.array([-10, 0, 1, 10.])
o = P.contourf(xx.reshape(nxy),
               yy.reshape(nxy),
               pp.reshape(nxy),
               levels=levels)
P.colorbar(o)
P.plot(xp, yp, 'k')
P.subplot(212)
o = P.contourf(xx.reshape(nxy),
               yy.reshape(nxy),
               qq.reshape(nxy),
               levels=levels)
P.colorbar(o)
P.plot(xp, yp, 'k')
figfile = code_file_name(ext='png')
if os.path.exists(figfile): os.remove(figfile)
P.savefig(figfile)
P.close()