Added help file for matched click classifier (#52)

* Updates to click train detector

New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
CPOD data can now build average waveforms.
CPOD click trains can be viewed in TDisplayFX pop up menu displays
Fixed Peak Frequency symbol chooser so it saves the colour box settings

* Create click_train_help.md

* Update click_train_help.md

* Screenshots

* Update click_train_help.md

* Update click_train_help.md

* Update click_train_help.md

* More screenshots

* Add screenshots

* Update click_train_help.md

* Add classifier screenshot

* Update click_train_help.md

* Update click_train_help.md

* Update click_train_help.md

* Updates and bug fixes to click train detector and CPOD importer

* Update click_train_help.md

* Update POM with latest jdl4pam

* Add screenshots for click train detector help

* Screenshots

* Update click_train_help.md

* Defult option for CPOD and porpoise to click train detector.

Also a minor

* Update pom.xml

* Bug fix for raw spectrogram in TDDisplayFX

* Update KetosClassifier.java

* Updates to click train detector

New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
CPOD data can now build average waveforms.
CPOD click trains can be viewed in TDisplayFX pop up menu displays
Fixed Peak Frequency symbol chooser so it saves the colour box settings

* Create click_train_help.md

* Update click_train_help.md

* Screenshots

* Update click_train_help.md

* More screenshots

* Update click_train_help.md

* Update click_train_help.md

* Add screenshots

* Add classifier screenshot

* Update click_train_help.md

* Updates and bug fixes to click train detector and CPOD importer

* Update click_train_help.md

* Update click_train_help.md

* Update click_train_help.md

* Update click_train_help.md

* Add screenshots for click train detector help

* Screenshots

* Update click_train_help.md

* Defult option for CPOD and porpoise to click train detector.

Also a minor

* Bug fix for raw spectrogram in TDDisplayFX

* Update KetosClassifier.java

* Fix standard classifier JSON logging

* Update click_train_help.md

* Fixed bug in sweep classifier when using SoundTrap click detections

* Added some colour averaging in the TFDisplayFX spectrgoram

* Bug fix for rainbow click bearings

Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

* Google humpback whale deep learning classifier

Google's humpback whale deep learning classifier can now be imported.
Updated TDisplayFX to make the data selection panes cleaner and clearer.
Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

* Updated the prediction plots on time display

Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

* Updates to TDisplayFX

yFIshmael now owrks with TDisplayFX
TDisplayFX UI changes to make simpler.
Some abstraction for drawing lines on TDisplayFX

* Updates to click train detector

New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
CPOD data can now build average waveforms.
CPOD click trains can be viewed in TDisplayFX pop up menu displays
Fixed Peak Frequency symbol chooser so it saves the colour box settings

* Create click_train_help.md

* Update click_train_help.md

* Screenshots

* Update click_train_help.md

* More screenshots

* Update click_train_help.md

* Update click_train_help.md

* Add screenshots

* Add classifier screenshot

* Update click_train_help.md

* Updates and bug fixes to click train detector and CPOD importer

* Update click_train_help.md

* Update click_train_help.md

* Update click_train_help.md

* Update click_train_help.md

* Add screenshots for click train detector help

* Screenshots

* Update click_train_help.md

* Defult option for CPOD and porpoise to click train detector.

Also a minor

* Updates to click train detector

New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
CPOD data can now build average waveforms.
CPOD click trains can be viewed in TDisplayFX pop up menu displays
Fixed Peak Frequency symbol chooser so it saves the colour box settings

* Create click_train_help.md

* Update click_train_help.md

* Update click_train_help.md

* Updates and bug fixes to click train detector and CPOD importer

* Bug fix for raw spectrogram in TDDisplayFX

* Update KetosClassifier.java

* Fix standard classifier JSON logging

* Fixed bug in sweep classifier when using SoundTrap click detections

* Added some colour averaging in the TFDisplayFX spectrgoram

* Bug fix for rainbow click bearings

Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

* Google humpback whale deep learning classifier

Google's humpback whale deep learning classifier can now be imported.
Updated TDisplayFX to make the data selection panes cleaner and clearer.
Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

* Updated the prediction plots on time display

Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

* Updates to TDisplayFX

yFIshmael now owrks with TDisplayFX
TDisplayFX UI changes to make simpler.
Some abstraction for drawing lines on TDisplayFX

* Merge fixes to click train detector

* Bug fix to UI

* Updates to FX GUI

* Updates to click train detector

New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
CPOD data can now build average waveforms.
CPOD click trains can be viewed in TDisplayFX pop up menu displays
Fixed Peak Frequency symbol chooser so it saves the colour box settings

* Screenshots

* Updates and bug fixes to click train detector and CPOD importer

* Updates to click train detector

New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
CPOD data can now build average waveforms.
CPOD click trains can be viewed in TDisplayFX pop up menu displays
Fixed Peak Frequency symbol chooser so it saves the colour box settings

* Updates and bug fixes to click train detector and CPOD importer

* Fix standard classifier JSON logging

* Merge fixes to click train detector

* Updates to click train detector

New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
CPOD data can now build average waveforms.
CPOD click trains can be viewed in TDisplayFX pop up menu displays
Fixed Peak Frequency symbol chooser so it saves the colour box settings

* Screenshots

* Updates and bug fixes to click train detector and CPOD importer

* Updates to click train detector

New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
CPOD data can now build average waveforms.
CPOD click trains can be viewed in TDisplayFX pop up menu displays
Fixed Peak Frequency symbol chooser so it saves the colour box settings

* Screenshots

* Updates and bug fixes to click train detector and CPOD importer

* Fix standard classifier JSON logging

* Google humpback whale deep learning classifier

Google's humpback whale deep learning classifier can now be imported.
Updated TDisplayFX to make the data selection panes cleaner and clearer.
Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

* Bug fix to UI

* Bug fixes to FX GUI

* Updates to click train detector

* Squashed commit of the following:

commit 9f998165ee
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Mon May 2 19:40:24 2022 +0100

    Updates to support ContactCollator plugin (#33)

    * Change synchronization on RawDataTransforms soit uses the owner data
    holder, not itself for synchronization. Otherwise you get thread locks.

    * fix problem in SummaryComand

    * Update command line options

    * Change synchronization on RawDataTransforms soit uses the owner data
    holder, not itself for synchronization. Otherwise you get thread locks.

    * Update command line options

    * Update DecimatorParams.java

    * couple of updates to support new contact collator plugin

    * Sorting out sample rate info in clip display to support Contact Collator
    plugin

    * FLAC Speed

    Improve flac speed

    * Update .gitignore

    * Update .gitignore

    * Updates to support new features in Contact Collator

    * Small update to RawDatautils to handle null data

* Updates to click train detector

* Squashed commit of the following:

commit 62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Sat May 14 06:52:20 2022 +0100

    Add a new offlinefileslist function

commit 3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Wed Apr 27 09:43:31 2022 +0100

    Update .gitignore

commit 9f998165ee
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Mon May 2 19:40:24 2022 +0100

    Updates to support ContactCollator plugin (#33)

    * Change synchronization on RawDataTransforms soit uses the owner data
    holder, not itself for synchronization. Otherwise you get thread locks.

    * fix problem in SummaryComand

    * Update command line options

    * Change synchronization on RawDataTransforms soit uses the owner data
    holder, not itself for synchronization. Otherwise you get thread locks.

    * Update command line options

    * Update DecimatorParams.java

    * couple of updates to support new contact collator plugin

    * Sorting out sample rate info in clip display to support Contact Collator
    plugin

    * FLAC Speed

    Improve flac speed

    * Update .gitignore

    * Update .gitignore

    * Updates to support new features in Contact Collator

    * Small update to RawDatautils to handle null data

* Updated data selector for click train detector

* Click train detector updates and bug fixes

Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

* Bug fix and improvements for Ketos

Ketos models now automatically set the correct sample length when loaded.

Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

* Updates to deep learning and FX GUI

Added some more example sounds to deep learning UI.

Updated click detector in the FX GUI.

* PAMGuard FX sound output update

* Updates to FX GUI

* Updates to FX GUI

* Update RawDataTransforms.java

* Fixes to FX UI

* Squashed commit of the following:

commit 11ba8bf91e
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Thu Aug 4 11:45:47 2022 +0100

    MErge from DG Branch (#47)

    * Variable sound output level

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

    * Code to support nogui operations when no screens present on headless
    system

    * Fix problem of nogui headless operation trying to access screen size.

    * Click detector display fixes

    1. ICI not displaying correctly
    2. Component sizes in display dialog on hres monitors

    * Work on batch processing, after testing of options to autostart,
    autoexit and set wav file folder, database and binary store.

    * Update MHTClickTrainAlgorithm.java

    Fix unsynchronised access to a datablock in click train detector which was causing index errors.

    * Revamp of offline process messaging and control

    Includes some databsae logging of completed tasks

    * Offline task logging

    Bit more work, including notes and database storage of task
    reprocessing. Guess this could all become 'proper' PAMGuard data and be
    shown in a table on the display but that not priority enough.

    * Dialog packing

    Fix a couple of dialogs which don't back well on HDPI monitors

    * UDP Control

    Added multiport functionality

commit 9a9f542d95
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Thu Aug 4 11:42:45 2022 +0100

    Merge DG to Main (#46)

    * Variable sound output level

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

    * Code to support nogui operations when no screens present on headless
    system

    * Fix problem of nogui headless operation trying to access screen size.

    * Click detector display fixes

    1. ICI not displaying correctly
    2. Component sizes in display dialog on hres monitors

    * Work on batch processing, after testing of options to autostart,
    autoexit and set wav file folder, database and binary store.

    * Update MHTClickTrainAlgorithm.java

    Fix unsynchronised access to a datablock in click train detector which was causing index errors.

    * Revamp of offline process messaging and control

    Includes some databsae logging of completed tasks

    * Offline task logging

    Bit more work, including notes and database storage of task
    reprocessing. Guess this could all become 'proper' PAMGuard data and be
    shown in a table on the display but that not priority enough.

    * Dialog packing

    Fix a couple of dialogs which don't back well on HDPI monitors

    * UDP Control

    Added multiport functionality

commit 49cd547aee
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Thu Aug 4 11:40:29 2022 +0100

    Merge DG branch (#45)

    * Variable sound output level

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

    * Code to support nogui operations when no screens present on headless
    system

    * Fix problem of nogui headless operation trying to access screen size.

    * Click detector display fixes

    1. ICI not displaying correctly
    2. Component sizes in display dialog on hres monitors

    * Work on batch processing, after testing of options to autostart,
    autoexit and set wav file folder, database and binary store.

    * Update MHTClickTrainAlgorithm.java

    Fix unsynchronised access to a datablock in click train detector which was causing index errors.

    * Revamp of offline process messaging and control

    Includes some databsae logging of completed tasks

    * Offline task logging

    Bit more work, including notes and database storage of task
    reprocessing. Guess this could all become 'proper' PAMGuard data and be
    shown in a table on the display but that not priority enough.

    * Dialog packing

    Fix a couple of dialogs which don't back well on HDPI monitors

    * UDP Control

    Added multiport functionality

commit 016cfd0da5
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Thu Aug 4 11:35:06 2022 +0100

    Dialog positioning

    New functions to better positions dialogs on screen

commit c9f2ab3e97
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Mon Aug 1 11:13:24 2022 +0100

    puch to main (#44)

    * Variable sound output level

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

    * Code to support nogui operations when no screens present on headless
    system

    * Fix problem of nogui headless operation trying to access screen size.

    * Click detector display fixes

    1. ICI not displaying correctly
    2. Component sizes in display dialog on hres monitors

    * Work on batch processing, after testing of options to autostart,
    autoexit and set wav file folder, database and binary store.

    * Update MHTClickTrainAlgorithm.java

    Fix unsynchronised access to a datablock in click train detector which was causing index errors.

    * Revamp of offline process messaging and control

    Includes some databsae logging of completed tasks

    * Offline task logging

    Bit more work, including notes and database storage of task
    reprocessing. Guess this could all become 'proper' PAMGuard data and be
    shown in a table on the display but that not priority enough.

    * Dialog packing

    Fix a couple of dialogs which don't back well on HDPI monitors

commit 55f5a3fcf1
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Mon Aug 1 10:59:36 2022 +0100

    Group detections menu

    Small changes to limit the number of menu items in "Add to existing
    group" to a maximum of 25 entries.

commit b3f6c0e665
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Fri Jul 29 10:50:45 2022 +0100

    Handle -nogui option in PamWorker

    PamWorker used to catalog files at startup (if a file folder input
    system is used). This creates a progress dialog. Stop it appearing in
    -nogui operations.

commit 8569b6b579
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Fri Jul 22 08:30:47 2022 +0100

    Click display fixes (#41)

    * Variable sound output level

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

    * Code to support nogui operations when no screens present on headless
    system

    * Fix problem of nogui headless operation trying to access screen size.

    * Click detector display fixes

    1. ICI not displaying correctly
    2. Component sizes in display dialog on hres monitors

commit 128a512ff6
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Jul 19 16:37:57 2022 +0100

    Another attempt at stopping it crashing on a headless system

    Dealing with displays that get created for clickangle vetos and a call
    to the gui in the click train detector.

commit 6eaa6e4978
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Jul 19 08:20:07 2022 +0100

    nogoi fix for headless systems. (#40)

    * Variable sound output level

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

    * Code to support nogui operations when no screens present on headless
    system

    * Fix problem of nogui headless operation trying to access screen size.

commit 9fdd30556b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Jul 12 15:53:07 2022 +0100

    Variable sound output level (#39)

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

* Bug fixes to click train detector

Fixed bug with number of coasts in the MHT Kernel
Added an option for amplitude to have a maximum
Removed print statements.

* Bug fix for click train logging

The size of the string classifers field was dynamically set - this was a bug.

* Bug fixes to the click train detector

Bearing classifier section now updates properly when dialog reopened
Fixed rare bug when garbage bot attempts to find the last data unit in a list of zero units.

* Squashed commit of the following:

commit 5a37bfe915
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Fri Aug 19 08:17:06 2022 +0100

    Changes from DG branch (#50)

    * Variable sound output level

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

    * Code to support nogui operations when no screens present on headless
    system

    * Fix problem of nogui headless operation trying to access screen size.

    * Click detector display fixes

    1. ICI not displaying correctly
    2. Component sizes in display dialog on hres monitors

    * Work on batch processing, after testing of options to autostart,
    autoexit and set wav file folder, database and binary store.

    * Update MHTClickTrainAlgorithm.java

    Fix unsynchronised access to a datablock in click train detector which was causing index errors.

    * Revamp of offline process messaging and control

    Includes some databsae logging of completed tasks

    * Offline task logging

    Bit more work, including notes and database storage of task
    reprocessing. Guess this could all become 'proper' PAMGuard data and be
    shown in a table on the display but that not priority enough.

    * Dialog packing

    Fix a couple of dialogs which don't back well on HDPI monitors

    * UDP Control

    Added multiport functionality

    * Java version

    Changes unpacker to deal with non numeric characters on Linux

    * Fix to getVersion()

    So new version of this command should now work on Linux and Windows.

    * Multiport test

    Quick tester for multiport comms

    * Spectrogram display

    Stop spectrogram display continually recreating panels since it was
    unsubscribing discarded ones and sometimes causing crash in observable
    notifications.

    * Backup manager bug

    Error if no database. Fixed.

commit b08e86e330
Author: Jamie Mac <macster110@gmail.com>
Date:   Wed Aug 17 09:16:52 2022 +0100

    Bug fix for click train detector (#49)

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * More screenshots

    * Add screenshots

    * Update click_train_help.md

    * Add classifier screenshot

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update POM with latest jdl4pam

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Update pom.xml

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * More screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots

    * Add classifier screenshot

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Fix standard classifier JSON logging

    * Update click_train_help.md

    * Fixed bug in sweep classifier when using SoundTrap click detections

    * Added some colour averaging in the TFDisplayFX spectrgoram

    * Bug fix for rainbow click bearings

    Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Updated the prediction plots on time display

    Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

    * Updates to TDisplayFX

    yFIshmael now owrks with TDisplayFX
    TDisplayFX UI changes to make simpler.
    Some abstraction for drawing lines on TDisplayFX

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * More screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots

    * Add classifier screenshot

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Fix standard classifier JSON logging

    * Fixed bug in sweep classifier when using SoundTrap click detections

    * Added some colour averaging in the TFDisplayFX spectrgoram

    * Bug fix for rainbow click bearings

    Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Updated the prediction plots on time display

    Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

    * Updates to TDisplayFX

    yFIshmael now owrks with TDisplayFX
    TDisplayFX UI changes to make simpler.
    Some abstraction for drawing lines on TDisplayFX

    * Merge fixes to click train detector

    * Bug fix to UI

    * Updates to FX GUI

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Updates and bug fixes to click train detector and CPOD importer

    * Fix standard classifier JSON logging

    * Merge fixes to click train detector

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Fix standard classifier JSON logging

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Bug fix to UI

    * Bug fixes to FX GUI

    * Updates to click train detector

    * Squashed commit of the following:

    commit 9f998165ee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon May 2 19:40:24 2022 +0100

        Updates to support ContactCollator plugin (#33)

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * fix problem in SummaryComand

        * Update command line options

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * Update command line options

        * Update DecimatorParams.java

        * couple of updates to support new contact collator plugin

        * Sorting out sample rate info in clip display to support Contact Collator
        plugin

        * FLAC Speed

        Improve flac speed

        * Update .gitignore

        * Update .gitignore

        * Updates to support new features in Contact Collator

        * Small update to RawDatautils to handle null data

    * Updates to click train detector

    * Squashed commit of the following:

    commit 62b020b320
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Sat May 14 06:52:20 2022 +0100

        Add a new offlinefileslist function

    commit 3a9a5311aa
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Wed Apr 27 09:43:31 2022 +0100

        Update .gitignore

    commit 9f998165ee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon May 2 19:40:24 2022 +0100

        Updates to support ContactCollator plugin (#33)

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * fix problem in SummaryComand

        * Update command line options

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * Update command line options

        * Update DecimatorParams.java

        * couple of updates to support new contact collator plugin

        * Sorting out sample rate info in clip display to support Contact Collator
        plugin

        * FLAC Speed

        Improve flac speed

        * Update .gitignore

        * Update .gitignore

        * Updates to support new features in Contact Collator

        * Small update to RawDatautils to handle null data

    * Updated data selector for click train detector

    * Click train detector updates and bug fixes

    Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

    Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

    * Bug fix and improvements for Ketos

    Ketos models now automatically set the correct sample length when loaded.

    Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

    * Updates to deep learning and FX GUI

    Added some more example sounds to deep learning UI.

    Updated click detector in the FX GUI.

    * PAMGuard FX sound output update

    * Updates to FX GUI

    * Updates to FX GUI

    * Update RawDataTransforms.java

    * Fixes to FX UI

    * Squashed commit of the following:

    commit 11ba8bf91e
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:45:47 2022 +0100

        MErge from DG Branch (#47)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 9a9f542d95
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:42:45 2022 +0100

        Merge DG to Main (#46)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 49cd547aee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:40:29 2022 +0100

        Merge DG branch (#45)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 016cfd0da5
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:35:06 2022 +0100

        Dialog positioning

        New functions to better positions dialogs on screen

    commit c9f2ab3e97
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon Aug 1 11:13:24 2022 +0100

        puch to main (#44)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

    commit 55f5a3fcf1
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon Aug 1 10:59:36 2022 +0100

        Group detections menu

        Small changes to limit the number of menu items in "Add to existing
        group" to a maximum of 25 entries.

    commit b3f6c0e665
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Jul 29 10:50:45 2022 +0100

        Handle -nogui option in PamWorker

        PamWorker used to catalog files at startup (if a file folder input
        system is used). This creates a progress dialog. Stop it appearing in
        -nogui operations.

    commit 8569b6b579
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Jul 22 08:30:47 2022 +0100

        Click display fixes (#41)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

    commit 128a512ff6
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 19 16:37:57 2022 +0100

        Another attempt at stopping it crashing on a headless system

        Dealing with displays that get created for clickangle vetos and a call
        to the gui in the click train detector.

    commit 6eaa6e4978
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 19 08:20:07 2022 +0100

        nogoi fix for headless systems. (#40)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

    commit 9fdd30556b
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 12 15:53:07 2022 +0100

        Variable sound output level (#39)

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

    * Bug fixes to click train detector

    Fixed bug with number of coasts in the MHT Kernel
    Added an option for amplitude to have a maximum
    Removed print statements.

    * Bug fix for click train logging

    The size of the string classifers field was dynamically set - this was a bug.

    Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>

commit ef0330173b
Author: Jamie Mac <macster110@gmail.com>
Date:   Mon Aug 8 10:32:19 2022 +0100

    Click trian detector fixes (#48)

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * More screenshots

    * Add screenshots

    * Update click_train_help.md

    * Add classifier screenshot

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update POM with latest jdl4pam

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Update pom.xml

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * More screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots

    * Add classifier screenshot

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Fix standard classifier JSON logging

    * Update click_train_help.md

    * Fixed bug in sweep classifier when using SoundTrap click detections

    * Added some colour averaging in the TFDisplayFX spectrgoram

    * Bug fix for rainbow click bearings

    Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Updated the prediction plots on time display

    Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

    * Updates to TDisplayFX

    yFIshmael now owrks with TDisplayFX
    TDisplayFX UI changes to make simpler.
    Some abstraction for drawing lines on TDisplayFX

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * More screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots

    * Add classifier screenshot

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Fix standard classifier JSON logging

    * Fixed bug in sweep classifier when using SoundTrap click detections

    * Added some colour averaging in the TFDisplayFX spectrgoram

    * Bug fix for rainbow click bearings

    Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Updated the prediction plots on time display

    Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

    * Updates to TDisplayFX

    yFIshmael now owrks with TDisplayFX
    TDisplayFX UI changes to make simpler.
    Some abstraction for drawing lines on TDisplayFX

    * Merge fixes to click train detector

    * Bug fix to UI

    * Updates to FX GUI

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Updates and bug fixes to click train detector and CPOD importer

    * Fix standard classifier JSON logging

    * Merge fixes to click train detector

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Fix standard classifier JSON logging

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Bug fix to UI

    * Bug fixes to FX GUI

    * Updates to click train detector

    * Squashed commit of the following:

    commit 9f998165ee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon May 2 19:40:24 2022 +0100

        Updates to support ContactCollator plugin (#33)

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * fix problem in SummaryComand

        * Update command line options

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * Update command line options

        * Update DecimatorParams.java

        * couple of updates to support new contact collator plugin

        * Sorting out sample rate info in clip display to support Contact Collator
        plugin

        * FLAC Speed

        Improve flac speed

        * Update .gitignore

        * Update .gitignore

        * Updates to support new features in Contact Collator

        * Small update to RawDatautils to handle null data

    * Updates to click train detector

    * Squashed commit of the following:

    commit 62b020b320
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Sat May 14 06:52:20 2022 +0100

        Add a new offlinefileslist function

    commit 3a9a5311aa
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Wed Apr 27 09:43:31 2022 +0100

        Update .gitignore

    commit 9f998165ee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon May 2 19:40:24 2022 +0100

        Updates to support ContactCollator plugin (#33)

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * fix problem in SummaryComand

        * Update command line options

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * Update command line options

        * Update DecimatorParams.java

        * couple of updates to support new contact collator plugin

        * Sorting out sample rate info in clip display to support Contact Collator
        plugin

        * FLAC Speed

        Improve flac speed

        * Update .gitignore

        * Update .gitignore

        * Updates to support new features in Contact Collator

        * Small update to RawDatautils to handle null data

    * Updated data selector for click train detector

    * Click train detector updates and bug fixes

    Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

    Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

    * Bug fix and improvements for Ketos

    Ketos models now automatically set the correct sample length when loaded.

    Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

    * Updates to deep learning and FX GUI

    Added some more example sounds to deep learning UI.

    Updated click detector in the FX GUI.

    * PAMGuard FX sound output update

    * Updates to FX GUI

    * Updates to FX GUI

    * Update RawDataTransforms.java

    * Fixes to FX UI

    * Squashed commit of the following:

    commit 11ba8bf91e
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:45:47 2022 +0100

        MErge from DG Branch (#47)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 9a9f542d95
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:42:45 2022 +0100

        Merge DG to Main (#46)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 49cd547aee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:40:29 2022 +0100

        Merge DG branch (#45)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 016cfd0da5
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:35:06 2022 +0100

        Dialog positioning

        New functions to better positions dialogs on screen

    commit c9f2ab3e97
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon Aug 1 11:13:24 2022 +0100

        puch to main (#44)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

    commit 55f5a3fcf1
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon Aug 1 10:59:36 2022 +0100

        Group detections menu

        Small changes to limit the number of menu items in "Add to existing
        group" to a maximum of 25 entries.

    commit b3f6c0e665
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Jul 29 10:50:45 2022 +0100

        Handle -nogui option in PamWorker

        PamWorker used to catalog files at startup (if a file folder input
        system is used). This creates a progress dialog. Stop it appearing in
        -nogui operations.

    commit 8569b6b579
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Jul 22 08:30:47 2022 +0100

        Click display fixes (#41)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

    commit 128a512ff6
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 19 16:37:57 2022 +0100

        Another attempt at stopping it crashing on a headless system

        Dealing with displays that get created for clickangle vetos and a call
        to the gui in the click train detector.

    commit 6eaa6e4978
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 19 08:20:07 2022 +0100

        nogoi fix for headless systems. (#40)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

    commit 9fdd30556b
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 12 15:53:07 2022 +0100

        Variable sound output level (#39)

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

    * Bug fixes to click train detector

    Fixed bug with number of coasts in the MHT Kernel
    Added an option for amplitude to have a maximum
    Removed print statements.

    Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>

* Update DLModelWorker.java

* Create matched_click_classifer_help.md

* Update help files for matched click classifier

* Update matched_click_classifer_help.md

* Update matched_click_classifer_help.md

* New screenshots got help files

* New screenshot

* Update matched_click_classifer_help.md

New help file for the matched click classified.

* Update matched_click_classifer_help.md

* Squashed commit of the following:

commit 6b15b3d536
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Aug 23 15:21:28 2022 +0100

    Change min java version to 11 which should be ok on some embedded
    systems.

commit 4b3a37636b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Aug 23 14:30:46 2022 +0100

    CTD Fixes

    Couple more fixes to menus and datablock selection

commit c641c58e4f
Author: Jamie Mac <macster110@gmail.com>
Date:   Tue Aug 23 14:19:28 2022 +0100

    Bug fixes to click train detector (#51)

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * More screenshots

    * Add screenshots

    * Update click_train_help.md

    * Add classifier screenshot

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update POM with latest jdl4pam

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Update pom.xml

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * More screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots

    * Add classifier screenshot

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Fix standard classifier JSON logging

    * Update click_train_help.md

    * Fixed bug in sweep classifier when using SoundTrap click detections

    * Added some colour averaging in the TFDisplayFX spectrgoram

    * Bug fix for rainbow click bearings

    Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Updated the prediction plots on time display

    Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

    * Updates to TDisplayFX

    yFIshmael now owrks with TDisplayFX
    TDisplayFX UI changes to make simpler.
    Some abstraction for drawing lines on TDisplayFX

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * More screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots

    * Add classifier screenshot

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Fix standard classifier JSON logging

    * Fixed bug in sweep classifier when using SoundTrap click detections

    * Added some colour averaging in the TFDisplayFX spectrgoram

    * Bug fix for rainbow click bearings

    Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Updated the prediction plots on time display

    Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

    * Updates to TDisplayFX

    yFIshmael now owrks with TDisplayFX
    TDisplayFX UI changes to make simpler.
    Some abstraction for drawing lines on TDisplayFX

    * Merge fixes to click train detector

    * Bug fix to UI

    * Updates to FX GUI

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Updates and bug fixes to click train detector and CPOD importer

    * Fix standard classifier JSON logging

    * Merge fixes to click train detector

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Fix standard classifier JSON logging

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Bug fix to UI

    * Bug fixes to FX GUI

    * Updates to click train detector

    * Squashed commit of the following:

    commit 9f998165ee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon May 2 19:40:24 2022 +0100

        Updates to support ContactCollator plugin (#33)

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * fix problem in SummaryComand

        * Update command line options

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * Update command line options

        * Update DecimatorParams.java

        * couple of updates to support new contact collator plugin

        * Sorting out sample rate info in clip display to support Contact Collator
        plugin

        * FLAC Speed

        Improve flac speed

        * Update .gitignore

        * Update .gitignore

        * Updates to support new features in Contact Collator

        * Small update to RawDatautils to handle null data

    * Updates to click train detector

    * Squashed commit of the following:

    commit 62b020b320
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Sat May 14 06:52:20 2022 +0100

        Add a new offlinefileslist function

    commit 3a9a5311aa
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Wed Apr 27 09:43:31 2022 +0100

        Update .gitignore

    commit 9f998165ee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon May 2 19:40:24 2022 +0100

        Updates to support ContactCollator plugin (#33)

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * fix problem in SummaryComand

        * Update command line options

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * Update command line options

        * Update DecimatorParams.java

        * couple of updates to support new contact collator plugin

        * Sorting out sample rate info in clip display to support Contact Collator
        plugin

        * FLAC Speed

        Improve flac speed

        * Update .gitignore

        * Update .gitignore

        * Updates to support new features in Contact Collator

        * Small update to RawDatautils to handle null data

    * Updated data selector for click train detector

    * Click train detector updates and bug fixes

    Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

    Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

    * Bug fix and improvements for Ketos

    Ketos models now automatically set the correct sample length when loaded.

    Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

    * Updates to deep learning and FX GUI

    Added some more example sounds to deep learning UI.

    Updated click detector in the FX GUI.

    * PAMGuard FX sound output update

    * Updates to FX GUI

    * Updates to FX GUI

    * Update RawDataTransforms.java

    * Fixes to FX UI

    * Squashed commit of the following:

    commit 11ba8bf91e
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:45:47 2022 +0100

        MErge from DG Branch (#47)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 9a9f542d95
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:42:45 2022 +0100

        Merge DG to Main (#46)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 49cd547aee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:40:29 2022 +0100

        Merge DG branch (#45)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 016cfd0da5
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:35:06 2022 +0100

        Dialog positioning

        New functions to better positions dialogs on screen

    commit c9f2ab3e97
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon Aug 1 11:13:24 2022 +0100

        puch to main (#44)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

    commit 55f5a3fcf1
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon Aug 1 10:59:36 2022 +0100

        Group detections menu

        Small changes to limit the number of menu items in "Add to existing
        group" to a maximum of 25 entries.

    commit b3f6c0e665
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Jul 29 10:50:45 2022 +0100

        Handle -nogui option in PamWorker

        PamWorker used to catalog files at startup (if a file folder input
        system is used). This creates a progress dialog. Stop it appearing in
        -nogui operations.

    commit 8569b6b579
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Jul 22 08:30:47 2022 +0100

        Click display fixes (#41)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

    commit 128a512ff6
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 19 16:37:57 2022 +0100

        Another attempt at stopping it crashing on a headless system

        Dealing with displays that get created for clickangle vetos and a call
        to the gui in the click train detector.

    commit 6eaa6e4978
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 19 08:20:07 2022 +0100

        nogoi fix for headless systems. (#40)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

    commit 9fdd30556b
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 12 15:53:07 2022 +0100

        Variable sound output level (#39)

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

    * Bug fixes to click train detector

    Fixed bug with number of coasts in the MHT Kernel
    Added an option for amplitude to have a maximum
    Removed print statements.

    * Bug fix for click train logging

    The size of the string classifers field was dynamically set - this was a bug.

    * Bug fixes to the click train detector

    Bearing classifier section now updates properly when dialog reopened
    Fixed rare bug when garbage bot attempts to find the last data unit in a list of zero units.

    * Squashed commit of the following:

    commit 5a37bfe915
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Aug 19 08:17:06 2022 +0100

        Changes from DG branch (#50)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

        * Java version

        Changes unpacker to deal with non numeric characters on Linux

        * Fix to getVersion()

        So new version of this command should now work on Linux and Windows.

        * Multiport test

        Quick tester for multiport comms

        * Spectrogram display

        Stop spectrogram display continually recreating panels since it was
        unsubscribing discarded ones and sometimes causing crash in observable
        notifications.

        * Backup manager bug

        Error if no database. Fixed.

    commit b08e86e330
    Author: Jamie Mac <macster110@gmail.com>
    Date:   Wed Aug 17 09:16:52 2022 +0100

        Bug fix for click train detector (#49)

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * More screenshots

        * Add screenshots

        * Update click_train_help.md

        * Add classifier screenshot

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update POM with latest jdl4pam

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Update pom.xml

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * More screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots

        * Add classifier screenshot

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Fix standard classifier JSON logging

        * Update click_train_help.md

        * Fixed bug in sweep classifier when using SoundTrap click detections

        * Added some colour averaging in the TFDisplayFX spectrgoram

        * Bug fix for rainbow click bearings

        Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Updated the prediction plots on time display

        Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

        * Updates to TDisplayFX

        yFIshmael now owrks with TDisplayFX
        TDisplayFX UI changes to make simpler.
        Some abstraction for drawing lines on TDisplayFX

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * More screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots

        * Add classifier screenshot

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Fix standard classifier JSON logging

        * Fixed bug in sweep classifier when using SoundTrap click detections

        * Added some colour averaging in the TFDisplayFX spectrgoram

        * Bug fix for rainbow click bearings

        Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Updated the prediction plots on time display

        Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

        * Updates to TDisplayFX

        yFIshmael now owrks with TDisplayFX
        TDisplayFX UI changes to make simpler.
        Some abstraction for drawing lines on TDisplayFX

        * Merge fixes to click train detector

        * Bug fix to UI

        * Updates to FX GUI

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Updates and bug fixes to click train detector and CPOD importer

        * Fix standard classifier JSON logging

        * Merge fixes to click train detector

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Fix standard classifier JSON logging

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Bug fix to UI

        * Bug fixes to FX GUI

        * Updates to click train detector

        * Squashed commit of the following:

        commit 9f998165ee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon May 2 19:40:24 2022 +0100

            Updates to support ContactCollator plugin (#33)

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * fix problem in SummaryComand

            * Update command line options

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * Update command line options

            * Update DecimatorParams.java

            * couple of updates to support new contact collator plugin

            * Sorting out sample rate info in clip display to support Contact Collator
            plugin

            * FLAC Speed

            Improve flac speed

            * Update .gitignore

            * Update .gitignore

            * Updates to support new features in Contact Collator

            * Small update to RawDatautils to handle null data

        * Updates to click train detector

        * Squashed commit of the following:

        commit 62b020b320
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Sat May 14 06:52:20 2022 +0100

            Add a new offlinefileslist function

        commit 3a9a5311aa
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Wed Apr 27 09:43:31 2022 +0100

            Update .gitignore

        commit 9f998165ee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon May 2 19:40:24 2022 +0100

            Updates to support ContactCollator plugin (#33)

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * fix problem in SummaryComand

            * Update command line options

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * Update command line options

            * Update DecimatorParams.java

            * couple of updates to support new contact collator plugin

            * Sorting out sample rate info in clip display to support Contact Collator
            plugin

            * FLAC Speed

            Improve flac speed

            * Update .gitignore

            * Update .gitignore

            * Updates to support new features in Contact Collator

            * Small update to RawDatautils to handle null data

        * Updated data selector for click train detector

        * Click train detector updates and bug fixes

        Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

        Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

        * Bug fix and improvements for Ketos

        Ketos models now automatically set the correct sample length when loaded.

        Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

        * Updates to deep learning and FX GUI

        Added some more example sounds to deep learning UI.

        Updated click detector in the FX GUI.

        * PAMGuard FX sound output update

        * Updates to FX GUI

        * Updates to FX GUI

        * Update RawDataTransforms.java

        * Fixes to FX UI

        * Squashed commit of the following:

        commit 11ba8bf91e
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:45:47 2022 +0100

            MErge from DG Branch (#47)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

            * UDP Control

            Added multiport functionality

        commit 9a9f542d95
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:42:45 2022 +0100

            Merge DG to Main (#46)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

            * UDP Control

            Added multiport functionality

        commit 49cd547aee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:40:29 2022 +0100

            Merge DG branch (#45)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

            * UDP Control

            Added multiport functionality

        commit 016cfd0da5
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:35:06 2022 +0100

            Dialog positioning

            New functions to better positions dialogs on screen

        commit c9f2ab3e97
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon Aug 1 11:13:24 2022 +0100

            puch to main (#44)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

        commit 55f5a3fcf1
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon Aug 1 10:59:36 2022 +0100

            Group detections menu

            Small changes to limit the number of menu items in "Add to existing
            group" to a maximum of 25 entries.

        commit b3f6c0e665
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Fri Jul 29 10:50:45 2022 +0100

            Handle -nogui option in PamWorker

            PamWorker used to catalog files at startup (if a file folder input
            system is used). This creates a progress dialog. Stop it appearing in
            -nogui operations.

        commit 8569b6b579
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Fri Jul 22 08:30:47 2022 +0100

            Click display fixes (#41)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

        commit 128a512ff6
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Tue Jul 19 16:37:57 2022 +0100

            Another attempt at stopping it crashing on a headless system

            Dealing with displays that get created for clickangle vetos and a call
            to the gui in the click train detector.

        commit 6eaa6e4978
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Tue Jul 19 08:20:07 2022 +0100

            nogoi fix for headless systems. (#40)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

        commit 9fdd30556b
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Tue Jul 12 15:53:07 2022 +0100

            Variable sound output level (#39)

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

        * Bug fixes to click train detector

        Fixed bug with number of coasts in the MHT Kernel
        Added an option for amplitude to have a maximum
        Removed print statements.

        * Bug fix for click train logging

        The size of the string classifers field was dynamically set - this was a bug.

        Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>

    commit ef0330173b
    Author: Jamie Mac <macster110@gmail.com>
    Date:   Mon Aug 8 10:32:19 2022 +0100

        Click trian detector fixes (#48)

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * More screenshots

        * Add screenshots

        * Update click_train_help.md

        * Add classifier screenshot

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update POM with latest jdl4pam

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Update pom.xml

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * More screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots

        * Add classifier screenshot

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Fix standard classifier JSON logging

        * Update click_train_help.md

        * Fixed bug in sweep classifier when using SoundTrap click detections

        * Added some colour averaging in the TFDisplayFX spectrgoram

        * Bug fix for rainbow click bearings

        Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Updated the prediction plots on time display

        Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

        * Updates to TDisplayFX

        yFIshmael now owrks with TDisplayFX
        TDisplayFX UI changes to make simpler.
        Some abstraction for drawing lines on TDisplayFX

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * More screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots

        * Add classifier screenshot

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Fix standard classifier JSON logging

        * Fixed bug in sweep classifier when using SoundTrap click detections

        * Added some colour averaging in the TFDisplayFX spectrgoram

        * Bug fix for rainbow click bearings

        Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Updated the prediction plots on time display

        Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

        * Updates to TDisplayFX

        yFIshmael now owrks with TDisplayFX
        TDisplayFX UI changes to make simpler.
        Some abstraction for drawing lines on TDisplayFX

        * Merge fixes to click train detector

        * Bug fix to UI

        * Updates to FX GUI

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Updates and bug fixes to click train detector and CPOD importer

        * Fix standard classifier JSON logging

        * Merge fixes to click train detector

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Fix standard classifier JSON logging

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Bug fix to UI

        * Bug fixes to FX GUI

        * Updates to click train detector

        * Squashed commit of the following:

        commit 9f998165ee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon May 2 19:40:24 2022 +0100

            Updates to support ContactCollator plugin (#33)

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * fix problem in SummaryComand

            * Update command line options

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * Update command line options

            * Update DecimatorParams.java

            * couple of updates to support new contact collator plugin

            * Sorting out sample rate info in clip display to support Contact Collator
            plugin

            * FLAC Speed

            Improve flac speed

            * Update .gitignore

            * Update .gitignore

            * Updates to support new features in Contact Collator

            * Small update to RawDatautils to handle null data

        * Updates to click train detector

        * Squashed commit of the following:

        commit 62b020b320
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Sat May 14 06:52:20 2022 +0100

            Add a new offlinefileslist function

        commit 3a9a5311aa
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Wed Apr 27 09:43:31 2022 +0100

            Update .gitignore

        commit 9f998165ee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon May 2 19:40:24 2022 +0100

            Updates to support ContactCollator plugin (#33)

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * fix problem in SummaryComand

            * Update command line options

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * Update command line options

            * Update DecimatorParams.java

            * couple of updates to support new contact collator plugin

            * Sorting out sample rate info in clip display to support Contact Collator
            plugin

            * FLAC Speed

            Improve flac speed

            * Update .gitignore

            * Update .gitignore

            * Updates to support new features in Contact Collator

            * Small update to RawDatautils to handle null data

        * Updated data selector for click train detector

        * Click train detector updates and bug fixes

        Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

        Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

        * Bug fix and improvements for Ketos

        Ketos models now automatically set the correct sample length when loaded.

        Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

        * Updates to deep learning and FX GUI

        Added some more example sounds to deep learning UI.

        Updated click detector in the FX GUI.

        * PAMGuard FX sound output update

        * Updates to FX GUI

        * Updates to FX GUI

        * Update RawDataTransforms.java

        * Fixes to FX UI

        * Squashed commit of the following:

        commit 11ba8bf91e
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:45:47 2022 +0100

            MErge from DG Branch (#47)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

            * UDP Control

            Added multiport functionality

        commit 9a9f542d95
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:42:45 2022 +0100

            Merge DG to Main (#46)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised …

* Bug fixes to the matched click classifier

The matched click classifier was not working when an in built click classifier was used. This was caused by an index out of bounds exception in the alarm system.

Added new features;
* The Time base display now exports sample rate to .mat files.
* Bug fix file separator on time base display so it works on mac and Linux
* Matched click classifier imports the first click in a list of click structures as a template.
* Changed default length for restricted bins to 2048.

* Add picture for help file

* Update matched_click_classifer_help.md

* Update matched_click_classifer_help.md

* Squashed commit of the following:

commit b01cb4d100
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Sep 13 11:19:31 2022 +0100

    Fix bug in 3DOffline task

    Problems with making catalogue of offline tasks. not important for now,
    but needs revisiting.

commit ae6e2f947b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Sep 13 09:12:34 2022 +0100

    Merge Dougs fork (#53)

    * Variable sound output level

    Mods to SoundPlayback module to allow additional parameters. Implemented
    system for NI cards to allow changes to selected output voltage range
    meaning output can be boosted to level higher than current default.

    * Code to support nogui operations when no screens present on headless
    system

    * Fix problem of nogui headless operation trying to access screen size.

    * Click detector display fixes

    1. ICI not displaying correctly
    2. Component sizes in display dialog on hres monitors

    * Work on batch processing, after testing of options to autostart,
    autoexit and set wav file folder, database and binary store.

    * Update MHTClickTrainAlgorithm.java

    Fix unsynchronised access to a datablock in click train detector which was causing index errors.

    * Revamp of offline process messaging and control

    Includes some databsae logging of completed tasks

    * Offline task logging

    Bit more work, including notes and database storage of task
    reprocessing. Guess this could all become 'proper' PAMGuard data and be
    shown in a table on the display but that not priority enough.

    * Dialog packing

    Fix a couple of dialogs which don't back well on HDPI monitors

    * UDP Control

    Added multiport functionality

    * Java version

    Changes unpacker to deal with non numeric characters on Linux

    * Fix to getVersion()

    So new version of this command should now work on Linux and Windows.

    * Multiport test

    Quick tester for multiport comms

    * Spectrogram display

    Stop spectrogram display continually recreating panels since it was
    unsubscribing discarded ones and sometimes causing crash in observable
    notifications.

    * Backup manager bug

    Error if no database. Fixed.

    * Daylight saving problem

    Fix daylight saving problem in generation of timestamps in SQLTypes. See long explanation in SQLTypes.java. Only occurred in the hour after daylight saving starts.

commit cd89c65d7c
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Sep 13 09:07:11 2022 +0100

    Fix synchronization problem in RawDataTransfroms

commit 6b15b3d536
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Aug 23 15:21:28 2022 +0100

    Change min java version to 11 which should be ok on some embedded
    systems.

commit 4b3a37636b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
Date:   Tue Aug 23 14:30:46 2022 +0100

    CTD Fixes

    Couple more fixes to menus and datablock selection

commit c641c58e4f
Author: Jamie Mac <macster110@gmail.com>
Date:   Tue Aug 23 14:19:28 2022 +0100

    Bug fixes to click train detector (#51)

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * More screenshots

    * Add screenshots

    * Update click_train_help.md

    * Add classifier screenshot

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update POM with latest jdl4pam

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Update pom.xml

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * More screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots

    * Add classifier screenshot

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Fix standard classifier JSON logging

    * Update click_train_help.md

    * Fixed bug in sweep classifier when using SoundTrap click detections

    * Added some colour averaging in the TFDisplayFX spectrgoram

    * Bug fix for rainbow click bearings

    Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Updated the prediction plots on time display

    Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

    * Updates to TDisplayFX

    yFIshmael now owrks with TDisplayFX
    TDisplayFX UI changes to make simpler.
    Some abstraction for drawing lines on TDisplayFX

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Screenshots

    * Update click_train_help.md

    * More screenshots

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots

    * Add classifier screenshot

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Add screenshots for click train detector help

    * Screenshots

    * Update click_train_help.md

    * Defult option for CPOD and porpoise to click train detector.

    Also a minor

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Create click_train_help.md

    * Update click_train_help.md

    * Update click_train_help.md

    * Updates and bug fixes to click train detector and CPOD importer

    * Bug fix for raw spectrogram in TDDisplayFX

    * Update KetosClassifier.java

    * Fix standard classifier JSON logging

    * Fixed bug in sweep classifier when using SoundTrap click detections

    * Added some colour averaging in the TFDisplayFX spectrgoram

    * Bug fix for rainbow click bearings

    Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Updated the prediction plots on time display

    Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

    * Updates to TDisplayFX

    yFIshmael now owrks with TDisplayFX
    TDisplayFX UI changes to make simpler.
    Some abstraction for drawing lines on TDisplayFX

    * Merge fixes to click train detector

    * Bug fix to UI

    * Updates to FX GUI

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Updates and bug fixes to click train detector and CPOD importer

    * Fix standard classifier JSON logging

    * Merge fixes to click train detector

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Updates to click train detector

    New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
    CPOD data can now build average waveforms.
    CPOD click trains can be viewed in TDisplayFX pop up menu displays
    Fixed Peak Frequency symbol chooser so it saves the colour box settings

    * Screenshots

    * Updates and bug fixes to click train detector and CPOD importer

    * Fix standard classifier JSON logging

    * Google humpback whale deep learning classifier

    Google's humpback whale deep learning classifier can now be imported.
    Updated TDisplayFX to make the data selection panes cleaner and clearer.
    Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

    * Bug fix to UI

    * Bug fixes to FX GUI

    * Updates to click train detector

    * Squashed commit of the following:

    commit 9f998165ee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon May 2 19:40:24 2022 +0100

        Updates to support ContactCollator plugin (#33)

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * fix problem in SummaryComand

        * Update command line options

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * Update command line options

        * Update DecimatorParams.java

        * couple of updates to support new contact collator plugin

        * Sorting out sample rate info in clip display to support Contact Collator
        plugin

        * FLAC Speed

        Improve flac speed

        * Update .gitignore

        * Update .gitignore

        * Updates to support new features in Contact Collator

        * Small update to RawDatautils to handle null data

    * Updates to click train detector

    * Squashed commit of the following:

    commit 62b020b320
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Sat May 14 06:52:20 2022 +0100

        Add a new offlinefileslist function

    commit 3a9a5311aa
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Wed Apr 27 09:43:31 2022 +0100

        Update .gitignore

    commit 9f998165ee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon May 2 19:40:24 2022 +0100

        Updates to support ContactCollator plugin (#33)

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * fix problem in SummaryComand

        * Update command line options

        * Change synchronization on RawDataTransforms soit uses the owner data
        holder, not itself for synchronization. Otherwise you get thread locks.

        * Update command line options

        * Update DecimatorParams.java

        * couple of updates to support new contact collator plugin

        * Sorting out sample rate info in clip display to support Contact Collator
        plugin

        * FLAC Speed

        Improve flac speed

        * Update .gitignore

        * Update .gitignore

        * Updates to support new features in Contact Collator

        * Small update to RawDatautils to handle null data

    * Updated data selector for click train detector

    * Click train detector updates and bug fixes

    Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

    Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

    * Bug fix and improvements for Ketos

    Ketos models now automatically set the correct sample length when loaded.

    Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

    * Updates to deep learning and FX GUI

    Added some more example sounds to deep learning UI.

    Updated click detector in the FX GUI.

    * PAMGuard FX sound output update

    * Updates to FX GUI

    * Updates to FX GUI

    * Update RawDataTransforms.java

    * Fixes to FX UI

    * Squashed commit of the following:

    commit 11ba8bf91e
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:45:47 2022 +0100

        MErge from DG Branch (#47)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 9a9f542d95
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:42:45 2022 +0100

        Merge DG to Main (#46)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 49cd547aee
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:40:29 2022 +0100

        Merge DG branch (#45)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

    commit 016cfd0da5
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Thu Aug 4 11:35:06 2022 +0100

        Dialog positioning

        New functions to better positions dialogs on screen

    commit c9f2ab3e97
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon Aug 1 11:13:24 2022 +0100

        puch to main (#44)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

    commit 55f5a3fcf1
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Mon Aug 1 10:59:36 2022 +0100

        Group detections menu

        Small changes to limit the number of menu items in "Add to existing
        group" to a maximum of 25 entries.

    commit b3f6c0e665
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Jul 29 10:50:45 2022 +0100

        Handle -nogui option in PamWorker

        PamWorker used to catalog files at startup (if a file folder input
        system is used). This creates a progress dialog. Stop it appearing in
        -nogui operations.

    commit 8569b6b579
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Jul 22 08:30:47 2022 +0100

        Click display fixes (#41)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

    commit 128a512ff6
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 19 16:37:57 2022 +0100

        Another attempt at stopping it crashing on a headless system

        Dealing with displays that get created for clickangle vetos and a call
        to the gui in the click train detector.

    commit 6eaa6e4978
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 19 08:20:07 2022 +0100

        nogoi fix for headless systems. (#40)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

    commit 9fdd30556b
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Tue Jul 12 15:53:07 2022 +0100

        Variable sound output level (#39)

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

    * Bug fixes to click train detector

    Fixed bug with number of coasts in the MHT Kernel
    Added an option for amplitude to have a maximum
    Removed print statements.

    * Bug fix for click train logging

    The size of the string classifers field was dynamically set - this was a bug.

    * Bug fixes to the click train detector

    Bearing classifier section now updates properly when dialog reopened
    Fixed rare bug when garbage bot attempts to find the last data unit in a list of zero units.

    * Squashed commit of the following:

    commit 5a37bfe915
    Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
    Date:   Fri Aug 19 08:17:06 2022 +0100

        Changes from DG branch (#50)

        * Variable sound output level

        Mods to SoundPlayback module to allow additional parameters. Implemented
        system for NI cards to allow changes to selected output voltage range
        meaning output can be boosted to level higher than current default.

        * Code to support nogui operations when no screens present on headless
        system

        * Fix problem of nogui headless operation trying to access screen size.

        * Click detector display fixes

        1. ICI not displaying correctly
        2. Component sizes in display dialog on hres monitors

        * Work on batch processing, after testing of options to autostart,
        autoexit and set wav file folder, database and binary store.

        * Update MHTClickTrainAlgorithm.java

        Fix unsynchronised access to a datablock in click train detector which was causing index errors.

        * Revamp of offline process messaging and control

        Includes some databsae logging of completed tasks

        * Offline task logging

        Bit more work, including notes and database storage of task
        reprocessing. Guess this could all become 'proper' PAMGuard data and be
        shown in a table on the display but that not priority enough.

        * Dialog packing

        Fix a couple of dialogs which don't back well on HDPI monitors

        * UDP Control

        Added multiport functionality

        * Java version

        Changes unpacker to deal with non numeric characters on Linux

        * Fix to getVersion()

        So new version of this command should now work on Linux and Windows.

        * Multiport test

        Quick tester for multiport comms

        * Spectrogram display

        Stop spectrogram display continually recreating panels since it was
        unsubscribing discarded ones and sometimes causing crash in observable
        notifications.

        * Backup manager bug

        Error if no database. Fixed.

    commit b08e86e330
    Author: Jamie Mac <macster110@gmail.com>
    Date:   Wed Aug 17 09:16:52 2022 +0100

        Bug fix for click train detector (#49)

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * More screenshots

        * Add screenshots

        * Update click_train_help.md

        * Add classifier screenshot

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update POM with latest jdl4pam

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Update pom.xml

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * More screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots

        * Add classifier screenshot

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Fix standard classifier JSON logging

        * Update click_train_help.md

        * Fixed bug in sweep classifier when using SoundTrap click detections

        * Added some colour averaging in the TFDisplayFX spectrgoram

        * Bug fix for rainbow click bearings

        Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Updated the prediction plots on time display

        Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

        * Updates to TDisplayFX

        yFIshmael now owrks with TDisplayFX
        TDisplayFX UI changes to make simpler.
        Some abstraction for drawing lines on TDisplayFX

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * More screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots

        * Add classifier screenshot

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Fix standard classifier JSON logging

        * Fixed bug in sweep classifier when using SoundTrap click detections

        * Added some colour averaging in the TFDisplayFX spectrgoram

        * Bug fix for rainbow click bearings

        Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Updated the prediction plots on time display

        Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

        * Updates to TDisplayFX

        yFIshmael now owrks with TDisplayFX
        TDisplayFX UI changes to make simpler.
        Some abstraction for drawing lines on TDisplayFX

        * Merge fixes to click train detector

        * Bug fix to UI

        * Updates to FX GUI

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Updates and bug fixes to click train detector and CPOD importer

        * Fix standard classifier JSON logging

        * Merge fixes to click train detector

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Fix standard classifier JSON logging

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Bug fix to UI

        * Bug fixes to FX GUI

        * Updates to click train detector

        * Squashed commit of the following:

        commit 9f998165ee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon May 2 19:40:24 2022 +0100

            Updates to support ContactCollator plugin (#33)

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * fix problem in SummaryComand

            * Update command line options

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * Update command line options

            * Update DecimatorParams.java

            * couple of updates to support new contact collator plugin

            * Sorting out sample rate info in clip display to support Contact Collator
            plugin

            * FLAC Speed

            Improve flac speed

            * Update .gitignore

            * Update .gitignore

            * Updates to support new features in Contact Collator

            * Small update to RawDatautils to handle null data

        * Updates to click train detector

        * Squashed commit of the following:

        commit 62b020b320
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Sat May 14 06:52:20 2022 +0100

            Add a new offlinefileslist function

        commit 3a9a5311aa
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Wed Apr 27 09:43:31 2022 +0100

            Update .gitignore

        commit 9f998165ee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon May 2 19:40:24 2022 +0100

            Updates to support ContactCollator plugin (#33)

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * fix problem in SummaryComand

            * Update command line options

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * Update command line options

            * Update DecimatorParams.java

            * couple of updates to support new contact collator plugin

            * Sorting out sample rate info in clip display to support Contact Collator
            plugin

            * FLAC Speed

            Improve flac speed

            * Update .gitignore

            * Update .gitignore

            * Updates to support new features in Contact Collator

            * Small update to RawDatautils to handle null data

        * Updated data selector for click train detector

        * Click train detector updates and bug fixes

        Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

        Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

        * Bug fix and improvements for Ketos

        Ketos models now automatically set the correct sample length when loaded.

        Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

        * Updates to deep learning and FX GUI

        Added some more example sounds to deep learning UI.

        Updated click detector in the FX GUI.

        * PAMGuard FX sound output update

        * Updates to FX GUI

        * Updates to FX GUI

        * Update RawDataTransforms.java

        * Fixes to FX UI

        * Squashed commit of the following:

        commit 11ba8bf91e
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:45:47 2022 +0100

            MErge from DG Branch (#47)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

            * UDP Control

            Added multiport functionality

        commit 9a9f542d95
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:42:45 2022 +0100

            Merge DG to Main (#46)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

            * UDP Control

            Added multiport functionality

        commit 49cd547aee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:40:29 2022 +0100

            Merge DG branch (#45)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

            * UDP Control

            Added multiport functionality

        commit 016cfd0da5
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Thu Aug 4 11:35:06 2022 +0100

            Dialog positioning

            New functions to better positions dialogs on screen

        commit c9f2ab3e97
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon Aug 1 11:13:24 2022 +0100

            puch to main (#44)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

            * Work on batch processing, after testing of options to autostart,
            autoexit and set wav file folder, database and binary store.

            * Update MHTClickTrainAlgorithm.java

            Fix unsynchronised access to a datablock in click train detector which was causing index errors.

            * Revamp of offline process messaging and control

            Includes some databsae logging of completed tasks

            * Offline task logging

            Bit more work, including notes and database storage of task
            reprocessing. Guess this could all become 'proper' PAMGuard data and be
            shown in a table on the display but that not priority enough.

            * Dialog packing

            Fix a couple of dialogs which don't back well on HDPI monitors

        commit 55f5a3fcf1
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon Aug 1 10:59:36 2022 +0100

            Group detections menu

            Small changes to limit the number of menu items in "Add to existing
            group" to a maximum of 25 entries.

        commit b3f6c0e665
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Fri Jul 29 10:50:45 2022 +0100

            Handle -nogui option in PamWorker

            PamWorker used to catalog files at startup (if a file folder input
            system is used). This creates a progress dialog. Stop it appearing in
            -nogui operations.

        commit 8569b6b579
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Fri Jul 22 08:30:47 2022 +0100

            Click display fixes (#41)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

            * Click detector display fixes

            1. ICI not displaying correctly
            2. Component sizes in display dialog on hres monitors

        commit 128a512ff6
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Tue Jul 19 16:37:57 2022 +0100

            Another attempt at stopping it crashing on a headless system

            Dealing with displays that get created for clickangle vetos and a call
            to the gui in the click train detector.

        commit 6eaa6e4978
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Tue Jul 19 08:20:07 2022 +0100

            nogoi fix for headless systems. (#40)

            * Variable sound output level

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

            * Code to support nogui operations when no screens present on headless
            system

            * Fix problem of nogui headless operation trying to access screen size.

        commit 9fdd30556b
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Tue Jul 12 15:53:07 2022 +0100

            Variable sound output level (#39)

            Mods to SoundPlayback module to allow additional parameters. Implemented
            system for NI cards to allow changes to selected output voltage range
            meaning output can be boosted to level higher than current default.

        * Bug fixes to click train detector

        Fixed bug with number of coasts in the MHT Kernel
        Added an option for amplitude to have a maximum
        Removed print statements.

        * Bug fix for click train logging

        The size of the string classifers field was dynamically set - this was a bug.

        Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>

    commit ef0330173b
    Author: Jamie Mac <macster110@gmail.com>
    Date:   Mon Aug 8 10:32:19 2022 +0100

        Click trian detector fixes (#48)

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * More screenshots

        * Add screenshots

        * Update click_train_help.md

        * Add classifier screenshot

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update POM with latest jdl4pam

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Update pom.xml

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * More screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots

        * Add classifier screenshot

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Fix standard classifier JSON logging

        * Update click_train_help.md

        * Fixed bug in sweep classifier when using SoundTrap click detections

        * Added some colour averaging in the TFDisplayFX spectrgoram

        * Bug fix for rainbow click bearings

        Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Updated the prediction plots on time display

        Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

        * Updates to TDisplayFX

        yFIshmael now owrks with TDisplayFX
        TDisplayFX UI changes to make simpler.
        Some abstraction for drawing lines on TDisplayFX

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Screenshots

        * Update click_train_help.md

        * More screenshots

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots

        * Add classifier screenshot

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Add screenshots for click train detector help

        * Screenshots

        * Update click_train_help.md

        * Defult option for CPOD and porpoise to click train detector.

        Also a minor

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Create click_train_help.md

        * Update click_train_help.md

        * Update click_train_help.md

        * Updates and bug fixes to click train detector and CPOD importer

        * Bug fix for raw spectrogram in TDDisplayFX

        * Update KetosClassifier.java

        * Fix standard classifier JSON logging

        * Fixed bug in sweep classifier when using SoundTrap click detections

        * Added some colour averaging in the TFDisplayFX spectrgoram

        * Bug fix for rainbow click bearings

        Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Updated the prediction plots on time display

        Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend.

        * Updates to TDisplayFX

        yFIshmael now owrks with TDisplayFX
        TDisplayFX UI changes to make simpler.
        Some abstraction for drawing lines on TDisplayFX

        * Merge fixes to click train detector

        * Bug fix to UI

        * Updates to FX GUI

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Updates and bug fixes to click train detector and CPOD importer

        * Fix standard classifier JSON logging

        * Merge fixes to click train detector

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Updates to click train detector

        New GUI for click train classification - more intuitive and allows users to build more powerful classifiers.
        CPOD data can now build average waveforms.
        CPOD click trains can be viewed in TDisplayFX pop up menu displays
        Fixed Peak Frequency symbol chooser so it saves the colour box settings

        * Screenshots

        * Updates and bug fixes to click train detector and CPOD importer

        * Fix standard classifier JSON logging

        * Google humpback whale deep learning classifier

        Google's humpback whale deep learning classifier can now be imported.
        Updated TDisplayFX to make the data selection panes cleaner and clearer.
        Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour.

        * Bug fix to UI

        * Bug fixes to FX GUI

        * Updates to click train detector

        * Squashed commit of the following:

        commit 9f998165ee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon May 2 19:40:24 2022 +0100

            Updates to support ContactCollator plugin (#33)

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * fix problem in SummaryComand

            * Update command line options

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * Update command line options

            * Update DecimatorParams.java

            * couple of updates to support new contact collator plugin

            * Sorting out sample rate info in clip display to support Contact Collator
            plugin

            * FLAC Speed

            Improve flac speed

            * Update .gitignore

            * Update .gitignore

            * Updates to support new features in Contact Collator

            * Small update to RawDatautils to handle null data

        * Updates to click train detector

        * Squashed commit of the following:

        commit 62b020b320
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Sat May 14 06:52:20 2022 +0100

            Add a new offlinefileslist function

        commit 3a9a5311aa
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Wed Apr 27 09:43:31 2022 +0100

            Update .gitignore

        commit 9f998165ee
        Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
        Date:   Mon May 2 19:40:24 2022 +0100

            Updates to support ContactCollator plugin (#33)

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * fix problem in SummaryComand

            * Update command line options

            * Change synchronization on RawDataTransforms soit uses the owner data
            holder, not itself for synchronization. Otherwise you get thread locks.

            * Update command line options

            * Update DecimatorParams.java

            * couple of updates to support new contact collator plugin

            * Sorting out sample rate info in clip display to support Contact Collator
            plugin

            * FLAC Speed

            Improve flac speed

            * Update .gitignore

            * Update .gitignore

            * Updates to support new features in Contact Collator

            * Small update to RawDatautils to handle null data

        * Updated data selector for click train detector

        * Click train detector updates and bug fixes

        Fixed very annoying bug which meant templates did not show properly when the dialog was first opened in swing.

        Added feature to simple classifier were % of clicks of one click classification (or other data selector paramter) can be used to classify.

        * Bug fix and improvements for Ketos

        Ketos models now automatically set the correct sample length when loaded.

        Bug fix for the TDisplayFX - null pointer exception if no class names loaded and sorted recently introduced bug in drawing predictions.

        * Updates to deep learning and FX GUI

        Added some more example sounds to deep learning UI.

        Updated click detector in the FX GUI.

        * PAMGuard FX sound output update

        * Updates to FX GUI

        * Updates to FX GUI

        * Update RawDataTransforms.java

        * Fixes to FX UI

        * Squashed commit of the following:

        commit 11ba8bf91e
        Author: Douglas Gillespie <50671166+…

Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
This commit is contained in:
Jamie Mac 2022-09-14 11:32:31 +01:00 committed by GitHub
parent b01cb4d100
commit bad3f79903
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 262 additions and 35 deletions

View File

@ -107,6 +107,7 @@ public class ClickAlarmManager extends PamProcess {
ClickDetection cd = (ClickDetection) arg;
// System.out.println("ClickAlarm hashcode, time = " + System.identityHashCode(arg) + "," + cd.getTimeMilliseconds() + "," + cd.getClickType() );
if (cd.getClickType()!=0) {
ClickTypeCommonParams commonParams = clickControl.getClickIdentifier().getCommonParams(cd.getClickType());
if (commonParams==null) return;

View File

@ -142,6 +142,7 @@ public class SweepClassifier implements ClickIdentifier , PamSettings {
@Override
public ClickTypeCommonParams getCommonParams(int code) {
int codeIdx = codeToListIndex(code);
if (codeIdx<0 || codeIdx>=sweepClassifierParameters.getNumSets()) return null;
return sweepClassifierParameters.getSet(codeIdx);
}

View File

@ -82,16 +82,16 @@ public class ExampleClickTrains {
String path = null;
switch (type) {
case SIMCLICKS_1:
path = masterPath + "\\" + "simtrains_1.mat";
path = masterPath + File.separator + "simtrains_1.mat";
break;
case SIMCLICKS_2:
path = masterPath + "\\" + "simtrains_2.mat";
path = masterPath + File.separator + "simtrains_2.mat";
break;
case DOLPHINS_ST:
path = masterPath + "\\" + "20190801_212731_clicks_dolphins_ST.mat";
path = masterPath + File.separator + "20190801_212731_clicks_dolphins_ST.mat";
break;
case SIMCLICKS_3:
path = masterPath + "\\" + "simtrains_3_corr.mat";
path = masterPath + File.separator + "simtrains_3_corr.mat";
break;
}
File file = new File(path);

View File

@ -217,14 +217,16 @@ public class TemplateSpectrumPane extends PamBorderPane {
* @param file - the file to open.
*/
private MatchTemplate openFile(File file) {
try {
MatchTemplate template = null;
String extension = getFileExtension(file);
for (int i=0; i< this.templateImporters.size(); i++) {
for (int j=0; j<templateImporters.get(i).getExtension().length; j++) {
//System.out.println(templateImporters.get(i).getExtension()[j] + " : " + extension);
// System.out.println(templateImporters.get(i).getExtension()[j] + " : " + extension);
if (templateImporters.get(i).getExtension()[j].equals(extension)) {
//System.out.println("Import using the extensions: " + extension);
// System.out.println("Import using the extensions: " + extension);
template=templateImporters.get(i).importTemplate(file);
}
}
}
@ -233,6 +235,11 @@ public class TemplateSpectrumPane extends PamBorderPane {
return null;
}
else return template;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import com.jmatio.types.MLArray;
import com.jmatio.types.MLDouble;
import com.jmatio.types.MLStructure;
import PamguardMVC.PamDataUnit;
@ -63,6 +64,11 @@ public class MLDetectionsManager {
//so, need to sort compatible data units.
ArrayList<MLArray> list = new ArrayList<MLArray>();
//keep a track of the data units that have been transcribed. This means data units that are multiple types
//(e.g. a raw data holder and click) are not added to two different list of structures.
boolean[] alreadyStruct = new boolean[dataUnits.size()];
//iterate through possible export functions.
for (int i=0; i<mlDataUnitsExport.size(); i++){
@ -78,21 +84,34 @@ public class MLDetectionsManager {
if (n==0) continue; //no need to do anything else. There are no data units of this type.
//create a structure for each type of data unit.
MLStructure mlStructure= new MLStructure(mlDataUnitsExport.get(i).getName(), new int[]{n, 1});
float sampleRate = -1;
n=0;
//allocate the class now.
for (int j=0; j<dataUnits.size(); j++){
//check whether the same.
if (mlDataUnitsExport.get(i).getUnitClass().isAssignableFrom(dataUnits.get(j).getClass())) {
if (mlDataUnitsExport.get(i).getUnitClass().isAssignableFrom(dataUnits.get(j).getClass()) && !alreadyStruct[j]) {
mlStructure=mlDataUnitsExport.get(i).detectionToStruct(mlStructure, dataUnits.get(j), n);
sampleRate = dataUnits.get(j).getParentDataBlock().getSampleRate();
n++;
alreadyStruct[j] = true;
}
}
if (n>=1) list.add(mlStructure);
if (n>=1) {
list.add(mlStructure);
list.add(new MLDouble((mlDataUnitsExport.get(i).getName()+"_sR"), new double[] {sampleRate}, 1));
}
}
//now ready to save.
return list;

View File

@ -139,13 +139,13 @@ public class MLExportOverlayMenu extends ExportOverlayMenu {
//create the filename;
long millisStart=foundDataUnits.getFirstTimeMillis();
String currentPath = PamCalendar.formatFileDateTime(millisStart, false);
//add data types to the filen,ae
for (int i=0 ;i<mlData.size(); i++ ){
//add data types to the filename
for (int i=0 ;i<mlData.size(); i=i+2 ){//bit of a hack but every second name is the samplerate so leave that out of filename.
currentPath=currentPath + "_" + mlData.get(i).getName();
}
//add correct file type.
currentPath = currentPath + ".mat";
currentPath = currentFolder+"\\"+currentPath;
currentPath = currentFolder+ File.separator +currentPath;
//now write the file
try {

View File

@ -64,7 +64,7 @@ public class MLRawExport extends MLDataUnitExport<PamDataUnit>{
@Override
public String getName() {
return "pam_data_units";
return "raw_data_units";
}
}

View File

@ -6,6 +6,7 @@ import java.io.IOException;
import com.jmatio.io.MatFileReader;
import com.jmatio.types.MLDouble;
import com.jmatio.types.MLStructure;
/**
@ -25,23 +26,114 @@ public class ImportTemplateMAT implements TemplateImport {
@Override
public MatchTemplate importTemplate(File filePath){
errorCode = 0; //reset error code
try {
//System.out.println("Import MAT file waveform");
//the matlab file reader.
//the MATLAB file reader.
mfr = new MatFileReader(filePath);
MLDouble sampleRateML = (MLDouble) mfr.getMLArray("sR");
MatchTemplate matchTemplate;
MLDouble waveformML = (MLDouble) mfr.getMLArray("waveform");
if (waveformML==null) waveformML = (MLDouble) mfr.getMLArray("spectrum"); //might be a spectrum
//try standard template first
matchTemplate = getTemplateStandard(mfr);
if (sampleRateML==null || waveformML==null) {
//use the first click from a structure of clicks.
if (matchTemplate == null && errorCode==0) {
matchTemplate = getTemplateStruct(mfr);
}
//if the match template is still null then the file is the wrong format.
if (matchTemplate == null && errorCode==0) {
errorCode=TemplateImport.INCORRECT_FILE_FORMAT;
return null;
return null;
}
matchTemplate.name = filePath.getName();
return matchTemplate;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* Get a template which has a simple sR and waveform field.
* @param mfr - .mat file reader.
* @return the match template.
*/
private MatchTemplate getTemplateStruct(MatFileReader mfr2) {
//the MATLAB file reader.
MLStructure clicksStruct = (MLStructure) mfr.getMLArray("clicks");
MLDouble sampleRateML = (MLDouble) mfr.getMLArray("clicks_sR");
if (clicksStruct==null) {
clicksStruct = (MLStructure) mfr.getMLArray("raw_data_units");
sampleRateML = (MLDouble) mfr.getMLArray("raw_data_units_sR");
}
if (sampleRateML==null || clicksStruct==null) {
return null;
}
MLDouble waveML = (MLDouble) clicksStruct.getField("wave", 0);
double[][] waveform = waveML.getArray();
MatchTemplate matchedTemplate = new MatchTemplate(null, waveform[0], (float) sampleRateML.get(0).doubleValue());
return matchedTemplate;
}
/**
* Get a template which has a simple sR and waveform field.
* @param mfr - .mat file reader.
* @return the match template.
*/
private MatchTemplate getTemplateStandard(MatFileReader mfr) {
//System.out.println("Import MAT file waveform");
//the MATLAB file reader.
MLDouble sampleRateML = (MLDouble) mfr.getMLArray("sR");
if (sampleRateML==null) sampleRateML = (MLDouble) mfr.getMLArray("sr"); //try a different name for the sample rate
if (sampleRateML==null) sampleRateML = (MLDouble) mfr.getMLArray("fs"); //try a different name for the sample rate
if (sampleRateML==null) sampleRateML = (MLDouble) mfr.getMLArray("samplerate"); //try a different name for the sample rate
if (sampleRateML==null) sampleRateML = (MLDouble) mfr.getMLArray("sample_rate"); //try a different name for the sample rate
if (sampleRateML==null) sampleRateML = (MLDouble) mfr.getMLArray("sampleRate"); //try a different name for the sample rate
if (sampleRateML==null) sampleRateML = (MLDouble) mfr.getMLArray("clicks_sR"); //try a different name for the sample rate
//get the waveform or spectrum
MLDouble waveformML = (MLDouble) mfr.getMLArray("waveform");
if (waveformML==null) waveformML = (MLDouble) mfr.getMLArray("wave"); //try a different name for the waveform
if (waveformML==null) waveformML = (MLDouble) mfr.getMLArray("spectrum"); //might be a spectrum
if (sampleRateML==null || waveformML==null) {
return null;
}
//import a wave in column or row dimension
int size = Math.max(waveformML.getM(), waveformML.getN());
@ -55,23 +147,15 @@ public class ImportTemplateMAT implements TemplateImport {
for (int i = 0 ; i<size; i++) {
waveform[i]= waveformML.getM()>waveformML.getN() ? waveformML.get(i, 0) : waveformML.get(0, i);
}
float sR= new Double(sampleRateML.getArray()[0][0]).floatValue();
float sR= Float.valueOf((float) sampleRateML.getArray()[0][0]);
//now create waveform
// System.out.println("Create a waveform with " + waveform.length + " samples with a sample rate of "
// + sR + " Hz");
MatchTemplate matchedTemplate = new MatchTemplate(filePath.getName(), waveform, sR);
MatchTemplate matchedTemplate = new MatchTemplate(null, waveform, sR);
return matchedTemplate;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

View File

@ -46,7 +46,7 @@ public class MatchTemplate implements RawDataHolder, Serializable, Cloneable, Ma
@Override
public String toString() {
return super.toString() + " sR: " + sR + " waveform length: " + waveform + " " + name;
return super.toString() + " sR: " + sR + " waveform length: " + waveform == null ? "null waveform" : waveform.length + " " + name;
}
@Override

View File

@ -114,7 +114,7 @@ public class MatchedTemplateParams implements Serializable, Cloneable, ManagedPa
/**
* The number of bins to sample around.
*/
public int restrictedBins=128;
public int restrictedBins=2048;
/**
* True to search for for wave peak and sample around it.

View File

@ -367,10 +367,11 @@ public class MTClassifierPane extends SettingsPane<MTClassifier> {
String extension = getFileExtension(file);
for (int i=0; i< this.templateImporters.size(); i++) {
for (int j=0; j<templateImporters.get(i).getExtension().length; j++) {
//System.out.println(templateImporters.get(i).getExtension()[j] + " : " + extension);
System.out.println(templateImporters.get(i).getExtension()[j] + " : " + extension);
if (templateImporters.get(i).getExtension()[j].equals(extension)) {
//System.out.println("Import using the extensions: " + extension);
// System.out.println("Import using the extensions: " + extension);
template=templateImporters.get(i).importTemplate(file);
// System.out.println("Match template 3: " + template) ;
}
}
}

View File

@ -0,0 +1,110 @@
# Matched click classifier
## Overview
The matched click classifier is an alternative to the in built click classifier in the click detection module which uses two click templates (target and reject) to classify individual clicks detections from the click detection module. The idea behind this classifier is to more accurately classify rarer clicks when there
## How it works
The classifier is based on a matched filter i.e. a candidate click detection is compared to a template and it's maximum correlation value with the template is then used for classification. Each click is compared to both a _match_ and a _reject_ template. If the difference between the correlation match to the reject template exceeds a certain threshold, then the click is classified. There can be multiple combinations of match to reject templates allowing the matched classifier to deal with different types of clicks or even clicks from multiple species.
## Configuring the matched click classifier
The matched click classifier settings are accessed via **Settings-> Matched click classifier**_. The settings are split into the three sections, general settings, click waveform and click templates.
<p align="center">
<img width="950" height="520" src = "resources/matched_click_dialog_summary.png">
</p>
_The settings pane of the matched click classifier_
### General Settings
The general settings allow for channel options, species ID and the default colours for classified clicks to be to be set.
_
Channel Options _allows users to define whether a single click from one channel, all clicks or an averaged click should be used to be used for classification in multi-channel situations. if there is only one channel then this makes no difference.
_Click Type_ sets the number that defines the species ID. Make sure this is not the same as any of the species IDs in the default click classifier (this is why the default is set so high).
_Symbol_ and _Fill_ define the default colours clicks which have been classified by the matched click classifier should be plotted on displays.
### Click Waveform Settings
Before a click is classified it undergoes some pre-conditioning by the matched click classifier.
_Restrict parameter extraction to XX samples_ sets the maximum length of the waveform to the classifier. If this is selected, then center of the click is located and samples trimmed around the center. In some use cases, for example SoundTrap detections, which may be 10,000 samples long, setting a lower number of maximum samples can greatly increase processing speed and improve the accuracy of results. Note that if the number of samples is set too low (e.g. well below the click template length) then the correaltion values will not make much sense.
_Peak threshold_ and _Smoothing_ are both parameters used to find the click center so that a click can be trimmed to the maximum number of samples. The click length is measured by calculating the waveform envelope using a Hilbert Transform. The envelope is smoothed using a moving average filter (the _Smoothing_ parameter defines the size of the averaging window). The click is trimmed as follows. First the peak of the waveform envelope is found. The length of the click is defined as the point at which the click falls _Peak threshold_ dB below the peak. The center of the click is then the middle of this snippet. The click is then trimmed from the center of the click.
_Amplitude normalisation_ If there is a very loud click compared to a template it's correlation score will be different to that of a very quiet click of with exactly the same waveform. It is therefore a good idea to normalise the waveform before it is compared the match click classifier. The types of normalisation are
* _norm_ - this is the default - the click is divided by it's RMS amplitude.
* _peak to peak_ this can be useful for some types of shorter click e.g. dolphins - the click is divided by it's peak to peak amplitude.
* _none_ no normalisation (not recommended).
### Template settings
The matched click classifier has two templates, a match and a reject. The match template should match a stereotypical click of the target species and the reject template can either be a click from a confounding species (e.g. dolphin) or blank. Selecting the drop-down menu from the _Import_ button allows for a selection of some default templates. Custom templates can be imported by selecting the _Import_ button. Custom templates can either be a .csv. or .mat file using the following format.
**.csv** - the first _row_ are the waveform measurements from -1 to 1 (make sure you save with a sufficient number of decimal points). The second row and first column is the sample rate in sample per second.
**.mat** - a .mat file that contains two variables named _sR_ and _waveform_. _sR_ is the sample rate in samples per second and _waveform_ is a 1D array containing the waveform for the template form -1 to 1. Arrays of click structures imported using the PAMGuard to MATLAB library can also be used. The first channel of the first click in a list of clicks structures will be imported as the template. The click structure should be names _clicks_ and the sample rate should be saved as a seperate variable named _sR_ in sampes per second.
The match and reject templates are plotted to provide a user with some visualisation of the classifier settings - the drop down menu allows the user to select different ways to plot the templates and is purely for visualisation purposes so makes no difference to classifier settings.
_threshold_ is the threshold at which a click is classified. If the difference between the match and reject templates is above the _threshold_ value then the
click is classified.
The + button can be used to add more tabs. Each tab contains a click/reject template pair and unique threshold setting. A click is classified if at least one of the match/reject templates passes it's set threshold.
## Visualising Results
The matched click classifier changes the species type flag of a click if at least one of the classifiers passes threshold. This means clicks can be visualised in the click bearing time display or the time base display. The classifier also saves the correlation values for each match/reject template pair which can be accessed in MATLAB/R or through the PAMGuard GUI.
### Click bearing time display
Matched clicks can be viewed in the bearing time display. If a click passes the threshold of one match/reject pair then the click symbol (defined in general settings) is shown in the bearing time display if _Colour by Matched Template Classifier_ is selected in the right click menu. The correlation values are shown by hovering the mouse over a click to bring up the info tool tip.
<p align="center">
<img width="950" height="550" src = "resources/matched_click_bt_display.png">
</p>
_Screenshot of clicks classified from the matched click classifier showing matched clicks (coloured pink)_
### Time base display
The time base display FX can show clicks classified by the matched clicks classifier. _Colour by Matched Template Classifier_ must be selecting in the right settings window.
<p align="center">
<img width="950" height="520" src = "resources/matched_click_tdisplay_example.png">
</p>
_Screenshot of Time Base display FX showing clicks classified by the match click classifier (coloured pink). The correlation values can be found in the meta data section of the detection pop up menu (highlighted)_
Note that the time base display allows users to export clicks to be used as templates. Using the advanced pop up menu right click on a click detection and select the MATLAB icon. A .mat file of the selected click or clicks will be saved to your root user folder in a folder called _PAMGuard Manual Export_. This .mat file can be opened by the matched click classifier - the first channel of the first click in the list will be imported as a template.
<p align="center">
<img width="510" height="300" src = "resources/exporting_mat_clicks.png">
</p>
### Extracting correlation values using MATLAB/R
Clicks are loaded from binary files using the MATLAB/R function
```
clicks = loadPamguardBinaryFile("/path/to/pamguardfile.pgdf");
```
where clicks is a list of MATLAB/R structures containing the data for each click in the file.
The matched click classifier template threshold, match value and reject value are then accessed from each click using
```
matchedtemplatevals = clicks(1).annotations. mclassification
```
```matachedtemplatevals``` is a list of where each row is the threshold value, match value and reject value for each match/reject template pair.

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

View File

@ -68,8 +68,12 @@ public abstract class DLModelWorker<T> {
double[][] transformedData2; //spec data
double[] transformedData1; //waveform data
for (int j=0; j<numChunks; j++) {
soundData = new AudioData(rawDataUnits.get(j).getRawData()[iChan], sampleRate);
// for (int i=0; i<modelTransforms.size(); i++) {
// System.out.println("Transfrom type: " + modelTransforms.get(i).getDLTransformType());
// }