You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pywafo/wafo/definitions.py

311 lines
10 KiB
Python

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