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> </arguments>
</buildCommand> </buildCommand>
<buildCommand> <buildCommand>
<name>net.sourceforge.metrics.builder</name> <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>full,incremental,</triggers>
<arguments> <arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value>&lt;project&gt;/.externalToolBuilders/net.sourceforge.metrics.builder.launch</value>
</dictionary>
</arguments> </arguments>
</buildCommand> </buildCommand>
<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 <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; 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 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: <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> 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.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="_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 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> <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 <p class=MsoNormal>Deep Learning Classifier. Major upgrade to support for Deep
Learning models in PAMGuard. See online help for details.</p> 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> continually reset them. </p>
<p class=MsoNormal>Help for Matched Click Classifier.</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> <h2>Bug Fixes</h2>
<p class=MsoNormal>Linking clicks to offline clicks table. We had a database <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 function fixed and now inserts correct times of start and ends of events into
database. </p> 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 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 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> artificially low noise measures at the start of a file. </p>
<p class=MsoNormal>Data reprocessing options. Updated to ensure that the option <p class=MsoNormal>Data reprocessing options. Updated to ensure that the option
&quot;Start normally. Note risk of overwriting!&quot; is always available. Also &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 improved code naming binary files to attempt to push them to exact times, rather
than a couple of seconds after the hour. </p> 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> audio data in Viewer mode. </span></p>
<p class=MsoNormal><b><span lang=EN-US>Viewer Launch</span></b><span <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 / lang=EN-US> by right clicking on sqlite database and selecting “open with /
Pamguard ViewerMode launcher menu option.</span></p> Pamguard ViewerMode” launcher menu option.</span></p>
<h2><span lang=EN-US>Bug Fixes</span></h2> <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 <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 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 opening on a screen area which no longer exists and move itself onto the
primary monitor. </span></p> 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 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 sorted into the correct order for processing. This caused some instability in
some detectors, causing memory leaks when new data arrived with time stamps 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 correctly sorted alphabetically </span>by file name, i.e. not including the
name of the folder containing the files.</p> 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 which mostly occurred when processing large datasets of many offline files, has
been fixed.</span></p> been fixed.</span></p>
<p class=MsoNormal><span lang=EN-US>Data Map: “Scroll To Data” pop-up menu, which <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> 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 <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 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> 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 <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 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> 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> <h2><span lang=EN-US>Bug Fixes</span></h2>
<p class=MsoNormal><span lang=EN-US>Use of localization sensor and orientation <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> 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 <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> 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 <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> mode. Now fixed. </span></p>
<p class=MsoNormal><span lang=EN-US>ROCCA: Fixed (another) memory leak which <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 <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 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> vocalise at. &nbsp;&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Hiding tool tips. A menu item to <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 seconds if they are getting in the way, particularly when trying to interact
with displays using the mouse. </span></p> 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> <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 SoundTrap autonomous recorders from Ocean Instruments, you no longer need to
decompress the SoundTrap files prior to processing. This will save time and a 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 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 <p class=MsoNormal><span lang=EN-US>Changes to GUI to make dialog shorter for
low DPI screens. </span></p> low DPI screens. </span></p>
<p class=MsoNormal><span lang=EN-US>Complete rewrite of the classification <p class=MsoNormal><span lang=EN-US>Complete rewrite of the classification system
system to have nested classifiers which can be enabled or disabled. </span></p> to have nested classifiers which can be enabled or disabled. </span></p>
<p class=MsoNormal><span lang=EN-US>Changes to classification GUI to <p class=MsoNormal><span lang=EN-US>Changes to classification GUI to
accommodate the new classification system.</span></p> accommodate the new classification system.</span></p>
@ -758,7 +775,7 @@ audio files. </span></p>
<h2><span lang=EN-US>Bug Fixes</span></h2> <h2><span lang=EN-US>Bug Fixes</span></h2>
<p class=MsoNormal><span lang=EN-US>Soundtrap DWV import. Will now generate <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> quiet conditions when no clicks were detected). </span></p>
<p class=MsoNormal><span lang=EN-US>Spectrogram. Changes to stop occasional <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 <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 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 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> option was not selected. </p>
<p class=MsoNormal>#14 Logger forms data were not plotting correctly. This was <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>&nbsp;</p>
<p class=MsoNormal>Note that updates have also been made to the Matlab <p class=MsoNormal>Note that updates have also been made to the Matlab interface
interface to PAMGuard binary files, which has now also been migrated to GitHub to PAMGuard binary files, which has now also been migrated to GitHub at <a
at <a href="https://github.com/PAMGuard/PAMGuardMatlab">https://github.com/PAMGuard/PAMGuardMatlab</a>. href="https://github.com/PAMGuard/PAMGuardMatlab">https://github.com/PAMGuard/PAMGuardMatlab</a>.
</p> </p>
<h1>&nbsp;</h1> <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 <p class=MsoNormal><b><span lang=EN-US>Detection Group Localiser</span></b><span
lang=EN-US> </span></p> 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 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 Grouper is more for organizing data into groups to be localized than it is for
doing localization.</p> 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 <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 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, lang=EN-US> </span>An implementation of the Generalized Power Law Detector,
developed by Tyler Helble ([Helble et al., A generalized power-law detection developed by Tyler Helble ([Helble et al., ‘A generalized power-law detection
algorithm for humpback whale vocalizations, The Journal of the Acoustical algorithm for humpback whale vocalizations’, The Journal of the Acoustical
Society of America, vol. 131, no. 4, pp. 26822699, 2012) is now available. For Society of America, vol. 131, no. 4, pp. 2682–2699, 2012) is now available. For
details, see the online help </p> details, see the online help </p>
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>18. </span><span <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 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 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. 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> <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 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 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 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 the new data will be written to
C:\MySurvey\binarydata_WithUID. </span></p> C:\MySurvey\binarydata_WithUID. </span></p>
<p class=MsoNormal><span lang=EN-US>The additional UID column will be added to <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 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> both data stores. </span></p>
<h3><span lang=EN-US>New Displays</span></h3> <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 <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; 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 </span><span lang=EN-US>Bug 317. Rocca Module Data Purging. </span>The ROCCA module
module was not performing data purging when using classifiers developed for Hawaii/Temperate was not performing data purging when using classifiers developed for
Pacific/North Atlantic datasets. This has been corrected.</p> 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 <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; 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 </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><b><span lang=EN-US>Other Changes</span></b></p>
<p class=MsoNormal><span lang=EN-US>The installer has been updated to handle <p class=MsoNormal><span lang=EN-US>The installer has been updated to handle both
both 64 bit and 32 bit installations. PAMGuard psf files are now registered in 64 bit and 32 bit installations. PAMGuard psf files are now registered in the
the Windows Registry, so double-clicking on a psf file should run PAMGuard in 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 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, Registry can only hold a single executable reference for psf files; therefore,
for users with multiple installations of PAMGuard, double-clicking on a psf 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; <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. 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 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 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. 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 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 <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; 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 </span><span lang=EN-US>Bug 290. Click bearings on spectrogram display plug in were
were reversed if the first hydrophone was behind the second hydrophone in the 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 configuration. This is now fixed so that it displays the same bearings as the
main click detector display. </span></p> 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 <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; 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 </span>Bug 272. File types: Some File Open / File Save dialogs were allowing selection
selection of all file types. e.g. Save Configuration As, Section of whistle of all file types. e.g. Save Configuration As, Section of whistle classifier
classifier training file, Map file Selection, These have now been changed so training file, Map file Selection, These have now been changed so that only the
that only the correct type of file can be selected.</p> correct type of file can be selected.</p>
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>2.<span <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; 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 <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; 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 </span>The Open Office Database system has been removed from the list of available
available options since it is not reliable. If you require a free database options since it is not reliable. If you require a free database solution we
solution we recommend you use the MySql Community Server <a recommend you use the MySql Community Server <a
href="http://dev.mysql.com/downloads/mysql/">http://dev.mysql.com/downloads/mysql/</a></p> 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 <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' <p class=MsoNormal>'<i>Multi Threading</i>' menu item moved from 'Detection'
(now 'Settings') to 'File'</p> (now 'Settings') to 'File'</p>
<p class=MsoNormal>'<i>Start</i>' and '<i>Stop</i>' menu items removed. <p class=MsoNormal>'<i>Start</i>' and '<i>Stop</i>' menu items removed. PAMGuard
PAMGuard should be started and stopped using the red and black buttons.</p> should be started and stopped using the red and black buttons.</p>
<p class=MsoNormal><b>New Modules</b></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 <p class=MsoNormal><i>Echo Detector and Sperm Whale IPI Computation</i> (Beta
only, Sound Measurements Group)</p> only, Sound Measurements Group)</p>
<p class=MsoNormal>These two modules, developed by Brian Miller of the <p class=MsoNormal>These two modules, developed by Brian Miller of the Australian
Australian Antarctic Division can be used to estimate the inter pulse interval Antarctic Division can be used to estimate the inter pulse interval of sperm
of sperm whale clicks. (No help available)</p> whale clicks. (No help available)</p>
<p class=MsoNormal>&nbsp;</p> <p class=MsoNormal>&nbsp;</p>

View File

@ -4,7 +4,7 @@
<groupId>org.pamguard</groupId> <groupId>org.pamguard</groupId>
<artifactId>Pamguard</artifactId> <artifactId>Pamguard</artifactId>
<name>Pamguard</name> <name>Pamguard</name>
<version>2.02.11d</version> <version>2.02.11f</version>
<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>
<organization> <organization>

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.11e</version> <version>2.02.11f</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>

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. * 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.11e"; static public final String version = "2.02.11f";
/** /**
* Release date * Release date
*/ */
static public final String date = "19 June 2024"; static public final String date = "24 June 2024";
// /** // /**
// * Release type - Beta or Core // * Release type - Beta or Core

View File

@ -472,7 +472,7 @@ final public class PamModel implements PamSettings {
mi.setModulesMenuGroup(utilitiesGroup); mi.setModulesMenuGroup(utilitiesGroup);
mi.setMaxNumber(1); mi.setMaxNumber(1);
//mi.addGUICompatabilityFlag(PamGUIManager.FX); //has FX enabled GUI. //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 (soundStore.currentRawDataMillis==0){
if (++timeErrors < 10) { 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; 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> <body>
<h1 id="pamguard-s-deep-learning-module">PAMGuard&#39;s Deep <h1 id="pamguard-s-deep-learning-module">PAMGuard&#39;s Deep
Learning Module</h1> 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. <p>You should always have deep learning models in their own folder.
Do not have any additional jar files or other programming related Do not have any additional jar files or other programming related
things (like .dll files) in the same or sub folders. This has been things (like .dll files) in the same or sub folders. This has been

View File

@ -7,20 +7,18 @@
</head> </head>
<body> <body>
<h1 id="pamguard-s-deep-learning-module">PAMGuard Deep <h1 id="pamguard-s-deep-learning-module">PAMGuard Deep Learning
Learning Module</h1> Module</h1>
<h2 id="creation-and-config">Creation and Configuration</h2>
<br> <h2 id="creating-an-instance-of-the-module">Creating an instance
<h3 id="creating-an-instance-of-the-module">Creating an instance of the module</h2>
of the module</h3>
<p> <p>
The module can be added from the <em>File&gt; Add modules &gt; The module can be added from the <em>File&gt; Add modules &gt;
Classifier &gt; Raw deep learning classifier</em> menu or by right Classifier &gt; Raw deep learning classifier</em> menu or by right
clicking in the data model. More than one instance of the module can clicking in the data model. More than one instance of the module can
be added if multiple deep learning models are required. be added if multiple deep learning models are required.
</p> </p>
<br> <h2 id="module-settings">Module settings</h2>
<h3 id="module-settings">Module settings</h3>
<p> <p>
The module settings are opened by selecting the <em>Settings &gt; The module settings are opened by selecting the <em>Settings &gt;
Raw deep learning classifier</em> menu. The main settings pane is shown Raw deep learning classifier</em> menu. The main settings pane is shown
@ -28,18 +26,18 @@
and <em>Deep Learning Model</em> and <em>Deep Learning Model</em>
</p> </p>
<p align="center"> <p align="center">
<img width="700" height="630" <img src="images/deep_leanring_module_help.png">
src="images/deep_leanring_module_help.png">
</p> </p>
<p> <p>
<em>The main settings pane for the deep learning module with <em>The main settings pane for the deep learning module with
descriptions</em> descriptions</em>
</p> </p>
<br>
<h3 id="raw-sound-data">Raw Sound Data</h3> <h3 id="raw-sound-data">Raw Sound Data</h3>
<p>The deep learning module accepts any raw data source i.e., any <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 <p>If the data is continuous, e.g. from the Sound Acquisition
module then deep learning detections are saved to PAMGuard&#39;s data module then deep learning detections are saved to PAMGuard&#39;s data
management system if they pass a user defined prediction threshold. 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 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 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> be used in downstream processes, e.g., for localisation.</p>
<br>
<h3 id="segmentation">Segmentation</h3> <h3 id="segmentation">Segmentation</h3>
<p> <p>
The segmentation section defines how the raw data is segmented. Some 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 re-merge</em> is the maximum number of segments that can form a single
data unit before a new data unit is automatically created. data unit before a new data unit is automatically created.
</p> </p>
<br>
<h3 id="deep-learning-model">Deep Learning Model</h3> <h3 id="deep-learning-model">Deep Learning Model</h3>
<p>The deep learning model section is used to select the deep <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 learning model. The drop down menu is used to select the framework the
@ -92,14 +88,12 @@
</p> </p>
<p>Once the model has loaded there some unique options depending on <p>Once the model has loaded there some unique options depending on
the currently selected framework.</p> the currently selected framework.</p>
<br>
<h4 id="generic-model">Generic Model</h4> <h4 id="generic-model">Generic Model</h4>
<p> <p>
A generic model must be set up via the <em>Advanced</em> menu button. A generic model must be set up via the <em>Advanced</em> menu button.
</p> </p>
<p align="center"> <p align="center">
<img width="700" height="700" <img src="images/advanced_settings_generic_1.png">
src="images/advanced_settings_generic_1.png">
</p> </p>
<p> <p>
@ -124,8 +118,7 @@
including the shape of the input data e.g. a 100x50 image. including the shape of the input data e.g. a 100x50 image.
</p> </p>
<p align="center"> <p align="center">
<img width="700" height="700" <img src="images/advanced_settings_generic_2.png">
src="images/advanced_settings_generic_2.png">
</p> </p>
<p> <p>
@ -146,16 +139,15 @@
transforms and input and output data whenever settings up a new transforms and input and output data whenever settings up a new
PAMGuard data model and allow easier sharing of classifiers amongst PAMGuard data model and allow easier sharing of classifiers amongst
researchers.</p> researchers.</p>
<br> <h4 id="koogu-ketos-animalspot-pamguard-zip-and-delphinid-models">Koogu,
<h4 id="animalspot-and-ketos-models">AnimalSpot and Ketos models</h4> Ketos, AnimalSpot, PAMGuard zip and delphinID models</h4>
<p> <p>
If using an AnimalSpot or Ketos model then all transforms are If using a deep learning model from a supported framework then all
automatically set up. The transforms can be viewed and altered via the transforms are automatically set up. The transforms can be viewed and
Advanced menu button but in the majority of cases these settings altered via the Advanced menu button but in the majority of cases
should not be used. It is advisable to select &quot;Use default these settings should not be used. For some models, it is advisable to
segment length&quot; to change the <em>Window length</em> to the select &quot;Use default segment length&quot; to change the <em>Window
default for the selected model. Note that this is often necessary for length</em> to the default for the selected model.
Ketos models but usually not a requirement for AnimalSpot models.
</p> </p>
<p align="center"> <p align="center">
<img width="700" height="700" <img width="700" height="700"
@ -163,18 +155,43 @@
</p> </p>
<p> <p>
<em>An AnimalSpot or Ketos model will automatically create a list <em>An AnimalSpot, Ketos or other supported deep learning model
of transforms with the appropriate settings. These is no need to use will automatically create a list of transforms with the appropriate
the advanced pane but it is there in case users wish to change settings. These is no need to use the advanced pane but it is there
transform settings for some reason</em> in case users wish to change transform settings for some reason</em>
</p> </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> <br>
<br> <br>
<p class="prevLink"><a href="rawDeepLearning_overview.html">Previous: <p class="prevLink">
Overview</a></p> <a href="rawDeepLearning_overview.html">Previous: Overview</a>
<p class="nextLink"><a href="rawDeepLearning_Running.html">Next: </p>
Running the Deep Learning module</a></p> <p class="nextLink">
<a href="rawDeepLearning_Running.html">Next: Running the Deep
Learning module</a>
</p>
<br> <br>
<br> <br>
<br> <br>

View File

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

View File

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

View File

@ -7,10 +7,11 @@
</head> </head>
<body> <body>
<h1 id="pamguard-s-deep-learning-module">PAMGuard Deep <h1 id="pamguard-s-deep-learning-module">PAMGuard&#39;s deep
Learning Module</h1> learning module</h1>
<p>Note: this module requires an internet connection upon first use
to download correct libraries.</p>
<h2 id="overview">Overview</h2> <h2 id="overview">Overview</h2>
<p>PAMGuard&#39;s deep learning module allows users to deploy a <p>PAMGuard&#39;s deep learning module allows users to deploy a
large variety of deep learning models natively in PAMGuard. It is core large variety of deep learning models natively in PAMGuard. It is core
module, fully integrated into PAMGuard&#39;s display and data module, fully integrated into PAMGuard&#39;s display and data
@ -19,9 +20,7 @@
signal and can integrate into multiple types of acoustic analysis signal and can integrate into multiple types of acoustic analysis
workflows, for example post analysis of recorder data or used as part workflows, for example post analysis of recorder data or used as part
of real time localisation workflow.</p> of real time localisation workflow.</p>
<h2 id="how-it-works">How it works</h2>
<br>
<h3 id="how-it-works">How it works</h3>
<p>The deep learning module accepts raw data from different types <p>The deep learning module accepts raw data from different types
of data sources, e.g. from the Sound Acquisition module, clicks and of data sources, e.g. from the Sound Acquisition module, clicks and
clips. It segments data into equal sized chunks with a specified 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. learning model, then can be automatically set up by PAMGuard.
Currently there are three implemented frameworks</p> Currently there are three implemented frameworks</p>
<p align="center"> <p align="center">
<img width="900" height="370" <img src="images/deep_learning_module_process.png">
src="images/deep_learning_module_process.png">
</p> </p>
<p> <p>
@ -44,7 +42,6 @@
the model are saved and can be viewed in real time (e.g. mitigation) the model are saved and can be viewed in real time (e.g. mitigation)
or in post processing (e.g. data from SoundTraps).</em> or in post processing (e.g. data from SoundTraps).</em>
</p> </p>
<br>
<h3 id="generic-model">Generic Model</h3> <h3 id="generic-model">Generic Model</h3>
<p> <p>
A generic model allows a user to load any model compatible with the <a 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 existing framework instead of a generic model as these models will
automatically generate the required transforms. automatically generate the required transforms.
</p> </p>
<br>
<h3 id="animalspot">AnimalSpot</h3> <h3 id="animalspot">AnimalSpot</h3>
<p> <p>
<a href="https://github.com/ChristianBergler/ANIMAL-SPOT">ANIMAL-SPOT</a> <a href="https://github.com/ChristianBergler/ANIMAL-SPOT">ANIMAL-SPOT</a>
is a deep learning based framework which was initially designed for <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 whale sound detection</a>) in noise heavy underwater recordings (see <a
href="https://www.nature.com/articles/s41598-019-47335-w">Bergler 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 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 AnimalSpot models will automatically set up their own data transforms
and output classes. and output classes.
</p> </p>
<br>
<h3 id="ketos">Ketos</h3> <h3 id="ketos">Ketos</h3>
<p> <p>
<a href="https://meridian.cs.dal.ca/2015/04/12/ketos/">Ketos</a> is an <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 acoustic deep learning framework based on Tensorflow and developed by
<a href="https://meridian.cs.dal.ca/">MERIDIAN</a>. It has excellent <a href="https://meridian.cs.dal.ca/">MERIDIAN</a>. It has excellent
resources and tutorials and Python libraries can be installed easily 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. transforms and output classes.
</p> </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> <br>
<br> <br>
<p class="nextLink"><a href="rawDeepLearning_CreateAndConfig.html">Next: <p class="nextLink">
Creating and Configuring the Deep Learning module</a></p> <a href="rawDeepLearning_CreateAndConfig.html">Next: Creating and
Configuring the Deep Learning module</a>
</p>
<br> <br>
<br> <br>
<br> <br>

View File

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

View File

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