# -*- coding: utf8 -*- # Lecture d'une serie 1D de niveau de la mer du modele import cdms2 from vacumm.config import data_sample f = cdms2.open(data_sample('tide.sealevel.BREST.mars.nc')) sea_level = f('sea_level', ('2006-10-01', '2006-10-02'))[1::4] # Toutes les heures f.close() # Recuperation des pleines mers, basses mers et zeros from vacumm.tide.filters import extrema, zeros bm, pm = extrema(sea_level, spline=True, reference='mean') zz = zeros(sea_level, ref='mean') # Plots from vacumm.misc.plot import curve2 as curve curve(sea_level, 'ko', markersize=3, figsize=(6, 4), show=False) curve(zz, 'go', linewidth=0, show=False, xstrict=False) curve(pm, 'ro', linewidth=0, show=False, xstrict=False) curve(bm, 'bo', linewidth=0, xstrict=False, title="Niveau de la mer", savefigs=__file__, savefigs_pdf=True, show=False, close=True)
def plot(self, var=None, orig=True, tide=True, cotes=True, highs=True, lows=True, zeros=True, legend=True, title=None, savefig=None, savefigs=None, show=True, marker='o', **kwargs): # Which variable? vtypes = 'orig', 'tide', 'highs', 'lows', 'zeros', 'cotes' if var is not None: assert var in vtypes for vt in vtypes: exec "%s = %s"%(vt, vt==var) # Plot params # - specific kwplot = {} for vt in vtypes: kwplot[vt] = kwfilter(kwargs, vt) kwplot[vt].update(show=False) kwplot[vt].update(title=False) # - global nt = self.data['base'].shape[0] times = T.mpl(self.data['base'][0:nt:nt-1].getTime()) kwargs.setdefault('xmin', times[0]) kwargs.setdefault('xmax', times[1]) # - complete for vt in vtypes: tmp = kwargs.copy() tmp.update(kwplot[vt]) kwplot[vt] = tmp anom = not (orig or highs or lows or zeros) # Original signal if orig: kwplot['orig'].setdefault('color', '#888888') kwplot['orig'].setdefault('zorder', '10') curve(self.sea_level(), **kwplot['orig']) # High tides if highs: kwplot['highs'].setdefault('color', 'r') kwplot['highs'].setdefault('linewidth', 0) kwplot['highs'].setdefault('markersize', 5) kwplot['highs'].setdefault('zorder', '12') curve(self.highs(), marker, **kwplot['highs']) # Low tides if lows: kwplot['lows'].setdefault('color', 'b') kwplot['lows'].setdefault('linewidth', 0) kwplot['lows'].setdefault('markersize', 5) kwplot['lows'].setdefault('zorder', '12') curve(self.lows(), marker, **kwplot['lows']) # Zeros if zeros: kwplot['zeros'].setdefault('color', 'k') kwplot['zeros'].setdefault('linewidth', 0) kwplot['zeros'].setdefault('markersize', 5) kwplot['zeros'].setdefault('zorder', '12') curve(self.zeros(), marker, **kwplot['zeros']) # Tidal signal if tide: kwplot['orig'].setdefault('color', 'k') kwplot['orig'].setdefault('zorder', '11') curve(self.tide(anom=anom), **kwplot['tide']) # Surcote/decotes if cotes: kwplot['cotes'].setdefault('color', 'g') kwplot['cotes'].setdefault('zorder', '12') curve(self.cotes(anom=anom), **kwplot['cotes']) # Misc if title is None: if var is not None: title = var.title() else: title = 'Marigraph' if title: P.title(title) if savefig: P.savefig(savefig, **kwfilter(kwargs, 'savefig')) if savefigs: Savefigs(savefigs, **kwfilter(kwargs, 'savefigs')) if show: P.show()
# -*- coding: utf8 -*- # Lecture d'une serie 1D de niveau de la mer du modele import cdms2 from vacumm.config import data_sample f = cdms2.open(data_sample('tide.sealevel.BREST.mars.nc')) sea_level = f('sea_level', ('2006-10-01', '2006-10-02'))[1::4] # Toutes les heures f.close() # Recuperation des pleines mers, basses mers et zeros from vacumm.tide.filters import extrema, zeros bm, pm = extrema(sea_level, spline=True, reference='mean') zz = zeros(sea_level, ref='mean') # Plots from vacumm.misc.plot import curve2 as curve curve(sea_level, 'ko', markersize=3, figsize=(6, 4), show=False) curve(zz, 'go', linewidth=0, show=False, xstrict=False) curve(pm, 'ro', linewidth=0, show=False, xstrict=False) curve(bm, 'bo', linewidth=0, xstrict=False, title="Niveau de la mer", savefigs=__file__, savefigs_pdf=True, show=False)
def plot(self, var=None, orig=True, tide=True, cotes=True, highs=True, lows=True, zeros=True, legend=True, title=None, savefig=None, savefigs=None, show=True, marker='o', **kwargs): # Which variable? vtypes = 'orig', 'tide', 'highs', 'lows', 'zeros', 'cotes' if var is not None: assert var in vtypes for vt in vtypes: exec("%s = %s"%(vt, vt==var)) # Plot params # - specific kwplot = {} for vt in vtypes: kwplot[vt] = kwfilter(kwargs, vt) kwplot[vt].update(show=False) kwplot[vt].update(title=False) # - global nt = self.data['base'].shape[0] times = T.mpl(self.data['base'][0:nt:nt-1].getTime()) kwargs.setdefault('xmin', times[0]) kwargs.setdefault('xmax', times[1]) # - complete for vt in vtypes: tmp = kwargs.copy() tmp.update(kwplot[vt]) kwplot[vt] = tmp anom = not (orig or highs or lows or zeros) # Original signal if orig: kwplot['orig'].setdefault('color', '#888888') kwplot['orig'].setdefault('zorder', '10') curve(self.sea_level(), **kwplot['orig']) # High tides if highs: kwplot['highs'].setdefault('color', 'r') kwplot['highs'].setdefault('linewidth', 0) kwplot['highs'].setdefault('markersize', 5) kwplot['highs'].setdefault('zorder', '12') curve(self.highs(), marker, **kwplot['highs']) # Low tides if lows: kwplot['lows'].setdefault('color', 'b') kwplot['lows'].setdefault('linewidth', 0) kwplot['lows'].setdefault('markersize', 5) kwplot['lows'].setdefault('zorder', '12') curve(self.lows(), marker, **kwplot['lows']) # Zeros if zeros: kwplot['zeros'].setdefault('color', 'k') kwplot['zeros'].setdefault('linewidth', 0) kwplot['zeros'].setdefault('markersize', 5) kwplot['zeros'].setdefault('zorder', '12') curve(self.zeros(), marker, **kwplot['zeros']) # Tidal signal if tide: kwplot['orig'].setdefault('color', 'k') kwplot['orig'].setdefault('zorder', '11') curve(self.tide(anom=anom), **kwplot['tide']) # Surcote/decotes if cotes: kwplot['cotes'].setdefault('color', 'g') kwplot['cotes'].setdefault('zorder', '12') curve(self.cotes(anom=anom), **kwplot['cotes']) # Misc if title is None: if var is not None: title = var.title() else: title = 'Marigraph' if title: P.title(title) if savefig: P.savefig(savefig, **kwfilter(kwargs, 'savefig')) if savefigs: Savefigs(savefigs, **kwfilter(kwargs, 'savefigs')) if show: P.show()