Merge pull request #82 from PAMGuard/main

Merge from main
This commit is contained in:
Douglas Gillespie 2024-06-24 13:58:16 +01:00 committed by GitHub
commit 3a42eabd74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
21 changed files with 1101 additions and 969 deletions

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="net.sourceforge.metrics.builder"/>
<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
</launchConfiguration>

View File

@ -11,8 +11,13 @@
</arguments>
</buildCommand>
<buildCommand>
<name>net.sourceforge.metrics.builder</name>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value>&lt;project&gt;/.externalToolBuilders/net.sourceforge.metrics.builder.launch</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>

View File

@ -388,7 +388,7 @@ PamguardBeta_ViewerMode.exe):</p>
<h1><a name="_LATEST_VERSION_2.02.03"></a><a name="_VERSION_2.02.07_January"></a><a
name="_Latest_Version_2.02.10"></a><em><span style='font-size:12.0pt;
font-family:"Cambria",serif;font-style:normal'><a href="#_Version_2.02.11_April">Latest
Version 2.03.00 June 2024</a></span></em></h1>
Version 2.02.11 May 2024</a></span></em></h1>
<h1><em><span style='font-size:12.0pt;font-family:"Cambria",serif;font-style:
normal'><a href="#_Version_2.02.10_January">Version 2.02.10 January 2024</a></span></em></h1>
@ -465,7 +465,7 @@ Version 2.00.10 June 2017</a></span></h1>
name="_Latest_Version_2.02.06"></a><a name="_Latest_Version_2.02.07"></a><a
name="_Latest_Version_2.02.08"></a><a name="_Version_2.02.09_June"></a><a
name="_Version_2.02.10_January"></a><a name="_Version_2.02.11_April"></a>Version
2.03.00 June 2024</h1>
2.02.11 May 2024</h1>
<p class=MsoNormal>&nbsp;</p>
@ -474,11 +474,22 @@ name="_Version_2.02.10_January"></a><a name="_Version_2.02.11_April"></a>Version
<p class=MsoNormal>Deep Learning Classifier. Major upgrade to support for Deep
Learning models in PAMGuard. See online help for details.</p>
<p class=MsoNormal>Click detector: Remembers locations of displays and doesnt
<p class=MsoNormal>Click detector: Remembers locations of displays and doesn’t
continually reset them. </p>
<p class=MsoNormal>Help for Matched Click Classifier.</p>
<p class=MsoNormal>Project information dialog. This allows capture of essential
project information to store with your data. See menu item Settings/Project
information.</p>
<h2>Tethys Database</h2>
<p class=MsoNormal>Many users will be aware that we’re integrating an interface
to the <a href="https://tethys.sdsu.edu/">Tethys Database</a> into PAMGuard.
Some basic features are available for testing. If interested, please contact
the PAMGuard support team. </p>
<h2>Bug Fixes</h2>
<p class=MsoNormal>Linking clicks to offline clicks table. We had a database
@ -500,14 +511,20 @@ as PAMGuard stops / restarts. </p>
function fixed and now inserts correct times of start and ends of events into
database. </p>
<p class=MsoNormal>Acquisition “Skip initial seconds” feature, designed to
<p class=MsoNormal>Clip generator. Changes to ensure PAMGuard keeps audio data
long enough to make clips. In some circumstances data were being discarded too
early so clips could not be created. </p>
<p class=MsoNormal>Acquisition “Skip initial seconds” feature, designed to
remove high sample levels e.g. from calibration tones at start of a soundtrap
recording was not working with the click detector. This is fixed but replacing
all data with 0s and still sending data. Note that this may lead to
all data with 0’s and still sending data. Note that this may lead to
artificially low noise measures at the start of a file. </p>
<p class=MsoNormal>Data reprocessing options. Updated to ensure that the option
&quot;Start normally. Note risk of overwriting!&quot; is always available. Also
improved code naming binary files to attempt to push them to exact times,
rather than a couple of seconds after the hour. </p>
improved code naming binary files to attempt to push them to exact times, rather
than a couple of seconds after the hour. </p>
@ -531,8 +548,8 @@ files) file performance</span></b><span lang=EN-US> when scrolling through
audio data in Viewer mode. </span></p>
<p class=MsoNormal><b><span lang=EN-US>Viewer Launch</span></b><span
lang=EN-US> by right clicking on sqlite database and selecting open with /
Pamguard ViewerMode launcher menu option.</span></p>
lang=EN-US> by right clicking on sqlite database and selecting “open with /
Pamguard ViewerMode” launcher menu option.</span></p>
<h2><span lang=EN-US>Bug Fixes</span></h2>
@ -580,7 +597,7 @@ clicks not being correctly reassigned to different events. </span></p>
<p class=MsoNormal><b><span lang=EN-US>Screen Position</span></b><span
lang=EN-US>: When using multiple monitors, if you move a configuration to a
computer with a different monitor layout, the GUI should work out if its
computer with a different monitor layout, the GUI should work out if it’s
opening on a screen area which no longer exists and move itself onto the
primary monitor. </span></p>
@ -588,7 +605,7 @@ primary monitor. </span></p>
lang=EN-US>: Previous version had a bug which caused files to not always be
sorted into the correct order for processing. This caused some instability in
some detectors, causing memory leaks when new data arrived with time stamps
earlier than already processed data in memory. This is now fixed files are ow
earlier than already processed data in memory. This is now fixed – files are ow
correctly sorted alphabetically </span>by file name, i.e. not including the
name of the folder containing the files.</p>
@ -610,8 +627,8 @@ were reading local time, even when set to use UTC. </span></p>
which mostly occurred when processing large datasets of many offline files, has
been fixed.</span></p>
<p class=MsoNormal><span lang=EN-US>Data Map: “Scroll To Data” pop-up menu, which
didnt always scroll to the correct place, is now fixed. </span></p>
<p class=MsoNormal><span lang=EN-US>Data Map: “Scroll To Data” pop-up menu, which
didn’t always scroll to the correct place, is now fixed. </span></p>
<p class=MsoNormal><span lang=EN-US>Bearing Localiser offline: If reprocessing
bearings, the localizer was not correctly loading required raw or FFT data to
@ -634,7 +651,7 @@ files and stores them within the PAMGuard configuration. This does not affect
processing, but is important for record keeping. </span></p>
<p class=MsoNormal><span lang=EN-US>GPS options to use any valid RMC or GGA
string. Not all GPS receivers output their RMC data as GPRMC e.g. some may
string. Not all GPS receivers output their RMC data as GPRMC – e.g. some may
output as GNRMC. A new option allows the GPS module to use any string, whatever
the first two characters of the string name may be. </span></p>
@ -643,14 +660,14 @@ the first two characters of the string name may be. </span></p>
<h2><span lang=EN-US>Bug Fixes</span></h2>
<p class=MsoNormal><span lang=EN-US>Use of localization sensor and orientation
data for static hydrophones had a bug whereby it would continually forget
data for static hydrophones had a bug whereby it would continually ‘forget’
angle offsets applied to static hydrophones in viewer mode. This is now fixed. </span></p>
<p class=MsoNormal><span lang=EN-US>Click tool bar: Correctly shows event
selection options even if no species classification options are in place. </span></p>
<p class=MsoNormal><span lang=EN-US>Fixed Landmarks: Earlier versions were
losing these every time PAMGuard started or new data were loaded in viewer
‘losing’ these every time PAMGuard started or new data were loaded in viewer
mode. Now fixed. </span></p>
<p class=MsoNormal><span lang=EN-US>ROCCA: Fixed (another) memory leak which
@ -669,11 +686,11 @@ processing.</span></p>
<p class=MsoNormal><span lang=EN-US>New sound type for simulated sounds which
generates random chirps between around 200 and 800Hz, roughly the frequency
youd expect sound from higher frequency baleen whales, such as humpbacks, to
you’d expect sound from higher frequency baleen whales, such as humpbacks, to
vocalise at. &nbsp;&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Hiding tool tips. A menu item to
permanently turn off all tool tips, or tap the Esc key to turn them off for 6
permanently turn off all tool tips, or tap the ‘Esc’ key to turn them off for 6
seconds if they are getting in the way, particularly when trying to interact
with displays using the mouse. </span></p>
@ -694,7 +711,7 @@ whistle classification module.</span></p>
<h2><span lang=EN-US>New Features</span></h2>
<p class=MsoNormal><span lang=EN-US>SoundTrap SUD file reading. If youre using
<p class=MsoNormal><span lang=EN-US>SoundTrap SUD file reading. If you’re using
SoundTrap autonomous recorders from Ocean Instruments, you no longer need to
decompress the SoundTrap files prior to processing. This will save time and a
lot of disk space. Extraction of clicks from the inbuilt SoundTrap Click
@ -711,8 +728,8 @@ details. &nbsp;&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Changes to GUI to make dialog shorter for
low DPI screens. </span></p>
<p class=MsoNormal><span lang=EN-US>Complete rewrite of the classification
system to have nested classifiers which can be enabled or disabled. </span></p>
<p class=MsoNormal><span lang=EN-US>Complete rewrite of the classification system
to have nested classifiers which can be enabled or disabled. </span></p>
<p class=MsoNormal><span lang=EN-US>Changes to classification GUI to
accommodate the new classification system.</span></p>
@ -758,7 +775,7 @@ audio files. </span></p>
<h2><span lang=EN-US>Bug Fixes</span></h2>
<p class=MsoNormal><span lang=EN-US>Soundtrap DWV import. Will now generate
binary files even if DWV file doesnt exist (which is correct behavior in
binary files even if DWV file doesn‚’t exist (which is correct behavior in
quiet conditions when no clicks were detected). </span></p>
<p class=MsoNormal><span lang=EN-US>Spectrogram. Changes to stop occasional
@ -793,7 +810,7 @@ running in real time. Added template names based on file names. </p>
<p class=MsoNormal>#13 Merging files when offline processing file folders: Had
an error introduced in last release which caused it to fail to recognise gaps
between files, meaning that some output data (i.e. after a gap) would have an
incorrect time stamp. This did not affect data if the merge contiguous files
incorrect time stamp. This did not affect data if the ‘merge contiguous files’
option was not selected. </p>
<p class=MsoNormal>#14 Logger forms data were not plotting correctly. This was
@ -803,9 +820,9 @@ selections from drop down lists within any form.</p>
<p class=MsoNormal>&nbsp;</p>
<p class=MsoNormal>Note that updates have also been made to the Matlab
interface to PAMGuard binary files, which has now also been migrated to GitHub
at <a href="https://github.com/PAMGuard/PAMGuardMatlab">https://github.com/PAMGuard/PAMGuardMatlab</a>.
<p class=MsoNormal>Note that updates have also been made to the Matlab interface
to PAMGuard binary files, which has now also been migrated to GitHub at <a
href="https://github.com/PAMGuard/PAMGuardMatlab">https://github.com/PAMGuard/PAMGuardMatlab</a>.
</p>
<h1>&nbsp;</h1>
@ -866,7 +883,7 @@ href="http://www.pamguard.org/downloads.php?cat_id=3">here</a>.</p>
<p class=MsoNormal><b><span lang=EN-US>Detection Group Localiser</span></b><span
lang=EN-US> </span></p>
<p class=MsoNormal>This module has been renamed “Detection Grouper”, so as to
<p class=MsoNormal>This module has been renamed “Detection Grouper”, so as to
avoid confusion with the Group 3D localizer. This is because the Detection
Grouper is more for organizing data into groups to be localized than it is for
doing localization.</p>
@ -989,9 +1006,9 @@ included in a future release. </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>17. </span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
lang=EN-US> </span>An implementation of the Generalized Power Law Detector,
developed by Tyler Helble ([Helble et al., A generalized power-law detection
algorithm for humpback whale vocalizations, The Journal of the Acoustical
Society of America, vol. 131, no. 4, pp. 26822699, 2012) is now available. For
developed by Tyler Helble ([Helble et al., ‘A generalized power-law detection
algorithm for humpback whale vocalizations’, The Journal of the Acoustical
Society of America, vol. 131, no. 4, pp. 2682–2699, 2012) is now available. For
details, see the online help </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>18. </span><span
@ -2264,7 +2281,7 @@ file format is the addition of a Unique Data Identifier (UID) to each unit of
data. This is intended to aid in offline analysis by making it easier for the
user to link what they are seeing on different PAMGuard displays and also to
link with any data post processed in Matlab or other custom analysis software.
UIDs are also added to PAMGuard database tables. </span></p>
UID’s are also added to PAMGuard database tables. </span></p>
<h4><span lang=EN-US>Converting Old Data</span></h4>
@ -2272,13 +2289,13 @@ UID
viewer they will automatically be converted. For safety, the original binary
files will not be overwritten and the new data will be placed in a new folder
on your computer with the same path as the old data, but suffixed with
_WithUID, e.g. if your binary data were previously stored in the folder
‘_WithUID’, e.g. if your binary data were previously stored in the folder
C:\MySurvey\binarydata the new data will be written to
C:\MySurvey\binarydata_WithUID. </span></p>
<p class=MsoNormal><span lang=EN-US>The additional UID column will be added to
all database tables and populated with unique values. For data which are stored
in both the binary files and in database tables, the same UIDs will be used in
in both the binary files and in database tables, the same UID’s will be used in
both data stores. </span></p>
<h3><span lang=EN-US>New Displays</span></h3>
@ -2342,10 +2359,10 @@ lang=EN-US>&nbsp;</span></p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.</span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=EN-US>Bug 317. Rocca Module Data Purging. </span>The ROCCA
module was not performing data purging when using classifiers developed for Hawaii/Temperate
Pacific/North Atlantic datasets. This has been corrected.</p>
</span><span lang=EN-US>Bug 317. Rocca Module Data Purging. </span>The ROCCA module
was not performing data purging when using classifiers developed for
Hawaii/Temperate Pacific/North Atlantic datasets. This has been corrected.</p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Bug 320. Pamguard stopped reading Click Detector Event data from database
@ -2483,9 +2500,9 @@ dependencies)</span></p>
<p class=MsoNormal><b><span lang=EN-US>Other Changes</span></b></p>
<p class=MsoNormal><span lang=EN-US>The installer has been updated to handle
both 64 bit and 32 bit installations. PAMGuard psf files are now registered in
the Windows Registry, so double-clicking on a psf file should run PAMGuard in
<p class=MsoNormal><span lang=EN-US>The installer has been updated to handle both
64 bit and 32 bit installations. PAMGuard psf files are now registered in the
Windows Registry, so double-clicking on a psf file should run PAMGuard in
normal mode (as opposed to Viewer or Mixed modes). Note that the Windows
Registry can only hold a single executable reference for psf files; therefore,
for users with multiple installations of PAMGuard, double-clicking on a psf
@ -2513,7 +2530,7 @@ November 2016</span></h1>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Bug 303. Some ASIO sound cards not working with either ASIO system in PAMGuard.
For the PAMGuard ASIO system, this was due to a data format used by some sound
cards never being properly implemented. For the “New ASIO system” which is
cards never being properly implemented. For the “New ASIO system” which is
based on jAsioHost, the unpacking of that format contained a bug which returned
incorrect numbers, so data were swamped with noise. Both systems are now fixed.
By preference, users should use the PAMGuard ASIO system since the JAsioHost
@ -2624,8 +2641,8 @@ lang=EN-US>3.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times N
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>4.<span
style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span lang=EN-US>Bug 290. Click bearings on spectrogram display plug in
were reversed if the first hydrophone was behind the second hydrophone in the
</span><span lang=EN-US>Bug 290. Click bearings on spectrogram display plug in were
reversed if the first hydrophone was behind the second hydrophone in the
configuration. This is now fixed so that it displays the same bearings as the
main click detector display. </span></p>
@ -2716,10 +2733,10 @@ since V 1.15.03:</p>
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>1.<span
style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Bug 272. File types: Some File Open / File Save dialogs were allowing
selection of all file types. e.g. Save Configuration As, Section of whistle
classifier training file, Map file Selection, These have now been changed so
that only the correct type of file can be selected.</p>
</span>Bug 272. File types: Some File Open / File Save dialogs were allowing selection
of all file types. e.g. Save Configuration As, Section of whistle classifier
training file, Map file Selection, These have now been changed so that only the
correct type of file can be selected.</p>
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>2.<span
style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@ -3111,9 +3128,9 @@ option with caution !</p>
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>The Open Office Database system has been removed from the list of
available options since it is not reliable. If you require a free database
solution we recommend you use the MySql Community Server <a
</span>The Open Office Database system has been removed from the list of available
options since it is not reliable. If you require a free database solution we
recommend you use the MySql Community Server <a
href="http://dev.mysql.com/downloads/mysql/">http://dev.mysql.com/downloads/mysql/</a></p>
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
@ -3305,8 +3322,8 @@ Visual Methods</p>
<p class=MsoNormal>'<i>Multi Threading</i>' menu item moved from 'Detection'
(now 'Settings') to 'File'</p>
<p class=MsoNormal>'<i>Start</i>' and '<i>Stop</i>' menu items removed.
PAMGuard should be started and stopped using the red and black buttons.</p>
<p class=MsoNormal>'<i>Start</i>' and '<i>Stop</i>' menu items removed. PAMGuard
should be started and stopped using the red and black buttons.</p>
<p class=MsoNormal><b>New Modules</b></p>
@ -3374,9 +3391,9 @@ help for details. </p>
<p class=MsoNormal><i>Echo Detector and Sperm Whale IPI Computation</i> (Beta
only, Sound Measurements Group)</p>
<p class=MsoNormal>These two modules, developed by Brian Miller of the
Australian Antarctic Division can be used to estimate the inter pulse interval
of sperm whale clicks. (No help available)</p>
<p class=MsoNormal>These two modules, developed by Brian Miller of the Australian
Antarctic Division can be used to estimate the inter pulse interval of sperm
whale clicks. (No help available)</p>
<p class=MsoNormal>&nbsp;</p>

View File

@ -4,7 +4,7 @@
<groupId>org.pamguard</groupId>
<artifactId>Pamguard</artifactId>
<name>Pamguard</name>
<version>2.02.11d</version>
<version>2.02.11f</version>
<description>Pamguard using Maven to control dependencies</description>
<url>www.pamguard.org</url>
<organization>

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.pamguard</groupId>
<artifactId>Pamguard</artifactId>
<version>2.02.11e</version>
<version>2.02.11f</version>
<name>Pamguard</name>
<description>Pamguard using Maven to control dependencies</description>
<url>www.pamguard.org</url>

File diff suppressed because it is too large Load Diff

View File

@ -31,12 +31,12 @@ public class PamguardVersionInfo {
* Version number, major version.minorversion.sub-release.
* Note: can't go higher than sub-release 'f'
*/
static public final String version = "2.02.11e";
static public final String version = "2.02.11f";
/**
* Release date
*/
static public final String date = "19 June 2024";
static public final String date = "24 June 2024";
// /**
// * Release type - Beta or Core

View File

@ -472,7 +472,7 @@ final public class PamModel implements PamSettings {
mi.setModulesMenuGroup(utilitiesGroup);
mi.setMaxNumber(1);
//mi.addGUICompatabilityFlag(PamGUIManager.FX); //has FX enabled GUI.
// mi.setHidden(SMRUEnable.isEnable() == false);
mi.setHidden(SMRUEnable.isEnable() == false);
}
/*

View File

@ -382,7 +382,7 @@ public class RawSoundPlotDataFX {
if (soundStore.currentRawDataMillis==0){
if (++timeErrors < 10) {
System.err.println("RawSoundPlotData: Raw sound data has no associated millisecond time: "+ soundStore.currentRawDataMillis);
// System.err.println("RawSoundPlotData: Raw sound data has no associated millisecond time: "+ soundStore.currentRawDataMillis);
}
return;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 522 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 KiB

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 KiB

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -9,8 +9,14 @@
<body>
<h1 id="pamguard-s-deep-learning-module">PAMGuard&#39;s Deep
Learning Module</h1>
<h2 id="common-bugs-and-mistakes">Common Bugs and Mistakes</h2>
<br>
<h2 id="common-bugs-and-mistakes">Common bugs and mistakes</h2>
<p>The first time you use the module and/or load a different type
of model e.g. a tensorflow or pytorch model, you must be connected to
the internet.</p>
<p>You must install the correct version of CUDA for hardware
acceleration using an Nvidea GPU. See the currently supported CUDA
versions on the Pytorch and Tensorflow websites.</p>
<p>You should always have deep learning models in their own folder.
Do not have any additional jar files or other programming related
things (like .dll files) in the same or sub folders. This has been

View File

@ -7,20 +7,18 @@
</head>
<body>
<h1 id="pamguard-s-deep-learning-module">PAMGuard Deep
Learning Module</h1>
<h2 id="creation-and-config">Creation and Configuration</h2>
<br>
<h3 id="creating-an-instance-of-the-module">Creating an instance
of the module</h3>
<h1 id="pamguard-s-deep-learning-module">PAMGuard Deep Learning
Module</h1>
<h2 id="creating-an-instance-of-the-module">Creating an instance
of the module</h2>
<p>
The module can be added from the <em>File&gt; Add modules &gt;
Classifier &gt; Raw deep learning classifier</em> menu or by right
clicking in the data model. More than one instance of the module can
be added if multiple deep learning models are required.
</p>
<br>
<h3 id="module-settings">Module settings</h3>
<h2 id="module-settings">Module settings</h2>
<p>
The module settings are opened by selecting the <em>Settings &gt;
Raw deep learning classifier</em> menu. The main settings pane is shown
@ -28,18 +26,18 @@
and <em>Deep Learning Model</em>
</p>
<p align="center">
<img width="700" height="630"
src="images/deep_leanring_module_help.png">
<img src="images/deep_leanring_module_help.png">
</p>
<p>
<em>The main settings pane for the deep learning module with
descriptions</em>
</p>
<br>
<h3 id="raw-sound-data">Raw Sound Data</h3>
<p>The deep learning module accepts any raw data source i.e., any
data source that contains raw waveform data.</p>
data source that contains raw waveform data e.g. clicks, clips and
Ishmael detections. Note that the module accepts whislte and moan
detections but only if a delphinID classifier has been loaded.</p>
<p>If the data is continuous, e.g. from the Sound Acquisition
module then deep learning detections are saved to PAMGuard&#39;s data
management system if they pass a user defined prediction threshold.
@ -57,7 +55,6 @@
processes. So, for example if channels 0 and 2 are in a group, then
the raw waveform data from both channel 0 and 2 will be saved and can
be used in downstream processes, e.g., for localisation.</p>
<br>
<h3 id="segmentation">Segmentation</h3>
<p>
The segmentation section defines how the raw data is segmented. Some
@ -72,7 +69,6 @@
re-merge</em> is the maximum number of segments that can form a single
data unit before a new data unit is automatically created.
</p>
<br>
<h3 id="deep-learning-model">Deep Learning Model</h3>
<p>The deep learning model section is used to select the deep
learning model. The drop down menu is used to select the framework the
@ -92,14 +88,12 @@
</p>
<p>Once the model has loaded there some unique options depending on
the currently selected framework.</p>
<br>
<h4 id="generic-model">Generic Model</h4>
<p>
A generic model must be set up via the <em>Advanced</em> menu button.
</p>
<p align="center">
<img width="700" height="700"
src="images/advanced_settings_generic_1.png">
<img src="images/advanced_settings_generic_1.png">
</p>
<p>
@ -124,8 +118,7 @@
including the shape of the input data e.g. a 100x50 image.
</p>
<p align="center">
<img width="700" height="700"
src="images/advanced_settings_generic_2.png">
<img src="images/advanced_settings_generic_2.png">
</p>
<p>
@ -146,16 +139,15 @@
transforms and input and output data whenever settings up a new
PAMGuard data model and allow easier sharing of classifiers amongst
researchers.</p>
<br>
<h4 id="animalspot-and-ketos-models">AnimalSpot and Ketos models</h4>
<h4 id="koogu-ketos-animalspot-pamguard-zip-and-delphinid-models">Koogu,
Ketos, AnimalSpot, PAMGuard zip and delphinID models</h4>
<p>
If using an AnimalSpot or Ketos model then all transforms are
automatically set up. The transforms can be viewed and altered via the
Advanced menu button but in the majority of cases these settings
should not be used. It is advisable to select &quot;Use default
segment length&quot; to change the <em>Window length</em> to the
default for the selected model. Note that this is often necessary for
Ketos models but usually not a requirement for AnimalSpot models.
If using a deep learning model from a supported framework then all
transforms are automatically set up. The transforms can be viewed and
altered via the Advanced menu button but in the majority of cases
these settings should not be used. For some models, it is advisable to
select &quot;Use default segment length&quot; to change the <em>Window
length</em> to the default for the selected model.
</p>
<p align="center">
<img width="700" height="700"
@ -163,18 +155,43 @@
</p>
<p>
<em>An AnimalSpot or Ketos model will automatically create a list
of transforms with the appropriate settings. These is no need to use
the advanced pane but it is there in case users wish to change
transform settings for some reason</em>
<em>An AnimalSpot, Ketos or other supported deep learning model
will automatically create a list of transforms with the appropriate
settings. These is no need to use the advanced pane but it is there
in case users wish to change transform settings for some reason</em>
</p>
<h3 id="default-models">Default Models</h3>
<p>Default models are selectable from the menu button in the Deep
Learning Pane. Default models are deep learning classifiers which are
open source, known to be effective and have have been published in
open access academic litrature; they are downloaded directly from a
GitHub repository and then all associated settings are automtically
applied. The default model selection pane also contains hyperlinks to
the papers descirbing each model which will take users directly to the
relvent website.</p>
<p align="center">
<img src="images/default_settings_humpback_1.png">
</p>
<p>
<em>Default models can be downloaded. Default models are models
which are published, open and have been known to work well amongst
the bioacoustics community. More will be added to PAMGaurd over time.
If you you would like your model to become a defualt model then drop
PAMGuard support an email.</em>
</p>
<br>
<br>
<br>
<p class="prevLink"><a href="rawDeepLearning_overview.html">Previous:
Overview</a></p>
<p class="nextLink"><a href="rawDeepLearning_Running.html">Next:
Running the Deep Learning module</a></p>
<p class="prevLink">
<a href="rawDeepLearning_overview.html">Previous: Overview</a>
</p>
<p class="nextLink">
<a href="rawDeepLearning_Running.html">Next: Running the Deep
Learning module</a>
</p>
<br>
<br>
<br>

View File

@ -9,12 +9,12 @@
<body>
<h1 id="pamguard-s-deep-learning-module">PAMGuard&#39;s Deep
Learning Module</h1>
<h2 id="viewing-and-exporting-results">Viewing and exporting
results</h2>
<br>
<p>Output from the deep learning module can be viewed in PAMGuard
viewer mode, or extracted from binary files using MATLAB or R.</p>
<br>
<h3 id="pamguard-viewer-mode">PAMGuard viewer mode</h3>
<p>Detections form continuous raw data are shown in the datagram in
the same way as all data streams in PAMGuard.</p>
@ -32,7 +32,7 @@
manual analyst can quickly navigate to detections with high prediction
values for a certain class. Hovering over or right clicking on a data
unit in the time display and selecting the information button, will
show the data unit&#39;s metadata, including the prediction values for all
show the data units metadata, including the prediction values for all
output classes from the deep learning model.</p>
<p align="center">
<img src="images/bat_time_base_display.png">
@ -50,7 +50,6 @@
deep learning prediction values. The spectrogram will also show deep
learning detections as translucent blue boxes (these must be selected
in the right click menu).</p>
<br>
<h3 id="matlab">MATLAB</h3>
<p>The easiest way to export to MATLAB is to select the desired
units in the time base display, right click and select the MATLAB
@ -96,7 +95,7 @@ predicitons = dldetections(<span class="hljs-number">1</span>).annotations.dlcla
waveform data in each structure;</p>
<pre>
<code class="lang-matlab">
<span class="hljs-comment">% plot all the spectrograms.</span>
<span class="hljs-comment">% plot all the spectrograms.</span>
clf
tiledlayout(<span class="hljs-number">5</span>,<span class="hljs-number">5</span>)
<span class="hljs-keyword">for</span> <span class="hljs-built_in">i</span>=<span
@ -155,7 +154,6 @@ tiledlayout(<span class="hljs-number">5</span>,<span class="hljs-number">5</span
<em>Right whale detections from a deep learning model imported
and then plotted in MATLAB</em>
</p>
<br>
<h3 id="r">R</h3>
<p>In the same way as MATLAB export, the PAMGuard time base display
and export selected data units directly to an R struct which can be
@ -165,13 +163,17 @@ tiledlayout(<span class="hljs-number">5</span>,<span class="hljs-number">5</span
functions compared to the MATLAB library. The PAMBinaries R library
can be found <a href="https://github.com/TaikiSan21/PamBinaries">here</a>.
</p>
<br>
<br>
<br>
<p class="prevLink"><a href="rawDeepLearning_Running.html">Previous:
Running the Deep Learning module</a></p>
<p class="nextLink"><a href="rawDeepLearning_Bugs.html">Next:
Common Bugs and Mistakes</a></p>
<p class="prevLink">
<a href="rawDeepLearning_Running.html">Previous: Running the Deep
Learning module</a>
</p>
<p class="nextLink">
<a href="rawDeepLearning_Bugs.html">Next: Common Bugs and Mistakes</a>
</p>
<br>
<br>
<br>

View File

@ -10,12 +10,10 @@
<h1 id="pamguard-s-deep-learning-module">PAMGuard&#39;s Deep
Learning Module</h1>
<h2 id="running">Running</h2>
<br>
<h3 id="real-time">Real time</h3>
<p>In real time, the deep learning model runs automatically when
processing starts. A warning will appear if there are issues with the
model and/or it cannot cope with real time speeds.</p>
<br>
<h3 id="viewer-mode">Viewer Mode</h3>
<p>
The deep learning module can be re-run on <em>detector</em> data (e.g.
@ -26,13 +24,18 @@
Detections without a deep learning annotation will have one added and
detections with an existing annotation will have it overwritten.
</p>
<br>
<br>
<br>
<p class="prevLink"><a href="rawDeepLearning_CreateAndConfig.html">Previous:
Creating and Configuring the Deep Learning module</a></p>
<p class="nextLink"><a href="rawDeepLearning_Results.html">Next:
Viewing and Exporting Results</a></p>
<p class="prevLink">
<a href="rawDeepLearning_CreateAndConfig.html">Previous: Creating
and Configuring the Deep Learning module</a>
</p>
<p class="nextLink">
<a href="rawDeepLearning_Results.html">Next: Viewing and Exporting
Results</a>
</p>
<br>
<br>
<br>

View File

@ -7,10 +7,11 @@
</head>
<body>
<h1 id="pamguard-s-deep-learning-module">PAMGuard Deep
Learning Module</h1>
<h1 id="pamguard-s-deep-learning-module">PAMGuard&#39;s deep
learning module</h1>
<p>Note: this module requires an internet connection upon first use
to download correct libraries.</p>
<h2 id="overview">Overview</h2>
<p>PAMGuard&#39;s deep learning module allows users to deploy a
large variety of deep learning models natively in PAMGuard. It is core
module, fully integrated into PAMGuard&#39;s display and data
@ -19,9 +20,7 @@
signal and can integrate into multiple types of acoustic analysis
workflows, for example post analysis of recorder data or used as part
of real time localisation workflow.</p>
<br>
<h3 id="how-it-works">How it works</h3>
<h2 id="how-it-works">How it works</h2>
<p>The deep learning module accepts raw data from different types
of data sources, e.g. from the Sound Acquisition module, clicks and
clips. It segments data into equal sized chunks with a specified
@ -32,8 +31,7 @@
learning model, then can be automatically set up by PAMGuard.
Currently there are three implemented frameworks</p>
<p align="center">
<img width="900" height="370"
src="images/deep_learning_module_process.png">
<img src="images/deep_learning_module_process.png">
</p>
<p>
@ -44,7 +42,6 @@
the model are saved and can be viewed in real time (e.g. mitigation)
or in post processing (e.g. data from SoundTraps).</em>
</p>
<br>
<h3 id="generic-model">Generic Model</h3>
<p>
A generic model allows a user to load any model compatible with the <a
@ -54,12 +51,11 @@
existing framework instead of a generic model as these models will
automatically generate the required transforms.
</p>
<br>
<h3 id="animalspot">AnimalSpot</h3>
<p>
<a href="https://github.com/ChristianBergler/ANIMAL-SPOT">ANIMAL-SPOT</a>
is a deep learning based framework which was initially designed for <a
href="https://github.com/ChristianBergler/ORCA-SPOT">killer
href="(https://github.com/ChristianBergler/ORCA-SPOT">killer
whale sound detection</a>) in noise heavy underwater recordings (see <a
href="https://www.nature.com/articles/s41598-019-47335-w">Bergler
et al. (2019)</a>). It has now been expanded to a be species independent
@ -68,21 +64,43 @@
AnimalSpot models will automatically set up their own data transforms
and output classes.
</p>
<br>
<h3 id="ketos">Ketos</h3>
<p>
<a href="https://meridian.cs.dal.ca/2015/04/12/ketos/">Ketos</a> is an
acoustic deep learning framework based on Tensorflow and developed by
<a href="https://meridian.cs.dal.ca/">MERIDIAN</a>. It has excellent
resources and tutorials and Python libraries can be installed easily
via pip. Imported Ketos model will automatically set up their own data
via pip. Imported Ketos (.ktpb) models will automatically set up their
own data transforms and output classes.
</p>
<h3 id="koogu">Koogu</h3>
<p>
<a href="https://shyamblast.github.io/Koogu/en/stable/">Koogu </a> is
a Python package which allows users to train a deep learning model.
Koogu helps users by integrating with some frequency used annotation
programs and provides tools to train and test classifiers. Imported
Koogu models (.kgu) will automatically set up their own data
transforms and output classes.
</p>
<h3 id="pamguardzip">PAMGuardZip</h3>
<p>
PAMGuard zip models consist of a deep learning model (either a
Tensorflow saved_model.pb or PyTorch <em>*.py model) alongside a
PAMGuard metdata file (</em>.pdtf*) within a zip archive. The metadata
file contains all the information needed for PAMGaurd to set up the
model. PAMGuard will import the zip file, decompress it and search for
the relevent deep learning model and metadata file then set up all
settings accordingly. This framework allows users to easily share
pre-tested PAMGuard compatible models.
</p>
<br>
<br>
<br>
<p class="nextLink"><a href="rawDeepLearning_CreateAndConfig.html">Next:
Creating and Configuring the Deep Learning module</a></p>
<p class="nextLink">
<a href="rawDeepLearning_CreateAndConfig.html">Next: Creating and
Configuring the Deep Learning module</a>
</p>
<br>
<br>
<br>

View File

@ -21,6 +21,7 @@ public class CounterControl extends SimpleControl {
Character suffix;
public enum CounterSuffix {NOSUFFIX, CHARSUFFIX};
public CounterControl(ControlDescription controlDescription,
LoggerForm loggerForm) {
@ -36,25 +37,19 @@ public class CounterControl extends SimpleControl {
}
private String calculateCounter() {
int num = FormCounterManagement.getInstance().getCounterNumber(this,controlDescription.getFormDescription().getDBTABLENAME());
String numSt = Integer.toString(num);
int nZeros = 3-numSt.length();
String tSt = "";
for (int i=0;i<nZeros;i++){
tSt+="0";
// System.out.println(tSt);
}
numSt = tSt+numSt;
String numSt = String.format("%03d", num);
// int nZeros = 3-numSt.length();
//
// String tSt = "";
// for (int i=0;i<nZeros;i++){
// tSt+="0";
//// System.out.println(tSt);
// }
//
// numSt = tSt+numSt;
// System.out.println(tSt);
// System.out.println(numSt);
@ -109,31 +104,19 @@ public class CounterControl extends SimpleControl {
}
@Override
AbstractFormatter getAbstractformatter() {
DefaultFormatter formatter = new DefaultFormatter();
return formatter;
}
public void updateCounter() {
if (loggerForm.getNewOrEdit()==LoggerForm.EditDataForm) return;
// System.out.println("updateCounter");
setData(calculateCounter());
}
}

View File

@ -2,7 +2,9 @@ package loggerForms.formdesign.controlpropsets;
import loggerForms.FormDescription;
import loggerForms.UDColName;
import loggerForms.controlDescriptions.ControlTypes;
import loggerForms.formdesign.ControlTitle;
import loggerForms.formdesign.itempanels.BooleanCtrlColPanel;
import loggerForms.formdesign.itempanels.CtrlColPanel;
public class CounterPropertySet extends BasePropertySet {
@ -15,12 +17,17 @@ public class CounterPropertySet extends BasePropertySet {
@Override
public CtrlColPanel getItemPropertyPanel(ControlTitle selTitle,
UDColName propertyName) {
// if (selTitle.getType() == ControlTypes.COUNTER) {
// System.out.println("counter");
// }
switch (propertyName) {
case Plot:
case Autoclear:
case ReadOnly:
case AutoUpdate:
return null;
// case Topic:
// return new BooleanCtrlColPanel(selTitle, new );
}
return super.getItemPropertyPanel(selTitle, propertyName);
}