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()
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)
"""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)
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)
# 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?