Nearly ready for 2.02.14 release
Added CPOD help.
@ -11,9 +11,9 @@ org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
|
|||||||
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
|
org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=18
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=18
|
org.eclipse.jdt.core.compiler.compliance=17
|
||||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
@ -23,4 +23,4 @@ org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
|||||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||||
org.eclipse.jdt.core.compiler.release=enabled
|
org.eclipse.jdt.core.compiler.release=enabled
|
||||||
org.eclipse.jdt.core.compiler.source=18
|
org.eclipse.jdt.core.compiler.source=17
|
||||||
|
2
pom.xml
@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.pamguard</groupId>
|
<groupId>org.pamguard</groupId>
|
||||||
<artifactId>Pamguard</artifactId>
|
<artifactId>Pamguard</artifactId>
|
||||||
<version>2.02.13c</version>
|
<version>2.02.13d</version>
|
||||||
<name>Pamguard</name>
|
<name>Pamguard</name>
|
||||||
<description>Pamguard using Maven to control dependencies</description>
|
<description>Pamguard using Maven to control dependencies</description>
|
||||||
<url>www.pamguard.org</url>
|
<url>www.pamguard.org</url>
|
||||||
|
@ -31,12 +31,12 @@ public class PamguardVersionInfo {
|
|||||||
* Version number, major version.minorversion.sub-release.
|
* Version number, major version.minorversion.sub-release.
|
||||||
* Note: can't go higher than sub-release 'f'
|
* Note: can't go higher than sub-release 'f'
|
||||||
*/
|
*/
|
||||||
static public final String version = "2.02.13c";
|
static public final String version = "2.02.13d";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Release date
|
* Release date
|
||||||
*/
|
*/
|
||||||
static public final String date = "September 2024";
|
static public final String date = "October 2024";
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * Release type - Beta or Core
|
// * Release type - Beta or Core
|
||||||
|
@ -525,6 +525,7 @@ final public class PamModel implements PamSettings {
|
|||||||
mi.setModulesMenuGroup(sensorsGroup);
|
mi.setModulesMenuGroup(sensorsGroup);
|
||||||
mi.setToolTipText("Imports CPOD data");
|
mi.setToolTipText("Imports CPOD data");
|
||||||
//mi.setHidden(SMRUEnable.isEnable() == false);
|
//mi.setHidden(SMRUEnable.isEnable() == false);
|
||||||
|
mi.setHidden(!isViewer);
|
||||||
mi.addGUICompatabilityFlag(PamGUIManager.FX); //has FX enabled GUI.
|
mi.addGUICompatabilityFlag(PamGUIManager.FX); //has FX enabled GUI.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
33
src/bearinglocaliser/tethys/BearingLocalisationCreator.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package bearinglocaliser.tethys;
|
||||||
|
|
||||||
|
import PamguardMVC.PamDataBlock;
|
||||||
|
import PamguardMVC.PamDataUnit;
|
||||||
|
import nilus.LocalizationType;
|
||||||
|
import tethys.localization.LocalizationBuilder;
|
||||||
|
import tethys.localization.LocalizationCreator;
|
||||||
|
|
||||||
|
public class BearingLocalisationCreator implements LocalizationCreator {
|
||||||
|
|
||||||
|
public BearingLocalisationCreator() {
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean sortLocalisationCoordinates(LocalizationBuilder localizationBuilder, PamDataBlock dataBlock) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LocalizationType createLocalization(LocalizationBuilder localizationBuilder, PamDataUnit dataUnit) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkDocument(LocalizationBuilder localizationBuilder) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,2 +1,2 @@
|
|||||||
JavaSearch 1.0
|
JavaSearch 1.0
|
||||||
TMAP bs=2048 rt=1 fl=-1 id1=6961 id2=1
|
TMAP bs=2048 rt=1 fl=-1 id1=6999 id2=1
|
||||||
|
@ -654,6 +654,8 @@
|
|||||||
|
|
||||||
<mapID target="utilities.listening.docs.Listening_Overview" url="utilities/listening/docs/Listening_Overview.html"/>
|
<mapID target="utilities.listening.docs.Listening_Overview" url="utilities/listening/docs/Listening_Overview.html"/>
|
||||||
|
|
||||||
|
<mapID target="sensors.cpod.docs.cpod" url="sensors/cpod/docs/cpod.html"/>
|
||||||
|
|
||||||
<mapID target="utilities.SIDEModule.docs.SIDE_Overview_tests" url="utilities/SIDEModule/docs/SIDE_Overview.html#tests"/>
|
<mapID target="utilities.SIDEModule.docs.SIDE_Overview_tests" url="utilities/SIDEModule/docs/SIDE_Overview.html#tests"/>
|
||||||
|
|
||||||
<mapID target="overview.PamMasterHelp.docs.modules_utilities" url="overview/PamMasterHelp/docs/modules.html#utilities"/>
|
<mapID target="overview.PamMasterHelp.docs.modules_utilities" url="overview/PamMasterHelp/docs/modules.html#utilities"/>
|
||||||
|
@ -241,6 +241,10 @@
|
|||||||
<tocitem text="Configuration " target="sensors.arrayAccelerometer.docs.accelerometer_configuration" image="topic"/>
|
<tocitem text="Configuration " target="sensors.arrayAccelerometer.docs.accelerometer_configuration" image="topic"/>
|
||||||
|
|
||||||
</tocitem>
|
</tocitem>
|
||||||
|
<tocitem text="CPOD ">
|
||||||
|
<tocitem text="CPOD Module " target="sensors.cpod.docs.cpod" image="topic"/>
|
||||||
|
|
||||||
|
</tocitem>
|
||||||
</tocitem>
|
</tocitem>
|
||||||
<tocitem text="Displays ">
|
<tocitem text="Displays ">
|
||||||
<tocitem text="Data Selection ">
|
<tocitem text="Data Selection ">
|
||||||
|
175
src/help/sensors/cpod/docs/cpod.html
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<LINK href="../../../pamHelpStylesheet.css" type="text/css"
|
||||||
|
rel="STYLESHEET">
|
||||||
|
<title>Array Accelerometer</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1 id="cpod-module-help">CPOD module help</h1>
|
||||||
|
<h2 id="introduction">Introduction</h2>
|
||||||
|
<p>
|
||||||
|
CPODs and FPODs are click data loggers widely used in research and
|
||||||
|
industry developed by <a href="https://www.chelonia.co.uk">Chelonia
|
||||||
|
Ltd</a>. PAMGuard's CPOD module allows users to import CPOD <em>and</em>
|
||||||
|
FPOD data into PAMGuard so it can be viewed using PAMGuard's
|
||||||
|
visualisation tools. A common use case for this module is to display
|
||||||
|
both CPOD/FPOD data and a lower frequency recording device together -
|
||||||
|
for example a typical PAM setup is to use a CPOD to record high
|
||||||
|
frequency echolocation clicks then a lower frequency recorder (e.g. 96
|
||||||
|
kHz sample rate) to record dolphin whistles, noise, fish sounds etc.
|
||||||
|
</p>
|
||||||
|
<h2 id="quick-overview-of-cpod-fpod-data">Quick overview of
|
||||||
|
CPOD/FPOD data</h2>
|
||||||
|
<p>CPODs and FPODs do not record raw audio - they run a simple on
|
||||||
|
board click detector and then save some basic metrics on each detected
|
||||||
|
click e.g. peak frequency, bandwidth, end frequency etc. FPODs, the
|
||||||
|
successor of CPODs, also record a little extra waveform data on a
|
||||||
|
small subset of detected clicks. Once a CPOD or FPOD has been
|
||||||
|
recovered, it is processed using CPOD.exe or FPOD.exe software
|
||||||
|
respectively which runs a click train classifier. The click train
|
||||||
|
classifier extracts sequences of successive clicks that are likely
|
||||||
|
from the same source, e.g a dolphin, porpoise or echo sounder. It then
|
||||||
|
assigns a likely species to a click train or classes it as unknown.
|
||||||
|
The outputs from the click train detector are saved to a CP3 file
|
||||||
|
which is essentially a file that contains only clicks that have been
|
||||||
|
assigned to click trains.</p>
|
||||||
|
<h2 id="adding-the-cpod-module">Adding the CPOD module</h2>
|
||||||
|
<p>
|
||||||
|
To add the CPOD module go to <strong><em>File->Add
|
||||||
|
Modules->Sensors->CPOD</em></strong>. The module requires the binary storage
|
||||||
|
module in PAMGuard <strong><em>File-> Add
|
||||||
|
modules->Utilities->Binary File</em></strong>. Once both the CPOD and Binary
|
||||||
|
file storage modules have been added open the CPOD settings using <strong><em>Settings->CPOD
|
||||||
|
importer</em></strong>.
|
||||||
|
</p>
|
||||||
|
<h2 id="importing-cpod-fpod-data">Importing CPOD/FPOD data</h2>
|
||||||
|
<p>The module has three possible modes of importing data</p>
|
||||||
|
<ul>
|
||||||
|
<li>Import raw detection data i.e. CP1 or FP1 data. PAMGuard will
|
||||||
|
display the CPOD detection but no click train ID data is available.</li>
|
||||||
|
<li>Import just the click trains data i.e. CP3 or FP3 files -
|
||||||
|
PAMGuard will only import clicks which are part of click trains</li>
|
||||||
|
<li>Import both both raw and click train data (recommended).
|
||||||
|
PAMGuard imports the raw detections then uses the click train data to
|
||||||
|
assign detections to click trains.</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Users can use the file button to select a single file (e.g. an FP3
|
||||||
|
file) or the folder button to select a folder of CPOD/FPOD files. If
|
||||||
|
the folder button is used and there are both CP1/FP1 (detections) and
|
||||||
|
CP3/FP3 (click trains) files then PAMGuard will automatically load all
|
||||||
|
files and assign detections to click trains. Once files have imported
|
||||||
|
select <strong><em>Import</em></strong> and the data will be imported
|
||||||
|
into PAMGuard - note this can take some time, especially if importing
|
||||||
|
CP1/FP1 files.
|
||||||
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<img width="750" height="400"
|
||||||
|
src="resources/cpod_settings_description.png">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<em>The CPOD module allow users to import CPOD/FPOD data by
|
||||||
|
selecting either individual files or a folder of files</em>
|
||||||
|
</p>
|
||||||
|
<h2 id="visualising-cpod-fpod-data">Visualising CPOD/FPOD data</h2>
|
||||||
|
<p>A broad overview of CPOD data is shown in PAMGuard's data
|
||||||
|
map which shows a datagram similar to the click detector. The datagram
|
||||||
|
shows the frequency density of CPOD/FPOD clicks constructed from the
|
||||||
|
peak frequency parameter for each click The datagram can be useful for
|
||||||
|
quickly navigating to sections of data that may contain porpoises
|
||||||
|
and/or dolphins.</p>
|
||||||
|
<p>Individual CPOD detections can be viewed in the Time base
|
||||||
|
display in PAMGuard. Add the CPOD module to a plot and then data can
|
||||||
|
be viewed with time using a selection y-axis options such as
|
||||||
|
Amplitude, Amplitude (stem), Frequency, bandwidth etc.</p>
|
||||||
|
<p align="center">
|
||||||
|
<img width="750" height="380"
|
||||||
|
src="resources/cpod_time_display_stem.png">
|
||||||
|
</p>
|
||||||
|
<p align="center">
|
||||||
|
<img width="750" height="380"
|
||||||
|
src="resources/cpod_time_display_amplitude2.png">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<em>FPOD data visualised in the time base display as a stem plots
|
||||||
|
like FPOD.exe (top) and as a scatter plot of click amplitudes
|
||||||
|
(bottom)</em>
|
||||||
|
</p>
|
||||||
|
<h2 id="data-selector">Data selector</h2>
|
||||||
|
<p>The CPOD module has a custom data selector which provides a
|
||||||
|
unified interface for users to select subsets of CPOD/FPOD data. The
|
||||||
|
data selector has sliders which set the range of various parameters,
|
||||||
|
such as peak frequency and also allows the selection of CPOD/FPOD
|
||||||
|
which belong to a click and those gave been classified to a particular
|
||||||
|
species. Users can use the data selector to, for example, only export
|
||||||
|
clicks classified as dolphin or perhaps plot only clicks with a peak
|
||||||
|
frequency between 100 and 150 kHz on the time display.</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="text-align: center">CPOD data selector</th>
|
||||||
|
<th style="text-align: center">CPOD data selector in time
|
||||||
|
display</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td style="text-align: center"><img
|
||||||
|
src="resources/cpod_data_selector_swing.png" width="500"></td>
|
||||||
|
<td style="text-align: center"><img
|
||||||
|
src="resources/cpod_data_selector_fx.png" width="500"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>
|
||||||
|
<em>Screenshots of the data selector user interface used
|
||||||
|
throughout PAMGuard. Although the style can change, the data selector
|
||||||
|
is the same throughout PAMGuard</em>
|
||||||
|
</p>
|
||||||
|
<h2 id="exporting-cpod-fpod-data">Exporting CPOD/FPOD data</h2>
|
||||||
|
<p>CPOD and FPOD data can be exported to .RData and .mat using
|
||||||
|
PAMGuard's exporter.</p>
|
||||||
|
<p align="center">
|
||||||
|
<img width="450" height="600"
|
||||||
|
src="resources/cpod_exporter_dialog_swing.png">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<em>PAMGuard's exporter can export CPOD/FPOD clicks to .mat
|
||||||
|
or .RData files. These can be opened in MATLAB, Python, and R
|
||||||
|
respectively</em>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The fields saved by the exporter are the same as a standard PAMGuard
|
||||||
|
detection <a href="../../overview/dataexport/docs/dataexport.html">(see
|
||||||
|
exporter help)</a>. The additional fields for CPODs and FPODs are
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><em>bandwidth</em>: the bandwidth of the click in Hz</li>
|
||||||
|
<li><em>numcycles</em>: the number of cycles fo the click in Hz</li>
|
||||||
|
<li><em>peakfreq</em>: the peak frequency of the click in Hz</li>
|
||||||
|
<li><em>endfreq</em>: the end frequency of the click in Hz</li>
|
||||||
|
<li><em>SPL</em>: the CPOD measure of sound pressure level which
|
||||||
|
is an integer between 0 and 255.</li>
|
||||||
|
<li><em>slope</em>: the slope which is a parameter measured by the
|
||||||
|
CPOD and FPOD.</li>
|
||||||
|
<li><em>wave</em>: this will be empty for most clicks but some
|
||||||
|
clicks from FPODs will have a waveform. Note that this is
|
||||||
|
reconstructed from zero crossings and is NOT a clip from the raw
|
||||||
|
sound data.</li>
|
||||||
|
<li><em>species</em>: if the CPOD is part of a click train then
|
||||||
|
species will be 0 for UNKNOWN, 1 for NBHF, 2 for DOLPHIN and 3 for
|
||||||
|
SONAR. -1 indicates a click is not part of a click train.</li>
|
||||||
|
<li><em>clicktrainID</em>: indicates the click train that the
|
||||||
|
click belongs to. This can be cross referenced with UID column in the
|
||||||
|
PAMGuard database which stores click trains and/or used to as an
|
||||||
|
identifier to associate different clicks together into trains.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
src/help/sensors/cpod/docs/resources/cpod_data_selector_fx.png
Normal file
After Width: | Height: | Size: 161 KiB |
After Width: | Height: | Size: 260 KiB |
After Width: | Height: | Size: 302 KiB |
After Width: | Height: | Size: 514 KiB |
BIN
src/help/sensors/cpod/docs/resources/cpod_settings_dialog.png
Normal file
After Width: | Height: | Size: 200 KiB |
After Width: | Height: | Size: 661 KiB |
BIN
src/help/sensors/cpod/docs/resources/cpod_time_display_stem.png
Normal file
After Width: | Height: | Size: 742 KiB |