示例#1
0
def myplot(vari, depi, varol, varoc, depo, figfile):
    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()

    xbi, ybi, vi = getdv(vari, depi)
    xbo, ybo, vol = getdv(varol, depo)
    _, _, voc = getdv(varoc, depo)
    vmin, vmax = minmax(vi, vol, voc)
    kw = dict(vmin=vmin, vmax=vmax)
    P.figure(figsize=(10, 4))
    ax = P.subplot(131)
    P.pcolormesh(xbi, ybi, vi, **kw)
    P.title('Original')
    P.subplot(132, sharex=ax, sharey=ax)
    P.pcolormesh(xbo, ybo, vol, **kw)
    P.title('Linear')
    P.subplot(133, sharex=ax, sharey=ax)
    P.pcolormesh(xbo, ybo, voc, **kw)
    P.ylim(ymin=min(ybi.min(), ybo.min()), ymax=max(ybi.max(), ybo.max()))
    P.title('Cellave')
    P.tight_layout()
    P.savefig(figfile)
示例#2
0
def myplot(vari, depi, varol, varoc, depo, figfile):
    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()
    xbi, ybi, vi = getdv(vari, depi)
    xbo, ybo, vol = getdv(varol, depo)
    _, _, voc = getdv(varoc, depo)
    vmin, vmax = minmax(vi, vol, voc)
    kw = dict(vmin=vmin, vmax=vmax)
    P.figure(figsize=(10, 4))
    ax = P.subplot(131)
    P.pcolormesh(xbi, ybi, vi, **kw)
    P.title('Original')
    P.subplot(132, sharex=ax, sharey=ax)
    P.pcolormesh(xbo, ybo, vol, **kw)
    P.title('Linear')
    P.subplot(133, sharex=ax, sharey=ax)
    P.pcolormesh(xbo, ybo, voc, **kw)
    P.ylim(ymin=min(ybi.min(), ybo.min()), ymax=max(ybi.max(), ybo.max()))
    P.title('Cellave')
    P.tight_layout()
    P.savefig(figfile)
示例#3
0
def test_plot_create_map():

    # Read bathy
    f = cdms2.open(NCFILE_MANGA0)
    bathy = -f('H0')
    f.close()
    alon = bathy.getLongitude()
    alat = bathy.getLatitude()
    lon = (alon[:].min(), alon[:].max())
    lat = (alat[:].min(), alat[:].max())

    # 2D maps
    # - simple
    m = create_map(lon, lat)
    P.savefig(func_name() + '.2d.simple.png', title="2D / simple")
    P.close()
    # - bathy
    m = create_map(lon, lat, bathy=bathy, title="2D / bathy")
    P.savefig(func_name() + '.2d.bathy.png')
    P.close()

    # 3D maps
    # - simple
    m = create_map(lon, lat, level=-200, title="3D / simple")
    P.savefig(func_name() + '.3d.simple.png')
    P.close()
    # - bathy
    m = create_map(lon,
                   lat,
                   axes="3d",
                   bathy=bathy,
                   level=-200,
                   title="3D / bathy")
    P.savefig(func_name() + '.3d.bathy.png')
    P.close()
def plot(xx,
         yy,
         target,
         label,
         figfiles,
         figfile,
         lon=None,
         lat=None,
         show=False):
    xs, ys, mask = coord2slice(target, lon=lon, lat=lat)
    P.figure(figsize=(6, 3.5))
    P.title('Target=%(label)s / select: lon=%(lon)s, lat=%(lat)s' % locals())
    add_grid((xx, yy))
    xx = xx.asma()
    yy = yy.asma()
    if isinstance(lon, tuple):
        P.axvline(lon[0], color='m', ls='--', lw=2)
        P.axvline(lon[1], color='m', ls='--', lw=2)
    elif isinstance(lon, slice):
        i, j, k = lon.indices(xx.shape[1])
        P.plot(xx[:, i], yy[:, i], 'c--', lw=2)
        P.plot(xx[:, j - 1], yy[:, j - 1], 'c--', lw=2)
    if isinstance(lat, tuple):
        P.axhline(lat[0], color='m', ls='--', lw=2)
        P.axhline(lat[1], color='m', ls='--', lw=2)
    elif isinstance(lat, slice):
        i, j, k = lat.indices(yy.shape[0])
        P.plot(xx[i], yy[i], 'c--', lw=2)
        P.plot(xx[j - 1], yy[j - 1], 'c--', lw=2)
    P.xticks(N.arange(xx.min() - 1, xx.max() + 1))
    P.yticks(N.arange(yy.min() - 1, yy.max() + 1))
    xxi, yyi = xx, yy
    xx = xx[ys, xs]
    yy = yy[ys, xs]
    #    mask = mask[ys, xs]
    xxb, yyb = meshbounds(xx, yy)
    P.pcolormesh(xxb, yyb, mask, shading='faceted')
    P.scatter(xx.ravel(), yy.ravel(), c=(0, 1, 0))
    P.grid(True)
    P.axis('image')
    P.tight_layout()
    i = len(figfiles)
    savefig = figfile % i
    if os.path.exists(savefig): os.remove(savefig)
    P.savefig(savefig)
    figfiles.append(savefig)
    if show: P.show()
    else: P.close()
