Example #1
0
 def getdv(var, dep):
     v = var[1, :, 1, :]
     if dep[:].ndim == var.ndim:
         dep = dep[1, :, 1, :]
     elif dep[:].ndim == 3:
         dep = dep[:, 1, :]
     xb, yb = meshcells(v.getAxis(-1), dep)
     return xb, yb, v.asma()
Example #2
0
 def getdv(var, dep):
     v = var[1, :, 1, :]
     if dep[:].ndim==var.ndim:
         dep = dep[1, :, 1, :]
     elif dep[:].ndim==3:
         dep = dep[:, 1, :]
     xb, yb = meshcells(v.getAxis(-1), dep)
     return xb, yb, v.asma()

nx = nyi = 10
mv = 1.e20
u, v = N.mgrid[-3:3:nx*1j, -3:3:10j]-2
vari = N.ma.asarray(u**2+v**2)
vari.set_fill_value(mv)
yi = N.linspace(-1000.,0., nyi)
yo = N.linspace(-1200, 100, 30.)
vari[nx/3:2*nx/3, nyi/3:2*nyi/3] = N.ma.masked
x = N.arange(nx)
dyi = (yi[1]-yi[0])*0.49
dyo = (yo[1]-yo[0])*0.49
yyi = N.resize(yi, vari.shape)+N.random.uniform(-dyi, dyi, vari.shape)
yyo = N.resize(yo, (nx, len(yo)))+N.random.uniform(-dyo, dyo, (nx, len(yo)))
yyib, xxib  = meshcells(yyi, x)
yyob, xxob  = meshcells(yyo, x)

varon = N.ma.masked_values(interp1dxx(vari.filled(), yyi, yyo, mv, 0, extrap=0), mv)
varol = N.ma.masked_values(interp1dxx(vari.filled(), yyi, yyo, mv, 1, extrap=0), mv)
varoh = N.ma.masked_values(interp1dxx(vari.filled(), yyi, yyo, mv, 3, extrap=0), mv)

kw = dict(vmin=vari.min(), vmax=vari.max())
axlims = [x[0], x[-1], yo[0], yo[-1]]
P.figure(figsize=(8, 8))
P.subplot(221)
P.pcolor(xxib, yyib, vari)
P.axis(axlims)
P.title('Original')
P.subplot(222)
P.pcolor(xxob, yyob, varon, **kw)
Example #4
0
"""Test the fortran function :f:func:`bilin`"""
from vcmq import N, P, meshcells, minmax, code_file_name, os
from vacumm.misc.grid._interp_ import dstwgt


nxi = 15
nyi = 10
mv = 1.e20
u, v = N.mgrid[-3:3:nyi*1j, -3:3:nxi*1j]-2
vari = N.ma.asarray(u**2+v**2)
vari.set_fill_value(mv)
xi = N.arange(nxi)
yi = N.arange(nyi)
vari[int(nyi*0.4):int(nyi*0.4)+3, int(nxi*0.4):int(nxi*0.4)+2] = N.ma.masked
xxib, yyib  = meshcells(xi, yi)

nxo = 40
nyo = 25
xo = N.linspace(int(nxi*0.2),int(nxi*1.2),nxo)
yo = N.linspace(int(-nyi*0.2),int(nyi*0.8),nyo)
xxob, yyob  = meshcells(xo, yo)

vari.shape = (1, )+vari.shape
varo = N.ma.masked_values(dstwgt(vari.filled(), xi, yi, xo, yo, mv, 0), mv)

kw = dict(vmin=vari.min(), vmax=vari.max())
axlims = [min(xi.min(), xo.min()), max(xi.max(), xo.max()), 
    min(yi.min(), yo.min()), max(yi.max(), yo.max())]
P.figure(figsize=(8, 4))
P.subplot(211)
P.pcolor(xxib, yyib, vari[0], **kw)
Example #5
0
mygrid = get_grid(gridc)        # -> TESTEZ AVEC (LON,LAT) ET PARAMS STRICT ET INTERCEPT
mylon2d = get_axis(gridc, 1)    # -> COMPAREZ AVEC .GETAXIS()


# Sélectionner
print coord2slice(lon, lon=(2, 4.5))# -> COMPAREZ AVEC .GETINTERVALEXT(...)
print coord2slice(grid, lon=(4, 8), lat=(44, 46)) # -> TESTEZ SUR GRIDC
# -> TESTEZ VARSEL


