hydrac.instruments.acoustique¶
Acoustic instruments (hydrac.instruments.acoustique)¶
-
class
hydrac.instruments.acoustique.Acoustic[source]¶ Bases:
hydrac.instruments.instruments.InstrumentAcoustic class.
Base class :
hydrac.instruments.instruments.InstrumentThis class is meant to be subclassed, not instantiated directly.
The Acoustic class handles hydroacoustic devices data contained in
paramand contains methods dedicated to their processing such as water absorption correction and spherical spreading correction along an acoustic profile (spreading_and_att_correction()) given the carrier frequency of the device, the physical parameters of the water (Temperature, Salinity…).The
paramstructure is common to all hydroacoustic instruments. Eachparamcan contain several sets of profiles (ex.param.P0,param.P1…), the structure of which is described in the table below.Description of the paramcontainer¶Parameter Name Type Size Description BurstTime float 1 Time of first ping PingRate int 1 Ping rate in Hz NumPingsTot int 1 Total number of pings NumChannels int 1 Number of active frequency channels = F NumProfilesSamples float F Effective number of profiles = Ns NumAverage float F Number of pings averaged to create a profile SampleRate float F Profile rate in Hz BinLengthMM float F Cellsize in mm StartBin float F Range of the first cell NumBins float F Number of cells along a profile TransducerRadius float F Radius of each active transducer = N TransducerBeamWidth float F BeamWidth of each active transducer TransducerKt float F Calibration constant of each transducer Frequency float F Carrier frequency of each transducer in Hz StartBin float F Range of the first cell PulseLength float F Pulse length in s RxGain/TxGain float F Gain at Emission/Reception in dB RawIntensity float NxNsxF Raw HAC data BinRange float NxF Ranges of each cell per channel time float Ns Time of each sample in s TransducerAngle float F Gain at Emission/Reception in dB depth float Ns Depth of the transducers FileName str (-) Filename used to generate the data -
preproc_acoustic_data(self, w_obj=None, phy_instr=None)[source]¶ The most useful method for user is
preproc_acoustic_data(). From this method, several kinds of processing are possible, the goal of which is to calculate the calibrated hydroacoustic intensity parameterIntensity:1 - If the HAC data were collected along with environmental data, it is possible to input these data, stored as an object K from
hydrac.instruments.physicalparam.PhysicalParam:# Intanciate HAC object >>> A=hydrac.instruments.aquascat.Aquascat('Campaign_1') # Intanciate environnemental data object >>> K=hydrac.instruments.sbe.SBE('Campaign_1') >>> A.preproc_acoustic_data(phy_instr=K)
2 - If no environemental data were acquired along with the HAS data, the user is prompted to at least refer to the water temperature from which waterabsorption can be computed from
hydrac.model.water.Water:# Intanciate HAC object >>> A=hydrac.instruments.aquascat.Aquascat('Campaign_1') >>> A.preproc_acoustic_data() # The user is prompted for water temperature No water parameters data... Please enter a mean temerature value to estimate sound attenuation : 14
The calibrated intensity is calculated using the raw intensity measured by the instrument (stored in the variable
RawIntensity), corrected from water absorption, spherical spreading, nearfield effects. A calibration coefficient taking account of the transducers sensitivity and directivity patterns is also applied. Finally, the calibrated (or absolute) intensity is returned normalized by the sample volume and stored in the variableIntensity, as a volume backscattering coefficient, or sv in m2/m3 (see McLennan et al. 2002, https://doi.org/10.1006/jmsc.2001.1158).\[s_v = \frac{3}{\pi} \frac{V_{rms}^2 \Psi^2r^2}{16K_t^2}e^{4r(\alpha_{w})}\]where :
- \(V_{rms}\) is the root mean square voltage measured by the instrument
- \(\Psi\) is the nearfield correction factor
- \(K_t\) is the calibration coefficient
- \(\alpha_{w}\) is the attenuation due to water
This method also attaches a deployment strategy (prompted from the user) to assert the measurement geometry (from the surface, from the bottom, profiles in the water column…) from the class
hydrac.instruments.mod_deployment.ModeDeployment:>>> A.preproc_acoustic_data() # The user is prompted for water temperature No water parameters data... Please enter a mean temerature value to estimate sound attenuation : 14 # The user is prompted for a deployment strategy Deployment Mod : Mooring # The user is prompted for potential temporal averaging of the data Select a temporal window for averaging of moored acoustic parameter instrument (0 for no averaging): 1 Select a vertical bin size for averaging of casted physical parameter instrument (0 for no averaging): 0.5 >>> A.mode_depl 'Mooring'
Parameters: - w_obj=None : object
Water object from
hydrac.model.water.Water- phy_instr=None : object
Physical Instrument object from
hydrac.instruments.physicalparam
-
spreading_and_att_correction(self, i1, aux=None)[source]¶ Corrects RawIntensity Samples from water absorption and spherical spreading.
1 - Attenuation due to water : several models exist to predict the amount of energy lost by the acoustic wave as it travels into water; A most famous example is the model of François & Garrison (1982), (https://doi.org/10.1121/1.388170).
2 - Spherical spreading : the latter is a function of the range and follows a decrease proportionnal to \(\frac{1}{r^2}\) for spherical waves.
Parameters: - i1=None : int
Profile set number in
param- aux=None : bool
if physical parameters were as input of
hydrac.instruments.acoustique.Acoustic.preproc_acoustic_data(), water absorption has been computed for each cell in the HAC profile for each frequency channel hence a different implementation.
Returns: - Intensity : numpy.array
The corrected Intensity profiles for each sets of profiles
-
hac_data_decimation(self, autodetect='off', st=None, ed=None)[source]¶ This method corrects for potential corrupt data, for example when attenuation is such that no more useful signal can be extracted from the data, or when data in the nearfield have not been corrrected. This noise detection is done using
autodetect_noise()Also, given the application, instruments can be deployed horizontally in the water column. Supposing weak attenuation and homogeneous medium, one can average the HAC profiles at each depth sampled by the instrument to increase the Signal to Noise Ratio (SNR).
Corresponding modifications are directly applied to the
Intensityvariable of the profile set P contained inparam.Parameters: - autodetect : str, {‘on’, ‘off’}
automatic detection of noise floor reached by the instrument and removal of noise data.
- st, ed : int, int
start and end cell number to be considered for either averaging or noise/nearfield removal.
-
Classes
Acoustic() |
Acoustic class. |