Nearly ready for 2.02.14 release

Added CPOD help.
This commit is contained in:
Douglas Gillespie 2024-10-09 16:58:21 +01:00
parent 211ca7ab91
commit 653dc584ed
22 changed files with 222 additions and 7 deletions

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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.
/* /*

View 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;
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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

Binary file not shown.

View File

@ -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"/>

View File

@ -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 ">

View 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&#39;s CPOD module allows users to import CPOD <em>and</em>
FPOD data into PAMGuard so it can be viewed using PAMGuard&#39;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-&gt;Add
Modules-&gt;Sensors-&gt;CPOD</em></strong>. The module requires the binary storage
module in PAMGuard <strong><em>File-&gt; Add
modules-&gt;Utilities-&gt;Binary File</em></strong>. Once both the CPOD and Binary
file storage modules have been added open the CPOD settings using <strong><em>Settings-&gt;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&#39;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&#39;s exporter.</p>
<p align="center">
<img width="450" height="600"
src="resources/cpod_exporter_dialog_swing.png">
</p>
<p>
<em>PAMGuard&#39;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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 KiB