Skip to content

Underwater acoustics: radiated noise and pile driving

Standards: ISO 18405ISO 17208ISO 18406Key references: Urick 1983Ainslie 2010

Underwater sound is referenced to 1 µPa (not the 20 µPa of airborne acoustics), and its exposure to 1 µPa²·s. This page covers the ISO 18405 reference levels realised as the shared primitives, the ISO 17208 ship radiated noise level and equivalent monopole source level, and the ISO 18406 percussive pile-driving single-strike, peak and cumulative sound exposure. Every quantity is an exact closed form, verified analytically.

Three primitives, referred to 1 µPa, are computed from a captured pressure signal (in Pa):

with p₀ = 1 µPa and E₀ = 1 µPa²·s. The sound pressure level is the mean-square level (ISO 18406 Formula 7); the sound exposure level integrates the squared pressure over the record (Formulae 3–4); the peak level is the zero-to-peak value.

from phonometry import underwater
spl = underwater.sound_pressure_level(pressure) # dB re 1 µPa
sel = underwater.sound_exposure_level(pressure, fs) # dB re 1 µPa²·s
pk = underwater.peak_sound_pressure_level(pressure) # dB re 1 µPa

To re-reference a level between the underwater (1 µPa) and airborne (20 µPa) conventions (a 20·lg(20) ≈ 26.02 dB shift, not an energy/intensity equivalence), use underwater_to_in_air_spl / in_air_to_underwater_spl. For background-noise subtraction, reuse the ISO 3744 background_noise_correction (K1) helper.

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

Section titled “2. Ship radiated noise and source level (ISO 17208-1/-2)”

A surface ship measured in deep water is described first by its radiated noise level and then by an equivalent monopole source level:

where the Lloyd’s-mirror surface correction (ISO 17208-2 Formula 3) for a nominal source depth d_s = 0.7·D (D = mean draught) and u = k·d_s, k = 2πf/c, is

ΔL diverges at low u (grazing / low frequency) and tends to −10·lg(2) = −3.01 dB as u → ∞. The reported source level is an equivalent monopole broadside value and must be quoted with its source depth.

Ship radiated noise level and equivalent monopole source level versus frequency, with the Lloyd's-mirror surface correction on a twin axis showing its low-frequency divergence and its approach to −3 dB at high frequencyShip radiated noise level and equivalent monopole source level versus frequency, with the Lloyd's-mirror surface correction on a twin axis showing its low-frequency divergence and its approach to −3 dB at high frequency
Show the code for this figure
import numpy as np
from phonometry import underwater
freqs = np.array([20, 25, 31.5, 40, 50, 63, 80, 100, 125, 160, 200, 250, 315,
400, 500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150,
4000, 5000, 6300, 8000, 10000, 12500, 16000, 20000.0])
rnl = 175.0 - 12.0 * np.log10(freqs / 20.0)
res = underwater.monopole_source_level(rnl, freqs, draught=6.0)
res.plot()
from phonometry import underwater
lrn = underwater.radiated_noise_level(2e-6, 100.0) # p_rms = 2 µPa, r = 100 m
res = underwater.monopole_source_level(lrn, 200.0, draught=6.0)
print(res.source_level, res.surface_correction, res.source_depth)
res.plot() # RNL, Ls and ΔL vs frequency (needs matplotlib)

hydrophone_depths gives the three ISO 17208-1 measurement depths from the 15°/30°/45° depression angles, and source_level_uncertainty the tabulated expanded uncertainty (5 dB ≤100 Hz, 3 dB 125 Hz–16 kHz, 4 dB >16 kHz).

What turns these closed forms into a comparable number is the measurement discipline ISO 17208-1 wraps around them. The ship transits a straight course past a vertical string of three hydrophones at a closest point of approach of 100 m or one ship length, whichever is greater, in water at least 150 m or 1.5 ship lengths deep so the bottom stays out of the picture (Clauses 5.2, 5.4). Only the data window of ±30° about the CPA is scored: the averaging runs while the ship crosses a window of length (about 1.15 CPA distances), centred on the beam aspect the radiated noise level is defined for (Clause 3, Figure 3). Four runs are required, two per side; each run’s three hydrophone levels are power-averaged (Formula 8), the runs are then arithmetically averaged (Formula 9), and port and starboard are also reported separately, because a real ship does not radiate symmetrically (Clause 6.5). Background noise is measured at the start and end of each test period and the ISO 3744-style correction applied per band; the recommended wind limit is 20 kn for ships above 100 m (Clause 5.3). Skip any of this and the number you quote is a level, but not an ISO 17208 radiated noise level.

