HYD Functions

Background

The Ocean Observatories Initiative deploys two classes of passive acoustic hydrophone instruments as part of the cabled portion of the Coastal Endurance Array and elsewhere in the Regional Cabled Array (RCA) to record underwater sound pressure waves in the frequency ranges relevant to seismic, biological, and anthropogenic sources.

Class Hardware Platform Designator meaning
HYDBB Ocean Sonics icListen HF Moored (fixed depth) Hydrophone, Broadband
HYDLF Low-frequency hydrophone Moored (fixed depth) Hydrophone, Low Frequency

hyd_functions.py converts raw L0 data from both instrument classes into their respective L1 data products: Broadband Acoustic Pressure Waves (HYDAPBB_L1) and Low Frequency Acoustic Pressure Waves (HYDAPLF_L1). All calibration coefficients are from factory calibration sheets supplied with individual instruments.


HYDAPBB_L1 — Broadband Acoustic Pressure Waves

The HYDBB instrument digitizes the hydrophone signal into a 24-bit WAV data stream at up to 200 kHz. Data are streamed over a 10/100BaseT Ethernet connection using the icListen RIFF/WAV format with a full-scale range of \(\pm 3\ \text{V}\).

The L0 input (wav) arrives as a normalized floating-point value in the range \([-1, 1]\) as encoded in the WAV format. The L1 product is computed in two steps.

Step 1 — Recover voltage from WAV scaling:

\[V(t) = \text{wav}(t) \times 3\]

which maps the normalized WAV values back to the instrument's \(\pm 3\ \text{V}\) full-scale range.

Step 2 — Remove external gain:

The instrument header encodes the external gain \(G\) in dBV. The gain is converted from dBV to a linear scale factor and divided out:

\[G_\text{linear} = 10^{G/20}\]
\[S(t) = \frac{V(t)}{G_\text{linear}}\]

where \(S(t)\) is the gain-compensated time-series voltage (HYDAPBB_L1) in Volts.

The OCVR (Open Circuit Voltage Response, or Sensitivity) of the icListen HF is a function of frequency and cannot be applied to a broadband time-series without frequency-domain filtering. Therefore, the L1 product is gain-compensated voltage rather than calibrated pressure. Signal levels are accurate to within 1 dB re \(1\ \mu\text{Pa/V}\).

HYDBB instruments are deployed on the RSN system at Hydrate Ridge (PN1A, PN1B) and Axial (PN3A, PN3B) Hybrid Mooring subsites, and on the Endurance Array Hybrid Mooring subsites PN1C and PN1D.


HYDAPLF_L1 — Low Frequency Acoustic Pressure Waves

The HYDLF hydrophone is attached electrically and physically to the co-located OBSBB or OBSBK broadband seismometer. Its analog output is digitized by the Guralp DM24 digitizer at up to 1000 samples per second at 24-bit depth. The digitized signal is transmitted via SEEDlink protocol as SEED blockettes, routed through a US Navy data diversion switch, and made available to OOI via an Antelope Orbserver export.

The L0 input is raw digital counts. The L1 product converts counts to Volts using the DM24 bit weight (gain), which has units of \(\mu\text{V/count}\):

\[S(t) = x(t) \times G \times 10^{-6}\]

where \(x(t)\) is the raw count time-series (HYDAPLF_L0), \(G\) is the Guralp DM24 fixed bit weight in \(\mu\text{V/count}\) (default 3.2), and the \(10^{-6}\) factor converts \(\mu\text{V}\) to \(\text{V}\). \(S(t)\) is the L1 time-series (HYDAPLF_L1) in Volts.

As with HYDAPBB, the frequency-dependent OCVR of the HYDLF hydrophone cannot be applied to a broadband time-series without prior frequency-domain filtering, so the L1 product is gain-compensated voltage. Resolution is better than 0.1 dB re \(1\ \mu\text{Pa}\); accuracy is \(\pm 1\ \text{dB}\) re \(1\ \mu\text{Pa}\).

The acoustic signal is digitized at the same rate and with the same time-stamp as the co-located seismic channels, facilitating separation of the waterborne pressure signal from the solid-earth seismic signal.

HYDLF instruments are deployed on the RSN system at Hydrate Ridge (PN1A, PN1B) and Axial (PN3A, PN3B) subsites.


Core functions

hyd_bb_acoustic_pwaves(wav, gain)

Compute the L1 Broadband Acoustic Pressure Waves product (HYDAPBB) from the Ocean Sonics icListen HF Broadband Hydrophone (HYDBB).

Parameters:
  • wav (array_like) –

    Raw L0 time-series from the HYDBB instrument encoded as normalized WAV floating-point values in the range [-1, 1] (HYDAPBB_L0). Shape (n_records, n_samples) or (n_samples,).

  • gain (float or array_like) –

    External gain applied by the instrument signal conditioning chain [dBV]. Scalar or shape (n_records,).

Returns:
  • tsv( ndarray ) –

    L1 time-series voltage compensated for external gain (HYDAPBB_L1) [V]. Shape (n_records, n_samples).

Notes

The WAV format encodes samples as normalized values in [-1, 1]. Multiplying by 3 recovers the physical voltage using the icListen HF full-scale range of +/-3 V. The gain in dBV is converted to a linear factor via 10^(gain/20) and divided out.

