PAMGUARD contains of an ever growing number of plug-in modules, each of which performs
some sort of data handling task. Individual modules may do anything
from acquiring sound data, to managing a database or searching for a
particular sound type. Generally every module will acquire data either
from another module, or through some external interface (such as a sound
card, GPS or depth sensor readout). The output of a module may be a
display, more data or both. A single module may have multiple output
data streams. For instance, the sound acquisition module primarily
outputs raw audio data to other PAMGUARD modules, but also outputs
data providing a record of when sound acquisition was started and
stopped which can be stored in the database.
PAMGUARD currently contains nearly 30 plug-in modules which can be selected
and configured by the user (See the table below). It is generally possible
to create multiple instances of a given module type. For instance, the
operator may wish to incorporate two click detectors, each optimised for
a different species, or have two sound acquisition modules, one acquiring
low frequency data and one high frequency data. For certain module types
(e.g. GPS acquisition), the user may be restricted to having a single
instance.
| Module | Data Input | Output | Instances |
Function | Status |
| Maps and Mapping | | | | | |
NMEA data collection | Serial port or server | Strings of NMEA data | Any |
Acquire NMEA data for use by other modules. | Core |
GPS Processing | NMEA data | GPS locations | 0-1 | Identified GPS data and unpacks NMEA strings | Core |
AIS Processing | NMEA data | Ship locations | 0-1 | Unpacks AIS data | Core |
Airgun display | GPS or AIS Data | Graphic overlay for map | Any |
Displays the locations of airguns and mitigation zones referenced to either the PAMGUARD vessel or some other vessel broadcasting Its position over AIS. | Core |
Map | GPS and all detectors | Map graphics panel map comments | Any | Displays vessel location and data from other modules. | Core |
| Utilities | | | | | |
ODBC database | Multiple modules | Database | 0-1 | Stores data from multiple modules in a Microsoft Access or MySQL database | Core |
User Input | User comments | | 0-1 | Time stamps and stores any comment entered by the user | Core |
Depth Readout | Analogue depth sensors | Depth data | 0-1 | Depth data are displayed on screen, used in real time to update hydrophone locations and sent to the database. | Core |
Aural Listening Form | Things heard by the operator | | Any | Time stamps and stores lists of things
heard by an operator monitoring hydrophones aurally. | Core |
| Displays | | | | | |
User Display Panel | | Displays | Any | Provides a container for spectrogram and radar like displays. Data from detectors can be overlaid on top of these displays. | Core |
| Sound Processing | | | | | |
Sound Acquisition | Sound cards, audio files and other acquisition devices. | Packed chunks of raw audio data | Any | Controls a data acquisition device and passes it's data on to other modules | Core |
Sound Output | Audio data | Output to the system sound card | Any | Outputs audio data through a sound card so it can be listened to on headphones | Core |
FFT (Spectrogram) Engine | Audio data | FFT Data | Any | Computes spectrograms (Fourier transforms of multiple overlapping chunks of audio data). | Core |
IIRF Filters | Audio data | Audio data | Any | Filters audio data using either Butterworth of Chebyshev filter. | Core |
Decimator | Audio data | Audio data | Any | Filters and reduces the sample data of audio data | Core |
Sound Recorder | Audio data | Wav of Aif files | Any | Writes audio data to file. Recording may be initiated by the operator or triggered by a detector or make regular recordings according to some set cycle. | Core |
Signal Amplifier | Audio data | Audio data | Any | Amplifies audio data by some scaling factor (can invert data if required) | Core |
Patch Panel | Audio data | Audio data | Any | Mixes data between multiple channels, changes channel ordering, etc. | Beta |
Spectrogram smoothing kernel | FFT Data | FFT Data | Any | Smoothes a spectrogram by convolving it with a Gaussian smoothing kernel. | Core |
Seismic Veto | FFT and raw data | FFT and raw data | Any | Detects very loud sounds using an in band energy detector and replaces these with randomly generated coloured noise based on recent measurements of the local noise field. | Core |
| Detectors | | | | | |
Click Detector | Audio Data | Detected Clicks | Any | Searches for transient sounds, attempts to assign species, measure bearings to source, group into click trains, etc. | Core |
Whistle Detector | FFT Data | Detected Whistles | Any | Searches for tonal noises. Measures bearings and locations of source. | Core |
Whistle and Moan Detector | FFT Data | Whistle and Moan Contours | Any | Searches for tonal noises. Measures bearings and locations of source. Replaces older Whistle Detector | Beta |
Whistle Classifier | Detected Whistles | Species probabilities | Any | Analyses multiple whistle contours and uses a discriminant analysis function to assign to species. | Beta |
Ishmael Energy Sum | FFT Data | Detected sounds | Any | Detects sounds with energy in a specific frequency band | Core |
Ishmael Spectrogram Correlation | FFT Data | Detected sounds | Any | Detects sounds matching a user defined 'shape' on a spectrogram | Core |
Ishmael Matched Filtering | Audio Data | Detected Sounds | Any | Detects sounds using a user defined matched filter. | Core |
Ishmael Locator | FFT Data / User input | Located sounds | Any | Locates sounds extracted either from areas marked out on a spectrogram display or using output from a detector | Core |
Likelihood Detector | Audio Data | Detected Sounds | Any | An implementation of a likelihood ratio test. Suitable for detecting both short duration Odontocete clicks
(Sperm, Beaked, etc.) and moderate duration Mysticete calls (Humpback, Bowhead, etc.) | Core |
3D Locator | Detected Clicks | Located sounds | Any | Locates sounds detected by the click detector using surface echo's to obtain slant angles and generate a 3-D location. | Core |
| Visual Methods | | | | | |
Angle Measurement | Fluxgate World shaft encoder | Shaft angles | Any | Reads angles from a Fluxgate World shaft angle encode. (Can be used to read angle of binocular stands). | Beta |
Video Range | Captured video images | Ranges to Sightings | Any | Calculates ranges based on angles measured from video, observer height and earth radius. | Core |
Fixed Landmarks | Manual input | Fixed points on map | Any | Place object symbols on the PAMGUARD map. | Beta |
Core = Included in Core and Beta Releases; Beta = Included in Beta release; Dev' = Module under development