def plot(xx, yy, target, label, figfiles, figfile, lon=None, lat=None, show=False):
    xs, ys, mask = coord2slice(target, lon=lon, lat=lat)
    P.figure(figsize=(6, 3.5))
    P.title('Target=%(label)s / select: lon=%(lon)s, lat=%(lat)s'%locals())
    add_grid((xx, yy))
    xx = xx.asma()
    yy = yy.asma()
    if isinstance(lon, tuple): 
        P.axvline(lon[0], color='m', ls='--', lw=2)
        P.axvline(lon[1], color='m', ls='--', lw=2)
    elif isinstance(lon, slice):
        i, j, k = lon.indices(xx.shape[1])
        P.plot(xx[:, i], yy[:, i], 'c--', lw=2)
        P.plot(xx[:, j-1], yy[:, j-1], 'c--', lw=2)
    if isinstance(lat, tuple): 
        P.axhline(lat[0], color='m', ls='--', lw=2)
        P.axhline(lat[1], color='m', ls='--', lw=2)
    elif isinstance(lat, slice):
        i, j, k = lat.indices(yy.shape[0])
        P.plot(xx[i], yy[i], 'c--', lw=2)
        P.plot(xx[j-1], yy[j-1], 'c--', lw=2)
    P.xticks(N.arange(xx.min()-1, xx.max()+1))
    P.yticks(N.arange(yy.min()-1, yy.max()+1))
    xxi, yyi = xx, yy
    xx = xx[ys, xs]
    yy = yy[ys, xs]
#    mask = mask[ys, xs]
    xxb, yyb = meshbounds(xx, yy)
    P.pcolor(xxb, yyb, mask, shading='faceted')
    P.scatter(xx.ravel(), yy.ravel(), c=(0, 1, 0))
    P.grid('on')
    P.axis('image')
    P.tight_layout()
    i = len(figfiles)
    savefig = figfile%i
    if os.path.exists(savefig): os.remove(savefig)
    P.savefig(savefig)
    figfiles.append(savefig)
    if show: P.show()
    else: P.close()
示例#6
0
yy = N.array([0., 0., 2., 2.])

# From Polygon
P.figure(figsize=(5, 5))
p0 = create_polygon(Polygon(N.array([xx, yy]).T))
plot_polygon(p0, color='b', label='From poly')

# From data
p1 = create_polygon(N.array([xx, yy]).T - .25)
plot_polygon(p1, color='r', label='From data')

# From transposed data
p2 = create_polygon(N.array([xx, yy]) - 0.5)
plot_polygon(p2, color='g', label='From transposed data')

# From min/max
p3 = create_polygon([xx.min(), yy.min(), xx.max(), yy.max()])
plot_polygon(p3, color='m', label='From min/max')

# With projection
proj = lambda x, y: (x * 1.5, y * 1.5)
p4 = create_polygon(p0, proj=proj)
plot_polygon(p4, color='cyan', label='With projection')

# Save
P.title('create_polygon')
P.legend(loc='best')
P.savefig(code_file_name(ext='png'))
P.show()
P.close()
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)
P.axis(axlims)
P.title('Nearest1dxx')
P.subplot(223)
P.pcolor(xxob, yyob, varol, **kw)
P.axis(axlims)
P.title('Linear1dxx')
P.subplot(224)
P.pcolor(xxob, yyob, varoh, **kw)
P.axis(axlims)
P.title('Hermit1dxx')
P.tight_layout()
figfile = code_file_name(ext='png')
if os.path.exists(figfile): os.remove(figfile)
P.savefig(figfile)
P.close()
示例#8
0
"""Test :func:`~vacumm.misc.plot.add_logo`"""

# Imports
from vcmq import N, P, add_logo, os, code_file_name, data_sample
import matplotlib.image as mpimg

# Inits
logofile = data_sample('logo_ifremer.png')
P.plot([2, 6])

# Default
add_logo(logofile, scale=1)

# Upper right / no rescale
add_logo(logofile, loc='upper right')

# Rescale
add_logo(logofile, loc='upper left', scale=2)

# Alpha
add_logo(logofile, loc='lower right', alpha=0.2)

