Skip to content

underwater.bioacoustics.audiograms

Marine-mammal hearing thresholds (group audiograms and the orca audiogram).

Two independent published descriptions of how well a marine mammal hears:

  • group_audiogram — the group audiogram of Southall et al. (2019), a four-parameter band-pass fit (their Equation 1, after Finneran 2016)

    with the group parameters of their Table 2 (absolute thresholds) and Table 3 (normalised to 0 dB at best sensitivity).

  • orca_audiogram — the killer-whale (Orcinus orca) audiogram of Wensveen & Van Roij (2007) as printed in Ainslie, Principles of Sonar Performance Modelling (Springer 2010), Equation (11.159), a three-branch power law over 0.5 to 80 kHz fitted to the measurements of Hall & Johnson (1972) and Szymanski et al. (1999).

Thresholds are sound pressure levels in dB re 1 µPa under water and dB re 20 µPa in air (the two in-air carnivore groups "PCA" and "OCA").

Group codes follow Southall et al.: HF and VHF cetaceans, SI sirenians, PCW/OCW phocid and otariid carnivores in water and PCA/OCA the same in air. Beware that NMFS (2018) calls the Southall HF group MF and the Southall VHF group HF; see phonometry.underwater.bioacoustics.weighting.

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

Constant (tuple).

AUDIOGRAM_GROUPS = ('HF', 'VHF', 'SI', 'PCW', 'OCW', 'PCA', 'OCA')
audiogram_parameters(
group: str,
*,
normalized: bool = False,
) -> AudiogramParameters

Fit parameters of a published group audiogram.

Parameters

NameDescription
groupHearing-group code, one of AUDIOGRAM_GROUPS (case-insensitive).
normalizedReturn the Table 3 normalised fit instead of the Table 2 absolute one.

Returns: The AudiogramParameters for that group.

Raises

ExceptionWhen
ValueErrorIf the group has no published audiogram.
AudiogramParameters(
group: str,
t0: float,
f1_khz: float,
f2_khz: float,
a: float,
b: float,
r_squared: float,
in_air: bool,
)

Group-audiogram fit parameters (Southall et al. 2019, Tables 2 and 3).

Attributes

NameDescription
groupHearing-group code.
t0Vertical position T0, in dB.
f1_khzLow-frequency inflection F1, in kHz.
f2_khzHigh-frequency inflection F2, in kHz.
aLow-frequency slope parameter A, in dB/decade.
bHigh-frequency exponent B.
r_squaredGoodness of fit reported with the row.
in_airWhether the group’s reference pressure is 20 µPa (in air).
AudiogramResult(
frequencies: NDArray[np.float64],
threshold: NDArray[np.float64],
group: str,
source: str,
in_air: bool,
best_frequency: float,
best_threshold: float,
)

Hearing threshold versus frequency.

Attributes

NameDescription
frequenciesFrequencies, in Hz.
thresholdHearing threshold at each frequency, in dB re 1 µPa (under water) or dB re 20 µPa (in air).
groupHearing-group code, or "orca" for the species audiogram.
sourceShort citation of the fit used.
in_airWhether the reference pressure is 20 µPa.
best_frequencyFrequency of the minimum threshold on the evaluated grid, in Hz.
best_thresholdThe minimum threshold on the evaluated grid, in dB.
AudiogramResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot the hearing threshold versus frequency.

Constant (dict).

BEST_HEARING_FREQUENCY_KHZ = {'HF': (55.0, 58.0), 'VHF': (105.0, 105.0), 'SI': (16.0, 12.0), 'PCW': (8.6, 13.0), 'OCW': (12.0, 10.0), 'PCA': (2.3, 2.3), 'OCA': (10.0, 10.0)}
group_audiogram(
frequency_hz: NDArray[np.float64] | list[float] | float,
group: str,
*,
normalized: bool = False,
) -> AudiogramResult

Marine-mammal group audiogram (Southall et al. 2019, Equation 1).

, with f in kilohertz and the group parameters of Table 2 (normalized=False) or Table 3 (normalized=True).

Parameters

NameDescription
frequency_hzFrequency or frequencies, in Hz (strictly positive).
groupHearing-group code, one of AUDIOGRAM_GROUPS.
normalizedUse the normalised fit (0 dB at best sensitivity).

Returns: An AudiogramResult.

Raises

ExceptionWhen
ValueErrorIf the group is unknown or a frequency is invalid.
orca_audiogram(
frequency_hz: NDArray[np.float64] | list[float] | float,
) -> AudiogramResult

Killer-whale hearing threshold (Ainslie 2010, Equation 11.159).

A three-branch fit in , valid over 0.5 to 80 kHz:

  • for ,
  • for ,
  • for .

The published check points are the minimum, 39.0 dB re 1 µPa at 22.6 kHz (second branch), and 51.2 dB re 1 µPa at 50 kHz — the latter needs the third branch; evaluating the second one there returns 50.5 dB instead.

Parameters

NameDescription
frequency_hzFrequency or frequencies, in Hz, within ORCA_AUDIOGRAM_RANGE_KHZ scaled to hertz.

Returns: An AudiogramResult in dB re 1 µPa.

Raises

ExceptionWhen
ValueErrorIf a frequency falls outside the fitted range.

Constant (tuple).

ORCA_AUDIOGRAM_RANGE_KHZ = (0.5, 80.0)