Percussive pile driving radiates one impulsive pulse per hammer strike. Each strike has a single-strike sound exposure level SEL_ss; over a driving sequence the exposures add to a cumulative sound exposure level:

A percussive pile-driving strike pressure waveform with its peak marked, and below it the cumulative sound exposure level growing as SEL_ss plus ten times the logarithm of the number of strikesA percussive pile-driving strike pressure waveform with its peak marked, and below it the cumulative sound exposure level growing as SEL_ss plus ten times the logarithm of the number of strikes
Show the code for this figure
import numpy as np
from phonometry import underwater
fs = 48000
t = np.arange(int(0.3 * fs)) / fs
envelope = np.where(t < 0.01, t / 0.01, np.exp(-(t - 0.01) / 0.04))
pressure = 8000.0 * envelope * np.sin(2 * np.pi * 180.0 * t)
res = underwater.pile_strike_metrics(pressure, fs)
res.plot()
from phonometry import underwater
sel_ss = underwater.single_strike_sel(strike_pressure, fs) # dB re 1 µPa²·s
sel_cum = underwater.cumulative_sel_identical(sel_ss, 2000) # 2000 strikes
res = underwater.pile_strike_metrics(strike_pressure, fs)
print(res.single_strike_sel, res.peak_spl, res.pulse_duration)
res.plot() # waveform + cumulative energy (needs matplotlib)

pile_strike_metrics bundles the single-strike SEL, the peak sound pressure level, the SPL/Leq and the 90 %-energy pulse duration for one recorded strike; cumulative_sel sums a sequence of differing per-strike SELs.

These are the metrics that regulation is written in. ISO 18406 exists because offshore wind-farm, oil-and-gas and bridge foundations are consented under environmental impact frameworks that require the radiated sound to be monitored, and its scope is drawn accordingly: percussive driving in 4 to 100 m of water, with vibro- and sheet-piling excluded (Clause 1). The minimum campaign is one measurement position as close as possible to 750 m from the pile, recording the entire driving sequence and reporting the actual range; the standard is explicit that 750 m is chosen for comparability with the large body of existing measurements, not because any regulator’s limit lives there, and that a single-range level has no predictive value for other sites (Clause 6.1.2, Notes 1–2). Impact criteria for marine fauna are phrased in exactly the quantities of this section, a cap on the single-strike or cumulative SEL and on the peak level at a stated range, which is why pile_strike_metrics reports them together and cumulative_sel follows the strike-by-strike energy sum of Formulae 8–9.

Covered. ISO 18405:2017 for the reference levels re 1 µPa and 1 µPa²·s: sound_pressure_level, sound_exposure_level and peak_sound_pressure_level. ISO 17208-1:2016 and ISO 17208-2:2019 for the ship radiated noise level and the equivalent monopole source level: radiated_noise_level and monopole_source_level, with the Lloyd’s-mirror surface correction (Formula 3) and the 0.7·draught source depth (Formula 1), the three-hydrophone geometry (hydrophone_depths) and the tabulated source-level uncertainty (source_level_uncertainty). ISO 18406:2017 for the pile-driving metrics of section 3: the single-strike SEL (Formulae 3-4), the mean-square SPL (Formula 7) and the cumulative SEL (Formulae 8-9), which single_strike_sel, cumulative_sel, cumulative_sel_identical and pile_strike_metrics compute.

Not covered. ISO 17208-1’s measurement discipline itself is not implemented: the four-run, three-hydrophone power and arithmetic averaging (Formulae 8-9), the CPA and water-depth geometry checks, the ±30° data-window scoring and the ISO 3744-style background-noise correction described in section 2 above are left to the reader; the library only supplies the closed-form radiated_noise_level and monopole_source_level formulae. ISO 18406 itself excludes vibro- and sheet-piling from its scope (Clause 1), so continuous pile-driving noise has no closed form here or elsewhere in phonometry.

Created and maintained by· GitHub· PyPI· All projects