Package: lifewatch-pypam
PyPAMpypamis a python package to analyze underwater sound.
It is made to make easier the processing of underwater data stored in audio files.
The main classes are AcousticFile, AcousticSurvey and DataSet. The first one is a representation of a audio file together
with all the metadata needed to process the data (such as hydrophone used). The second one is the representation of a
folder where all the files are stored for one deployment. Here we consider a deployment as a measurement interval
corresponding to the time when a hydrophone was in the water, without changing any recording parameters.
The Dataset is a combination of different AcousticSurveys in one dataset. This is to be used if the user has made
several deployments and wants to process them with the same parameters.Thenpypamallows to go through all the audio files from the deployments only with one line of code and store the output
in netCDF files, including metadata. The package can be used to analyze a single file, a folder with files or a
group of different deployments.pypamdeals with the calibration directly, so the output obtained is already in uPa or db!All the documentation can be found onreadthedocsWarningThis package is under active development, use with caution.InstallationUsing pip distributionpipinstalllifewatch-pypamUsing git cloneClone the packagegitclonehttps://github.com/lifewatch/pypam.gitUse poetry to install the project dependenciespoetryinstallBuild the projectpoetrybuildNews from version 0.3.0In version 0.2.0 we removed the detectors, because there are better maintained packages for these purposes.
In version 0.2.1 we added the frequency-dependent calibration!
In version 0.3.0 we changed quite some plot function to make them more flexible with other data products.
We also changed the mean functions to median, so the output in db is the same than the output in uPaQuickstartThe package is imported aspypam. The audio files must comply with the needs ofpyhydrophoneto be able to read the datetime information.The user can choose a window chunk size (parameter binsize, in seconds), so all the features / methods
are applied to that window. If set to None, the operations are performed along an entire file.The available methods and features are:Acoustic Indices:ACIBISHTHNDSIAEIADIZero crossing (average)BN peakstime-domain features:rmsdynamic_rangeselpeakrms_envelopespectrum_slopecorrelation coefficientfrequency-domainspectrogram (also octave bands spectrogram)spectrum (density or power)1/n-octave bandshybrid millidecade bandslong-term spectrogramtime and frequencySPDFuthermore, there are several plotting functionsSPDspectrum with standard deviationboxplots of time series aggregated datadaily patternsLTSAand some signal-based operations:Signal operationsNoise reductionDownsampleBand filterEnvelopeDC noise removalExamples and documentationSee the documentation inreadthedocsfor a complete reference manual and
example gallery.Under developmentPlanned:Add function to generate files per included folder (too big deployments)Add options for the user to choose what to do when the blocksize is not multiple of the frames,
and to deal with time keepingAdd a logger that logs the code that was run and the warnings together with the outputAdd deep learning features (vggish and compatibility with koogu and AVES)Add parallel processing optionsAdd support for frequency calibrationSupport for reading detectionsCite