Skip to content

underwater.ship_radiated_noise

Ship radiated noise and equivalent monopole source level (ISO 17208-1/-2).

A surface ship measured in deep water is characterised by its radiated noise level and then by an equivalent monopole source level referred to a point source below the sea surface:

  • radiated_noise_levelLRN = 20·lg(p_rms/p₀) + 20·lg(r/r₀) dB re 1 µPa·m (ISO 17208-1), the level of the product of the far-field RMS pressure and the source distance.
  • monopole_source_level — converts LRN to the source level Ls = LRN + ΔL with the Lloyd’s-mirror surface correction ΔL of ISO 17208-2 Formula 3, for a nominal source depth d_s = 0.7·D (Formula 1).

Supporting helpers give the ISO 17208-1 three-hydrophone measurement depths (hydrophone_depths) and the ISO 17208-2 tabulated source-level uncertainty (source_level_uncertainty). The conversion assumes an ideal pressure-release sea surface and ignores wind; the reported source level is an equivalent monopole broadside value and must be quoted with its source depth.

Auto-generated from the source docstrings by scripts/generate_api_docs.py (make api-docs). Do not edit by hand.

hydrophone_depths(
cpa_distance: float,
angles: tuple[float, ...] = (15.0, 30.0, 45.0),
) -> NDArray[np.float64]

Hydrophone depths for the ISO 17208-1 deep-water geometry.

At the closest point of approach the three hydrophones sit at depression angles from the sea surface seen from the ship reference point; at a horizontal range equal to cpa_distance the depth of each is d = cpa·tan(angle).

Parameters

NameDescription
cpa_distanceHorizontal distance at the closest point of approach, in m (dCPA = max(100 m, ship length)).
anglesDepression angles, in degrees (default 15°, 30°, 45°).

Returns: The hydrophone depths, in m.

Raises

ExceptionWhen
ValueErrorIf the distance or any angle is out of range.
monopole_source_level(
rnl: float | NDArray[np.float64] | list[float],
frequency: float | NDArray[np.float64] | list[float],
draught: float,
*,
c: float = 1500.0,
) -> ShipSourceLevelResult

Equivalent monopole source level from radiated noise level (ISO 17208-2).

Ls = LRN + ΔL with the surface correction (Formula 3) ΔL = −10·lg[(2u⁴ + 14u²) / (14 + 2u² + u⁴)], u = k·d_s, k = 2πf/c and the nominal source depth d_s = 0.7·D (Formula 1).

Parameters

NameDescription
rnlRadiated noise level per frequency, in dB re 1 µPa·m (scalar or array; array length must match frequency).
frequencyFrequency or frequencies, in Hz.
draughtShip draught D (mean of bow and stern), in m.
cSpeed of sound in sea water, in m/s (default 1500).

Returns: A ShipSourceLevelResult.

Raises

ExceptionWhen
ValueErrorIf the inputs are invalid or the shapes mismatch.
radiated_noise_level(rms_pressure: float, distance: float) -> float

Radiated noise level LRN (ISO 17208-1), dB re 1 µPa·m.

LRN = 20·lg(p_rms/p₀) + 20·lg(r/r₀) — the level of the product of the far-field RMS sound pressure and the source distance, referred to 1 µPa·m.

Parameters

NameDescription
rms_pressureFar-field RMS sound pressure p_rms, in Pa.
distanceDistance r from the ship reference point, in m.

Returns: Radiated noise level, in dB re 1 µPa·m.

Raises

ExceptionWhen
ValueErrorIf the pressure or distance is not positive.
ShipSourceLevelResult(
frequencies: NDArray[np.float64],
radiated_noise_level: NDArray[np.float64],
surface_correction: NDArray[np.float64],
source_level: NDArray[np.float64],
source_depth: float,
sound_speed: float,
)

Equivalent monopole source level of a ship (ISO 17208-2).

Attributes

NameDescription
frequenciesFrequencies, in Hz.
radiated_noise_levelInput RNL per frequency, in dB re 1 µPa·m.
surface_correctionLloyd’s-mirror correction ΔL per frequency, dB.
source_levelEquivalent monopole source level Ls = LRN + ΔL, in dB re 1 µPa·m.
source_depthNominal source depth d_s = 0.7·D, in m.
sound_speedSpeed of sound used, in m/s.
ShipSourceLevelResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot RNL, source level and the ΔL surface correction vs frequency.

source_level_uncertainty(frequency: float) -> float

Tabulated expanded source-level uncertainty (ISO 17208-2 §5), in dB.

5 dB for the low-frequency bands (the standard lists 10 Hz-100 Hz; values below 10 Hz reuse it), 3 dB for the mid-frequency bands (125 Hz-16 kHz) and 4 dB for the high-frequency bands. The standard’s own wording leaves the 20 kHz band unassigned (its high band starts “above 20 000 Hz”); this implementation takes the conservative reading and applies the 4 dB high-band value from just above 16 kHz. These are representative values, not exact.

Parameters

NameDescription
frequencyOne-third-octave band centre frequency, in Hz.

Returns: The representative expanded uncertainty, in dB.

Raises

ExceptionWhen
ValueErrorIf the frequency is not positive.
Created and maintained by· GitHub· PyPI· All projects