# Save
figfile = code_file_name(ext='png')
if os.path.exists(figfile): os.remove(figfile)
P.savefig(figfile)
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()
示例#10
0
add_grid(gridci, **kwg)
# - dstwgt c2c / vacumm
varo = regrid2d(varci, gridco, method="dstwgt", tool="vacumm")
plot2d(varo, title="VACUMM / Dstwgt", subplot=(4, 3, ip), **kw)
ip += 1
add_grid(gridci, **kwg)
# - patch c2c / emsf
varo = regrid2d(varci, gridco, method="patch", tool="esmf")
plot2d(varo, title="ESMF / Patch", subplot=(4, 3, ip), **kw)
ip += 1
add_grid(gridci, **kwg)
# - cellave r2r / regrid2
varo = regrid2d(varri, gridro, method="cellave", tool="regrid2")
plot2d(varo, title="Regrid2 / Cellave", subplot=(4, 3, ip), **kw)
ip += 1
add_grid(gridri, **kwg)
# - cellave c2c / esmf
varo = regrid2d(varci, gridco, method="cellave", tool="esmf")
plot2d(varo, title="ESMF / Cellave", subplot=(4, 3, ip), **kw)
ip += 1
add_grid(gridci, **kwg)
# - conserv c2c / esmf
varo = regrid2d(varci, gridco, method="conserv", tool="esmf")
plot2d(varo, title="ESMF / Conserv", subplot=(4, 3, ip), **kw)
ip += 1
add_grid(gridci, **kwg)
P.tight_layout()
P.savefig(code_file_name(ext="png"))
rcdefaults()
P.close()
示例#11
0
"""Test the :func:`~vacumm.misc.grid.io.Shapes` class"""
from vcmq import N, P, code_file_name, data_sample
from vacumm.misc.io import Shapes

result = []

# File names
shpfile = data_sample("ne_110m_land/ne_110m_land")
figfile = code_file_name(ext=False) + '_%i.png'

# Basic
S = Shapes(shpfile)
result.append(('assertEqual', [len(S), 127]))
S.plot(title='Basic', show=False)
P.savefig(figfile % 0)
P.close()

# Min area
S = Shapes(shpfile, min_area=1000)
result.append(('assertEqual', [len(S), 3]))
S.plot(title='Min area', show=False)
P.savefig(figfile % 1)
P.close()

# Projection
S = Shapes(shpfile, proj='merc')
result.append(('assertGreater', [S[1].area(), 1e12]))
S.plot(title='Projected', show=False)
P.savefig(figfile % 2)
P.close()
示例#12
0
"""Test the :func:`~vacumm.misc.grid.io.Shapes` class"""
from vcmq import N, P, code_file_name, data_sample
from vacumm.misc.io import Shapes
result = []

# File names
shpfile = data_sample("ne_110m_land/ne_110m_land")
figfile = code_file_name(ext=False)+'_%i.png'

# Basic
S = Shapes(shpfile)
result.append(('assertEqual', [len(S), 127]))
S.plot(title='Basic', show=False)
P.savefig(figfile%0);P.close()

# Min area
S = Shapes(shpfile, min_area=1000)
result.append(('assertEqual', [len(S), 3]))
S.plot(title='Min area', show=False)
P.savefig(figfile%1);P.close()

# Projection
S = Shapes(shpfile, proj='merc')
result.append(('assertGreater', [S[1].area(), 1e12]))
S.plot(title='Projected', show=False)
P.savefig(figfile%2);P.close()

# Clips
S = Shapes(shpfile, clip=[-10, 42, 10, 51.])
result.append(('assertEqual', [len(S), 3]))
S.plot(title='Clipped', show=False)
示例#13
0
            log(f, ' dstareas: %s'%diag['dstAreas'])
            
        log(f, ' varo: %s'%varo)
        
        # Plot
        P.figure(figsize=(6,3))
        P.subplot(121).set_aspect(1)
        P.pcolormesh(xxib,yyib,vari.asma(),**kw)
        #P.colorbar()
        P.title('Original')
        kwg = dict(alpha=1, linewidth=1., centers=True)
        add_grid(gridi, color=(0,0,.2), marker='o', **kwg)
        add_grid(grido, color=(.2,0,0), marker='+', markersize=10,**kwg)
        P.axis('image')
        axis = P.axis()
        P.subplot(122).set_aspect(1)
        P.pcolormesh(xxob,yyob,varo.asma(),**kw)
        #P.colorbar()
        P.title('%(tool)s / %(method)s'%locals())
        add_grid(gridi, color=(0,0,.2), marker='o', **kwg)
        add_grid(grido, color=(.2,0,0), marker='+',markerlinewidth=1,markersize=8,**kwg)
        P.axis(axis)
        ifig = len(figfiles)
        ff = figfile%vars()
        P.tight_layout()
        P.savefig(ff)
        figfiles.append(ff)
        P.close()
f.close()