|
|
|
"""
|
|
|
|
WAFO defintions and numenclature
|
|
|
|
|
|
|
|
crossings :
|
|
|
|
cycle_pairs :
|
|
|
|
turning_points :
|
|
|
|
wave_amplitudes :
|
|
|
|
wave_periods :
|
|
|
|
waves :
|
|
|
|
|
|
|
|
Examples
|
|
|
|
--------
|
|
|
|
In order to view the documentation do the following in an ipython window:
|
|
|
|
|
|
|
|
import wafo.definitions as wd
|
|
|
|
wd.crossings()
|
|
|
|
|
|
|
|
or
|
|
|
|
|
|
|
|
wd.crossings?
|
|
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
def wave_amplitudes():
|
|
|
|
r"""
|
|
|
|
Wave amplitudes and heights definitions and nomenclature
|
|
|
|
|
|
|
|
Definition of wave amplitudes and wave heights
|
|
|
|
---------------------------------------------
|
|
|
|
|
|
|
|
<----- Direction of wave propagation
|
|
|
|
|
|
|
|
|
|
|
|
|..............c_..........|
|
|
|
|
| /| \ |
|
|
|
|
Hd | _/ | \ | Hu
|
|
|
|
M | / | \ |
|
|
|
|
/ \ | M / Ac | \_ | c_
|
|
|
|
F \ | / \m/ | \ | / \
|
|
|
|
------d----|---u------------------d---|---u----d------ level v
|
|
|
|
\ | /| \ | / \L
|
|
|
|
\_ | / | At \_|_/
|
|
|
|
\|/..| t
|
|
|
|
t
|
|
|
|
|
|
|
|
Parameters
|
|
|
|
----------
|
|
|
|
Ac : crest amplitude
|
|
|
|
At : trough amplitude
|
|
|
|
Hd : wave height as defined for down crossing waves
|
|
|
|
Hu : wave height as defined for up crossing waves
|
|
|
|
|
|
|
|
See also
|
|
|
|
--------
|
|
|
|
waves, crossings, turning_points
|
|
|
|
"""
|
|
|
|
print(wave_amplitudes.__doc__)
|
|
|
|
|
|
|
|
|
|
|
|
def crossings():
|
|
|
|
r"""
|
|
|
|
Level v crossing definitions and nomenclature
|
|
|
|
|
|
|
|
Definition of level v crossings
|
|
|
|
-------------------------------
|
|
|
|
M
|
|
|
|
. . M M
|
|
|
|
. . . . . .
|
|
|
|
F d . . L
|
|
|
|
-----------------------u-------d-------o----------------- level v
|
|
|
|
. . . . u
|
|
|
|
. m
|
|
|
|
m
|
|
|
|
|
|
|
|
Let the letters 'm', 'M', 'F', 'L','d' and 'u' in the
|
|
|
|
figure above denote local minimum, maximum, first value, last
|
|
|
|
value, down- and up-crossing, respectively. The remaining
|
|
|
|
sampled values are indicated with a '.'. Values that are identical
|
|
|
|
with v, but do not cross the level is indicated with the letter 'o'.
|
|
|
|
We have a level up-crossing at index, k, if
|
|
|
|
|
|
|
|
x(k) < v and v < x(k+1)
|
|
|
|
or if
|
|
|
|
x(k) == v and v < x(k+1) and x(r) < v for some di < r <= k-1
|
|
|
|
|
|
|
|
where di is the index to the previous downcrossing.
|
|
|
|
Similarly there is a level down-crossing at index, k, if
|
|
|
|
|
|
|
|
x(k) > v and v > x(k+1)
|
|
|
|
or if
|
|
|
|
x(k) == v and v > x(k+1) and x(r) > v for some ui < r <= k-1
|
|
|
|
|
|
|
|
where ui is the index to the previous upcrossing.
|
|
|
|
|
|
|
|
The first (F) value is a up crossing if x(1) = v and x(2) > v.
|
|
|
|
Similarly, it is a down crossing if x(1) = v and x(2) < v.
|
|
|
|
|
|
|
|
See also
|
|
|
|
--------
|
|
|
|
wave_periods, waves, turning_points, findcross, findtp
|
|
|
|
"""
|
|
|
|
print(crossings.__doc__)
|
|
|
|
|
|
|
|
|
|
|
|
def cycle_pairs():
|
|
|
|
r"""
|
|
|
|
Cycle pairs definitions and numenclature
|
|
|
|
|
|
|
|
Definition of Max2min and min2Max cycle pair
|
|
|
|
--------------------------------------------
|
|
|
|
A min2Max cycle pair (mM) is defined as the pair of a minimum
|
|
|
|
and the following Maximum. Similarly a Max2min cycle pair (Mm)
|
|
|
|
is defined as the pair of a Maximum and the following minimum.
|
|
|
|
(all turning points possibly rainflowfiltered before pairing into cycles.)
|
|
|
|
|
|
|
|
See also
|
|
|
|
--------
|
|
|
|
turning_points
|
|
|
|
"""
|
|
|
|
print(cycle_pairs.__doc__)
|
|
|
|
|
|
|
|
|
|
|
|
def wave_periods():
|
|
|
|
r"""
|
|
|
|
Wave periods (lengths) definitions and nomenclature
|
|
|
|
|
|
|
|
Definition of wave periods (lengths)
|
|
|
|
------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
<----- Direction of wave propagation
|
|
|
|
|
|
|
|
<-------Tu--------->
|
|
|
|
: :
|
|
|
|
<---Tc-----> :
|
|
|
|
: : : <------Tcc---->
|
|
|
|
M : c : : : :
|
|
|
|
/ \ : M / \_ : : c_ c
|
|
|
|
F \ :/ \m/ \: :/ \ / \
|
|
|
|
------d--------u----------d-------u----d--------u---d-------- level v
|
|
|
|
\ / \ / :\_ _/: :\_ L
|
|
|
|
\_ / \_t_/ : \t_/ : : \m/
|
|
|
|
\t/ : : : :
|
|
|
|
: : <---Tt---> :
|
|
|
|
<--------Ttt-------> : :
|
|
|
|
<-----Td----->
|
|
|
|
Tu = Up crossing period
|
|
|
|
Td = Down crossing period
|
|
|
|
Tc = Crest period, i.e., period between up crossing and
|
|
|
|
the next down crossing
|
|
|
|
Tt = Trough period, i.e., period between down crossing and
|
|
|
|
the next up crossing
|
|
|
|
Ttt = Trough2trough period
|
|
|
|
Tcc = Crest2crest period
|
|
|
|
|
|
|
|
|
|
|
|
<----- Direction of wave propagation
|
|
|
|
|
|
|
|
<--Tcf-> Tuc
|
|
|
|
: : <-Tcb-> <->
|
|
|
|
M : c : : : :
|
|
|
|
/ \ : M / \_ c_ : : c
|
|
|
|
F \ :/ \m/ \ / \___: :/ \
|
|
|
|
------d---------u----------d---------u-------d--------u---d------ level v
|
|
|
|
:\_ / \ __/: \_ _/ \_ L
|
|
|
|
: \_ / \_t_/ : \t_/ \m/
|
|
|
|
: \t/ : :
|
|
|
|
: : : :
|
|
|
|
<-Ttf-> <-Ttb->
|
|
|
|
|
|
|
|
|
|
|
|
Tcf = Crest front period, i.e., period between up crossing and crest
|
|
|
|
Tcb = Crest back period, i.e., period between crest and down crossing
|
|
|
|
Ttf = Trough front period, i.e., period between down crossing and trough
|
|
|
|
Ttb = Trough back period, i.e., period between trough and up crossing
|
|
|
|
Also note that Tcf and Ttf can also be abbreviated by their crossing
|
|
|
|
marker, e.g. Tuc (u2c) and Tdt (d2t), respectively. Similar applies
|
|
|
|
to all the other wave periods and wave lengths.
|
|
|
|
|
|
|
|
(The nomenclature for wave length is similar, just substitute T and
|
|
|
|
period with L and length, respectively)
|
|
|
|
|
|
|
|
<----- Direction of wave propagation
|
|
|
|
|
|
|
|
<--TMm-->
|
|
|
|
<-TmM-> : :
|
|
|
|
M : : M :
|
|
|
|
/ \ : M /:\_ : M_ M
|
|
|
|
F \ : / \m/ : \ : /: \ / \
|
|
|
|
\ : / : \ : / : \ / \
|
|
|
|
\ : / : \ : / : \_ _/ \_ L
|
|
|
|
\_ : / : \_m_/ : \m_/ \m/
|
|
|
|
\m/ : : : :
|
|
|
|
<-----TMM-----> <----Tmm----->
|
|
|
|
|
|
|
|
|
|
|
|
TmM = Period between minimum and the following Maximum
|
|
|
|
TMm = Period between Maximum and the following minimum
|
|
|
|
TMM = Period between Maximum and the following Maximum
|
|
|
|
Tmm = Period between minimum and the following minimum
|
|
|
|
|
|
|
|
See also
|
|
|
|
--------
|
|
|
|
waves,
|
|
|
|
wave_amplitudes,
|
|
|
|
crossings,
|
|
|
|
turning_points
|
|
|
|
"""
|
|
|
|
print(wave_periods.__doc__)
|
|
|
|
|
|
|
|
|
|
|
|
def turning_points():
|
|
|
|
r"""
|
|
|
|
Turning points definitions and numenclature
|
|
|
|
|
|
|
|
Definition of turningpoints
|
|
|
|
---------------------------
|
|
|
|
<----- Direction of wave propagation
|
|
|
|
|
|
|
|
M M
|
|
|
|
/ \ .... M /:\_ M_ M
|
|
|
|
F \ | / \m/ : \ /: \ / \
|
|
|
|
\ h | / : \ / : \ / \
|
|
|
|
\ | / : \ / : \_ _/ \_ L
|
|
|
|
\_ | / : \_m_/ : \m_/ \m/
|
|
|
|
\m/ : : : :
|
|
|
|
<------Mw-----> <-----mw----->
|
|
|
|
|
|
|
|
Local minimum or maximum are indicated with the
|
|
|
|
letters 'm' or 'M'. Turning points in this connection are all
|
|
|
|
local max (M) and min (m) and the last (L) value and the
|
|
|
|
first (F) value if the first local extremum is a max.
|
|
|
|
|
|
|
|
(This choice is made in order to get the exact up-crossing intensity
|
|
|
|
from rfc by mm2lc(tp2mm(rfc)) )
|
|
|
|
|
|
|
|
|
|
|
|
See also
|
|
|
|
--------
|
|
|
|
waves,
|
|
|
|
crossings,
|
|
|
|
cycle_pairs
|
|
|
|
findtp
|
|
|
|
|
|
|
|
"""
|
|
|
|
print(turning_points.__doc__)
|
|
|
|
|
|
|
|
|
|
|
|
def waves():
|
|
|
|
r"""
|
|
|
|
Wave definitions and nomenclature
|
|
|
|
|
|
|
|
Definition of trough and crest
|
|
|
|
------------------------------
|
|
|
|
A trough (t) is defined as the global minimum between a
|
|
|
|
level v down-crossing (d) and the next up-crossing (u)
|
|
|
|
and a crest (c) is defined as the global maximum between a
|
|
|
|
level v up-crossing and the following down-crossing.
|
|
|
|
|
|
|
|
Definition of down- and up -crossing waves
|
|
|
|
------------------------------------------
|
|
|
|
A level v-down-crossing wave (dw) is a wave from a
|
|
|
|
down-crossing to the following down-crossing.
|
|
|
|
Similarly, a level v-up-crossing wave (uw) is a wave from an up-crossing
|
|
|
|
to the next up-crossing.
|
|
|
|
|
|
|
|
Definition of trough and crest waves
|
|
|
|
------------------------------------
|
|
|
|
A trough-to-trough wave (tw) is a wave from a trough (t) to the
|
|
|
|
following trough. The crest-to-crest wave (cw) is defined similarly.
|
|
|
|
|
|
|
|
|
|
|
|
Definition of min2min and Max2Max wave
|
|
|
|
--------------------------------------
|
|
|
|
A min2min wave (mw) is defined starting from a minimum (m) and
|
|
|
|
ending in the following minimum.
|
|
|
|
Similarly a Max2Max wave (Mw) is thus a wave from a maximum (M)
|
|
|
|
to the next maximum (all waves optionally rainflow filtered).
|
|
|
|
|
|
|
|
<----- Direction of wave propagation
|
|
|
|
|
|
|
|
|
|
|
|
<------Mw-----> <----mw---->
|
|
|
|
M : : c :
|
|
|
|
/ \ M : / \_ : c_ c
|
|
|
|
F \ / \m/ \ : /: \ /:\
|
|
|
|
------d--------u----------d-------u----d--------u---d------ level v
|
|
|
|
\ /: \ : /: : :\_ _/ : :\_ L
|
|
|
|
\_ / : \_t_/ : : : \t_/ : : \m/
|
|
|
|
\t/ <-------uw---------> : <-----dw----->
|
|
|
|
: : : :
|
|
|
|
<--------tw--------> <------cw----->
|
|
|
|
|
|
|
|
(F=first value and L=last value).
|
|
|
|
|
|
|
|
See also
|
|
|
|
--------
|
|
|
|
turning_points,
|
|
|
|
crossings,
|
|
|
|
wave_periods
|
|
|
|
findtc,
|
|
|
|
findcross
|
|
|
|
"""
|
|
|
|
print(waves.__doc__)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
import doctest
|
|
|
|
doctest.testmod(optionflags=doctest.NORMALIZE_WHITESPACE)
|