# Transformer
gridcr = curv2rect(gridc)       # -> TESTEZ AVEC VOTRE GRILLE NON RECT 
ax = create_lon([350, 0, 10.])
print monotonic(ax)
print xshift(var, 2)[0]         # -> COMPAREZ A VAR ET VERIFIEZ AXE
# -> TESTEZ XEXTEND
grido = rotate_grid(grid, 30)   # -> TRACEZ LES LONGITUDE (PCOLOR)
grids = shiftgrid(grid, 1, -1)  # -> VERIFIEZ PUIS TESTEZ SUR GRIDC + PASSER DE T À U
gride = extendgrid(grid, iext=(2, 3))   # -> VERIFIER PUIS TESTEZ LE MODE 


# Exploiter
print resol(grid)               # -> TESTEZ EN METRES ET SUR AXE
print depth2dz(dep)
print get_closest(lon2d, lat2d, 2.3, 1.2)


# Utilitaires sut les coordonnées
xx, yy = meshgrid(xx, yy[:, 0])
xxb, yyb = meshcells(xx, yy)      # -> EN 1D?
from vacumm.misc.grid._interp_ import interp1dxx

nx = nyi = 10
mv = 1.e20
u, v = N.mgrid[-3:3:nx * 1j, -3:3:10j] - 2
vari = N.ma.asarray(u**2 + v**2)
vari.set_fill_value(mv)
yi = N.linspace(-1000., 0., nyi)
yo = N.linspace(-1200, 100, 30.)
vari[nx / 3:2 * nx / 3, nyi / 3:2 * nyi / 3] = N.ma.masked
x = N.arange(nx)
dyi = (yi[1] - yi[0]) * 0.49
dyo = (yo[1] - yo[0]) * 0.49
yyi = N.resize(yi, vari.shape) + N.random.uniform(-dyi, dyi, vari.shape)
yyo = N.resize(yo, (nx, len(yo))) + N.random.uniform(-dyo, dyo, (nx, len(yo)))
yyib, xxib = meshcells(yyi, x)
yyob, xxob = meshcells(yyo, x)

varon = N.ma.masked_values(
    interp1dxx(vari.filled(), yyi, yyo, mv, 0, extrap=0), mv)
varol = N.ma.masked_values(
    interp1dxx(vari.filled(), yyi, yyo, mv, 1, extrap=0), mv)
varoh = N.ma.masked_values(
    interp1dxx(vari.filled(), yyi, yyo, mv, 3, extrap=0), mv)

kw = dict(vmin=vari.min(), vmax=vari.max())
axlims = [x[0], x[-1], yo[0], yo[-1]]
P.figure(figsize=(8, 8))
P.subplot(221)
P.pcolor(xxib, yyib, vari)
P.axis(axlims)
Example #7
0
# Récupérer
mygrid = get_grid(
    gridc)  # -> TESTEZ AVEC (LON,LAT) ET PARAMS STRICT ET INTERCEPT
mylon2d = get_axis(gridc, 1)  # -> COMPAREZ AVEC .GETAXIS()

# Sélectionner
print coord2slice(lon, lon=(2, 4.5))  # -> COMPAREZ AVEC .GETINTERVALEXT(...)
print coord2slice(grid, lon=(4, 8), lat=(44, 46))  # -> TESTEZ SUR GRIDC
# -> TESTEZ VARSEL

# Transformer
gridcr = curv2rect(gridc)  # -> TESTEZ AVEC VOTRE GRILLE NON RECT
ax = create_lon([350, 0, 10.])
print monotonic(ax)
print xshift(var, 2)[0]  # -> COMPAREZ A VAR ET VERIFIEZ AXE
# -> TESTEZ XEXTEND
grido = rotate_grid(grid, 30)  # -> TRACEZ LES LONGITUDE (PCOLOR)
grids = shiftgrid(grid, 1,
                  -1)  # -> VERIFIEZ PUIS TESTEZ SUR GRIDC + PASSER DE T À U
gride = extendgrid(grid, iext=(2, 3))  # -> VERIFIER PUIS TESTEZ LE MODE

# Exploiter
print resol(grid)  # -> TESTEZ EN METRES ET SUR AXE
print depth2dz(dep)
print get_closest(lon2d, lat2d, 2.3, 1.2)

# Utilitaires sut les coordonnées
xx, yy = meshgrid(xx, yy[:, 0])
xxb, yyb = meshcells(xx, yy)  # -> EN 1D?