# Parameters ncfile = "menor.nc" lon = (3., 4.5) lat = (42, 42.8) # Imports from vcmq import DS, map2, data_sample # Read temperature and depth ncfile = data_sample(ncfile) ds = DS(ncfile, 'mars', lon=lon, lat=lat) mld = ds.get_mld(mode='deltatemp', squeeze=1) # Plot map2(mld, proj='merc', figsize=(6, 6), autoresize=0, colorbar_shrink=0.7, right=1, savefigs=__file__, show=False, close=True) print 'Done'
# Imports from vcmq import DS, data_sample, mixed_layer_depth, rc, map2, os, code_file_name # Read data ds = DS(data_sample(ncfile),'mars', logger_level='critical') temp = ds.get_temp(squeeze=True) sal = ds.get_sal(squeeze=True) depth = ds.get_depth(squeeze=True) kz = ds.get_kz(squeeze=True) # Compute MLD kw = dict(depth=depth, format_axes=True) mld = {} mld['deltatemp'] = mixed_layer_depth(temp, mode='deltatemp',**kw) mld['deltadens'] = mixed_layer_depth((temp,sal), mode='deltadens', **kw) mld['kz'] = mixed_layer_depth(kz, mode='kz', **kw) vmin = min([v.min() for v in mld.values()]) vmax = max([v.max() for v in mld.values()]) # Plot it rc('font', size=8) for i,(mode, var) in enumerate(mld.items()): m = map2(var, fill='pcolormesh', nmax=20, vmin=vmin, vmax=vmax, subplot=(len(mld),1,i+1), figsize=(4.1,8), contour_linewidths=0.7, cmap='vacumm_rnb2_hymex', hspace=0.25, bottom=0.08, title='%%(long_name)s: mode = "%s"'%mode, show=False) figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) m.savefig(figfile)
print xyz1.xmin # -> essayer get_xmin avec mask print xyz1.resol() # -> essayer avec deg=... # Plot kwp = dict(size=40, map_res=None, masked_alpha=.1) xyz1.plot(mode='both', **kwp) # -> essayer autre mode # Fichier fbathy = __file__[:-2] + 'xyz' xyz1.save(fbathy) xyz3 = XYZBathy(fbathy) xyz3.plot(title='XYZ3', **kwp) # Fusions xyz = xyz1 + xyz2 merger = XYZBathyMerger() merger += xyz1 # -> supprimer/ajouter merger.append(xyz2) for i, b in enumerate(merger): b.long_name = 'Niveau : %i' % i # Pour les legendes b.set_transp(False) # Opacite merger.plot(mode='cluster', **kwp) # -> essayer autre mode xyz = merger.get_xyz(long_name='Merged') xyz.plot(**kwp) # Regrillage grid_auto = xyz.grid grid_manual = create_grid((-5.3, -4.91, .01), (48.1, 48.41, .01)) gridded = xyz.togrid(grid_manual) map2(gridded, res=None)
"""Test :meth:`~vacumm.data.misc.dataset.OceanDataset.get_dens` in MENOR""" # Inits ncfile = "menor.nc" # Imports from vcmq import DS, os, map2, data_sample, code_file_name # Read data ds = DS(data_sample(ncfile), 'mars', logger_level='critical') dens = ds.get_dens(squeeze=True) # Plot surface density figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) map2(dens[-1], savefig=figfile, close=True, vmin=1025.,show=False) # For unittest result = {'files':figfile}
# Regrilleur de CDAT regridder = CDATRegridder(gridi, grido, method="cellave") # -> CHANGEZ LA METHODE ssto2 = regridder.regrid(ssti) ssto3, cdr = regrid2d(ssti, grido, cdr=regridder, getcdr=True) # -> VERIFIEZ LE TYPE # Plots kwp = dict( vmin=ssti.min(), vmax=ssti.max(), res=None, show=False, colorbar=False, drawmeridians_linewidth=0, drawparallels_linewidth=0, grid=False, yhide="auto", **select ) map2(ssti, title="Original", figsize=(15, 5), subplot=131, **kwp) add_grid(gridi, alpha=1) map2(ssto, title="Avec regrid2d", subplot=132, **kwp) add_grid(grido, alpha=1) add_grid(gridi, edges=False, centers=True, alpha=0.5, markersize=3, marker="o") map2(ssto2, title="Avec CDATRegridder", subplot=133, **kwp) add_grid(grido, alpha=1) add_grid(gridi, edges=False, centers=True, alpha=0.5, markersize=3, marker="o") P.tight_layout() P.show()
sst1d_gen13 = generic1d(sst1d, 13) sst1d_gen3 = generic1d(sst1d, [1., 1., 1.]) sst1d_sha = shapiro1d(sst1d) # -> SHAPIRO AVEC GENERIC1D sst1d_bar13 = bartlett1d(sst1d, 13) # -> TESTEZ GAUSSIEN SUR 13 HEURES # - plots curve2(sst1d, 'k', label='Original', show=False, figsize=(12, 5)) curve2(sst1d_gen13, 'r', label='Generic 13 pts', show=False) curve2(sst1d_gen3, 'g', label='Generic 3 pts', show=False) curve2(sst1d_sha, 'b', label='shapiro', show=False) curve2(sst1d_bar13, 'm', label='Bartlett', legend=True) # -> MASQUEZ UNE PARTIE DES DONNEES ET JOUEZ AVEC LE PARAMETRE MASK= # -> LISEZ UN BLOCK 3D ET FILTREZ LE SUIVANT LE TEMPS # 2D # - filtrage sst2d_gen13 = generic2d(sst2d, 13) sst2d_gau13 = gaussian2d(sst2d, 13) # - plots kw = dict(vmin=sst2d.min(), vmax=sst2d.max(), colorbar=False, nmax=18) map2(sst2d, title='Original', figsize=(13, 3), subplot=131, show=False, **kw) map2(sst2d_gen13, title='Generic 13', subplot=132, show=False, **kw) map2(sst2d_gau13, title='Gauss 13', subplot=133, show=True, **kw) # -> JOUEZ AVEC MASK=
kwplot[att] = getattr(args, att) for att in ('color', 'linewidth'): val = getattr(args, att) if val is not None: kwplot[att] = val kwplot['quiver_norm'] = args.qnorm if len(vv)==2 and args.qonly: kwplot['contour'] = kwplot['fill'] = False if args.figsize: kwplot['figsize'] = tuple([float(v) for v in args.figsize.split(',')]) if args.res=='off': args.res = None kwplot['res'] = args.res #del kwplot['color'] #kwplot = {'color':None} # Adaptative plot if ndim==2: if order in ['yx', 'xy']: map2(vv, **kwplot) elif 't' in order: hov2(vv, **kwplot) else: plot2d(vv, **kwplot) else: if len(vv)>1: stick2(*vv, **kwplot) else: curve2(vv, **kwplot)
# Add param info c.add_param_label(dict(param1=1, param2='Good thing'), color='r') # Add annotation c.add_annotation(tmin, vmin, -150, -20, 'The min !', bbox=dict(facecolor='y', alpha=.5, pad=10), arrowprops=dict(arrowstyle='fancy', facecolor='y', connectionstyle="arc3,rad=-.3", linewidth=0.3)) # Map f = cdms2.open(data_sample('mars3d.xy.nc')) h0 = f('temp', lat=(47.75, 49)) f.close() m = map2(h0, fill='pcolormesh', title='Bathy', contour=False, colorbar=False, subplot=212, proj='lcc', show=False, cmap='GMT_gebco_r') # Add a letter for subfigures like "b)" m.add_key('B', pos='top right', xmargin=20) # Point m.add_point(-5.3, 48.3, color='b', shadow=True, edgecolor='r', size=120) # Place = point + text m.add_place(-4.62138, 48.38197, 'Plouzane', size=100) # Add lines m.add_line([-5.3, 48, -5, 49], color='r') m.add_lines([-5.3, -4.7, -5], [48, 48.5, 49], color='g') # Add box
"""Test :meth:`~vacumm.data.misc.dataset.OceanDataset.get_mld` with deltadens in MENOR""" # Inits ncfile = "menor.nc" # Imports from vcmq import DS, os, map2, data_sample, code_file_name # Read data ds = DS(data_sample(ncfile), 'mars', logger_level='critical') mld = ds.get_mld(mode='deltadens', deltadens=0.06, squeeze=True) # Plot surface density figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) map2(mld, savefig=figfile, close=True, show=False, fill='pcolormesh', cmap='vacumm_previmer', contour=False) # For unittest result = {'files': figfile}
"""Test :meth:`~vacumm.data.misc.dataset.OceanDataset.get_uvgbt` on MENOR""" # Inits ncfile = "menor.nc" # Imports from vcmq import data_sample, DS, N, MV2, shapiro2d, map2, code_file_name # Read data ds = DS(data_sample(ncfile), 'mars', logger_level='critical') u, v = ds.get_uvgbt() # Mask huge values mask = (N.ma.sqrt(u**2+v**2)>2.).filled(True) for var in u, v: var[:] = MV2.masked_where(mask, var, copy=False) # Shapiro filter for var in u, v: var[:] = shapiro2d(var) # Plot map2((u[0], v[0]), title='Geostrophic velocity', quiver_samp=3, xymasked=False, quiver_norm=3, contour=False, fill=False, figsize=(7, 7), quiver_linewidth=.3, quiver_width=0.003, quiver_scale=10, right=1, colorbar_shrink=0.8, bottom=0.05, show=False, savefig=code_file_name(), close=True)
kwplot[att] = getattr(args, att) for att in ('color', 'linewidth'): val = getattr(args, att) if val is not None: kwplot[att] = val kwplot['quiver_norm'] = args.qnorm if len(vv) == 2 and args.qonly: kwplot['contour'] = kwplot['fill'] = False if args.figsize: kwplot['figsize'] = tuple([float(v) for v in args.figsize.split(',')]) if args.res == 'off': args.res = None kwplot['res'] = args.res #del kwplot['color'] #kwplot = {'color':None} # Adaptative plot if ndim == 2: if order in ['yx', 'xy']: map2(vv, **kwplot) elif 't' in order: hov2(vv, **kwplot) else: plot2d(vv, **kwplot) else: if len(vv) > 1: stick2(*vv, **kwplot) else: curve2(vv, **kwplot)
# Read data ncfile = data_sample(ncfile) ds = DS(ncfile, 'mars', logger_level='critical') tbot = ds.get_temp(level='bottom', squeeze=True) tsurf = ds.get_temp(level='surf', squeeze=True) # Plot bottom figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) kw = dict(contour=True, fill='contourf', colorbar_shrink=0.8, cmap='cmocean_thermal', linewidth=.3) m = map2(tsurf, subplot=211, close=False, show=False, figsize=(5, 7), title='Testing Dataset.get_temp(level="surf")', **kw) map2(tbot, subplot=212, close=True, show=True, m=m, title='Testing Dataset.get_temp(level="bottom")', savefig=figfile, **kw)
ds = DS(data_sample(ncfile), 'mars', logger_level='critical') u, v = ds.get_uvgbt() # Mask huge values mask = (N.ma.sqrt(u**2 + v**2) > 2.).filled(True) for var in u, v: var[:] = MV2.masked_where(mask, var, copy=False) # Shapiro filter for var in u, v: var[:] = shapiro2d(var) # Plot map2((u[0], v[0]), title='Geostrophic velocity', quiver_samp=3, xymasked=False, quiver_norm=3, contour=False, fill=False, figsize=(7, 7), quiver_linewidth=.3, quiver_width=0.003, quiver_scale=10, right=1, colorbar_shrink=0.8, bottom=0.05, show=False, savefig=code_file_name(), close=True)
try: lon = eval(options.lon) except: parser.error('--%s: wrong argument'%selname) select[selname] = val # Imports from vcmq import DS, map2, MV2, data_sample # The file ncfile = options.ncfile if not os.path.exists(ncfile): ncfile = data_sample(ncfile) if not os.path.exists(ncfile): parser.error('File not found: '+ncfile) # Read temperature and depth ds = DS(ncfile, options.model, **select) mld = ds.get_mld(mode='deltatemp', squeeze=1) # Time average (if needed) if mld.ndim==3: mld = MV2.average(mld, axis=0) # Plot map2(mld, proj='merc', figsize=(6, 6), autoresize=0, title=options.title, colorbar_shrink=0.7, right=1, show=options.disp, savefig=options.outputfig, savefig_verbose=True)
# Plot kwp = dict(size=40, map_res=None, masked_alpha=0.1) xyz1.plot(mode="both", **kwp) # -> essayer autre mode # Fichier fbathy = __file__[:-2] + "xyz" xyz1.save(fbathy) xyz3 = XYZBathy(fbathy) xyz3.plot(title="XYZ3", **kwp) # Fusions xyz = xyz1 + xyz2 merger = XYZBathyMerger() merger += xyz1 # -> supprimer/ajouter merger.append(xyz2) for i, b in enumerate(merger): b.long_name = "Niveau : %i" % i # Pour les legendes b.set_transp(False) # Opacite merger.plot(mode="cluster", **kwp) # -> essayer autre mode xyz = merger.get_xyz(long_name="Merged") xyz.plot(**kwp) # Regrillage grid_auto = xyz.grid grid_manual = create_grid((-5.3, -4.91, 0.01), (48.1, 48.41, 0.01)) gridded = xyz.togrid(grid_manual) map2(gridded, res=None)
# Parameters ncfile = "menor.nc" lon = (3.0, 4.5) lat = (42, 42.8) # Imports from vcmq import DS, map2, data_sample from vacumm.diag.thermdyn import mixed_layer_depth # Read temperature and depth ncfile = data_sample(ncfile) ds = DS(ncfile, "mars", lon=lon, lat=lat) temp = ds.get_temp(squeeze=1) depth = ds.get_depth(squeeze=1) # Compute MLD mld = mixed_layer_depth(temp, depth, mode="deltatemp") # Plot map2(mld, proj="merc", figsize=(6, 6), autoresize=0, colorbar_shrink=0.7, right=1, savefigs=__file__, show=False) print "Done"
# -*- coding: utf8 -*- # %% Imports from vcmq import cdms2, MV2, data_sample, code_base_name, map2 # %% Read Hs f = cdms2.open(data_sample('swan.four.nc')) lon = f('longitude') lat = f('latitude') hs = f('HS', squeeze=1) f.close() # %% Plot it specifying its irregular grid map2(hs, xaxis=lon, yaxis=lat, figsize=(6, 4), cmap='cmocean_amp', long_name='Significant wave height', fill='pcolormesh', contour=False, savefigs=code_base_name(ext='png'), left=.12, right=1, show=False)
print method # Regrillage ssto = regrid2d(ssti, grido, method=method) # -> CHANGEZ LA METHODE # -> UTILISEZ USECDR=TRUE # Regrilleur de CDAT regridder = CDATRegridder(gridi, grido, method='cellave') # -> CHANGEZ LA METHODE ssto2 = regridder.regrid(ssti) ssto3, cdr = regrid2d(ssti, grido, cdr=regridder, getcdr=True) # -> VERIFIEZ LE TYPE # Plots kwp = dict(vmin=ssti.min(), vmax=ssti.max(), res=None, show=False, colorbar=False, drawmeridians_linewidth=0, drawparallels_linewidth=0, grid=False, yhide='auto', **select) map2(ssti, title='Original',figsize=(15, 5), subplot=131, **kwp) add_grid(gridi, alpha=1) map2(ssto, title='Avec regrid2d', subplot=132, **kwp) add_grid(grido, alpha=1) add_grid(gridi, edges=False, centers=True, alpha=.5, markersize=3, marker='o') map2(ssto2, title='Avec CDATRegridder', subplot=133, **kwp) add_grid(grido, alpha=1) add_grid(gridi, edges=False, centers=True, alpha=.5, markersize=3, marker='o') P.tight_layout() P.show()
print ds.dataset # Logging ds.info('Pratique') # -> ESSAYER WARNING ds.set_loglevel('debug') # Coordonnees lon = ds.get_lon() # -> ESSAYER AU POINT U grid = ds.get_grid() # Variables temp = ds.get_temp(level=slice(-1, None), squeeze=True) sst = ds.get_sst(squeeze=True) # -> VERIFIER ATTRIBUTS ds.info('Plot SST') map2(sst) sal = ds.get_sal(lon=(4., 4.5)) print temp.shape, sal.shape # Generique ds2 = DS(data_sample('mfs.nc'), 'nemo', lon=(4, 5), lat=(42.5, 43.5)) sst2 = ds2.get_sst(squeeze=True) # -> VERIFIER ATTRIBUTS # Plus evolue depth = ds.get_depth() # sigma print depth.shape mld = ds.get_mld() ds.plot_transect('temp', lons=(4.1, 4.9), lats=(43.3, 42.6), figsize=(12, 6)) # -> OUTAXIS=
"""Test :meth:`~vacumm.data.misc.dataset.OceanDataset.get_depth` in MENOR""" # Inits ncfile = "menor.nc" # Imports from vcmq import DS, os, map2, data_sample, code_file_name # Read data ncfile = data_sample(ncfile) ds = DS(ncfile, 'mars', logger_level='critical') depth = ds.get_depth(squeeze=True) # Plot midlevel figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) map2(depth[depth.shape[0]/2], savefig=figfile, close=True, vmax=0, show=False, colorbar_shrink=0.6, title='Testing Dataset.get_depth()') # For unittest result = [ ('files', figfile), ]
'The min !', bbox=dict(facecolor='y', alpha=.5, pad=10), arrowprops=dict(arrowstyle='fancy', facecolor='y', connectionstyle="arc3,rad=-.3", linewidth=0.3)) # Map f = cdms2.open(data_sample('mars3d.xy.nc')) h0 = f('temp', lat=(47.75, 49)) f.close() m = map2(h0, fill='pcolormesh', title='Bathy', contour=False, colorbar=False, subplot=212, proj='lcc', show=False, cmap='GMT_gebco_r') # Add a letter for subfigures like "b)" m.add_key('B', pos='top right', xmargin=20) # Point m.add_point(-5.3, 48.3, color='b', shadow=True, edgecolor='r', size=120) # Place = point + text m.add_place(-4.62138, 48.38197, 'Plouzane', size=100) # Add lines
"""Test :meth:`~vacumm.misc.core_plot.Plot2D.plot_streamplot`""" from vcmq import map2, data_sample, cdms2, code_file_name import warnings warnings.filterwarnings('ignore', 'Warning: converting a masked element to nan') f = cdms2.open(data_sample('mars2d.xyt.nc')) u = f('u', slice(0, 1), squeeze=1) v = f('v', slice(0, 1), squeeze=1) f.close() map2((u, v), fill=False, contour=False, streamplot=True, streamplot_density=3, streamplot_linewidth='modulus', streamplot_lwmod=3, streamplot_color='modulus', title='Tidal stream lines', colorbar_shrink=0.7, savefig=code_file_name(), right=1, show=False)
var['t'] = MV2.reshape(N.arange(grid.size()*len(dep))*1., (len(dep), )+grid.shape) set_grid(var['t'], grid) var['t'].setAxis(0, dep) # Arakawa manager ag = CGrid() # Interpolations for p in 'u', 'v', 'f', 'w': var[p] = ag.interp(var['t'], 't', p, mode='extrap') # Surface plots vmin, vmax = minmax(*[var[p][-1] for p in ['u', 'v', 'f']]) kw = dict(show=False, res=None, vmin=vmin, vmax=vmax, colorbar=False, grid=False, cmap='jet') m = map2(var['t'][-1], fill='pcolor', title='Interpolations on an Arakawa C grid: T->U/V/F', **kw) add_grid(var['t'], linestyle='-') kw.update(fill='scatter', contour=False, fill_s=60) markers = dict(u='>', v='^', f='D', t='o') for p in 't', 'u', 'v', 'f': m = map2(var[p][-1], fill_marker=markers[p], shadow=True, zorder=100, **kw) m.savefig(code_file_name(ext='_1.png')) m.close() # Vertical plot curve2(var['t'][:, 0, 0], 'o-b', ymax=0, show=False, title='Interpolations on an Arakawa C grid: T->W') curve2(var['w'][:, 0, 0], '^r', show=False, savefig=code_file_name(ext='_2.png')) result = [
"""Test :meth:`~vacumm.data.misc.dataset.OceanDataset.get_dens` in MENOR""" # Inits ncfile = "menor.nc" # Imports from vcmq import DS, os, map2, data_sample, code_file_name # Read data ds = DS(data_sample(ncfile), 'mars', logger_level='critical') dens = ds.get_dens(squeeze=True) # Plot surface density figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) map2(dens[-1], savefig=figfile, close=True, vmin=1025., show=False) # For unittest result = {'files': figfile}
"""Test :func:`~vacumm.misc.plot.Plot.add_point` and similar :class:`~vacumm.misc.plot.Plot` methods""" # Imports from vcmq import MV2, code_file_name, map2, curve2, create_time figfile = code_file_name(ext=False)+'_%i.png' # Create a map with projection m = map2(lon=(-10,1), lat=(43,51), res='l', show=False, proj='merc') # Add a point m.add_point(-4, 48, color='cyan', glow=True, size=50) m.add_point([0, -2], [45, 44], color='k', marker='^', size=40) # Add text m.add_text(0.1, 0.1, 'My text', color='r', shadow=True, weight='bold') m.add_text(-2, 50.5, 'My text with transform', transform='data', ha='center', bbox=dict(facecolor='y', alpha=.3)) m.add_lon_label(-8, 47.5, -8, va='center', ha='center', transform='data', fmt='%g') m.add_lat_label(-8, 47, 47, va='center', ha='center', transform='data') m.add_time_label(.1, .9, '2000') # Add place m.add_place(-2, 49, 'My place', text_family='monospace', text_size=15) # Add lines m.add_line([-8, 46, -1, 50], color='b') m.add_lines([-8, -1, -4, -8], [45, 45, 47, 45], color='r', linewidth=2, shadow=True) m.add_box([-8, 46, -1, 50], color='c') m.savefig(figfile%0)
"""Test :meth:`~vacumm.data.misc.dataset.OceanDataset.get_depth` in MENOR""" # Inits ncfile = "menor.nc" # Imports from vcmq import DS, os, map2, data_sample, code_file_name # Read data ncfile = data_sample(ncfile) ds = DS(ncfile, 'mars', logger_level='critical') depth = ds.get_depth(squeeze=True) # Plot midlevel figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) map2(depth[depth.shape[0] / 2], savefig=figfile, close=True, vmax=0, show=False, colorbar_shrink=0.6, title='Testing Dataset.get_depth()') # For unittest result = [ ('files', figfile), ]
"""Test :meth:`~vacumm.data.misc.dataset.OceanDataset.get_mld` with deltadens in MENOR""" # Inits ncfile = "menor.nc" # Imports from vcmq import DS, os, map2, data_sample, code_file_name # Read data ds = DS(data_sample(ncfile), 'mars', logger_level='critical') mld = ds.get_mld(mode='deltadens', deltadens=0.06, squeeze=True) # Plot surface density figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) map2(mld, savefig=figfile, close=True, show=False, fill='pcolormesh', cmap='vacumm_previmer', contour=False) # For unittest result = {'files':figfile}
"""Test :meth:`~vacumm.data.misc.dataset.OceanDataset.get_variable` with level as a string""" # Inits ncfile = "menor.nc" # Imports from vcmq import DS, os, map2, data_sample, code_file_name # Read data ncfile = data_sample(ncfile) ds = DS(ncfile, 'mars', logger_level='critical') tbot = ds.get_temp(level='bottom', squeeze=True) tsurf = ds.get_temp(level='surf', squeeze=True) # Plot bottom figfile = code_file_name(ext='png') if os.path.exists(figfile): os.remove(figfile) kw = dict(contour=True, fill='contourf', colorbar_shrink=0.8, cmap='cmocean_thermal', linewidth=.3) m = map2(tsurf, subplot=211, close=False, show=False, figsize=(5, 7), title='Testing Dataset.get_temp(level="surf")', **kw) map2(tbot, subplot=212, close=True, show=True, m=m, title='Testing Dataset.get_temp(level="bottom")', savefig=figfile, **kw)
# Interpolations for p in 'u', 'v', 'f', 'w': var[p] = ag.interp(var['t'], 't', p, mode='extrap') # Surface plots vmin, vmax = minmax(*[var[p][-1] for p in ['u', 'v', 'f']]) kw = dict(show=False, res=None, vmin=vmin, vmax=vmax, colorbar=False, grid=False, cmap='jet') m = map2(var['t'][-1], fill='pcolor', title='Interpolations on an Arakawa C grid: T->U/V/F', **kw) add_grid(var['t'], linestyle='-') kw.update(fill='scatter', contour=False, fill_s=60) markers = dict(u='>', v='^', f='D', t='o') for p in 't', 'u', 'v', 'f': m = map2(var[p][-1], fill_marker=markers[p], shadow=True, zorder=100, **kw) m.savefig(code_file_name(ext='_1.png')) m.close() # Vertical plot curve2(var['t'][:, 0, 0], 'o-b', ymax=0, show=False, title='Interpolations on an Arakawa C grid: T->W')
# - format zi = MV2.array(zi, copy=False, id='sst') taxis = zi.getAxis(0) taxis.units = 'hours since 2000' taxis.axis = 'T' ggo = create_grid(xr, yr) zzr = MV2.array(zzr) set_grid(zzr, ggo) # Call and plot kw = dict(vmin=zzr.min(), vmax=zzr.max(), lon=(xr[0], xr[-1]), cmap_lum=0.7, linewidth=.5, lat=(yr[0], yr[-1]), show=False, colorbar=False) m = map2(zzr, title='Original', subplot=221, figsize=(8, 5), **kw) m.add_point(xi, yi, color='k') for i, method in enumerate(['nearest', 'linear', 'cubic']): # Interp zo = griddata(xi, yi, zi, ggo, method=method)[0] # Plot m = map2(zo, title=method.title(), subplot=(2, 2, i + 2), **kw) m.add_point(xi, yi, color='k') m.savefig(code_file_name(ext='png'))
"""Test :func:`~vacumm.misc.plot.Plot.add_point` and similar :class:`~vacumm.misc.plot.Plot` methods""" # Imports from vcmq import MV2, code_file_name, map2, curve2, create_time figfile = code_file_name(ext=False) + '_%i.png' # Create a map with projection m = map2(lon=(-10, 1), lat=(43, 51), res='l', show=False, proj='merc') # Add a point m.add_point(-4, 48, color='cyan', glow=True, size=50) m.add_point([0, -2], [45, 44], color='k', marker='^', size=40) # Add text m.add_text(0.1, 0.1, 'My text', color='r', shadow=True, weight='bold') m.add_text(-2, 50.5, 'My text with transform', transform='data', ha='center', bbox=dict(facecolor='y', alpha=.3)) m.add_lon_label(-8, 47.5, -8, va='center', ha='center', transform='data', fmt='%g') m.add_lat_label(-8, 47, 47, va='center', ha='center', transform='data') m.add_time_label(.1, .9, '2000')
sst1d_bar13 = bartlett1d(sst1d, 13) # -> TESTEZ GAUSSIEN SUR 13 HEURES # - plots curve2(sst1d, 'k', label='Original', show=False, figsize=(12, 5)) curve2(sst1d_gen13, 'r', label='Generic 13 pts', show=False) curve2(sst1d_gen3, 'g', label='Generic 3 pts', show=False) curve2(sst1d_sha, 'b', label='shapiro', show=False) curve2(sst1d_bar13, 'm', label='Bartlett', legend=True) # -> MASQUEZ UNE PARTIE DES DONNEES ET JOUEZ AVEC LE PARAMETRE MASK= # -> LISEZ UN BLOCK 3D ET FILTREZ LE SUIVANT LE TEMPS # 2D # - filtrage sst2d_gen13 = generic2d(sst2d, 13) sst2d_gau13 = gaussian2d(sst2d, 13) # - plots kw = dict(vmin=sst2d.min(), vmax=sst2d.max(), colorbar=False, nmax=18) map2(sst2d, title='Original', figsize=(13, 3), subplot=131, show=False, **kw) map2(sst2d_gen13, title='Generic 13', subplot=132, show=False, **kw) map2(sst2d_gau13, title='Gauss 13', subplot=133, show=True, **kw) # -> JOUEZ AVEC MASK=
# Imports from vcmq import DS, map2, MV2, data_sample # The file ncfile = options.ncfile if not os.path.exists(ncfile): ncfile = data_sample(ncfile) if not os.path.exists(ncfile): parser.error('File not found: ' + ncfile) # Read temperature and depth ds = DS(ncfile, options.model, **select) mld = ds.get_mld(mode='deltatemp', squeeze=1) # Time average (if needed) if mld.ndim == 3: mld = MV2.average(mld, axis=0) # Plot map2(mld, proj='merc', figsize=(6, 6), autoresize=0, title=options.title, colorbar_shrink=0.7, right=1, show=options.disp, savefig=options.outputfig, savefig_verbose=True, close=True)
# -*- coding: utf8 -*- """Diagnostics thermodynamiques et dynamiques (:mod:`vacumm.diag.thermdyn` et :mod:`vacumm.diag.dynamics`)""" from vcmq import DS, data_sample, map2, density, mixed_layer_depth, barotropic_geostrophic_velocity, kinetic_energy, shapiro2d # Lecture des données de base ds = DS(data_sample('menor.nc')) temp = ds.get_temp(squeeze=1) sal = ds.get_sal(squeeze=1) depth = ds.get_depth(squeeze=1) ssh = ds.get_ssh(squeeze=1) # Densité dens_surf = density(temp[-1], sal[-1]) # -> CALCULER DENSITE 3D map2(dens_surf) # Couche mélangée mld = mixed_layer_depth((temp, sal), depth, mode='deltadens') # -> ESSAYER AUTRES MODES map2(mld, vmax=600.) # Vitesse geostrophique # - vitesses ug, vg = barotropic_geostrophic_velocity(ssh) # - energie cinetique ke = kinetic_energy((ug, vg)) # -> TESTER AVEC SSH ke.long_name = 'Surface geostrophique kinetic energy' ke = shapiro2d(ke) # - plot