netsse.analys.dsa#
Functions for transforming spectra observed from advancing floating platforms.
Copyright (C) 2023-2026 Technical University of Denmark, R.E.G. Mounet
This code is part of the NetSSE software.
NetSSE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
NetSSE is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
To credit the author, users are encouraged to use below reference:
Mounet, R. E. G., & Nielsen, U. D. NetSSE: An open-source Python package
for network-based sea state estimation from ships, buoys, and other
observation platforms (version 2.2). Technical University of Denmark,
GitLab. February 2026. https://doi.org/10.11583/DTU.26379811.
Last updated on 20-02-2026 by R.E.G. Mounet
Functions#
|
Computes the polynomial approximation of the Doppler Shift. |
|
Computes the transformation matrices for applying the Doppler shift approximation (DSA) at the given forward speed and for the given frequency and direction discretizations. |
Module Contents#
- netsse.analys.dsa.polynom_DSA(tau, om0m, weighting='uniform', nu23=None, full_output=False)[source]#
Computes the polynomial approximation of the Doppler Shift.
Note
This implementation uses the derivations presented in Mounet et al. (2025, 2026).
- Parameters:
tau (array_like of shape (Ntau,)) â Array of Doppler shift intensities.
om0m (float) â Cut-off frequency of the DSA.
weighting ({'uniform','tripvalpb','lowfreq'}, optional) â
Weighting method to use:
- âuniformâ :
Equal weight is given to all frequencies in the range
[0,om0m]in the cost function. This is the default option. It is introduced in Mounet et al. (2025).
- âtripvalpbâ :
Same as
'uniform'weighting, but theom0mis set to a value of \((1+\sqrt{2})/(2\tau)\) when \(\nu>\nu_{23}\). This ensures the DSA features an optimal accuracy in the range of frequencies where the triple-value problem occurs. This idea is introduced in Mounet et al. (2026).
- âlowfreqâ :
A decreasing (affine) weighting function is applied in the range
[0,om0m], such that low frequencies are given more importance in the cost function. This option is not recommended for general use.
nu23 (float, optional) â Threshold value of
nufor switching between the concave and convex forms of the approximation. Default isNone, which means that the convex form is not used.full_output (bool, optional) â If True, the function returns
nu``and ``kappaas additional outputs. Default is False.
- Returns:
rho_p (array_like of shape (Ntau,)) â Computed
rho_pvalues.nu_p (array_like of shape (Ntau,)) â Computed
nu_pvalues.nu (array_like of shape (Ntau,)) â Computed
nuvalues.kappa (array_like of shape (Ntau,)) â Computed
kappavalues.
See also
trans_2Dmat_DSAComputes the matrices for applying the Doppler shift approximation (DSA).
References
Mounet, R.E.G., Nielsen, U.D., and Takami, T. (2025). âDoppler Shift Approximation in Seakeeping Problems: A New Formulation for Ships Advancing at Any Forward Speed.â In: Proceedings of the 16th International Symposium on Practical Design of Ships and Other Floating Structures (PRADS 2025), Ann Arbor, MI, USA. (Accepted).
Mounet, R.E.G., Nielsen, U.D., and Takami, T. (2026). âApproximating the Doppler Shift in Sea-Wave Spectra Observed from an Advancing Floating Platform.â Applied Mathematical Modelling. (Submitted).
Example
>>> rho_p, nu_p = polynom_DSA(tau, om0m, weighting='tripvalpb', full_output=False)
- netsse.analys.dsa.trans_2Dmat_DSA(freq_in, beta, U, freq_out=None, unit_freq='rad/s', unit_beta='deg', conv='from', max_freq=None, nu23=None, transform='abs2enc', weighting='uniform', highfreq_matching=True)[source]#
Computes the transformation matrices for applying the Doppler shift approximation (DSA) at the given forward speed and for the given frequency and direction discretizations.
Note
This implementation uses the derivations presented in Mounet et al. (2025, 2026).
- Parameters:
freq_in (array_like of shape (NfreqIN,)) â Input frequencies.
beta (array_like of shape (Nbeta,)) â Relative wave heading angles.
U (float) â Forward speed of the observer [m/s].
freq_out (array_like of shape (NfreqOUT), optional) â Output frequencies. If None, it is set to freq_in.
unit_freq ({'rad/s','Hz'}, optional) â
Unit of the frequencies:
- ârad/sâ :
The variables
freq_inandfreq_outdenote the angular frequencies in radians per second. The default is ârad/sâ.
- âHzâ :
Frequencies are in Hertz.
unit_beta ({'deg','rad'}, optional) â Unit of the relative wave heading angles
beta(âdegâ or âradâ). Default is âdegâ.conv ({'from','to'}, optional) â
The convention that is used to express the direction
betaof wave spectrum:- âfromâ :
The naval architecture convention, indicating where the waves are COMING FROM.
- âtoâ :
The oceanographic convention, indicating where the waves are GOING TO. The default is âfromâ direction.
max_freq (float, optional) â Cut-off frequency. If None, it is set to the maximum of
freq_in.nu23 (float, optional) â Threshold value of
nufor switching between the concave and convex forms of the approximation. Default isNone, which means that the convex form is not used.transform (str, optional) â Type of transformation (âabs2encâ or âenc2absâ). Default is âabs2encâ.
weighting ({'uniform','tripvalpb','lowfreq'}, optional) â
Weighting method to use:
- âuniformâ :
Equal weight is given to all frequencies in the range [0,om0m] in the cost function. This is the default option. It is introduced in Mounet et al. (2025).
- âtripvalpbâ :
Same as
'uniform'weighting, but theom0mis set to a value of \((1+\sqrt{2})/(2\tau)\) when \(\nu>\nu_{23}\). This ensures the DSA features an optimal accuracy in the range of frequencies where the triple-value problem occurs. This idea is introduced in Mounet et al. (2026).
- âlowfreqâ :
A decreasing (affine) weighting function is applied to frequencies in the range [0,om0m], such that low frequencies are given more importance in the cost function. This option is not recommended for general use.
highfreq_matching (bool, optional) â If
True, the convex form of the DSA is overriden to become exact beyond the point where the DSA and the exact Doppler shift intersect each other in Region III of the mapping. IfFalse, the DSA is kept unchanged otherwise. Default is True.
- Returns:
Omega_in_fromout (ndarray of shape (NfreqOUT,Nbeta)) â Approximated input frequencies as a function of the target frequencies and wave directions.
C (ndarray of shape (NfreqOUT*Nbeta,NfreqIN*Nbeta)) â Linear interpolation matrix.
D_wave (ndarray of shape (NfreqOUT*Nbeta,NfreqOUT*Nbeta)) â 2D-to-2D transformation matrix for wave spectra.
S (ndarray of shape (NfreqOUT,NfreqOUT*Nbeta)) â 2D-to-1D summation matrix.
See also
polynom_DSAComputes the polynomial approximation of the Doppler Shift.
References
Mounet, R.E.G., Nielsen, U.D., and Takami, T. (2025). âDoppler Shift Approximation in Seakeeping Problems: A New Formulation for Ships Advancing at Any Forward Speed.â In: Proceedings of the 16th International Symposium on Practical Design of Ships and Other Floating Structures (PRADS 2025), Ann Arbor, MI, USA. (Accepted).
Mounet, R.E.G., Nielsen, U.D., and Takami, T. (2026). âApproximating the Doppler Shift in Sea-Wave Spectra Observed from an Advancing Floating Platform.â Applied Mathematical Modelling. (Submitted).
Example
>>> _, C, D, S = trans_2Dmat_DSA( ... freq_in, beta, U, freq_out, unit_freq='Hz', unit_beta='deg', conv='from', max_freq=0.3, ... transform='abs2enc', weighting="uniform", highfreq_matching=True)