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