Example #1
0
# -*- 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)
Example #2
0
    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()
Example #3
0
# -*- 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)
Example #4
0
    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()