The frequency-dependent OCVR (Open Circuit Voltage Response) of the hydrophone cannot be applied to a broadband time-series without prior frequency-domain filtering. HYDAPBB_L1 is therefore gain-compensated voltage, not calibrated pressure.

Source code in ion_functions/data/hyd_functions.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
def hyd_bb_acoustic_pwaves(wav, gain):
    """
    Compute the L1 Broadband Acoustic Pressure Waves product (HYDAPBB)
    from the Ocean Sonics icListen HF Broadband Hydrophone (HYDBB).

    Parameters
    ----------
    wav : array_like
        Raw L0 time-series from the HYDBB instrument encoded as
        normalized WAV floating-point values in the range [-1, 1]
        (HYDAPBB_L0). Shape (n_records, n_samples) or (n_samples,).
    gain : float or array_like
        External gain applied by the instrument signal conditioning
        chain [dBV]. Scalar or shape (n_records,).

    Returns
    -------
    tsv : ndarray
        L1 time-series voltage compensated for external gain
        (HYDAPBB_L1) [V]. Shape (n_records, n_samples).

    Notes
    -----
    The WAV format encodes samples as normalized values in [-1, 1].
    Multiplying by 3 recovers the physical voltage using the icListen
    HF full-scale range of +/-3 V. The gain in dBV is converted to a
    linear factor via 10^(gain/20) and divided out.

    The frequency-dependent OCVR (Open Circuit Voltage Response) of
    the hydrophone cannot be applied to a broadband time-series without
    prior frequency-domain filtering. HYDAPBB_L1 is therefore
    gain-compensated voltage, not calibrated pressure.
    """
    # shape inputs to correct dimensions
    wav = np.atleast_2d(wav)
    n_rec = wav.shape[0]

    if np.isscalar(gain) is True:
        gain = np.tile(gain, (n_rec, 1))
    else:
        gain = np.reshape(gain, (n_rec, 1))

    # Convert the gain from dB to a linear value
    gain = 10**(gain/20.)

    # convert the broadband acoustic pressure wave data to Volts
    volts = wav * 3.

    # and correct for the gain
    tsv = volts / gain
    return tsv

Additional Notes

The WAV format encodes audio samples as normalized floating-point values in the range \([-1, 1]\). The multiply-by-3 step in the code recovers the physical voltage by scaling to the icListen HF full-scale range of \(\pm 3\ \text{V}\). The external gain in dBV is taken from the instrument event header; if no external gain is applied the gain value is 0 dB (linear factor of 1).

History

Date Author Change
2014-05-16 Christopher Wingard Initial code
2023-08-15 Samuel Dahlberg Removed use of numexpr; renamed local variables
2025-04-17 Christopher Wingard Converted to NumPy docstring format; updated documentation

hyd_lf_acoustic_pwaves(raw, gain=3.2)

Compute the L1 Low Frequency Acoustic Pressure Waves product (HYDAPLF) from the Low Frequency Hydrophone (HYDLF).

Parameters:
  • raw (array_like) –

    Raw L0 time-series digitized by the Guralp DM24 digitizer [counts] (HYDAPLF_L0).

  • gain (float, default: 3.2 ) –

    Guralp DM24 fixed bit weight [uV/count]. Default is 3.2.

Returns:
  • hydaplf( ndarray ) –

    L1 time-series of low frequency acoustic pressure waves (HYDAPLF_L1) [V].

Notes

The bit weight converts raw counts to microvolts; the result is scaled by 1e-6 to return Volts. The frequency-dependent OCVR of the hydrophone cannot be applied to a broadband time-series without prior frequency-domain filtering. HYDAPLF_L1 is therefore gain-compensated voltage, not calibrated pressure.

Source code in ion_functions/data/hyd_functions.py
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
def hyd_lf_acoustic_pwaves(raw, gain=3.2):
    """
    Compute the L1 Low Frequency Acoustic Pressure Waves product
    (HYDAPLF) from the Low Frequency Hydrophone (HYDLF).

    Parameters
    ----------
    raw : array_like
        Raw L0 time-series digitized by the Guralp DM24 digitizer
        [counts] (HYDAPLF_L0).
    gain : float, optional
        Guralp DM24 fixed bit weight [uV/count]. Default is 3.2.

    Returns
    -------
    hydaplf : ndarray
        L1 time-series of low frequency acoustic pressure waves
        (HYDAPLF_L1) [V].

    Notes
    -----
    The bit weight converts raw counts to microvolts; the result is
    scaled by 1e-6 to return Volts. The frequency-dependent OCVR of
    the hydrophone cannot be applied to a broadband time-series without
    prior frequency-domain filtering. HYDAPLF_L1 is therefore
    gain-compensated voltage, not calibrated pressure.
    """
    # apply the gain correction to convert the signal from counts to V
    gain = gain * 1.0e-6
    hydaplf = raw * gain
    return hydaplf

History

Date Author Change
2014-07-09 Christopher Wingard Initial code
2023-08-15 Samuel Dahlberg Removed use of numexpr
2025-04-17 Christopher Wingard Converted to NumPy docstring format; updated documentation

References

Urick, R. J. (1983). Principles of Underwater Sound, 3rd ed., pp. 44-53. McGraw-Hill, New York.

OOI (2013). Data Product Specification for Broadband Acoustic Pressure Waves. Document Control Number 1341-00820. (Not released.)

OOI (2013). Data Product Specification for Low Frequency Acoustic Pressure Waves. Document Control Number 1341-00821.