From 6e1aa2f2333bf439e9fcebf5a3ad3a5936aeefc4 Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon, 30 Jan 2023 08:37:43 +0000 Subject: [PATCH 01/15] Merge back from DG (#98) * Version 2.02.06 (hopefully) * ROCCA Memory leak Another attempt at healing ROCCA memory leak From 0b79fafd336485f6d17faed3671bcad5b10bc09b Mon Sep 17 00:00:00 2001 From: m2oswald <45486636+m2oswald@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:54:14 +0000 Subject: [PATCH 02/15] Rocca fixes (#99) * allow Rocca to run without classifiers Fixed bug that threw an error if no classifier files were specified in Rocca Params dialog * add rocca switch to enable dev mode currently only shows/hides extra buttons in the Params dialog, but will extend to more options in the future * Fix memory issue with RoccaContourDataBlocks not being released for garbage collection Set RoccaContourDataBlock objects to null and stop PamObserver Timer to force release * Fix problem tracing whistles in Rocca spectrogram pop-up Whistle and raw data were being cleared before the user had time to trace out the whistle, causing PAMGuard to throw an exception. Both were already being cleared when the pop-up window is closed, so no need to do it here. --- src/rocca/RoccaWhistleSelect.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/rocca/RoccaWhistleSelect.java b/src/rocca/RoccaWhistleSelect.java index 100d4289..2dfc8391 100644 --- a/src/rocca/RoccaWhistleSelect.java +++ b/src/rocca/RoccaWhistleSelect.java @@ -205,9 +205,12 @@ public class RoccaWhistleSelect extends PamProcess implements SpectrogramMarkObs * DG June '22. * I hope IT's K to set these back here. It's possible it's also * done elsewhere. + * + * MO Jan '23 + * These are set to 0 in the RoccaSpecPopUp class, before the user closes the window. If set here, the objects are cleared before the user can trace the whistle and throws an exception */ - selectedWhistle.setNaturalLifetimeMillis(0); - selectedWhistleRaw.setNaturalLifetimeMillis(0); +// selectedWhistle.setNaturalLifetimeMillis(0); +// selectedWhistleRaw.setNaturalLifetimeMillis(0); } } From ac004ab9cc2195cf6d1d0d9dc088628bcaf598bd Mon Sep 17 00:00:00 2001 From: Jamie Mac Date: Thu, 2 Feb 2023 14:05:24 +0000 Subject: [PATCH 03/15] Deep learning bug fixes. (#95) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 6b15b3d536f2334aa9769e10c268659a254e19c8 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 4b3a37636b2081323c39dcbb133c1474ad2a9daa 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 c641c58e4f524f0c8beb3967c9fec8b34c412121 Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 b01cb4d10020aba4b46ba17c6e16fa02c6350e46 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 ae6e2f947b886810a5ebf35f8b2e2e6e9cd822cc 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 cd89c65d7c32338ea445ae4eec5bd31e5bc3d59a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Sep 13 09:07:11 2022 +0100 Fix synchronization problem in RawDataTransfroms commit 6b15b3d536f2334aa9769e10c268659a254e19c8 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 4b3a37636b2081323c39dcbb133c1474ad2a9daa 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 c641c58e4f524f0c8beb3967c9fec8b34c412121 Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d Author: Douglas Gillespie <50671166+… * Fixes to click train detector and deep learning * Squashed commit of the following: commit 313ce0c46f44f9a4ceda657ef2831eae78352ed5 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Sep 21 15:55:12 2022 +0100 Help update (#60) * Plugin Help Small change to Help system so that plugins under development can more easily display their help * PamModel update Notes on how to add a plugin to the model during the plugin development phase. * Click Train Detector Help * Help for backup manager commit 290f2fbb953088864a380f692d203d0680daa762 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Sep 21 15:54:01 2022 +0100 Click Train Detector help (#59) * Plugin Help Small change to Help system so that plugins under development can more easily display their help * PamModel update Notes on how to add a plugin to the model during the plugin development phase. * Click Train Detector Help * Help for backup manager commit 6aefbc124b249ed507f95411680e19bc4fd78e78 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Sep 20 17:34:30 2022 +0100 Merge from DG fork (#58) * Plugin Help Small change to Help system so that plugins under development can more easily display their help * PamModel update Notes on how to add a plugin to the model during the plugin development phase. commit eb176a4568c5b72010e9557a28a991544ec231f7 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 15 17:10:09 2022 +0100 Merge from dg (#57) commit dee7e1d52e7d7bc2f94d81bbedb71664243754b9 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 15 17:08:32 2022 +0100 Merge pull request #13 from PAMGuard/main (#56) commit 1ed74bebe3d50a4f739a4ff8b4af223b3d535c16 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 15 17:06:22 2022 +0100 Merge pull request #13 from PAMGuard/main (#55) commit fbe39a7416decfd3a6c73774b65407d6f120c201 Merge: 0114c80 425dd21 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 15 17:05:16 2022 +0100 Merge branch 'main' into main commit 425dd21d9f9a404e9e5410e018df20681703139a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 15 17:01:45 2022 +0100 Data selector for whistle classifier Added standard data selection options to whistle classifier output, and also made it a 'Detector' type for down stream data connections commit 0114c80d61f2f3bf04a2fc3fe7e85839f0642d7f Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 15 16:59:37 2022 +0100 Work on click train detector help commit c8e271734f1277ec8391356c4dfc9c8ddaea8476 Author: Jamie Mac Date: Thu Sep 15 09:18:48 2022 +0100 Bug fixes to matched click classifier (#54) * 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 t… * fix bug in TDOA * Squashed commit of the following: commit 149dfab2813bc7e4e83e12b5827f59655050449f Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 30 09:56:13 2022 +0100 Work on bug fixes in CTD classifier (#72) commit 91a704b07a015b4992ba60288f1a3cb8168a348c Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 30 09:54:33 2022 +0100 Work on bug fixes in CTD classifier (#71) commit d01576c8550dd18d9fce0bb9af00a69aa560b614 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 30 09:53:51 2022 +0100 Work on bug fixes in CTD classifier (#70) commit 11bed6ffbad76d0af707783243743ca41a5abc3d Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 29 14:56:29 2022 +0100 Work on bug fixes in CTD classifier (#69) commit fccc0a715d55d096e9530b1d62ed8853e526db40 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 29 14:54:30 2022 +0100 Work on bug fixes in CTD classifier commit 5983f30ded7bdda7147668a9ed9eca79ff9d7ccd Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Sep 27 16:44:12 2022 +0100 Delete C:\temp\PamGuardTesting 2_02_04f\PAMBinary directory Get rid of a folder of pgdf files that Jamie had added to the repo commit 075aceb4aabe1485f82d2001be3a575bd02c0b13 Author: Jamie Mac Date: Tue Sep 27 16:41:05 2022 +0100 Click train detector bug fix (#68) * 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Aug 4 11:42:45 2022 +0100 Merge DG to Main (#46) … * Click train fixes * Fixes to click train detector * Squashed commit of the following: commit 3a452936c047e1d941c846aefb40c0929291b1cd Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 30 14:50:33 2022 +0100 Fixes from DG (#74) * Work on bug fixes in CTD classifier * couple of final neatenings up of CTD commit 4015461fbc6ce0b110ef87bcf94379fb3b6a19f1 Author: Jamie Mac Date: Fri Sep 30 14:23:17 2022 +0100 Fixes to click train detector (#73) * 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 … * Fix to click train detector NO_SPECIES flag was not being in standard classifier so beaked whales were being classified. * Getting sud files working * .sud decompression implemented Sud decompression implemented in real time and viewer mode. .sudx files hold a file map which is reloaded allowing rapid scrolling of sud files in viewer mode. * Rewrite how PAMGuard manages Audio Files PAMGuard audio file management is a mess (sorry Doug) requiring changes to code in at least 3 separate classes to make a new type of audio file work in real time and viewer mode. Have consolidated all audio file stuff into a PamAudioFileManager class which has a static getInstance() function. Any new type of audio file added in future (e.g. next is probably AudioMoth triggered recordings) then all that is needed is the Interface PamAudioFileloader to be satisfied and added to PamAudioFileManager list of audio file loaders. * Bug fix for sud in viewer mode and FX updates Fixed bug in sud file where IO exception occurred at the end of a file in viewer mode. Updates to click detector dialog in FX GUI. Updates to example sound factory. * Some more work on FX GUI * Added some validators in FX GUI ValidatorFX is awesome * Updates to FX GUI * Squashed commit of the following: commit 67060016c2eda322189b1b6f5a203757a1632d1b Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Oct 21 12:26:42 2022 +0100 REsolve issues in binayUIDFunctions commit 61c3d80f30f14c8621d9b6284ffa5c50bc2ef60a Merge: 1de5ec6 4473d1b Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Oct 21 12:23:08 2022 +0100 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard.git into main commit 1de5ec6e11a31989c5663894e71628cc63b18179 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Oct 21 12:22:09 2022 +0100 Change error reporting in Binary UID functions Message on screen rather than stack trace since it's normal when a psfx moves to a different pc commit 4473d1b1bf8bc25c19db105d2b44fa1040194c63 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Oct 21 11:12:04 2022 +0100 Merge from DG (#77) * Work on bug fixes in CTD classifier * couple of final neatenings up of CTD * DWV Import Fixed DWV importer so that a binary file is still created if a DWV file doesn't exist. this is totally normal in quiet conditions, so the correct thing to do is to generate a binary file with no data so that effort is correctly recorded. * Error reporting in -nogui A lot of warnings were being issued and trying to use the default window which caused a null pointer when running -nogui. This is fixed by a) not trying to access frames which are null and b) changing the PAMWarning system to write messages to terminal rather than open a dialog. commit 63cc66a4b197ce86087f57edc38095161896b79f Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Oct 18 17:04:16 2022 +0100 Merge from DG (#76) * Work on bug fixes in CTD classifier * couple of final neatenings up of CTD * DWV Import Fixed DWV importer so that a binary file is still created if a DWV file doesn't exist. this is totally normal in quiet conditions, so the correct thing to do is to generate a binary file with no data so that effort is correctly recorded. commit e4faed5cfc50ca647ec98c8e17d312fae316a3d8 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Oct 4 11:18:37 2022 +0100 Add exitnosave command Add command for UDP or terminal control which will exit PAMGuard without first saving the settings commit f4f7cc59b63c8d31af559575075a20d4ab16128b Author: Jamie Mac Date: Mon Oct 3 14:30:22 2022 +0100 Fix to click trian detector (#75) * 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 … * Updated the maven repo with new sud file changes * Updates to FX GUI and new X3 repo * Update .gitignore * Squashed commit of the following: commit 5b1cc760d8b3cab15213d6ada075d26e19eb1cb1 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Nov 16 09:12:55 2022 +0000 Quick fix of calibration data for ST Click detector. Was getting a 5V input from it's bespoke acquisition, whereas needs 2. commit 3f5e4e4a7988c5ab588ec9f905a7db6a787667ab Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 21:08:40 2022 +0000 Final final 2.02.06 Don't believe it until you see that tag commit 890230a6ffe3059314222d0a933054696a1b98e6 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:49:06 2022 +0000 Final final readme 2.02.06 commit 05268d810d8f6c98ae244026e002049db87be536 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:40:44 2022 +0000 Version 2.02.06 (#87) (hopefully) commit 7d7ecb95452486cd621b758f1adeb02ddb5b93ad Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:39:37 2022 +0000 Version 2.02.06 (#86) (hopefully) commit 76e84672016fada5c3733bdb3d00f0d5088a1c82 Merge: d2f74f60 ac280e1b Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:37:14 2022 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard.git into main commit d2f74f606e8c0757d471af27318c35b22fef47ae Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:36:49 2022 +0000 readme for 2.02.06 commit ac280e1b6fefe68ef94ce9fd75ed90e014b4ee35 Author: m2oswald <45486636+m2oswald@users.noreply.github.com> Date: Tue Nov 15 15:41:43 2022 +0000 updates to Rocca module (#85) * allow Rocca to run without classifiers Fixed bug that threw an error if no classifier files were specified in Rocca Params dialog * add rocca switch to enable dev mode currently only shows/hides extra buttons in the Params dialog, but will extend to more options in the future * Fix memory issue with RoccaContourDataBlocks not being released for garbage collection Set RoccaContourDataBlock objects to null and stop PamObserver Timer to force release commit 655a54676413b353b76fea5fc28b48cd8942801c Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:56:00 2022 +0000 Update X3 Jar commit 96cd32034fb2afaa5a33987a372cb03fd0c792f3 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:55:37 2022 +0000 Delete x3-2.2.0.pom commit bf90443b1b9dc8491249b16c2fd93ec2a825aa8a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:55:28 2022 +0000 Delete x3-2.2.0.jar commit 22d32b46822e8a68b7310bfdb8e5f99235aa054c Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:54:15 2022 +0000 Update x3 jar file commit 14c5cf5afe94b42cbb72a71ee01b2697a54270a2 Merge: ccd0fc79 376a9f0f Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:49:36 2022 +0000 Merge branch 'main' into main commit 376a9f0f0ebdff8347ead8349112db6c30b69c34 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 14:30:04 2022 +0000 Reinstate x3 jar commit 93193638b1053370a230c5154de57e98a96e765a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 14:29:37 2022 +0000 Last changes to x3 commit ccd0fc796537e54f0ba8fc61f07f85adb800e41d Author: m2oswald <45486636+m2oswald@users.noreply.github.com> Date: Mon Nov 14 11:00:15 2022 +0000 small updates to Rocca (#84) * allow Rocca to run without classifiers Fixed bug that threw an error if no classifier files were specified in Rocca Params dialog * add rocca switch to enable dev mode currently only shows/hides extra buttons in the Params dialog, but will extend to more options in the future commit ea32c5cdcb3ca85b3c912c57a66ea74ab53d31db Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 13 17:41:13 2022 +0000 SUD Files (#83) * Adding comments to table definitions. Update tabledefs so tableitems can have descriptions. Useful to the coder, but can also export formal xms schema for each table. * Writing xml schema Writing xml schema for PAMGuard database with annotations as complex types * Working SUD click extractor Seems to be mostly working and can generate PAMGuard click files automatically when processing SUD files using the soundtrap click detector * Small changes to SUD in PAMGuard * Better SUD timing Using latest microsecond time extraction from SUD unpack * SUD Processing Extraction of SUD file clicks with SoundTrap Click Detector. Timing now correct. Added some help pages. * Functional SUD Reader and SUD Click Extractor All seems working. Seems to throw the odd exception at end of file, but works OK. commit f08cf4ffd711a5f991050fbb47335eba08c22b87 Merge: d3277be3 4a75afc4 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 13 17:38:59 2022 +0000 Merge pull request #29 from PAMGuard/main Memory leak fix commit d3277be3b1f8ab142fcb21ee36c91ddd597ff83d Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 13 17:37:53 2022 +0000 Functional SUD Reader and SUD Click Extractor All seems working. Seems to throw the odd exception at end of file, but works OK. commit d1af0000400e44da789e361567d9ec49f9b75970 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat Nov 12 19:21:57 2022 +0000 SUD Processing Extraction of SUD file clicks with SoundTrap Click Detector. Timing now correct. Added some help pages. commit 4a75afc41451594b451f3915d6d15347c4fbfe64 Merge: 3b053ff3 fe0fe11f Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 11 20:59:10 2022 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard.git into main commit 3b053ff342eccb8a698fa36415119a62a1e9e2e1 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 11 20:58:42 2022 +0000 Memory leak Fix viewer memory leak whereby background measurements weren't being cleared between data loads, so eventually ran out of memory. commit 068a8b1a273e014fce12ecb66579ee4a20927ba8 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 11 08:56:03 2022 +0000 Better SUD timing Using latest microsecond time extraction from SUD unpack commit ee24c0ab6b128d0c9eb7947f823c2fe7dbb0d5ca Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Nov 10 17:21:37 2022 +0000 Small changes to SUD in PAMGuard commit 87cd2cd41f3883aa7dfbbd56efccbe97dcd6f02e Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Nov 10 15:20:15 2022 +0000 Working SUD click extractor Seems to be mostly working and can generate PAMGuard click files automatically when processing SUD files using the soundtrap click detector commit 61dd6ef4d1f4701972c1ed93985075129f299df7 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 8 16:42:57 2022 +0000 Writing xml schema Writing xml schema for PAMGuard database with annotations as complex types commit fcdb64e46705b94430c9542aed13ba71231c9ff6 Merge: a72e68c2 fe0fe11f Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 8 10:44:01 2022 +0000 Merge pull request #28 from PAMGuard/main Fix to issue #80 (#81) commit fe0fe11faf47e95ec3d3c92841a5a066e5f27a7f Author: stabbutt <100229685+stabbutt@users.noreply.github.com> Date: Tue Nov 8 01:02:52 2022 -0800 Fix to issue #80 (#81) * Fix network sender since it was hopelessly out of date and did not send data in the correct format. OK now, though only tested on NARW. * Fix network sender since it was hopelessly out of date and did not send data in the correct format. OK now, though only tested on NARW. * Mods to support command line and Network control of PAMGuard and to retrieve summary information from some modules. * Fix issue #80: recording path command line override * Allow RUNNOTHING bearing calculations Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> commit a72e68c26a1d4c673f4c04bf48549e244ff98199 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 7 17:15:04 2022 +0000 Adding comments to table definitions. Update tabledefs so tableitems can have descriptions. Useful to the coder, but can also export formal xms schema for each table. commit 3e717bd20748ededf4c43029af5e5bb2a32e1177 Merge: aa7f18ea d2e69c50 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 4 15:09:47 2022 +0000 Merge pull request #27 from PAMGuard/main Merge SUD changes from main commit d2e69c507ee3d848700fbb368f29765fe372115d Merge: 4f734b77 aa7f18ea Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 4 15:09:40 2022 +0000 Merge branch 'main' into main commit aa7f18eaa2ad85b248e52f06ff7d2fbe6a773f11 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Nov 2 10:09:30 2022 +0000 SAIL CArd warnings Don't display in dialog when in nogui mode. Write to terminal commit 4f734b7775c405fa05b4d8e4ae2f3aa2beb06dd1 Author: Jamie Mac Date: Mon Oct 31 13:43:15 2022 +0000 Added sud file capability (#78) * 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 TDisp… * Bug fixes for DL module Fix lack of prediction lines when prediction pane first initialized in TDdisplayFX. Fixed transform pane causing array out of bounds exception when loading old settings.l * Deep learning memory leak fix Fixed a memory leak whereby reloading the model every file (even if the model is closed) caused a memory leak. * Updates to FX GUI * Merge from upstream/main * Commit for pull request * Bug fix deep learning classifier The number of class names was not being read from import file- fixed * Squashed commit of the following: commit 30cd72e2e5b6719f72dfc4d1be207a1a4678fa9a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Jan 20 11:59:49 2023 +0000 Update dependency-reduced-pom.xml commit b5cf955cbad0212e13591032a5556045ed59a705 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Jan 20 11:57:57 2023 +0000 Fix bug in Click Detector target motion analysis Was crashing if not all click in event were loaded. commit 269398890e7407e60062c9735d68d8a32331a492 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Jan 19 17:53:59 2023 +0000 2.02.07b Fix ICI display bug in click detector commit a89279ef81056cff5bfa5a68fa4aa97868586f2e Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Jan 18 11:06:03 2023 +0000 V2.02.07a dB levels bug fix Fixed bug in some level calculations where a channel map instead of a single channel was being passed to the function performing the calcs. Was OK if hydrophones had same gain, but got it wrong if they were different. commit e169ccb1a782c5c675228b0b399177254343fa19 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Jan 10 11:17:44 2023 +0000 Version 2.02.07 Final readme, POM and version numbering for release 2.02.07 commit 44da3ffb57517074637ef8f12db53bca05805da9 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Jan 10 10:45:33 2023 +0000 Fix alarm module so it correctly uses Data Selectors commit 8642834c1e6ab718129e65753c0deb4d381e4744 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Jan 6 17:07:34 2023 +0000 Embryonic data units Data units flagged as embryonic don't get saved when first added to a data block. will get saved when embryonic flag set false and an update sent to the datablock. Useful when developing tracks which may continue to grow as more data become available. commit b1016c0cc8cd7e6a0fa15ae8df9ba8125b6794ee Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Dec 21 19:08:55 2022 +0000 Hide tool tips Use Esc key to hide all Swing tooltips for 6 seconds. Works across PAMGuard. commit 4322b2d42bf511857bdba4764c74a3974f187479 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 19 13:55:27 2022 +0000 Hide tooltips Added option to help menu to hide all tooltips in the GUI. commit 407e9d9d0839c7741cd9c86d742d312c6b12e7f7 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 19 13:54:40 2022 +0000 Random Mystecete Added a random Mystecete type call (random tonals < 1kHz) to the simulator, which are vaguely humpback like sounds. commit 0d4811848734ce3a95671f3f62c1c9cf5138a530 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 19 13:53:44 2022 +0000 Fix streamer problem Was not remembering the types (Fixed, Sensor, Default) of data being used for sensor orientation of streamers. commit bd0bed350c6a5a12d3840d41a2ff4a15b9607f5d Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 12 17:02:49 2022 +0000 Update version info to 2.02.06b commit 4e0eab5d75a575a3537140149db962c3dcd78b01 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 12 17:02:26 2022 +0000 Grid movement Fix bug that threw null pointer if grid movement used on a simulated object without a set name. commit d27e4fb19fa701802282a83e8b3a1efbfbf1119c Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 12 17:01:47 2022 +0000 click Offline toolbar Make it show option to show only event clicks even if there are no click classifications commit fc9c70ad78e4425a729417d16d9627376f47e7e6 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 12 17:01:06 2022 +0000 Fix Gebco grid data overlay offset commit 1be8a5ee8333ce13b2b2173c5bdcf341767a19e5 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 12 17:00:19 2022 +0000 Fixed Landmarks Debug so they don't disappear whenever viewer data are reloaded. commit e7a67d33cf9b7d754ff1e5c1638774e09aa809e3 Merge: 6995bee c32d172 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 27 14:44:48 2022 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard.git into main commit 6995bee65ba07baee650feab8344afef8a7626b2 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 27 14:44:19 2022 +0000 Logger LatLong Fix a couple of issues which threw and error in the event of a bad NMEA string. commit c32d1720007d33fd4fae5c94170740b58a69c9d7 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 21 09:13:59 2022 +0000 ROCCA Fix (#90) * Version 2.02.06 (hopefully) * ROCCA Memory leak Another attempt at healing ROCCA memory leak commit 3203a0a50f181e01b8268c2d5c6a61e39110aa80 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 18 10:52:50 2022 +0000 Remove a few terminal outputs Mostly with file analysis, to reduce junk on terminal commit 6f6f7407ca42f6c46b11c3f0c7b2f85a2297b500 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 18 09:55:17 2022 +0000 Ishmael bugs couple of places where PamDatablock.getLastUnit() was being used without synchronization and the unit was being deleted between the line checking there was a unit there and a line attempting to use the unit. Now correctly synched so will get a unit you can use, or null. commit 35ee1e3dfc936db830383576b005d985130da99d Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Nov 17 19:00:45 2022 +0000 Slipped in a last fix after release to correctly size components in PamModel viewer which weren't showing on hiDef correctly. commit 5b1cc760d8b3cab15213d6ada075d26e19eb1cb1 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Nov 16 09:12:55 2022 +0000 Quick fix of calibration data for ST Click detector. Was getting a 5V input from it's bespoke acquisition, whereas needs 2. commit 3f5e4e4a7988c5ab588ec9f905a7db6a787667ab Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 21:08:40 2022 +0000 Final final 2.02.06 Don't believe it until you see that tag commit 890230a6ffe3059314222d0a933054696a1b98e6 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:49:06 2022 +0000 Final final readme 2.02.06 commit 05268d810d8f6c98ae244026e002049db87be536 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:40:44 2022 +0000 Version 2.02.06 (#87) (hopefully) commit 7d7ecb95452486cd621b758f1adeb02ddb5b93ad Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:39:37 2022 +0000 Version 2.02.06 (#86) (hopefully) commit 76e84672016fada5c3733bdb3d00f0d5088a1c82 Merge: d2f74f6 ac280e1 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:37:14 2022 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard.git into main commit d2f74f606e8c0757d471af27318c35b22fef47ae Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:36:49 2022 +0000 readme for 2.02.06 commit ac280e1b6fefe68ef94ce9fd75ed90e014b4ee35 Author: m2oswald <45486636+m2oswald@users.noreply.github.com> Date: Tue Nov 15 15:41:43 2022 +0000 updates to Rocca module (#85) * allow Rocca to run without classifiers Fixed bug that threw an error if no classifier files were specified in Rocca Params dialog * add rocca switch to enable dev mode currently only shows/hides extra buttons in the Params dialog, but will extend to more options in the future * Fix memory issue with RoccaContourDataBlocks not being released for garbage collection Set RoccaContourDataBlock objects to null and stop PamObserver Timer to force release commit 655a54676413b353b76fea5fc28b48cd8942801c Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:56:00 2022 +0000 Update X3 Jar commit 96cd32034fb2afaa5a33987a372cb03fd0c792f3 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:55:37 2022 +0000 Delete x3-2.2.0.pom commit bf90443b1b9dc8491249b16c2fd93ec2a825aa8a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:55:28 2022 +0000 Delete x3-2.2.0.jar commit 22d32b46822e8a68b7310bfdb8e5f99235aa054c Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:54:15 2022 +0000 Update x3 jar file commit 14c5cf5afe94b42cbb72a71ee01b2697a54270a2 Merge: ccd0fc7 376a9f0 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:49:36 2022 +0000 Merge branch 'main' into main commit 376a9f0f0ebdff8347ead8349112db6c30b69c34 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 14:30:04 2022 +0000 Reinstate x3 jar commit 93193638b1053370a230c5154de57e98a96e765a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 14:29:37 2022 +0000 Last changes to x3 commit ccd0fc796537e54f0ba8fc61f07f85adb800e41d Author: m2oswald <45486636+m2oswald@users.noreply.github.com> Date: Mon Nov 14 11:00:15 2022 +0000 small updates to Rocca (#84) * allow Rocca to run without classifiers Fixed bug that threw an error if no classifier files were specified in Rocca Params dialog * add rocca switch to enable dev mode currently only shows/hides extra buttons in the Params dialog, but will extend to more options in the future commit ea32c5cdcb3ca85b3c912c57a66ea74ab53d31db Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 13 17:41:13 2022 +0000 SUD Files (#83) * Adding comments to table definitions. Update tabledefs so tableitems can have descriptions. Useful to the coder, but can also export formal xms schema for each table. * Writing xml schema Writing xml schema for PAMGuard database with annotations as complex types * Working SUD click extractor Seems to be mostly working and can generate PAMGuard click files automatically when processing SUD files using the soundtrap click detector * Small changes to SUD in PAMGuard * Better SUD timing Using latest microsecond time extraction from SUD unpack * SUD Processing Extraction of SUD file clicks with SoundTrap Click Detector. Timing now correct. Added some help pages. * Functional SUD Reader and SUD Click Extractor All seems working. Seems to throw the odd exception at end of file, but works OK. commit f08cf4ffd711a5f991050fbb47335eba08c22b87 Merge: d3277be 4a75afc Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 13 17:38:59 2022 +0000 Merge pull request #29 from PAMGuard/main Memory leak fix commit d3277be3b1f8ab142fcb21ee36c91ddd597ff83d Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 13 17:37:53 2022 +0000 Functional SUD Reader and SUD Click Extractor All seems working. Seems to throw the odd exception at end of file, but works OK. commit d1af0000400e44da789e361567d9ec49f9b75970 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat Nov 12 19:21:57 2022 +0000 SUD Processing Extraction of SUD file clicks with SoundTrap Click Detector. Timing now correct. Added some help pages. commit 4a75afc41451594b451f3915d6d15347c4fbfe64 Merge: 3b053ff fe0fe11 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 11 20:59:10 2022 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard.git into main commit 3b053ff342eccb8a698fa36415119a62a1e9e2e1 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 11 20:58:42 2022 +0000 Memory leak Fix viewer memory leak whereby background measurements weren't being cleared between data loads, so eventually ran out of memory. commit 068a8b1a273e014fce12ecb66579ee4a20927ba8 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 11 08:56:03 2022 +0000 Better SUD timing Using latest microsecond time extraction from SUD unpack commit ee24c0ab6b128d0c9eb7947f823c2fe7dbb0d5ca Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Nov 10 17:21:37 2022 +0000 Small changes to SUD in PAMGuard commit 87cd2cd41f3883aa7dfbbd56efccbe97dcd6f02e Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Nov 10 15:20:15 2022 +0000 Working SUD click extractor Seems to be mostly working and can generate PAMGuard click files automatically when processing SUD files using the soundtrap click detector commit 61dd6ef4d1f4701972c1ed93985075129f299df7 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 8 16:42:57 2022 +0000 Writing xml schema Writing xml schema for PAMGuard database with annotations as complex types commit fcdb64e46705b94430c9542aed13ba71231c9ff6 Merge: a72e68c fe0fe11 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 8 10:44:01 2022 +0000 Merge pull request #28 from PAMGuard/main Fix to issue #80 (#81) commit fe0fe11faf47e95ec3d3c92841a5a066e5f27a7f Author: stabbutt <100229685+stabbutt@users.noreply.github.com> Date: Tue Nov 8 01:02:52 2022 -0800 Fix to issue #80 (#81) * Fix network sender since it was hopelessly out of date and did not send data in the correct format. OK now, though only tested on NARW. * Fix network sender since it was hopelessly out of date and did not send data in the correct format. OK now, though only tested on NARW. * Mods to support command line and Network control of PAMGuard and to retrieve summary information from some modules. * Fix issue #80: recording path command line override * Allow RUNNOTHING bearing calculations Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> commit a72e68c26a1d4c673f4c04bf48549e244ff98199 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 7 17:15:04 2022 +0000 Adding comments to table definitions. Update tabledefs so tableitems can have descriptions. Useful to the coder, but can also export formal xms schema for each table. commit 3e717bd20748ededf4c43029af5e5bb2a32e1177 Merge: aa7f18e d2e69c5 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 4 15:09:47 2022 +0000 Merge pull request #27 from PAMGuard/main Merge SUD changes from main commit d2e69c507ee3d848700fbb368f29765fe372115d Merge: 4f734b7 aa7f18e Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Nov 4 15:09:40 2022 +0000 Merge branch 'main' into main commit aa7f18eaa2ad85b248e52f06ff7d2fbe6a773f11 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Nov 2 10:09:30 2022 +0000 SAIL CArd warnings Don't display in dialog when in nogui mode. Write to terminal commit 4f734b7775c405fa05b4d8e4ae2f3aa2beb06dd1 Author: Jamie Mac Date: Mon Oct 31 13:43:15 2022 +0000 Added sud file capability (#78) * 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 5a37bfe915925ea2307dd09928538c7e639ca52c 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 b08e86e330c5ca2de4b6902eb7ec514f47278a7c Author: Jamie Mac 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 9f998165ee95dbb16acaf420876f3aeab75c2158 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 62b020b3204aa56189b1c2da88bcbb9f49140936 Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit 3a9a5311aa529b66340f6ae322f88905b911947a Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit 9f998165ee95dbb16acaf420876f3aeab75c2158 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 11ba8bf91e1cd55e4305c4060a379f9ff0c58c4d 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 9a9f542d95b6cbc571d60a2250a2d4accf8dc4b3 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 49cd547aee3e4366e1aaa51b8fe7418199c2ad73 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 016cfd0da54021dcbe787f0a20856604b81bf7af 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 c9f2ab3e97ec289ee8c1bcfe4531c84f77ee7fa8 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 55f5a3fcf12c6c8a727318a17f9dece401adc9f3 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 b3f6c0e6657de91a7e015a48f5f218f60f23c5f5 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 8569b6b579659cba8229596e91c35355bc5ed61b 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 128a512ff60c26b5acedd76de96c0905c6bf27ae 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 6eaa6e4978b2483e5828ca4a3914c58d7a9cfe2d 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 9fdd30556bf391428e1d3f2f9e91dbbdf771fa84 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 ef0330173b5a9683fb79c9cb027b207a768ae30c Author: Jamie Mac 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 p… * More work on FX click classifier * Bug fixes to deep learning module --------- Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> --- .classpath | 2 +- .gitignore | 1 + src/Resources/css/primer-dark.css | 2 +- .../SweepClassifierSetPaneFX.java | 67 +++++++-- .../utilityPanes/GroupedSourcePaneFX.java | 2 +- .../utilityPanes/SimpleFilterPaneFX.java | 12 +- .../dataPlotFX/DLPredictionPlotInfoFX.java | 4 +- .../dlClassification/DLClassifyProcess.java | 2 +- .../dlTransfroms/DLImageTransformPane.java | 132 +++++++++--------- 9 files changed, 134 insertions(+), 90 deletions(-) diff --git a/.classpath b/.classpath index 26c568d7..a5d40376 100644 --- a/.classpath +++ b/.classpath @@ -6,7 +6,7 @@ - + diff --git a/.gitignore b/.gitignore index c9419840..61250077 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ settings.xml .classpath .classpath .classpath +.classpath diff --git a/src/Resources/css/primer-dark.css b/src/Resources/css/primer-dark.css index 82062a73..6c1e53ca 100644 --- a/src/Resources/css/primer-dark.css +++ b/src/Resources/css/primer-dark.css @@ -3699,7 +3699,7 @@ Text { #label-title1 { - -fx-font: bold 16pt -fx-font-family; + -fx-font: bold 14pt -fx-font-family; } #label-title2 { diff --git a/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java b/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java index 2ed80884..bca56153 100644 --- a/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java +++ b/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java @@ -51,11 +51,18 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.util.ArrayList; +import java.util.List; + +import javax.swing.JPanel; import PamController.SettingsPane; import PamUtils.PamUtils; import PamView.PamSymbol; import PamView.dialog.PamGridBagContraints; import PamView.symbol.SymbolData; +import clickDetector.ClickControl; import clickDetector.ClickClassifiers.basicSweep.CodeHost; import clickDetector.ClickClassifiers.basicSweep.SweepClassifier; import clickDetector.ClickClassifiers.basicSweep.SweepClassifierSet; @@ -237,11 +244,10 @@ public class SweepClassifierSetPaneFX extends SettingsPane { //create holder pane borderPane=new PamBorderPane(); this.setCenter(borderPane); - + PamHBox hBox = new PamHBox(); hBox.setSpacing(5); - if (borderTitle != null) { label=new Label(borderTitle); @@ -764,6 +770,8 @@ public class SweepClassifierSetPaneFX extends SettingsPane { */ PamSpinner threshold; + private PamVBox vboxholder; + ClickLengthBox() { super("Click Length", true); @@ -882,10 +890,11 @@ public class SweepClassifierSetPaneFX extends SettingsPane { @Override protected void disbleControls(boolean disable) { - smoothing.setDisable(disable); - minLengthms.setDisable(disable); - maxLengthms.setDisable(disable); - threshold.setDisable(disable); + vboxholder.setDisable(disable); +// smoothing.setDisable(disable); +// minLengthms.setDisable(disable); +// maxLengthms.setDisable(disable); +// threshold.setDisable(disable); } } @@ -929,13 +938,13 @@ public class SweepClassifierSetPaneFX extends SettingsPane { pamGridPane.setVgap(5); Label freqLabel=new Label("Frequency (Hz)"); - pamGridPane.add(freqLabel, 0, 0); - pamGridPane.add(new Label("Threshold (dB)"), 2, 0); + gridPaneHolder.add(freqLabel, 0, 0); + gridPaneHolder.add(new Label("Threshold (dB)"), 2, 0); PamGridPane.setHalignment(freqLabel, HPos.CENTER); - PamGridPane.setColumnSpan(pamGridPane, 2); + PamGridPane.setColumnSpan(gridPaneHolder, 2); //test band - pamGridPane.add(new Label("Test Band"), 0, 1); + gridPaneHolder.add(new Label("Test Band"), 0, 1); testBandFreqPane=new FreqBandPane(Orientation.HORIZONTAL); testBandFreqPane.setBandText(""); @@ -1094,6 +1103,9 @@ public class SweepClassifierSetPaneFX extends SettingsPane { private PamSpinner threshold; private FreqBandPane searchRange; private FreqBandPane meanFreq; + + //the main holder pane. + private PamGridPane gridPaneHolder; FrequencySearchBlock() { super("Peak and Mean Frequency", true); @@ -1176,14 +1188,12 @@ public class SweepClassifierSetPaneFX extends SettingsPane { addValidatorFreqCheck(getValidator(), peakWidthPane, "peak width ", "peak_width"); gridy++; - pamGridPane.add(new Label(""), 1,gridy); threshold=new PamSpinner(1., 300., 6.,1.); threshold.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL); threshold.setPrefWidth(100); GridPane.setMargin(threshold, new Insets(0,0,0,5)); //bit of a hack to make sure everything lines up nicely with the frequency pane. - pamGridPane.add(threshold,2,gridy); pamGridPane.add(new Label("dB"), 3,gridy); @@ -1216,8 +1226,6 @@ public class SweepClassifierSetPaneFX extends SettingsPane { @Override protected void setParams() { setEnableBox(sweepClassifierSet.enableEnergyBands); - - } @Override @@ -1227,6 +1235,22 @@ public class SweepClassifierSetPaneFX extends SettingsPane { } @Override + protected void disbleControls(boolean disable) { + this.gridPaneHolder.setDisable(disable); + +// peakFreqCheckBox.setDisable(enable); +// peakWidthCheckBox.setDisable(enable); +// meanFreqCheckBox.setDisable(enable); +// +// +// /** +// * Pane to set frequency band range */ +// peakFreqPane.setDisable(enable); +// smoothing.setDisable(enable); +// peakWidthPane.setDisable(enable); +// threshold.setDisable(enable); +// searchRange.setDisable(enable); +// meanFreq.setDisable(enable); protected void disbleControls(boolean enable) { peakFreqCheckBox.setDisable(enable); peakWidthCheckBox.setDisable(enable); @@ -1274,6 +1298,11 @@ public class SweepClassifierSetPaneFX extends SettingsPane { */ private PamSpinner freqZeroMax; + /** + * The main holder + */ + private PamGridPane gridPaneHolder; + ZeroCrossingsBox() { super("Zero Crossings", true); this.getHolderPane().setCenter(createZeroCrossPane()); @@ -1600,6 +1629,7 @@ public class SweepClassifierSetPaneFX extends SettingsPane { p.setLayout(new GridBagLayout()); GridBagConstraints c = new PamGridBagContraints(); + // c.gridx = 0; // addComponent(p, enableBearings, c); // c.gridx += c.gridwidth; @@ -1832,12 +1862,19 @@ public class SweepClassifierSetPaneFX extends SettingsPane { } - private boolean showWarning(String string, String string2) { //PamController.getInstance(); PamDialogFX.showWarning(null, string, string2); return false; } + + /** + * Get the click control associated with the classifier. + * @return the click control. + */ + public ClickControl getClickControl() { + return this.sweepClassifier.getClickDetector().getClickControl(); + } /** diff --git a/src/pamViewFX/fxNodes/utilityPanes/GroupedSourcePaneFX.java b/src/pamViewFX/fxNodes/utilityPanes/GroupedSourcePaneFX.java index c2fe9295..43a9338c 100644 --- a/src/pamViewFX/fxNodes/utilityPanes/GroupedSourcePaneFX.java +++ b/src/pamViewFX/fxNodes/utilityPanes/GroupedSourcePaneFX.java @@ -109,7 +109,7 @@ public class GroupedSourcePaneFX extends SourcePaneFX { channelPanel.setSpacing(5); Label channelLabel = new Label("Channels"); -// channelLabel.setFont(PamGuiManagerFXAWT.titleFontSize2); + PamGuiManagerFX.titleFont2style(channelLabel); sourcePane.add(channelLabel,0,2); //create radio buttons to allow user to quickly select type of grouping. diff --git a/src/pamViewFX/fxNodes/utilityPanes/SimpleFilterPaneFX.java b/src/pamViewFX/fxNodes/utilityPanes/SimpleFilterPaneFX.java index fd7e288f..efb71e85 100644 --- a/src/pamViewFX/fxNodes/utilityPanes/SimpleFilterPaneFX.java +++ b/src/pamViewFX/fxNodes/utilityPanes/SimpleFilterPaneFX.java @@ -238,11 +238,13 @@ public class SimpleFilterPaneFX extends DynamicSettingsPane{ * @param disable - true to disable the pane */ public void setDisableFilterPane(boolean disable){ - highPass.setDisable(disable); - lowPass.setDisable(disable); - bandPass.setDisable(disable); - bandStop.setDisable(disable); - freqPane.setDisableFreqPane(disable); + mainPane.setDisable(disable); + +// highPass.setDisable(disable); +// lowPass.setDisable(disable); +// bandPass.setDisable(disable); +// bandStop.setDisable(disable); +// freqPane.setDisableFreqPane(disable); } public double getSampleRate() { diff --git a/src/rawDeepLearningClassifier/dataPlotFX/DLPredictionPlotInfoFX.java b/src/rawDeepLearningClassifier/dataPlotFX/DLPredictionPlotInfoFX.java index aa1f5739..945561b5 100644 --- a/src/rawDeepLearningClassifier/dataPlotFX/DLPredictionPlotInfoFX.java +++ b/src/rawDeepLearningClassifier/dataPlotFX/DLPredictionPlotInfoFX.java @@ -317,10 +317,12 @@ public class DLPredictionPlotInfoFX extends GenericLinePlotInfo { @Override public double[][] getDetData(PamDataUnit pamDataUnit) { - double[] data = PamArrayUtils.float2Double(((DLDataUnit) pamDataUnit).getPredicitionResult().getPrediction()); + double[] data = PamArrayUtils.float2Double(((DLDataUnit) pamDataUnit).getPredicitionResult().getPrediction()); + double[][] dataD = new double[data.length][]; for (int i=0; i transforms = getDLTransforms(); - WaveTransform waveTransForm ; - FreqTransform freqTranform ; +// ArrayList transforms = getDLTransforms(); +// WaveTransform waveTransForm ; +// FreqTransform freqTranform ; - //extra things that may need changed... - for (DLTransform dlTransfrom: transforms) { - switch (dlTransfrom.getDLTransformType()) { - case DECIMATE: - waveTransForm = ((WaveTransform) dlTransfrom); - - //change if the example sample rate is higher to if there is a large differenc in sample rates and decimation. - if (exampleSound.getSampleRate()4) { - waveTransForm.setParams(new Number[] {exampleSound.getSampleRate()}); //set the correct samplerate - dlTransformPane.getDLTransformPanes().get(transforms.indexOf(dlTransfrom)).setParams(waveTransForm); - } - break; - case PREEMPHSIS: - waveTransForm = ((WaveTransform) dlTransfrom); - if (exampleSound.getSampleRate()<10000 && waveTransForm.getParams()[0].doubleValue()>0.1) { - waveTransForm.setParams(new Number[] {0.1}); //set the correct samplerate - dlTransformPane.getDLTransformPanes().get(transforms.indexOf(dlTransfrom)).setParams(waveTransForm); - } - break; - case SPEC2DB: - break; - case SPECCLAMP: - break; - case SPECCROPINTERP: - - freqTranform = ((FreqTransform) dlTransfrom); - Number[] params = freqTranform.getParams(); - - double highestFreq = exampleSound.getSampleRate()/2; //nyquist - - if (params[0].doubleValue()>=highestFreq) params[0]=0.0; - - //this will break stuff if interp frequency is greater than nyquist - if (params[1].doubleValue()>highestFreq) { -// System.out.println("----HERE 1----"); - params[1]=highestFreq; //nyquist - } - //if we switch to a high frequency want to the interp not to just select the lowest band - -// else if (params[1].doubleValue()4) { +// waveTransForm.setParams(new Number[] {exampleSound.getSampleRate()}); //set the correct samplerate +// dlTransformPane.getDLTransformPanes().get(transforms.indexOf(dlTransfrom)).setParams(waveTransForm); +// } +// break; +// case PREEMPHSIS: +// waveTransForm = ((WaveTransform) dlTransfrom); +// if (exampleSound.getSampleRate()<10000 && waveTransForm.getParams()[0].doubleValue()>0.1) { +// waveTransForm.setParams(new Number[] {0.1}); //set the correct samplerate +// dlTransformPane.getDLTransformPanes().get(transforms.indexOf(dlTransfrom)).setParams(waveTransForm); +// } +// break; +// case SPEC2DB: +// break; +// case SPECCLAMP: +// break; +// case SPECCROPINTERP: +// +// freqTranform = ((FreqTransform) dlTransfrom); +// Number[] params = freqTranform.getParams(); +// +// double highestFreq = exampleSound.getSampleRate()/2; //nyquist +// +// if (params[0].doubleValue()>=highestFreq) params[0]=0.0; +// +// //this will break stuff if interp frequency is greater than nyquist +// if (params[1].doubleValue()>highestFreq) { +//// System.out.println("----HERE 1----"); // params[1]=highestFreq; //nyquist // } - - //System.out.println("Interp params: " + params[0] + " " + params[1] + " " + params[2]); - freqTranform.setParams(params); - - dlTransformPane.getDLTransformPanes().get(transforms.indexOf(dlTransfrom)).setParams(freqTranform); - - break; - case SPECNORMALISE: - break; - case SPECNORMALISEROWSUM: - break; - case SPECTROGRAM: - break; - case TRIM: - break; - default: - break; - - } - } +// //if we switch to a high frequency want to the interp not to just select the lowest band +// +//// else if (params[1].doubleValue() Date: Tue, 7 Feb 2023 17:35:01 +0000 Subject: [PATCH 04/15] Synchronizing object packing Synchronize object packing between the binary store and the network sender since we're having trouble with these two users of data overwriting each others work in progress. --- src/binaryFileStorage/BinaryDataSource.java | 14 +++++++++----- src/networkTransfer/send/NetworkObjectPacker.java | 5 ++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/binaryFileStorage/BinaryDataSource.java b/src/binaryFileStorage/BinaryDataSource.java index ccd07440..bb2888ba 100644 --- a/src/binaryFileStorage/BinaryDataSource.java +++ b/src/binaryFileStorage/BinaryDataSource.java @@ -41,6 +41,8 @@ public abstract class BinaryDataSource { private boolean saveUpdates = false; private BackgroundBinaryWriter backgroundBinaryWriter; + + public static final Object packSynchObject = new Object(); /** * Create a binary data source. These are used both to store data in binary @@ -224,11 +226,13 @@ public abstract class BinaryDataSource { * Then pack the data */ BinaryObjectData data; - if (pamDataUnit instanceof BackgroundDataUnit) { - data = getBackgroundBinaryWriter().packBackgroundData((BackgroundDataUnit) pamDataUnit); - } - else { - data = getPackedData(pamDataUnit); + synchronized (packSynchObject) { + if (pamDataUnit instanceof BackgroundDataUnit) { + data = getBackgroundBinaryWriter().packBackgroundData((BackgroundDataUnit) pamDataUnit); + } + else { + data = getPackedData(pamDataUnit); + } } /* * Then put it back to how it was a moment ago. diff --git a/src/networkTransfer/send/NetworkObjectPacker.java b/src/networkTransfer/send/NetworkObjectPacker.java index 08b9aa0d..ee3aac88 100644 --- a/src/networkTransfer/send/NetworkObjectPacker.java +++ b/src/networkTransfer/send/NetworkObjectPacker.java @@ -75,7 +75,10 @@ public class NetworkObjectPacker { BinaryDataSource binarySource = dataBlock.getBinaryDataSource(); int dataType2 = dataBlock.getQuickId(); - BinaryObjectData packedObject = binarySource.getPackedData(dataUnit); + BinaryObjectData packedObject = null; + synchronized (BinaryDataSource.packSynchObject) { + packedObject = binarySource.getPackedData(dataUnit); + } byte[] data = packedObject.getData(); int duDataLength = data.length + 12; DataUnitBaseData baseData = dataUnit.getBasicData(); From f64deecbd57acbf043e9955d2f5a55c26061092c Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri, 17 Feb 2023 11:12:08 +0000 Subject: [PATCH 05/15] Fix but in filedata Stops errors (and returns 0) if an invalid user data format is used. --- .../filedate/StandardFileDate.java | 3 +++ .../SweepClassifierSetPaneFX.java | 20 +++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Acquisition/filedate/StandardFileDate.java b/src/Acquisition/filedate/StandardFileDate.java index aa87e973..40eff193 100644 --- a/src/Acquisition/filedate/StandardFileDate.java +++ b/src/Acquisition/filedate/StandardFileDate.java @@ -287,6 +287,9 @@ public class StandardFileDate implements FileDate, PamSettings { System.out.println(e.getMessage()); } //throws ParseException if no match setLastFormat(forcedDateFormat); + if (d == null) { + return 0; + } return d.getTime(); } diff --git a/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java b/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java index bca56153..e11aec29 100644 --- a/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java +++ b/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java @@ -938,13 +938,13 @@ public class SweepClassifierSetPaneFX extends SettingsPane { pamGridPane.setVgap(5); Label freqLabel=new Label("Frequency (Hz)"); - gridPaneHolder.add(freqLabel, 0, 0); - gridPaneHolder.add(new Label("Threshold (dB)"), 2, 0); - PamGridPane.setHalignment(freqLabel, HPos.CENTER); - PamGridPane.setColumnSpan(gridPaneHolder, 2); - - //test band - gridPaneHolder.add(new Label("Test Band"), 0, 1); +//// gridPaneHolder.add(freqLabel, 0, 0); +//// gridPaneHolder.add(new Label("Threshold (dB)"), 2, 0); +// PamGridPane.setHalignment(freqLabel, HPos.CENTER); +// PamGridPane.setColumnSpan(gridPaneHolder, 2); +// +// //test band +// gridPaneHolder.add(new Label("Test Band"), 0, 1); testBandFreqPane=new FreqBandPane(Orientation.HORIZONTAL); testBandFreqPane.setBandText(""); @@ -1235,8 +1235,8 @@ public class SweepClassifierSetPaneFX extends SettingsPane { } @Override - protected void disbleControls(boolean disable) { - this.gridPaneHolder.setDisable(disable); +// protected void disbleControls(boolean disable) { +// this.gridPaneHolder.setDisable(disable); // peakFreqCheckBox.setDisable(enable); // peakWidthCheckBox.setDisable(enable); @@ -1899,4 +1899,4 @@ public class SweepClassifierSetPaneFX extends SettingsPane { private boolean isPaneShowing() { return sweepClassifier.getClassifierPane().getFlipPane().isBackVisible(); } -} +} \ No newline at end of file From 74066712b8d5f9f83926dbe3fdf43bad4b27bed8 Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue, 4 Apr 2023 18:04:13 +0100 Subject: [PATCH 06/15] Fix Data export bug Bug causing npe when exporting data to database. Fixed problem. And better error messages in some thrown exceptions to make it easier to identify where errors are occurring. --- dependency-reduced-pom.xml | 2 +- pom.xml | 2 +- src/Acquisition/FolderInputSystem.java | 31 +++++++++++++------ .../filedate/StandardFileDate.java | 2 +- src/IshmaelLocator/IshLocProcess.java | 2 +- src/JSSHTerminal/SSHSession.java | 4 +-- src/NMEA/AcquireNmeaData.java | 2 +- src/PamController/PamController.java | 5 +++ src/PamController/PamSettingManager.java | 4 +-- src/PamController/PamguardVersionInfo.java | 4 +-- src/PamController/extern/ExternalCapture.java | 2 +- .../output/xml/PamguardXMLWriter.java | 6 ++-- src/PamUtils/FileFunctions.java | 2 +- .../worker/filelist/FileListWorker.java | 5 +++ src/alarm/AlarmProcess.java | 5 +++ src/alarm/actions/sound/PlaySound.java | 6 ++-- src/backupmanager/stream/BackupStream.java | 2 +- src/clickDetector/ClickDetector.java | 2 +- src/clipgenerator/ClipProcess.java | 2 +- src/dbht/DbHtDialog.java | 2 +- src/difar/DifarProcess.java | 2 +- src/difar/demux/NativeDemux.java | 2 +- src/generalDatabase/DBSpeedTest.java | 2 +- src/gpl/contour/ContourFinder.java | 12 ++++++- .../hyperbolic/HyperbolicLocaliser.java | 6 ++-- .../toadsimplex/ToadSimplexLocaliser.java | 2 +- .../emulator/EmulatorStream.java | 6 ++-- .../receive/NetworkReceiver.java | 2 +- src/networkTransfer/send/NetworkSender.java | 6 ++-- src/nmeaEmulator/SerialOutput.java | 2 +- src/offlineProcessing/DataCopyTask.java | 5 +-- src/offlineProcessing/OfflineTask.java | 1 - .../fxNodes/pamAxis/PamAxisPane2.java | 2 +- src/pamguard/Pamguard.java | 29 ++++++++++++++--- src/rocca/RoccaContour.java | 4 +-- src/rocca/RoccaSpecPopUp.java | 2 +- src/rockBlock/RockBlockProcess2.java | 2 +- src/soundtrap/DWVConverter.java | 4 +-- 38 files changed, 119 insertions(+), 64 deletions(-) diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 779f85b1..9b36655e 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -4,7 +4,7 @@ org.pamguard Pamguard Pamguard Java12+ - 2.02.07b + 2.02.07f Pamguard for Java 12+, using Maven to control dependcies www.pamguard.org diff --git a/pom.xml b/pom.xml index 62ccf835..1b9eabab 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 org.pamguard Pamguard - 2.02.07b + 2.02.07f Pamguard Java12+ Pamguard for Java 12+, using Maven to control dependcies www.pamguard.org diff --git a/src/Acquisition/FolderInputSystem.java b/src/Acquisition/FolderInputSystem.java index 92ee94d7..43b055bb 100644 --- a/src/Acquisition/FolderInputSystem.java +++ b/src/Acquisition/FolderInputSystem.java @@ -48,6 +48,7 @@ import PamView.dialog.PamGridBagContraints; import PamView.dialog.PamLabel; import PamView.panel.PamPanel; import PamView.panel.PamProgressBar; +import PamguardMVC.debug.Debug; /** * Read multiple files in sequence. Options exist to either pause and @@ -116,7 +117,7 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings{ if (folderInputParameters == null) setFolderInputParameters(new FolderInputParameters(getSystemType())); // PamSettingManager.getInstance().registerSettings(this); //calling super already registers this in the FileInputSystem constructor - checkComandLine(); +// checkComandLine(); makeSelFileList(); newFileTimer = new Timer(1000, new RestartTimer()); newFileTimer.setRepeats(false); @@ -126,18 +127,21 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings{ /** * Check to see if acquisition source folder was set in the command line. */ - private void checkComandLine() { + private String[] checkComandLineFolder() { String globalFolder = GlobalArguments.getParam(GlobalWavFolderArg); + Debug.out.println("Checking -wavfilefolder option: is " + globalFolder); if (globalFolder == null) { - return; + return null; } // see if it at least exists, though will we want to do this for Network folders ? File aFile = new File(globalFolder); if (aFile.exists() == false) { - System.err.println("Command line folder does not exist: " + globalFolder); + System.err.printf("Command line wav folder \"%s\" does not exist", globalFolder); +// return null; } String[] selList = {globalFolder}; - folderInputParameters.setSelectedFiles(selList); +// folderInputParameters.setSelectedFiles(selList); + return selList; } /** @@ -290,15 +294,24 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings{ } /** - * Make a list of wav files within a folder. + * Make a list of wav files within a folder. In some circumstances this can be a list + * of actual files in a folder. Also needs to handle the possibility of it using + * a globally set folder name. * @return flag to indicate...nothing? */ public int makeSelFileList() { - if (fileInputParameters.recentFiles == null || fileInputParameters.recentFiles.size() < 1) { - return 0; + String[] selection = checkComandLineFolder(); + + if (selection == null) { + if (fileInputParameters.recentFiles == null || fileInputParameters.recentFiles.size() < 1) { + return 0; + } + selection = folderInputParameters.getSelectedFiles(); + } + if (selection.length > 0) { + System.out.println("FolderInputSystem.makeSelFileList(): Searching for sound files in " + selection[0]); } - String[] selection = folderInputParameters.getSelectedFiles(); return makeSelFileList(selection); } diff --git a/src/Acquisition/filedate/StandardFileDate.java b/src/Acquisition/filedate/StandardFileDate.java index 40eff193..53033f60 100644 --- a/src/Acquisition/filedate/StandardFileDate.java +++ b/src/Acquisition/filedate/StandardFileDate.java @@ -284,7 +284,7 @@ public class StandardFileDate implements FileDate, PamSettings { } catch (ParseException e) { // TODO Auto-generated catch block // e.printStackTrace(); - System.out.println(e.getMessage()); + System.out.println("StandardfileDate.forcedDataFormat:" + e.getMessage()); } //throws ParseException if no match setLastFormat(forcedDateFormat); if (d == null) { diff --git a/src/IshmaelLocator/IshLocProcess.java b/src/IshmaelLocator/IshLocProcess.java index cdec7212..9b34462d 100644 --- a/src/IshmaelLocator/IshLocProcess.java +++ b/src/IshmaelLocator/IshLocProcess.java @@ -368,7 +368,7 @@ abstract public class IshLocProcess extends PamProcess implements SpectrogramMar selectionSams = daqBlock.getSamples(startSam, (int)durationSam, channelMap); } catch (RawDataUnavailableException e) { - System.out.println(e.getMessage()); + System.out.println("RawDataUnavailableException in IshLocProcess:" + e.getMessage()); // if the raw data has already been discarded, adjust the natural lifetime to try and avoid this in the future int newTime; diff --git a/src/JSSHTerminal/SSHSession.java b/src/JSSHTerminal/SSHSession.java index daf2e2f1..af5ccd56 100644 --- a/src/JSSHTerminal/SSHSession.java +++ b/src/JSSHTerminal/SSHSession.java @@ -287,7 +287,7 @@ public final class SSHSession implements UserInfo { out.write(k); out.flush(); } catch (IOException e) { - System.out.println(e.getMessage()); + System.out.println("IOException in SSHSession.write: " + e.getMessage()); } } @@ -349,7 +349,7 @@ public final class SSHSession implements UserInfo { } } } catch (IOException e) { - System.out.println(e.getMessage()); + System.out.println("Error in SSHSession.pump: " + e.getMessage()); } finally { closeQuietly(in); closeQuietly(out); diff --git a/src/NMEA/AcquireNmeaData.java b/src/NMEA/AcquireNmeaData.java index 95a0f39b..e86d0ba2 100644 --- a/src/NMEA/AcquireNmeaData.java +++ b/src/NMEA/AcquireNmeaData.java @@ -203,7 +203,7 @@ public class AcquireNmeaData extends PamProcess implements ActionListener, Modul try { pjSerialComm = PJSerialComm.openSerialPort(params.serialPortName, params.serialPortBitsPerSecond); } catch (PJSerialException e) { - System.out.println(e.getMessage()); + System.out.println("PJSerialException in AcquireNMEAData" + e.getMessage()); // WarnOnce.sho return; } diff --git a/src/PamController/PamController.java b/src/PamController/PamController.java index c7546e04..857481ad 100644 --- a/src/PamController/PamController.java +++ b/src/PamController/PamController.java @@ -1277,7 +1277,12 @@ public class PamController implements PamControllerInterface, PamSettings { @Override public void run() { + long t1 = System.currentTimeMillis(); while (checkRunStatus()) { + long t2 = System.currentTimeMillis(); + if (t2 - t1 > 5000) { + System.out.printf("Stopping, but stuck in loop for CheckRunStatus for %3.1fs\n", (double) (t2-t1)/1000.); + } try { Thread.sleep(10); } catch (InterruptedException e) { diff --git a/src/PamController/PamSettingManager.java b/src/PamController/PamSettingManager.java index e9119294..42488e1d 100644 --- a/src/PamController/PamSettingManager.java +++ b/src/PamController/PamSettingManager.java @@ -1752,10 +1752,10 @@ public class PamSettingManager { fIs.close(); fOs.close(); } catch (FileNotFoundException e) { - System.out.println(e.getMessage()); + System.out.println("FileNotFound exception in PamSettingsManager: " + e.getMessage()); return false; } catch (IOException e) { - System.out.println(e.getMessage()); + System.out.println("IO exception in PamSettingsManager: " + e.getMessage()); return false; } return true; diff --git a/src/PamController/PamguardVersionInfo.java b/src/PamController/PamguardVersionInfo.java index 072ba3de..791c56a3 100644 --- a/src/PamController/PamguardVersionInfo.java +++ b/src/PamController/PamguardVersionInfo.java @@ -31,12 +31,12 @@ public class PamguardVersionInfo { * Version number, major version.minorversion.sub-release. * Note: can't go higher than sub-release 'f' */ - static public final String version = "2.02.07b"; + static public final String version = "2.02.07f"; /** * Release date */ - static public final String date = "19 January 2023"; + static public final String date = "4 April 2023"; // /** // * Release type - Beta or Core diff --git a/src/PamController/extern/ExternalCapture.java b/src/PamController/extern/ExternalCapture.java index a4ff2259..8413467f 100644 --- a/src/PamController/extern/ExternalCapture.java +++ b/src/PamController/extern/ExternalCapture.java @@ -46,7 +46,7 @@ public class ExternalCapture extends ExternalController { } } } catch (IOException e) { - System.out.println(e.getMessage()); + System.out.println("IOError in ExternalCapture.readInputStream: " + e.getMessage()); } } diff --git a/src/PamController/settings/output/xml/PamguardXMLWriter.java b/src/PamController/settings/output/xml/PamguardXMLWriter.java index 1e9aae0f..6b42c4e7 100644 --- a/src/PamController/settings/output/xml/PamguardXMLWriter.java +++ b/src/PamController/settings/output/xml/PamguardXMLWriter.java @@ -662,7 +662,7 @@ public class PamguardXMLWriter implements PamSettings { } } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Error in PamguardXMLWriter.writeArray: " + e.getMessage()); } return null; } @@ -704,7 +704,7 @@ public class PamguardXMLWriter implements PamSettings { return e; } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Error in PamguardXMLWriter.writeObjectArray: " + e.getMessage()); } return null; } @@ -729,7 +729,7 @@ public class PamguardXMLWriter implements PamSettings { // el.appendChild(e); } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Error in PamguardXMLWriter.writePrimativeArray: " + e.getMessage()); } return null; } diff --git a/src/PamUtils/FileFunctions.java b/src/PamUtils/FileFunctions.java index 6d3d1319..739a7a92 100644 --- a/src/PamUtils/FileFunctions.java +++ b/src/PamUtils/FileFunctions.java @@ -108,7 +108,7 @@ public class FileFunctions { return attrib; } catch (Error e) { - System.out.println(e.getMessage()); + System.out.println("Error in FileFunctions.getAttributes: " + e.getMessage()); return 0; } } diff --git a/src/PamUtils/worker/filelist/FileListWorker.java b/src/PamUtils/worker/filelist/FileListWorker.java index 56c52caa..e613ced0 100644 --- a/src/PamUtils/worker/filelist/FileListWorker.java +++ b/src/PamUtils/worker/filelist/FileListWorker.java @@ -8,6 +8,7 @@ import PamUtils.PamFileFilter; import PamUtils.worker.PamWorkProgressMessage; import PamUtils.worker.PamWorkWrapper; import PamUtils.worker.PamWorker; +import PamguardMVC.debug.Debug; /** * Class to list files in one or more directories. @@ -64,6 +65,9 @@ public abstract class FileListWorker implements PamWorkWrapper>>>>>>>Starting file search in " + rootList[i]); + } if (noChange(rootList, subFolders, useOldIfPossible)) { SwingUtilities.invokeLater(new Runnable() { @Override @@ -162,6 +166,7 @@ public abstract class FileListWorker implements PamWorkWrapper> pamWorker, FileListData newFileList, File folder) { newFileList.addFolder(); pamWorker.update(new PamWorkProgressMessage(-1, "Searching folder " + folder.getAbsolutePath())); + Debug.out.println(">>>> Searching for files in abs path " + folder.getAbsolutePath()); // System.out.println(folder.getAbsolutePath()); File[] moreFiles = folder.listFiles(fileFilter); if (moreFiles == null) { diff --git a/src/alarm/AlarmProcess.java b/src/alarm/AlarmProcess.java index c6194ced..a8e3ee36 100644 --- a/src/alarm/AlarmProcess.java +++ b/src/alarm/AlarmProcess.java @@ -225,6 +225,11 @@ public class AlarmProcess extends PamProcess { } + @Override + public void updateData(PamObservable o, PamDataUnit arg) { + newData(o, arg); + } + public boolean setupAlarm() { dataSource = PamController.getInstance().getDataBlock(PamDataUnit.class, alarmControl.alarmParameters.dataSourceName); if (dataSource == null) { diff --git a/src/alarm/actions/sound/PlaySound.java b/src/alarm/actions/sound/PlaySound.java index 0d3a13fe..e02ac14f 100644 --- a/src/alarm/actions/sound/PlaySound.java +++ b/src/alarm/actions/sound/PlaySound.java @@ -94,7 +94,7 @@ public class PlaySound extends AlarmAction implements PamSettings { double secs = fl/sr*1000; } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Error in PlaySound.playSound:" + e.getMessage()); return false; } return true; @@ -114,10 +114,10 @@ public class PlaySound extends AlarmAction implements PamSettings { System.out.println(f.getMessage()); return currentClip = null; } catch (IOException e) { - System.out.println(e.getMessage()); + System.out.println("IOError in PlaySound.prepareClip: " + e.getMessage()); return currentClip = null; } catch (LineUnavailableException e) { - System.out.println(e.getMessage()); + System.out.println("LineUnavailableException in PlaySound.prepareClip: " + e.getMessage()); return currentClip = null; } currentFile = soundFile; diff --git a/src/backupmanager/stream/BackupStream.java b/src/backupmanager/stream/BackupStream.java index ae4f87e4..bc0e3d14 100644 --- a/src/backupmanager/stream/BackupStream.java +++ b/src/backupmanager/stream/BackupStream.java @@ -118,7 +118,7 @@ public abstract class BackupStream implements PamSettings, BackupFunction { try { ok = doAction(backupManager, action, item); } catch (BackupException e) { - System.out.println(e.getMessage()); + System.out.println("Error in BackupStream.runAction:" + e.getMessage()); backupManager.updateProgress(new BackupProgress(this, action, STATE.PROBLEM, toDoList.size(), iDone, "Error " + e.getMessage())); ok = false; //otherwise, OK stays true! This will leave a true null entry in the database, so file will be selected next time around diff --git a/src/clickDetector/ClickDetector.java b/src/clickDetector/ClickDetector.java index db602360..d7330047 100644 --- a/src/clickDetector/ClickDetector.java +++ b/src/clickDetector/ClickDetector.java @@ -1809,7 +1809,7 @@ public class ClickDetector extends PamProcess { newClick.setStartSample(newClick.getStartSample() - firstFilterDelay - secondFilterDelay); waveDataError = false; } catch (RawDataUnavailableException e) { - System.out.println("RawDataUnavailableException"); + System.out.println(" Click Detector RawDataUnavailableException"); System.out.println(e.getMessage()); } for (int k = 0; k < nChannels; k++) { diff --git a/src/clipgenerator/ClipProcess.java b/src/clipgenerator/ClipProcess.java index e3738243..b61c0a43 100644 --- a/src/clipgenerator/ClipProcess.java +++ b/src/clipgenerator/ClipProcess.java @@ -291,7 +291,7 @@ public class ClipProcess extends SpectrogramMarkProcess { try { rawData = rawDataBlock.getSamples(startSample, numSamples, channelMap); } catch (RawDataUnavailableException e) { - System.out.println(e.getMessage()); + System.out.println("RawDataUnavailableException in ClipProcess.spectrogramNotification :" + e.getMessage()); return false; } if (rawData == null) { diff --git a/src/dbht/DbHtDialog.java b/src/dbht/DbHtDialog.java index ce861737..78fbe704 100644 --- a/src/dbht/DbHtDialog.java +++ b/src/dbht/DbHtDialog.java @@ -199,7 +199,7 @@ public class DbHtDialog extends PamDialog { params.calculateFilterThings(currentSampleRate); } catch (DbHtException e) { - System.out.println(e.getMessage()); + System.out.println("Error in DbHtDialog.updateEverything: " + e.getMessage()); return; } double[] f = params.getFilterFrequencies(currentSampleRate); diff --git a/src/difar/DifarProcess.java b/src/difar/DifarProcess.java index fe1a2886..694c4529 100644 --- a/src/difar/DifarProcess.java +++ b/src/difar/DifarProcess.java @@ -1110,7 +1110,7 @@ public class DifarProcess extends PamProcess { rawData[0] = rawDataAll[0]; // is fine since getSamples was fed a channel map. } } catch (RawDataUnavailableException e) { - System.out.println(e.getMessage()); + System.out.println("Error in DifarProcess.difarTrigger" + e.getMessage()); return; } if (rawData[0] == null) { diff --git a/src/difar/demux/NativeDemux.java b/src/difar/demux/NativeDemux.java index 73a8b9d3..d9edd318 100644 --- a/src/difar/demux/NativeDemux.java +++ b/src/difar/demux/NativeDemux.java @@ -98,7 +98,7 @@ public class NativeDemux extends GreenridgeDemux { return true; } catch (UnsatisfiedLinkError e) { - System.out.println(e.getMessage()); + System.out.println("Error in NativeDemux.loadLibrary" + e.getMessage()); return false; } } diff --git a/src/generalDatabase/DBSpeedTest.java b/src/generalDatabase/DBSpeedTest.java index 1f0cecad..d39367c2 100644 --- a/src/generalDatabase/DBSpeedTest.java +++ b/src/generalDatabase/DBSpeedTest.java @@ -190,7 +190,7 @@ public class DBSpeedTest { dropStmt.execute(); } catch (SQLException e) { // e.printStackTrace(); - System.out.println(e.getMessage()); + System.out.println("Error in DBSpeedTest testSpeed2:" + e.getMessage()); } } try { diff --git a/src/gpl/contour/ContourFinder.java b/src/gpl/contour/ContourFinder.java index 7acc7476..ea89b9a4 100644 --- a/src/gpl/contour/ContourFinder.java +++ b/src/gpl/contour/ContourFinder.java @@ -261,7 +261,13 @@ public class ContourFinder { * Note that binData is padded, whiteData isn't. */ GPLContour newContour = new GPLContour(iT-1, iF-1+gplProcess.binLo, whiteData[iT-1][iF-1], energyData[iT-1][iF-1]); - findAdjacentPoints(newContour, iT, iF, binData, whiteData, energyData, con); + try { + findAdjacentPoints(newContour, iT, iF, binData, whiteData, energyData, con); + } + catch (StackOverflowError e) { + System.out.println("Stack overflow in GPLContour.findRegion for bloated contour size " + newContour.getArea()); + System.out.println("The contour is incomplete, but has not been discarded"); + } return newContour; } @@ -282,6 +288,10 @@ public class ContourFinder { * Separate loops to get above and to sides, NOT diagonal matches. * could also easily change to connect 8 instead of connect 4. */ + if (newContour.getArea() >= 500) { + System.out.println("GPL Contour size exceeds maximum value of 500 points so ceasing to grow it"); + return; + } binData[currT][currF] = 0; // set current point to 0 so it doesn't get found again int nX = binData.length-1; int nY = binData[0].length-1; diff --git a/src/group3dlocaliser/algorithm/hyperbolic/HyperbolicLocaliser.java b/src/group3dlocaliser/algorithm/hyperbolic/HyperbolicLocaliser.java index 5a4884cf..dc6e5eb4 100644 --- a/src/group3dlocaliser/algorithm/hyperbolic/HyperbolicLocaliser.java +++ b/src/group3dlocaliser/algorithm/hyperbolic/HyperbolicLocaliser.java @@ -217,7 +217,7 @@ public class HyperbolicLocaliser extends TOADBaseAlgorithm { // answer2 = rightMatrix.times(leftInverse.transpose()); } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Error in HyperbolicLocaliser.processTOADsPlane: " + e.getMessage()); // Matrix m = leftMatrix.transpose(); // m = m.inverse(); return null; @@ -254,7 +254,7 @@ public class HyperbolicLocaliser extends TOADBaseAlgorithm { } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Error2 in HyperbolicLocaliser.processTOADsPlane: " + e.getMessage()); } // now need to rotate back from the plane that we're in to get back to the original position. @@ -736,7 +736,7 @@ public class HyperbolicLocaliser extends TOADBaseAlgorithm { } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Error in HyperbolicLocaliser.processTOADs3D: " + e.getMessage()); } LatLong pos = geometry.getReferenceGPS().addDistanceMeters(centre.getCoordinate(0)+answer.get(0,0), diff --git a/src/group3dlocaliser/algorithm/toadsimplex/ToadSimplexLocaliser.java b/src/group3dlocaliser/algorithm/toadsimplex/ToadSimplexLocaliser.java index e16db196..d362a8ef 100644 --- a/src/group3dlocaliser/algorithm/toadsimplex/ToadSimplexLocaliser.java +++ b/src/group3dlocaliser/algorithm/toadsimplex/ToadSimplexLocaliser.java @@ -146,7 +146,7 @@ public class ToadSimplexLocaliser extends TOADBaseAlgorithm { try { result = optimiser.optimize(chiFunc, goal, start); } catch (OptimizationException | FunctionEvaluationException | IllegalArgumentException e) { - System.out.println(e.getMessage()); + System.out.println("Error in TOADSimplexLocaliser.processTOADs: " + e.getMessage()); nFails++; System.out.printf("%d fails out of %d = %3.2f%%\n", nFails, nCalls, (double) nFails * 100. / nCalls); resultChiData[iStart] = null; diff --git a/src/networkTransfer/emulator/EmulatorStream.java b/src/networkTransfer/emulator/EmulatorStream.java index 088e2d65..a62d19a3 100644 --- a/src/networkTransfer/emulator/EmulatorStream.java +++ b/src/networkTransfer/emulator/EmulatorStream.java @@ -129,7 +129,7 @@ public class EmulatorStream { try { emSocket.getOutputStream().write(data); } catch (IOException e) { - System.out.println(e.getMessage()); + System.out.println("Error in EmulatorStream.sendPamCommand: " + e.getMessage()); } } private boolean openSocket() { @@ -137,9 +137,9 @@ public class EmulatorStream { try { emSocket = new Socket(sktParams.ipAddress, sktParams.portNumber); } catch (UnknownHostException e) { - System.out.println(e.getMessage()); + System.out.println("UnknownHostException in EmulatorStream.sendPamCommand: " + e.getMessage()); } catch (IOException e) { - System.out.println(e.getMessage()); + System.out.println("IOException in EmulatorStream.sendPamCommand: " + e.getMessage()); } if (emSocket != null) { status.socketStatus = emSocket.isConnected(); diff --git a/src/networkTransfer/receive/NetworkReceiver.java b/src/networkTransfer/receive/NetworkReceiver.java index 67d5a5cb..3bb9fc02 100644 --- a/src/networkTransfer/receive/NetworkReceiver.java +++ b/src/networkTransfer/receive/NetworkReceiver.java @@ -458,7 +458,7 @@ public class NetworkReceiver extends PamControlledUnit implements PamSettings, N // checkExistingThreads(clientSocket, rxThread); } } catch (IOException e) { - System.out.println(e.getMessage()); + System.out.println("IOException in NeetworkReceiver" + e.getMessage()); } } diff --git a/src/networkTransfer/send/NetworkSender.java b/src/networkTransfer/send/NetworkSender.java index a5a3b011..59e8d7ed 100644 --- a/src/networkTransfer/send/NetworkSender.java +++ b/src/networkTransfer/send/NetworkSender.java @@ -452,7 +452,7 @@ public class NetworkSender extends PamControlledUnit implements PamSettings { return true; } catch (IOException e) { // e.printStackTrace(); - System.out.println(e.getMessage()); + System.out.println("IOException in NeetworkSender.writeByteData: " + e.getMessage()); currStatus = "Socket Closed"; return false; } @@ -465,7 +465,7 @@ public class NetworkSender extends PamControlledUnit implements PamSettings { return true; } catch (IOException e) { // e.printStackTrace(); - System.out.println(e.getMessage()); + System.out.println("IOException in NeetworkSender.writeStringData" + e.getMessage()); currStatus = "Socket Closed"; return false; } @@ -513,7 +513,7 @@ public class NetworkSender extends PamControlledUnit implements PamSettings { tcpWriter.close(); } catch (IOException e) { // e.printStackTrace(); - System.out.println(e.getMessage()); + System.out.println("IOException in NeetworkSender.closeconnection" + e.getMessage()); } tcpSocket = null; tcpWriter = null; diff --git a/src/nmeaEmulator/SerialOutput.java b/src/nmeaEmulator/SerialOutput.java index bff19830..4ec93884 100644 --- a/src/nmeaEmulator/SerialOutput.java +++ b/src/nmeaEmulator/SerialOutput.java @@ -68,7 +68,7 @@ public class SerialOutput { SerialPort.NO_PARITY, SerialPort.FLOW_CONTROL_DISABLED); // disable flow control, since this is the RXTX default and it's not specified above } catch (PJSerialException e) { - System.out.println(e.getMessage()); + System.out.println("PJSerialException in SerialOutput: " + e.getMessage()); e.printStackTrace(); return false; } diff --git a/src/offlineProcessing/DataCopyTask.java b/src/offlineProcessing/DataCopyTask.java index 40071cdf..c67a00c9 100644 --- a/src/offlineProcessing/DataCopyTask.java +++ b/src/offlineProcessing/DataCopyTask.java @@ -21,8 +21,6 @@ import dataMap.OfflineDataMapPoint; * @param */ public class DataCopyTask extends OfflineTask { - - private PamDataBlock pamDataBlock; private SQLLogging sqlLogging; @@ -40,7 +38,6 @@ public class DataCopyTask extends OfflineTask { */ public DataCopyTask(PamDataBlock pamDataBlock) { super(pamDataBlock); - this.pamDataBlock = pamDataBlock; this.sqlLogging = pamDataBlock.getLogging(); this.binaryDataSource = pamDataBlock.getBinaryDataSource(); setParentDataBlock(pamDataBlock); @@ -77,7 +74,7 @@ public class DataCopyTask extends OfflineTask { @Override public String getName() { - return "Copy " + pamDataBlock.getDataName() + " To database"; + return "Copy " + getDataBlock().getDataName() + " To database"; } @Override diff --git a/src/offlineProcessing/OfflineTask.java b/src/offlineProcessing/OfflineTask.java index a1dc9e15..7f3e0ec1 100644 --- a/src/offlineProcessing/OfflineTask.java +++ b/src/offlineProcessing/OfflineTask.java @@ -458,5 +458,4 @@ public abstract class OfflineTask { } - } diff --git a/src/pamViewFX/fxNodes/pamAxis/PamAxisPane2.java b/src/pamViewFX/fxNodes/pamAxis/PamAxisPane2.java index 905109bc..1a84a220 100644 --- a/src/pamViewFX/fxNodes/pamAxis/PamAxisPane2.java +++ b/src/pamViewFX/fxNodes/pamAxis/PamAxisPane2.java @@ -250,7 +250,7 @@ public class PamAxisPane2 extends StackPane { // } } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Exception in PamAxisPanel2.ScaledNumberFormatter: " + e.getMessage()); e.printStackTrace(); return "Err"; } diff --git a/src/pamguard/Pamguard.java b/src/pamguard/Pamguard.java index 4a142c0b..1a83706c 100644 --- a/src/pamguard/Pamguard.java +++ b/src/pamguard/Pamguard.java @@ -121,6 +121,7 @@ public class Pamguard { int runMode = PamController.RUN_NORMAL; String InputPsf = "NULL"; + // set up the system to output to both a log file and the console window. Also @@ -136,6 +137,14 @@ public class Pamguard { // TimeZone.setDefault(PamCalendar.defaultTimeZone); System.out.println("**********************************************************"); + // print out the entire command line + if (args != null && args.length > 0) { + System.out.printf("Command line options: "); + for (int i = 0; i < args.length; i++) { + System.out.printf("\"%s\" ", args[i]); + } + System.out.printf("\n"); + } try { // get the java runnable file name. // http://stackoverflow.com/questions/4294522/jar-file-name-form-java-code @@ -209,6 +218,7 @@ public class Pamguard { } else if (anArg.equalsIgnoreCase("-nogui")) { PamGUIManager.setType(PamGUIManager.NOGUI); + System.out.println("no gui operation."); } /////////////// else if (anArg.equalsIgnoreCase("-psf")) { @@ -218,13 +228,16 @@ public class Pamguard { } else if (anArg.equalsIgnoreCase("-port")) { // port id to open a udp port to receive commands - pamBuoyGlobals.setNetworkControlPort(Integer.parseInt(args[iArg++])); + String port = args[iArg++]; + pamBuoyGlobals.setNetworkControlPort(Integer.parseInt(port)); + System.out.println("Setting UDP control port " + port); } else if (anArg.equalsIgnoreCase("-mport")) { // multicast control (for multiple PAMGuards) String mAddr = args[iArg++]; int mPort = Integer.parseInt(args[iArg++]); pamBuoyGlobals.setMultiportConfig(mAddr, mPort); + System.out.printf("Setting multiport control addr %s port %d\n", mAddr, mPort); } else if (anArg.equalsIgnoreCase("-nolog")) { System.out.println("Disabling log file from command line switch..."); @@ -232,23 +245,31 @@ public class Pamguard { } else if (anArg.equalsIgnoreCase(BinaryStore.GlobalFolderArg)) { // output folder for binary files. - GlobalArguments.setParam(BinaryStore.GlobalFolderArg, args[iArg++]); + String binFolder = args[iArg++]; + GlobalArguments.setParam(BinaryStore.GlobalFolderArg, binFolder); + System.out.println("Setting output folder for binary files to " + binFolder); } else if (anArg.equalsIgnoreCase(DBControl.GlobalDatabaseNameArg)) { // database file name - GlobalArguments.setParam(DBControl.GlobalDatabaseNameArg, args[iArg++]); + String dbName = args[iArg++]; + GlobalArguments.setParam(DBControl.GlobalDatabaseNameArg, dbName); + System.out.println("Setting output database file to " + dbName); } else if (anArg.equalsIgnoreCase(FolderInputSystem.GlobalWavFolderArg)) { // source folder for wav files (or other supported sound files) - GlobalArguments.setParam(FolderInputSystem.GlobalWavFolderArg, args[iArg++]); + String wavFolder = args[iArg++]; + GlobalArguments.setParam(FolderInputSystem.GlobalWavFolderArg, wavFolder); + System.out.println("Setting input wav file folder to " + wavFolder); } else if (anArg.equalsIgnoreCase(PamController.AUTOSTART)) { // auto start processing. GlobalArguments.setParam(PamController.AUTOSTART, PamController.AUTOSTART); + System.out.println("Setting autostart ON"); } else if (anArg.equalsIgnoreCase(PamController.AUTOEXIT)) { // auto exit at end of processing. GlobalArguments.setParam(PamController.AUTOEXIT, PamController.AUTOEXIT); + System.out.println("Setting autoexit ON"); } else if (anArg.equalsIgnoreCase("-help")) { System.out.println("--PamGuard Help"); diff --git a/src/rocca/RoccaContour.java b/src/rocca/RoccaContour.java index cce19f5a..81ba39f7 100644 --- a/src/rocca/RoccaContour.java +++ b/src/rocca/RoccaContour.java @@ -192,7 +192,7 @@ public class RoccaContour { (currentStartSample, fftLength, channelMap ); } catch (RawDataUnavailableException e) { - System.out.println(e.getMessage()); + System.out.println("RawDataUnavailableException in ROCCAContour.generateContour: " + e.getMessage()); currentRawData = null; } /* every now and then the FFTDataUnit start sample doesn't match up @@ -237,7 +237,7 @@ public class RoccaContour { nextRawData = rawDataBlockIn.getSamples(nextStartSample, fftLength, channelMap ); } catch (RawDataUnavailableException e) { - System.out.println(e.getMessage()); + System.out.println("RawDataUnavailableException (2) in ROCCAContour.generateContour: " + e.getMessage()); nextRawData = null; } nextFFT = nextFFTDataUnit.getFftData(); diff --git a/src/rocca/RoccaSpecPopUp.java b/src/rocca/RoccaSpecPopUp.java index 57dfa487..7dc49431 100644 --- a/src/rocca/RoccaSpecPopUp.java +++ b/src/rocca/RoccaSpecPopUp.java @@ -2333,7 +2333,7 @@ public class RoccaSpecPopUp extends javax.swing.JPanel { } } catch (RawDataUnavailableException e) { - System.out.println(e.getMessage()); + System.out.println("RawDataUnavailableException in ROCCASpecPopUp: " + e.getMessage()); } if (rawDataValues==null) { diff --git a/src/rockBlock/RockBlockProcess2.java b/src/rockBlock/RockBlockProcess2.java index 94acda03..3cd0d17a 100644 --- a/src/rockBlock/RockBlockProcess2.java +++ b/src/rockBlock/RockBlockProcess2.java @@ -280,7 +280,7 @@ public class RockBlockProcess2 extends PamProcess implements ModuleStatusManager timeDelays[0] = rockBlockControl.getParams().getCommTiming(); initializeRockBlock(); } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Exception in rockBlockProcess: " + e.getMessage()); rbStatus.setPortError(e.getMessage()); rbStatus.setCommReady(false); commReady = false; diff --git a/src/soundtrap/DWVConverter.java b/src/soundtrap/DWVConverter.java index ca4ba9d0..a476d26f 100644 --- a/src/soundtrap/DWVConverter.java +++ b/src/soundtrap/DWVConverter.java @@ -219,7 +219,7 @@ public class DWVConverter { } } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Exception 1 in DWVConverter.effortLine: " + e.getMessage()); } binaryStream.openOutputFiles(bclLine.getMilliseconds()); binaryStream.writeHeader(bclLine.getMilliseconds(), System.currentTimeMillis()); @@ -234,7 +234,7 @@ public class DWVConverter { PamCalendar.formatDBDateTime(wavFileStop), PamCalendar.formatDBDateTime(bclLine.getMilliseconds())); } catch (Exception e) { - System.out.println(e.getMessage()); + System.out.println("Exception 2 in DWVConverter.effortLine: " + e.getMessage()); } binaryStream.writeModuleFooter(); binaryStream.writeFooter(bclLine.getMilliseconds(), System.currentTimeMillis(), BinaryFooter.END_UNKNOWN); From 629f430988b9b18d99af4237696ae7ad1e456997 Mon Sep 17 00:00:00 2001 From: stabbutt <100229685+stabbutt@users.noreply.github.com> Date: Wed, 5 Apr 2023 01:37:17 -0700 Subject: [PATCH 07/15] Merge SMRUC Fork to PG Main Fork (#101) * Fix network sender since it was hopelessly out of date and did not send data in the correct format. OK now, though only tested on NARW. * Fix network sender since it was hopelessly out of date and did not send data in the correct format. OK now, though only tested on NARW. * Mods to support command line and Network control of PAMGuard and to retrieve summary information from some modules. * Fix issue #80: recording path command line override * Allow RUNNOTHING bearing calculations * Quick solution to issue #88. * Added logic to allow run nothing direct PAMGuard control for SMRU Consulting batch processing * Mistake in merge, committing changes from PAMGuard Main to SMRU Fork * Run nothing updates for preventing thread leaks on bash * Synchronize with Pamguard Main at PAMGuard/Pamguard:main commit 3573eaa on 1/24/23 * Added network sender global arguments for port, ipaddress, station Id1, station Id2 * Added runtime arguments for network send configuration * Fix typo in tag 'netSend' rather than 'newSend' * Fixed typo. set port to port, not to address --------- Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> --- src/networkTransfer/send/NetworkSender.java | 29 +++++++++++++++++++++ src/pamguard/Pamguard.java | 18 +++++++++++++ 2 files changed, 47 insertions(+) diff --git a/src/networkTransfer/send/NetworkSender.java b/src/networkTransfer/send/NetworkSender.java index 59e8d7ed..65f2774b 100644 --- a/src/networkTransfer/send/NetworkSender.java +++ b/src/networkTransfer/send/NetworkSender.java @@ -23,10 +23,12 @@ import javax.swing.SwingWorker; import networkTransfer.emulator.NetworkEmulator; import networkTransfer.receive.NetworkReceiver; +import pamguard.GlobalArguments; import org.w3c.dom.Document; import org.w3c.dom.Element; +import Acquisition.FolderInputSystem; import PamController.PamControlledUnit; import PamController.PamControlledUnitSettings; import PamController.PamController; @@ -44,6 +46,11 @@ import PamguardMVC.PamDataBlock; * */ public class NetworkSender extends PamControlledUnit implements PamSettings { + + public static final String ADDRESS = "-netSend.address"; + public static final String PORT = "-netSend.port"; + public static final String ID1 = "-netSend.id1"; + public static final String ID2 = "-netSend.id2"; protected NetworkSendParams networkSendParams = new NetworkSendParams(); private NetworkEmulator networkEmulator; @@ -169,6 +176,28 @@ public class NetworkSender extends PamControlledUnit implements PamSettings { public boolean restoreSettings( PamControlledUnitSettings pamControlledUnitSettings) { networkSendParams = ((NetworkSendParams) pamControlledUnitSettings.getSettings()).clone(); + + String address = GlobalArguments.getParam(ADDRESS); + String portString = GlobalArguments.getParam(PORT); + String id1String = GlobalArguments.getParam(ID1); + String id2String = GlobalArguments.getParam(ID2); + + if (address != null) { + networkSendParams.ipAddress = address; // remember it. + } + + if(portString != null) { + networkSendParams.portNumber = Integer.valueOf(portString); + } + + if(id1String!=null) { + networkSendParams.stationId1 = Integer.valueOf(id1String); + } + + if(id2String!=null) { + networkSendParams.stationId1 = Integer.valueOf(id2String); + } + return (networkSendParams != null); } diff --git a/src/pamguard/Pamguard.java b/src/pamguard/Pamguard.java index 1a83706c..8a2a66c7 100644 --- a/src/pamguard/Pamguard.java +++ b/src/pamguard/Pamguard.java @@ -42,6 +42,7 @@ import PamguardMVC.debug.Debug; import binaryFileStorage.BinaryStore; import dataPlotsFX.JamieDev; import generalDatabase.DBControl; +import networkTransfer.send.NetworkSender; import rocca.RoccaDev; import java.io.BufferedReader; @@ -271,6 +272,23 @@ public class Pamguard { GlobalArguments.setParam(PamController.AUTOEXIT, PamController.AUTOEXIT); System.out.println("Setting autoexit ON"); } + else if (anArg.equalsIgnoreCase(NetworkSender.ADDRESS)) { + // auto exit at end of processing. + GlobalArguments.setParam(NetworkSender.ADDRESS, args[iArg++]); + } + else if (anArg.equalsIgnoreCase(NetworkSender.ID1)) { + // auto exit at end of processing. + GlobalArguments.setParam(NetworkSender.ID1, args[iArg++]); + } + else if (anArg.equalsIgnoreCase(NetworkSender.ID2)) { + // auto exit at end of processing. + GlobalArguments.setParam(NetworkSender.ID2, args[iArg++]); + } + else if (anArg.equalsIgnoreCase(NetworkSender.PORT)) { + // auto exit at end of processing. + GlobalArguments.setParam(NetworkSender.PORT, args[iArg++]); + } + else if (anArg.equalsIgnoreCase("-help")) { System.out.println("--PamGuard Help"); System.out.println("\n--For standard GUI deployment run without any options.\n"); From da21d54d3ed51e117f06c6b5f539a8bbb7d19e0d Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed, 5 Apr 2023 19:35:48 +0100 Subject: [PATCH 08/15] Update FileListWorker.java --- src/PamUtils/worker/filelist/FileListWorker.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PamUtils/worker/filelist/FileListWorker.java b/src/PamUtils/worker/filelist/FileListWorker.java index 56c52caa..6e29841c 100644 --- a/src/PamUtils/worker/filelist/FileListWorker.java +++ b/src/PamUtils/worker/filelist/FileListWorker.java @@ -8,6 +8,7 @@ import PamUtils.PamFileFilter; import PamUtils.worker.PamWorkProgressMessage; import PamUtils.worker.PamWorkWrapper; import PamUtils.worker.PamWorker; +import PamguardMVC.debug.Debug; /** * Class to list files in one or more directories. From a2da810690e548c2e416f9a3f4b308588f698b99 Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu, 6 Apr 2023 16:44:47 +0100 Subject: [PATCH 09/15] Support batch processing Multicast controller and a couple of additional commands to work with the batch processing plugin. --- src/Acquisition/AcquisitionControl.java | 15 +++++ src/Acquisition/FolderInputSystem.java | 14 ++++ src/PamController/PamController.java | 6 +- src/PamController/command/BatchCommand.java | 64 +++++++++++++++++++ .../command/BatchStatusCommand.java | 31 +++++++++ src/PamController/command/CommandManager.java | 11 ++-- src/PamController/command/ExitCommand.java | 4 +- src/PamController/command/HelpCommand.java | 2 +- ...ntroller.java => MulticastController.java} | 40 +++++++++--- .../command/NetworkController.java | 6 +- .../command/TerminalController.java | 2 +- src/PamController/pamBuoyGlobals.java | 18 +++--- src/pamguard/Pamguard.java | 7 +- 13 files changed, 183 insertions(+), 37 deletions(-) create mode 100644 src/PamController/command/BatchCommand.java create mode 100644 src/PamController/command/BatchStatusCommand.java rename src/PamController/command/{MultiportController.java => MulticastController.java} (65%) diff --git a/src/Acquisition/AcquisitionControl.java b/src/Acquisition/AcquisitionControl.java index f0bd367d..406796c8 100644 --- a/src/Acquisition/AcquisitionControl.java +++ b/src/Acquisition/AcquisitionControl.java @@ -873,4 +873,19 @@ public class AcquisitionControl extends RawInputControlledUnit implements PamSet return getDaqProcess().setAnalysisStartTime(startTime); } + /** + * Very specific command handler for batch status which will only work + * with the folderinputSystem. + * @return + */ + public String getBatchStatus() { + DaqSystem runningSystem = getAcquisitionProcess().getRunningSystem(); + if (runningSystem instanceof FolderInputSystem) { + return ((FolderInputSystem) runningSystem).getBatchStatus(); + } + else { + return null; + } + } + } diff --git a/src/Acquisition/FolderInputSystem.java b/src/Acquisition/FolderInputSystem.java index cd112e2c..5c51f56c 100644 --- a/src/Acquisition/FolderInputSystem.java +++ b/src/Acquisition/FolderInputSystem.java @@ -893,5 +893,19 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D return false; } + /** + * Get a status update for batch processing. + */ + public String getBatchStatus() { + int nFiles = 0; + if (allFiles != null) { + nFiles = allFiles.size(); + } + int generalStatus = PamController.getInstance().getPamStatus(); + File currFile = getCurrentFile(); + String bs = String.format("%d,%d,%d,%s", nFiles,currentFile,generalStatus,currFile); + return bs; + } + } diff --git a/src/PamController/PamController.java b/src/PamController/PamController.java index 6398066d..444bb19a 100644 --- a/src/PamController/PamController.java +++ b/src/PamController/PamController.java @@ -55,7 +55,7 @@ import generalDatabase.DBControlUnit; import javafx.application.Platform; import javafx.stage.Stage; import Array.ArrayManager; -import PamController.command.MultiportController; +import PamController.command.MulticastController; import PamController.command.NetworkController; import PamController.command.TerminalController; import PamController.command.WatchdogComms; @@ -258,8 +258,8 @@ public class PamController implements PamControllerInterface, PamSettings { if (pamBuoyGlobals.getNetworkControlPort() != null) { networkController = new NetworkController(this); } - if (pamBuoyGlobals.getMultiportAddress() != null) { - new MultiportController(this); + if (pamBuoyGlobals.getMulticastAddress() != null) { + new MulticastController(this); } guiFrameManager = PamGUIManager.createGUI(this, object); diff --git a/src/PamController/command/BatchCommand.java b/src/PamController/command/BatchCommand.java new file mode 100644 index 00000000..a3dadfa8 --- /dev/null +++ b/src/PamController/command/BatchCommand.java @@ -0,0 +1,64 @@ +package PamController.command; + +import networkTransfer.send.NetworkSender; +import pamguard.GlobalArguments; + +public class BatchCommand extends ExtCommand { + + public static final String commandId = "batchcommand"; + private CommandManager commandManager; + + public BatchCommand(CommandManager commandManager) { + super(commandId, true); + this.commandManager = commandManager; + } + + @Override + public String execute(String command) { + /** + * this should have to identifiers. If they match the identifiers of + * this pamguard instance, then the command part is passed back to the manager + * otherwise it is ignored. + */ + if (command == null) { + return null; + } + String[] bits = command.split(" "); + if (bits.length < 4) { + return null; + } + int id1 = 0; + int id2 = 0; + int expId1 = 0, expId2 = 0; + try { + id1 = Integer.valueOf(bits[1]); + id2 = Integer.valueOf(bits[2]); + } + catch (NumberFormatException e) { + System.out.println("Invalid BatchCommand: " + command); + return null; + } + String nid1 = GlobalArguments.getParam(NetworkSender.ID1); + String nid2 = GlobalArguments.getParam(NetworkSender.ID2); + if (bits[1].trim().equals(nid1) == false) { + return null; + } + + // now trim the string to the end of the third comma and send on the rest + int comPos = -1; + for (int i = 0; i < 3; i++) { + comPos = command.indexOf(" ", comPos+1); + if (comPos < 0) { + return null; + } + } + String trueCommand = command.substring(comPos); + trueCommand = trueCommand.trim(); +// System.out.printf(">>>>>>>>>>>>>>>>>>> Batchcommand execute \"%s\" in command manager %s\n", trueCommand, commandManager.getClass().getName()); + if (commandManager.interpretCommand(trueCommand)) { +// return commandManager.get + } + return null; + } + +} diff --git a/src/PamController/command/BatchStatusCommand.java b/src/PamController/command/BatchStatusCommand.java new file mode 100644 index 00000000..a58012b2 --- /dev/null +++ b/src/PamController/command/BatchStatusCommand.java @@ -0,0 +1,31 @@ +package PamController.command; + +import Acquisition.AcquisitionControl; +import PamController.PamController; +import pamViewFX.PamControlledGUIFX; + +/** + * Command to get PAMGuard to send back the batch processing status. + * + * @author dg50 + * + */ +public class BatchStatusCommand extends ExtCommand { + + public static final String commandId = "batchstatus"; + + public BatchStatusCommand() { + super(commandId, true); + // TODO Auto-generated constructor stub + } + + @Override + public String execute(String command) { + AcquisitionControl daqControl = (AcquisitionControl) PamController.getInstance().findControlledUnit(AcquisitionControl.class, null); + if (daqControl == null) { + return null; + } + return daqControl.getBatchStatus(); + } + +} diff --git a/src/PamController/command/CommandManager.java b/src/PamController/command/CommandManager.java index 01533e28..87f4b888 100644 --- a/src/PamController/command/CommandManager.java +++ b/src/PamController/command/CommandManager.java @@ -40,6 +40,8 @@ public abstract class CommandManager extends PamControlledUnit { commandsList.add(new HelpCommand(this)); commandsList.add(new GetXMLSettings()); commandsList.add(new SetXMLSettings()); + commandsList.add(new BatchStatusCommand()); + commandsList.add(new BatchCommand(this)); } @@ -81,16 +83,16 @@ public abstract class CommandManager extends PamControlledUnit { } ExtCommand extCommand = findCommand(command); if (extCommand == null) { - sendData("Cmd \"" + commandString + "\" Not Recognised."); + sendData(extCommand, "Cmd \"" + commandString + "\" Not Recognised."); return false; } if (extCommand.canExecute() == false) { - sendData("Cmd \"" + command + "\" Cannot Execute."); + sendData(extCommand, "Cmd \"" + command + "\" Cannot Execute."); // sendData(" Cmd return string = " + extCommand.getReturnString()); return false; } String output = extCommand.executeCommand(commandString); - sendData(output); + sendData(extCommand,output); return true; @@ -154,9 +156,10 @@ public abstract class CommandManager extends PamControlledUnit { /** * Reply to data called from InterpredData + * @param extCommand * @param dataString * @return true if replay successful */ - abstract public boolean sendData(String dataString); + abstract public boolean sendData(ExtCommand extCommand, String dataString); } diff --git a/src/PamController/command/ExitCommand.java b/src/PamController/command/ExitCommand.java index a44c91ce..0871c7f2 100644 --- a/src/PamController/command/ExitCommand.java +++ b/src/PamController/command/ExitCommand.java @@ -10,8 +10,10 @@ import PamController.PamSettingManager; */ public class ExitCommand extends ExtCommand { + public static final String commandId = "Exit"; + public ExitCommand() { - super("Exit", false); + super(commandId, false); } @Override diff --git a/src/PamController/command/HelpCommand.java b/src/PamController/command/HelpCommand.java index 400516ad..3350c828 100644 --- a/src/PamController/command/HelpCommand.java +++ b/src/PamController/command/HelpCommand.java @@ -25,7 +25,7 @@ public class HelpCommand extends ExtCommand { out += "\n"; } } - commandManager.sendData(out); + commandManager.sendData(this, out); return getName(); } diff --git a/src/PamController/command/MultiportController.java b/src/PamController/command/MulticastController.java similarity index 65% rename from src/PamController/command/MultiportController.java rename to src/PamController/command/MulticastController.java index ead9e397..de92b6ae 100644 --- a/src/PamController/command/MultiportController.java +++ b/src/PamController/command/MulticastController.java @@ -12,12 +12,14 @@ import java.nio.charset.StandardCharsets; import PamController.PamController; import PamController.pamBuoyGlobals; +import networkTransfer.send.NetworkSender; +import pamguard.GlobalArguments; -public class MultiportController extends CommandManager { +public class MulticastController extends CommandManager { //The multicast addresses are in the range 224.0.0.0 through 239.255.255.255 - private static String unitName = "Multiport Controller"; + private static String unitName = "Multicast Controller"; private PamController pamController; private String mAddress; private int mPort; @@ -29,11 +31,11 @@ public class MultiportController extends CommandManager { private byte[] byteBuffer = new byte[MAX_COMMAND_LENGTH]; private DatagramPacket lastDatagram; - public MultiportController(PamController pamController) { + public MulticastController(PamController pamController) { super(pamController, unitName); this.pamController = pamController; - this.mAddress = pamBuoyGlobals.getMultiportAddress(); - this.mPort = pamBuoyGlobals.getMuliportPort(); + this.mAddress = pamBuoyGlobals.getMulticastAddress(); + this.mPort = pamBuoyGlobals.getMulticastPort(); Thread t = new Thread(new ListenerThread()); t.start(); @@ -83,17 +85,35 @@ public class MultiportController extends CommandManager { private void processDatagram(DatagramPacket datagram) { lastDatagram = datagram; String str = new String(datagram.getData(), 0, datagram.getLength()); -// str = str.substring(0, datagram.getLength()); - System.out.println("Datagram received \"" + str + "\""); + str = str.substring(0, datagram.getLength()); +// System.out.println("Datagram received \"" + str + "\""); interpretCommand(str); } @Override - public boolean sendData(String dataString) { + public boolean sendData(ExtCommand extCommand, String dataString) { + if (dataString == null || dataString.length() == 0) { + return false; + } DatagramPacket senderInfo = lastDatagram; - System.out.printf("Send back data \"%s\" to %s port %d\n", dataString, senderInfo.getAddress(), senderInfo.getPort()); + String commandName; + if (extCommand == null) { + commandName = "Unknown"; + } + else { + commandName = extCommand.getName(); + } +// System.out.printf("Send back data \"%s\" to %s port %d\n", dataString, senderInfo.getAddress(), senderInfo.getPort()); + /* + * for multicast, we need to send a slightly different string back which has the station id as part of + * the returned string. These will be 0 if they weren't passed in at the command line. + */ + String id1 = GlobalArguments.getParam(NetworkSender.ID1); + String id2 = GlobalArguments.getParam(NetworkSender.ID2); + String bigString = String.format("%s,%s,%s,%s", commandName, id1, id2, dataString); + // dataString += "\n"; - DatagramPacket packet = new DatagramPacket(dataString.getBytes(), dataString.length()); + DatagramPacket packet = new DatagramPacket(bigString.getBytes(), bigString.length()); packet.setAddress(senderInfo.getAddress()); packet.setPort(senderInfo.getPort()); try { diff --git a/src/PamController/command/NetworkController.java b/src/PamController/command/NetworkController.java index 2090851b..82268bd1 100644 --- a/src/PamController/command/NetworkController.java +++ b/src/PamController/command/NetworkController.java @@ -124,16 +124,14 @@ public class NetworkController extends CommandManager { } } - - public boolean sendData(String dataString) { + @Override + public boolean sendData(ExtCommand extCommand, String dataString) { DatagramPacket packet = new DatagramPacket(dataString.getBytes(), dataString.length()); packet.setAddress(udpPacket.getAddress()); packet.setPort(udpPacket.getPort()); try { receiveSocket.send(packet); -// receiveSocket. } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); return false; } diff --git a/src/PamController/command/TerminalController.java b/src/PamController/command/TerminalController.java index e8589cd2..533b23ee 100644 --- a/src/PamController/command/TerminalController.java +++ b/src/PamController/command/TerminalController.java @@ -17,7 +17,7 @@ public class TerminalController extends CommandManager { } @Override - public boolean sendData(String dataString) { + public boolean sendData(ExtCommand extcommand, String dataString) { System.out.println(dataString); return true; } diff --git a/src/PamController/pamBuoyGlobals.java b/src/PamController/pamBuoyGlobals.java index dee3a1db..9b0a436f 100644 --- a/src/PamController/pamBuoyGlobals.java +++ b/src/PamController/pamBuoyGlobals.java @@ -14,9 +14,9 @@ public class pamBuoyGlobals { // public static Integer useGstreamer = 0; // public static boolean useNetworkCont = false; private static Integer networkControlPort = null; -private static String multiportAddress; +private static String multicastAddress; // private static boolean useDSP = false; -private static int muliportPort; +private static int mulicastPort; /** * @return the networkControlPort @@ -33,28 +33,28 @@ private static int muliportPort; } /** - * Set parameters for mulitport configutation. + * Set parameters for mulitport configuration. * @param mAddr * @param mPort */ public static void setMultiportConfig(String mAddr, int mPort) { - multiportAddress = mAddr; - muliportPort = mPort; + multicastAddress = mAddr; + mulicastPort = mPort; } /** * @return the multiportAddress */ - public static String getMultiportAddress() { - return multiportAddress; + public static String getMulticastAddress() { + return multicastAddress; } /** * @return the muliportPort */ - public static int getMuliportPort() { - return muliportPort; + public static int getMulticastPort() { + return mulicastPort; } diff --git a/src/pamguard/Pamguard.java b/src/pamguard/Pamguard.java index 2da04ce4..a80c16cc 100644 --- a/src/pamguard/Pamguard.java +++ b/src/pamguard/Pamguard.java @@ -222,8 +222,7 @@ public class Pamguard { PamGUIManager.setType(PamGUIManager.NOGUI); System.out.println("no gui operation."); } - /////////////// - else if (anArg.equalsIgnoreCase("-psf")) { + else if (anArg.equalsIgnoreCase("-psf") || anArg.equalsIgnoreCase("-psfx")) { String autoPsf = args[iArg++]; PamSettingManager.remote_psf = autoPsf; System.out.println("Running using settings from " + autoPsf); @@ -234,12 +233,12 @@ public class Pamguard { pamBuoyGlobals.setNetworkControlPort(Integer.parseInt(port)); System.out.println("Setting UDP control port " + port); } - else if (anArg.equalsIgnoreCase("-mport")) { + else if (anArg.equalsIgnoreCase("-multicast") || anArg.equalsIgnoreCase("-mport")) { // multicast control (for multiple PAMGuards) String mAddr = args[iArg++]; int mPort = Integer.parseInt(args[iArg++]); pamBuoyGlobals.setMultiportConfig(mAddr, mPort); - System.out.printf("Setting multiport control addr %s port %d\n", mAddr, mPort); + System.out.printf("Setting multicast control addr %s port %d\n", mAddr, mPort); } else if (anArg.equalsIgnoreCase("-nolog")) { System.out.println("Disabling log file from command line switch..."); From 30fbc6d290c667d4bdef1a2ddc83cd36c7880218 Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu, 6 Apr 2023 21:43:20 +0100 Subject: [PATCH 10/15] Database float unpack Better unpacking checks of floats coming back from the database --- .../fileprocessing/ReprocessStoreChoice.java | 2 +- src/generalDatabase/PamTableItem.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/PamController/fileprocessing/ReprocessStoreChoice.java b/src/PamController/fileprocessing/ReprocessStoreChoice.java index 0a6835db..6a6bd019 100644 --- a/src/PamController/fileprocessing/ReprocessStoreChoice.java +++ b/src/PamController/fileprocessing/ReprocessStoreChoice.java @@ -16,7 +16,7 @@ public enum ReprocessStoreChoice { public String toString() { switch (this) { case STARTNORMAL: - return "Start normally. No risk of overwriting"; + return "Start normally. Note risk of overwriting!"; case CONTINUECURRENTFILE: return "Continue from start of last input file processed"; case CONTINUENEXTFILE: diff --git a/src/generalDatabase/PamTableItem.java b/src/generalDatabase/PamTableItem.java index e329cc9e..2a046623 100644 --- a/src/generalDatabase/PamTableItem.java +++ b/src/generalDatabase/PamTableItem.java @@ -488,6 +488,15 @@ public class PamTableItem implements Cloneable { if (value == null) { return Float.NaN; } + if (value instanceof String) { + try { + double val = Double.valueOf((String) value); + return (float) val; + } + catch (NumberFormatException ex) { + return Float.NaN; + } + } if (value.getClass() == Double.class) { double dVal = (Double) value; return (float) dVal; From 7ae7739b22ccdf6a9cd0c77de80397e781b083b7 Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri, 7 Apr 2023 18:25:27 +0100 Subject: [PATCH 11/15] Batch Processing (#102) * Update FileListWorker.java * Support batch processing Multicast controller and a couple of additional commands to work with the batch processing plugin. * Database float unpack Better unpacking checks of floats coming back from the database --- src/Acquisition/AcquisitionControl.java | 15 +++++ src/Acquisition/FolderInputSystem.java | 14 ++++ src/PamController/PamController.java | 6 +- src/PamController/command/BatchCommand.java | 64 +++++++++++++++++++ .../command/BatchStatusCommand.java | 31 +++++++++ src/PamController/command/CommandManager.java | 11 ++-- src/PamController/command/ExitCommand.java | 4 +- src/PamController/command/HelpCommand.java | 2 +- ...ntroller.java => MulticastController.java} | 40 +++++++++--- .../command/NetworkController.java | 6 +- .../command/TerminalController.java | 2 +- .../fileprocessing/ReprocessStoreChoice.java | 2 +- src/PamController/pamBuoyGlobals.java | 18 +++--- src/generalDatabase/PamTableItem.java | 9 +++ src/pamguard/Pamguard.java | 7 +- 15 files changed, 193 insertions(+), 38 deletions(-) create mode 100644 src/PamController/command/BatchCommand.java create mode 100644 src/PamController/command/BatchStatusCommand.java rename src/PamController/command/{MultiportController.java => MulticastController.java} (65%) diff --git a/src/Acquisition/AcquisitionControl.java b/src/Acquisition/AcquisitionControl.java index f0bd367d..406796c8 100644 --- a/src/Acquisition/AcquisitionControl.java +++ b/src/Acquisition/AcquisitionControl.java @@ -873,4 +873,19 @@ public class AcquisitionControl extends RawInputControlledUnit implements PamSet return getDaqProcess().setAnalysisStartTime(startTime); } + /** + * Very specific command handler for batch status which will only work + * with the folderinputSystem. + * @return + */ + public String getBatchStatus() { + DaqSystem runningSystem = getAcquisitionProcess().getRunningSystem(); + if (runningSystem instanceof FolderInputSystem) { + return ((FolderInputSystem) runningSystem).getBatchStatus(); + } + else { + return null; + } + } + } diff --git a/src/Acquisition/FolderInputSystem.java b/src/Acquisition/FolderInputSystem.java index cd112e2c..5c51f56c 100644 --- a/src/Acquisition/FolderInputSystem.java +++ b/src/Acquisition/FolderInputSystem.java @@ -893,5 +893,19 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D return false; } + /** + * Get a status update for batch processing. + */ + public String getBatchStatus() { + int nFiles = 0; + if (allFiles != null) { + nFiles = allFiles.size(); + } + int generalStatus = PamController.getInstance().getPamStatus(); + File currFile = getCurrentFile(); + String bs = String.format("%d,%d,%d,%s", nFiles,currentFile,generalStatus,currFile); + return bs; + } + } diff --git a/src/PamController/PamController.java b/src/PamController/PamController.java index 6398066d..444bb19a 100644 --- a/src/PamController/PamController.java +++ b/src/PamController/PamController.java @@ -55,7 +55,7 @@ import generalDatabase.DBControlUnit; import javafx.application.Platform; import javafx.stage.Stage; import Array.ArrayManager; -import PamController.command.MultiportController; +import PamController.command.MulticastController; import PamController.command.NetworkController; import PamController.command.TerminalController; import PamController.command.WatchdogComms; @@ -258,8 +258,8 @@ public class PamController implements PamControllerInterface, PamSettings { if (pamBuoyGlobals.getNetworkControlPort() != null) { networkController = new NetworkController(this); } - if (pamBuoyGlobals.getMultiportAddress() != null) { - new MultiportController(this); + if (pamBuoyGlobals.getMulticastAddress() != null) { + new MulticastController(this); } guiFrameManager = PamGUIManager.createGUI(this, object); diff --git a/src/PamController/command/BatchCommand.java b/src/PamController/command/BatchCommand.java new file mode 100644 index 00000000..a3dadfa8 --- /dev/null +++ b/src/PamController/command/BatchCommand.java @@ -0,0 +1,64 @@ +package PamController.command; + +import networkTransfer.send.NetworkSender; +import pamguard.GlobalArguments; + +public class BatchCommand extends ExtCommand { + + public static final String commandId = "batchcommand"; + private CommandManager commandManager; + + public BatchCommand(CommandManager commandManager) { + super(commandId, true); + this.commandManager = commandManager; + } + + @Override + public String execute(String command) { + /** + * this should have to identifiers. If they match the identifiers of + * this pamguard instance, then the command part is passed back to the manager + * otherwise it is ignored. + */ + if (command == null) { + return null; + } + String[] bits = command.split(" "); + if (bits.length < 4) { + return null; + } + int id1 = 0; + int id2 = 0; + int expId1 = 0, expId2 = 0; + try { + id1 = Integer.valueOf(bits[1]); + id2 = Integer.valueOf(bits[2]); + } + catch (NumberFormatException e) { + System.out.println("Invalid BatchCommand: " + command); + return null; + } + String nid1 = GlobalArguments.getParam(NetworkSender.ID1); + String nid2 = GlobalArguments.getParam(NetworkSender.ID2); + if (bits[1].trim().equals(nid1) == false) { + return null; + } + + // now trim the string to the end of the third comma and send on the rest + int comPos = -1; + for (int i = 0; i < 3; i++) { + comPos = command.indexOf(" ", comPos+1); + if (comPos < 0) { + return null; + } + } + String trueCommand = command.substring(comPos); + trueCommand = trueCommand.trim(); +// System.out.printf(">>>>>>>>>>>>>>>>>>> Batchcommand execute \"%s\" in command manager %s\n", trueCommand, commandManager.getClass().getName()); + if (commandManager.interpretCommand(trueCommand)) { +// return commandManager.get + } + return null; + } + +} diff --git a/src/PamController/command/BatchStatusCommand.java b/src/PamController/command/BatchStatusCommand.java new file mode 100644 index 00000000..a58012b2 --- /dev/null +++ b/src/PamController/command/BatchStatusCommand.java @@ -0,0 +1,31 @@ +package PamController.command; + +import Acquisition.AcquisitionControl; +import PamController.PamController; +import pamViewFX.PamControlledGUIFX; + +/** + * Command to get PAMGuard to send back the batch processing status. + * + * @author dg50 + * + */ +public class BatchStatusCommand extends ExtCommand { + + public static final String commandId = "batchstatus"; + + public BatchStatusCommand() { + super(commandId, true); + // TODO Auto-generated constructor stub + } + + @Override + public String execute(String command) { + AcquisitionControl daqControl = (AcquisitionControl) PamController.getInstance().findControlledUnit(AcquisitionControl.class, null); + if (daqControl == null) { + return null; + } + return daqControl.getBatchStatus(); + } + +} diff --git a/src/PamController/command/CommandManager.java b/src/PamController/command/CommandManager.java index 01533e28..87f4b888 100644 --- a/src/PamController/command/CommandManager.java +++ b/src/PamController/command/CommandManager.java @@ -40,6 +40,8 @@ public abstract class CommandManager extends PamControlledUnit { commandsList.add(new HelpCommand(this)); commandsList.add(new GetXMLSettings()); commandsList.add(new SetXMLSettings()); + commandsList.add(new BatchStatusCommand()); + commandsList.add(new BatchCommand(this)); } @@ -81,16 +83,16 @@ public abstract class CommandManager extends PamControlledUnit { } ExtCommand extCommand = findCommand(command); if (extCommand == null) { - sendData("Cmd \"" + commandString + "\" Not Recognised."); + sendData(extCommand, "Cmd \"" + commandString + "\" Not Recognised."); return false; } if (extCommand.canExecute() == false) { - sendData("Cmd \"" + command + "\" Cannot Execute."); + sendData(extCommand, "Cmd \"" + command + "\" Cannot Execute."); // sendData(" Cmd return string = " + extCommand.getReturnString()); return false; } String output = extCommand.executeCommand(commandString); - sendData(output); + sendData(extCommand,output); return true; @@ -154,9 +156,10 @@ public abstract class CommandManager extends PamControlledUnit { /** * Reply to data called from InterpredData + * @param extCommand * @param dataString * @return true if replay successful */ - abstract public boolean sendData(String dataString); + abstract public boolean sendData(ExtCommand extCommand, String dataString); } diff --git a/src/PamController/command/ExitCommand.java b/src/PamController/command/ExitCommand.java index a44c91ce..0871c7f2 100644 --- a/src/PamController/command/ExitCommand.java +++ b/src/PamController/command/ExitCommand.java @@ -10,8 +10,10 @@ import PamController.PamSettingManager; */ public class ExitCommand extends ExtCommand { + public static final String commandId = "Exit"; + public ExitCommand() { - super("Exit", false); + super(commandId, false); } @Override diff --git a/src/PamController/command/HelpCommand.java b/src/PamController/command/HelpCommand.java index 400516ad..3350c828 100644 --- a/src/PamController/command/HelpCommand.java +++ b/src/PamController/command/HelpCommand.java @@ -25,7 +25,7 @@ public class HelpCommand extends ExtCommand { out += "\n"; } } - commandManager.sendData(out); + commandManager.sendData(this, out); return getName(); } diff --git a/src/PamController/command/MultiportController.java b/src/PamController/command/MulticastController.java similarity index 65% rename from src/PamController/command/MultiportController.java rename to src/PamController/command/MulticastController.java index ead9e397..de92b6ae 100644 --- a/src/PamController/command/MultiportController.java +++ b/src/PamController/command/MulticastController.java @@ -12,12 +12,14 @@ import java.nio.charset.StandardCharsets; import PamController.PamController; import PamController.pamBuoyGlobals; +import networkTransfer.send.NetworkSender; +import pamguard.GlobalArguments; -public class MultiportController extends CommandManager { +public class MulticastController extends CommandManager { //The multicast addresses are in the range 224.0.0.0 through 239.255.255.255 - private static String unitName = "Multiport Controller"; + private static String unitName = "Multicast Controller"; private PamController pamController; private String mAddress; private int mPort; @@ -29,11 +31,11 @@ public class MultiportController extends CommandManager { private byte[] byteBuffer = new byte[MAX_COMMAND_LENGTH]; private DatagramPacket lastDatagram; - public MultiportController(PamController pamController) { + public MulticastController(PamController pamController) { super(pamController, unitName); this.pamController = pamController; - this.mAddress = pamBuoyGlobals.getMultiportAddress(); - this.mPort = pamBuoyGlobals.getMuliportPort(); + this.mAddress = pamBuoyGlobals.getMulticastAddress(); + this.mPort = pamBuoyGlobals.getMulticastPort(); Thread t = new Thread(new ListenerThread()); t.start(); @@ -83,17 +85,35 @@ public class MultiportController extends CommandManager { private void processDatagram(DatagramPacket datagram) { lastDatagram = datagram; String str = new String(datagram.getData(), 0, datagram.getLength()); -// str = str.substring(0, datagram.getLength()); - System.out.println("Datagram received \"" + str + "\""); + str = str.substring(0, datagram.getLength()); +// System.out.println("Datagram received \"" + str + "\""); interpretCommand(str); } @Override - public boolean sendData(String dataString) { + public boolean sendData(ExtCommand extCommand, String dataString) { + if (dataString == null || dataString.length() == 0) { + return false; + } DatagramPacket senderInfo = lastDatagram; - System.out.printf("Send back data \"%s\" to %s port %d\n", dataString, senderInfo.getAddress(), senderInfo.getPort()); + String commandName; + if (extCommand == null) { + commandName = "Unknown"; + } + else { + commandName = extCommand.getName(); + } +// System.out.printf("Send back data \"%s\" to %s port %d\n", dataString, senderInfo.getAddress(), senderInfo.getPort()); + /* + * for multicast, we need to send a slightly different string back which has the station id as part of + * the returned string. These will be 0 if they weren't passed in at the command line. + */ + String id1 = GlobalArguments.getParam(NetworkSender.ID1); + String id2 = GlobalArguments.getParam(NetworkSender.ID2); + String bigString = String.format("%s,%s,%s,%s", commandName, id1, id2, dataString); + // dataString += "\n"; - DatagramPacket packet = new DatagramPacket(dataString.getBytes(), dataString.length()); + DatagramPacket packet = new DatagramPacket(bigString.getBytes(), bigString.length()); packet.setAddress(senderInfo.getAddress()); packet.setPort(senderInfo.getPort()); try { diff --git a/src/PamController/command/NetworkController.java b/src/PamController/command/NetworkController.java index 2090851b..82268bd1 100644 --- a/src/PamController/command/NetworkController.java +++ b/src/PamController/command/NetworkController.java @@ -124,16 +124,14 @@ public class NetworkController extends CommandManager { } } - - public boolean sendData(String dataString) { + @Override + public boolean sendData(ExtCommand extCommand, String dataString) { DatagramPacket packet = new DatagramPacket(dataString.getBytes(), dataString.length()); packet.setAddress(udpPacket.getAddress()); packet.setPort(udpPacket.getPort()); try { receiveSocket.send(packet); -// receiveSocket. } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); return false; } diff --git a/src/PamController/command/TerminalController.java b/src/PamController/command/TerminalController.java index e8589cd2..533b23ee 100644 --- a/src/PamController/command/TerminalController.java +++ b/src/PamController/command/TerminalController.java @@ -17,7 +17,7 @@ public class TerminalController extends CommandManager { } @Override - public boolean sendData(String dataString) { + public boolean sendData(ExtCommand extcommand, String dataString) { System.out.println(dataString); return true; } diff --git a/src/PamController/fileprocessing/ReprocessStoreChoice.java b/src/PamController/fileprocessing/ReprocessStoreChoice.java index 0a6835db..6a6bd019 100644 --- a/src/PamController/fileprocessing/ReprocessStoreChoice.java +++ b/src/PamController/fileprocessing/ReprocessStoreChoice.java @@ -16,7 +16,7 @@ public enum ReprocessStoreChoice { public String toString() { switch (this) { case STARTNORMAL: - return "Start normally. No risk of overwriting"; + return "Start normally. Note risk of overwriting!"; case CONTINUECURRENTFILE: return "Continue from start of last input file processed"; case CONTINUENEXTFILE: diff --git a/src/PamController/pamBuoyGlobals.java b/src/PamController/pamBuoyGlobals.java index dee3a1db..9b0a436f 100644 --- a/src/PamController/pamBuoyGlobals.java +++ b/src/PamController/pamBuoyGlobals.java @@ -14,9 +14,9 @@ public class pamBuoyGlobals { // public static Integer useGstreamer = 0; // public static boolean useNetworkCont = false; private static Integer networkControlPort = null; -private static String multiportAddress; +private static String multicastAddress; // private static boolean useDSP = false; -private static int muliportPort; +private static int mulicastPort; /** * @return the networkControlPort @@ -33,28 +33,28 @@ private static int muliportPort; } /** - * Set parameters for mulitport configutation. + * Set parameters for mulitport configuration. * @param mAddr * @param mPort */ public static void setMultiportConfig(String mAddr, int mPort) { - multiportAddress = mAddr; - muliportPort = mPort; + multicastAddress = mAddr; + mulicastPort = mPort; } /** * @return the multiportAddress */ - public static String getMultiportAddress() { - return multiportAddress; + public static String getMulticastAddress() { + return multicastAddress; } /** * @return the muliportPort */ - public static int getMuliportPort() { - return muliportPort; + public static int getMulticastPort() { + return mulicastPort; } diff --git a/src/generalDatabase/PamTableItem.java b/src/generalDatabase/PamTableItem.java index e329cc9e..2a046623 100644 --- a/src/generalDatabase/PamTableItem.java +++ b/src/generalDatabase/PamTableItem.java @@ -488,6 +488,15 @@ public class PamTableItem implements Cloneable { if (value == null) { return Float.NaN; } + if (value instanceof String) { + try { + double val = Double.valueOf((String) value); + return (float) val; + } + catch (NumberFormatException ex) { + return Float.NaN; + } + } if (value.getClass() == Double.class) { double dVal = (Double) value; return (float) dVal; diff --git a/src/pamguard/Pamguard.java b/src/pamguard/Pamguard.java index 2da04ce4..a80c16cc 100644 --- a/src/pamguard/Pamguard.java +++ b/src/pamguard/Pamguard.java @@ -222,8 +222,7 @@ public class Pamguard { PamGUIManager.setType(PamGUIManager.NOGUI); System.out.println("no gui operation."); } - /////////////// - else if (anArg.equalsIgnoreCase("-psf")) { + else if (anArg.equalsIgnoreCase("-psf") || anArg.equalsIgnoreCase("-psfx")) { String autoPsf = args[iArg++]; PamSettingManager.remote_psf = autoPsf; System.out.println("Running using settings from " + autoPsf); @@ -234,12 +233,12 @@ public class Pamguard { pamBuoyGlobals.setNetworkControlPort(Integer.parseInt(port)); System.out.println("Setting UDP control port " + port); } - else if (anArg.equalsIgnoreCase("-mport")) { + else if (anArg.equalsIgnoreCase("-multicast") || anArg.equalsIgnoreCase("-mport")) { // multicast control (for multiple PAMGuards) String mAddr = args[iArg++]; int mPort = Integer.parseInt(args[iArg++]); pamBuoyGlobals.setMultiportConfig(mAddr, mPort); - System.out.printf("Setting multiport control addr %s port %d\n", mAddr, mPort); + System.out.printf("Setting multicast control addr %s port %d\n", mAddr, mPort); } else if (anArg.equalsIgnoreCase("-nolog")) { System.out.println("Disabling log file from command line switch..."); From fff36a904b346654bbaf1ddb7dec71be8f2a993c Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri, 7 Apr 2023 18:32:18 +0100 Subject: [PATCH 12/15] Batch changes Changes in support of batch processing --- src/Acquisition/FolderInputSystem.java | 20 ++++++++++++++++--- src/PamController/command/ExitCommand.java | 5 ++++- .../fileprocessing/ReprocessManager.java | 8 +++++++- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/Acquisition/FolderInputSystem.java b/src/Acquisition/FolderInputSystem.java index 5c51f56c..731c3439 100644 --- a/src/Acquisition/FolderInputSystem.java +++ b/src/Acquisition/FolderInputSystem.java @@ -876,16 +876,30 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D * processing will continue from there. */ if (allFiles == null || allFiles.size() == 0) { + System.out.println("Daq setanal start time: no files to check against"); return false; } + System.out.printf("setAnalysisStarttTime: checking %d files for start time of %s\n", allFiles.size(), PamCalendar.formatDBDateTime(startTime)); + /* + * If the starttime is maxint then there is nothing to do, but we do need to set the file index + * correctly to not over confuse the batch processing system. + */ + long lastFileTime = getFileStartTime(allFiles.get(allFiles.size()-1).getAbsoluteFile()); + if (startTime > lastFileTime) { + currentFile = allFiles.size(); + System.out.println("Folder Acquisition processing is complete and no files require processing"); + return true; + } for (int i = 0; i < allFiles.size(); i++) { long fileStart = getFileStartTime(allFiles.get(i).getAbsoluteFile()); if (fileStart >= startTime) { currentFile = i; PamCalendar.setSoundFile(true); - PamCalendar.setSessionStartTime(startTime); - System.out.printf("Sound Acquisition start processing at file %s time %s\n", allFiles.get(i).getName(), - PamCalendar.formatDBDateTime(fileStart)); + if (startTime > 0) { + PamCalendar.setSessionStartTime(startTime); + System.out.printf("Sound Acquisition start processing at file %s time %s\n", allFiles.get(i).getName(), + PamCalendar.formatDBDateTime(fileStart)); + } return true; } } diff --git a/src/PamController/command/ExitCommand.java b/src/PamController/command/ExitCommand.java index 0871c7f2..f12a6dd6 100644 --- a/src/PamController/command/ExitCommand.java +++ b/src/PamController/command/ExitCommand.java @@ -20,7 +20,10 @@ public class ExitCommand extends ExtCommand { public String execute(String command) { PamController.getInstance().pamStop(); PamSettingManager.getInstance().saveFinalSettings(); - System.exit(0); + PamController pamController = PamController.getInstance(); + pamController.pamClose(); + // shut down the JavaFX thread and the JVM + pamController.shutDownPamguard(); return getName(); } diff --git a/src/PamController/fileprocessing/ReprocessManager.java b/src/PamController/fileprocessing/ReprocessManager.java index 69ebf54f..2272d3cf 100644 --- a/src/PamController/fileprocessing/ReprocessManager.java +++ b/src/PamController/fileprocessing/ReprocessManager.java @@ -54,13 +54,19 @@ public class ReprocessManager { // need to decide what to do based on the list of possible choices. ReprocessStoreChoice choice = chosePartStoreAction(choiceSummary); + + /** + * Need to call this even though we aren't reprocessing so that + * the Folderinput stream reports correctly on how many files have + * been processed. + */ + boolean setupOK = setupInputStream(choiceSummary, choice); if (choice == ReprocessStoreChoice.DONTSSTART) { return false; } boolean deleteOK = deleteOldData(choiceSummary, choice); - boolean setupOK = setupInputStream(choiceSummary, choice); return true; From 87db5ae6ab7d39c26335cce0b8d8f42340b0af42 Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri, 7 Apr 2023 18:36:51 +0100 Subject: [PATCH 13/15] Merge batch support (#103) * Update FileListWorker.java * Support batch processing Multicast controller and a couple of additional commands to work with the batch processing plugin. * Database float unpack Better unpacking checks of floats coming back from the database * Batch changes Changes in support of batch processing --- src/Acquisition/FolderInputSystem.java | 20 ++++++++++++++++--- src/PamController/command/ExitCommand.java | 5 ++++- .../fileprocessing/ReprocessManager.java | 8 +++++++- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/Acquisition/FolderInputSystem.java b/src/Acquisition/FolderInputSystem.java index 5c51f56c..731c3439 100644 --- a/src/Acquisition/FolderInputSystem.java +++ b/src/Acquisition/FolderInputSystem.java @@ -876,16 +876,30 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D * processing will continue from there. */ if (allFiles == null || allFiles.size() == 0) { + System.out.println("Daq setanal start time: no files to check against"); return false; } + System.out.printf("setAnalysisStarttTime: checking %d files for start time of %s\n", allFiles.size(), PamCalendar.formatDBDateTime(startTime)); + /* + * If the starttime is maxint then there is nothing to do, but we do need to set the file index + * correctly to not over confuse the batch processing system. + */ + long lastFileTime = getFileStartTime(allFiles.get(allFiles.size()-1).getAbsoluteFile()); + if (startTime > lastFileTime) { + currentFile = allFiles.size(); + System.out.println("Folder Acquisition processing is complete and no files require processing"); + return true; + } for (int i = 0; i < allFiles.size(); i++) { long fileStart = getFileStartTime(allFiles.get(i).getAbsoluteFile()); if (fileStart >= startTime) { currentFile = i; PamCalendar.setSoundFile(true); - PamCalendar.setSessionStartTime(startTime); - System.out.printf("Sound Acquisition start processing at file %s time %s\n", allFiles.get(i).getName(), - PamCalendar.formatDBDateTime(fileStart)); + if (startTime > 0) { + PamCalendar.setSessionStartTime(startTime); + System.out.printf("Sound Acquisition start processing at file %s time %s\n", allFiles.get(i).getName(), + PamCalendar.formatDBDateTime(fileStart)); + } return true; } } diff --git a/src/PamController/command/ExitCommand.java b/src/PamController/command/ExitCommand.java index 0871c7f2..f12a6dd6 100644 --- a/src/PamController/command/ExitCommand.java +++ b/src/PamController/command/ExitCommand.java @@ -20,7 +20,10 @@ public class ExitCommand extends ExtCommand { public String execute(String command) { PamController.getInstance().pamStop(); PamSettingManager.getInstance().saveFinalSettings(); - System.exit(0); + PamController pamController = PamController.getInstance(); + pamController.pamClose(); + // shut down the JavaFX thread and the JVM + pamController.shutDownPamguard(); return getName(); } diff --git a/src/PamController/fileprocessing/ReprocessManager.java b/src/PamController/fileprocessing/ReprocessManager.java index 69ebf54f..2272d3cf 100644 --- a/src/PamController/fileprocessing/ReprocessManager.java +++ b/src/PamController/fileprocessing/ReprocessManager.java @@ -54,13 +54,19 @@ public class ReprocessManager { // need to decide what to do based on the list of possible choices. ReprocessStoreChoice choice = chosePartStoreAction(choiceSummary); + + /** + * Need to call this even though we aren't reprocessing so that + * the Folderinput stream reports correctly on how many files have + * been processed. + */ + boolean setupOK = setupInputStream(choiceSummary, choice); if (choice == ReprocessStoreChoice.DONTSSTART) { return false; } boolean deleteOK = deleteOldData(choiceSummary, choice); - boolean setupOK = setupInputStream(choiceSummary, choice); return true; From 57bae3c39c1f92c4748bf367a6d9fc498542277a Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu, 13 Apr 2023 17:05:40 +0100 Subject: [PATCH 14/15] Fix reprocess manager Stop it responding with stupid questions when there are no part complete stores. --- src/PamController/fileprocessing/ReprocessManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/PamController/fileprocessing/ReprocessManager.java b/src/PamController/fileprocessing/ReprocessManager.java index 2272d3cf..4f05913a 100644 --- a/src/PamController/fileprocessing/ReprocessManager.java +++ b/src/PamController/fileprocessing/ReprocessManager.java @@ -175,9 +175,11 @@ public class ReprocessManager { ArrayList outputStores = PamController.getInstance().findControlledUnits(DataOutputStore.class, true); boolean partStores = false; + int nOutputStores = 0; for (PamControlledUnit aPCU : outputStores) { DataOutputStore offlineStore = (DataOutputStore) aPCU; StoreStatus status = offlineStore.getStoreStatus(false); + nOutputStores++; if (status == null) { continue; } @@ -191,8 +193,8 @@ public class ReprocessManager { } if (partStores == false) { - choiceSummary.addChoice(ReprocessStoreChoice.STARTNORMAL); - return choiceSummary; +// choiceSummary.addChoice(ReprocessStoreChoice.STARTNORMAL); + return null; // no part full stores, so can start without questions } if (choiceSummary.getInputStartTime() >= choiceSummary.getOutputEndTime()) { /* From e3a7dc3ad1c6e866806033578b407855869c54ff Mon Sep 17 00:00:00 2001 From: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu, 13 Apr 2023 17:06:53 +0100 Subject: [PATCH 15/15] Small changes for batch processing --- src/PamUtils/PamCalendar.java | 7 +++-- src/PamView/component/DataBlockTableView.java | 27 ++++++++++++++++--- src/RightWhaleEdgeDetector/RWEProcess.java | 2 +- src/binaryFileStorage/BinaryStoreProcess.java | 2 +- src/generalDatabase/DBControl.java | 5 ++-- src/generalDatabase/sqlite/SqliteSystem.java | 4 ++- 6 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/PamUtils/PamCalendar.java b/src/PamUtils/PamCalendar.java index 3ce2eebc..d41aa018 100644 --- a/src/PamUtils/PamCalendar.java +++ b/src/PamUtils/PamCalendar.java @@ -46,6 +46,8 @@ public class PamCalendar { public static TimeZone defaultTimeZone = TimeZone.getTimeZone("UTC"); + + private static TimeZone localTimeZone = TimeZone.getDefault(); public static final long millisPerDay = 1000L*24L*3600L; @@ -174,8 +176,9 @@ public class PamCalendar { } public static TimeZone getDisplayTimeZone(boolean useLocal) { - return TimeZone.getTimeZone("UTC"); - // return useLocal ? CalendarControl.getInstance().getChosenTimeZone() : defaultTimeZone; +// return TimeZone.getTimeZone("UTC"); +// return useLocal ? CalendarControl.getInstance().getChosenTimeZone() : defaultTimeZone; + return useLocal ? localTimeZone : defaultTimeZone; } public static String formatDateTime(Date date) { diff --git a/src/PamView/component/DataBlockTableView.java b/src/PamView/component/DataBlockTableView.java index 124addfc..f8ae214f 100644 --- a/src/PamView/component/DataBlockTableView.java +++ b/src/PamView/component/DataBlockTableView.java @@ -106,6 +106,13 @@ public abstract class DataBlockTableView { } } + /** + * Call the table data changed function to update table values. + */ + public void fireTableDataChanged() { + blockTableModel.fireTableDataChanged(); + } + public JComponent getComponent() { return tablePanel; } @@ -150,13 +157,22 @@ public abstract class DataBlockTableView { String tip = null; java.awt.Point p = e.getPoint(); int rowIndex = rowAtPoint(p); +// int column = columnAtPoint(p); +// System.out.println("Get tooltip for row " + rowIndex + " column" + column); if (rowIndex < 0) { return null; } int colIndex = columnAtPoint(p); int realColumnIndex = convertColumnIndexToModel(colIndex); - T dataUnit = getDataUnit(rowIndex); - return DataBlockTableView.this.getToolTipText(dataUnit, realColumnIndex); + try { + T dataUnit = getDataUnit(rowIndex); + return DataBlockTableView.this.getToolTipText(dataUnit, realColumnIndex); + } + catch (Exception ex) { + // I once got an index out of bounds here, or it might have been + // a concurrent modification exception ? Either way return null; + return null; + } } } @@ -226,13 +242,16 @@ public abstract class DataBlockTableView { /** * Get the number of rows in the table - default behaviour is the - * number of rows in the datablock, but this may be overridded if + * number of rows in the datablock, but this may be overridden if * data are being selected in a different way. * @return number of table rows to show. */ public int getRowCount() { if (dataUnitCopy == null) { - return 0; + updatePamData(); + if (dataUnitCopy == null) { + return 0; + } } return dataUnitCopy.size(); } diff --git a/src/RightWhaleEdgeDetector/RWEProcess.java b/src/RightWhaleEdgeDetector/RWEProcess.java index ecf4af68..ccc766bb 100644 --- a/src/RightWhaleEdgeDetector/RWEProcess.java +++ b/src/RightWhaleEdgeDetector/RWEProcess.java @@ -177,7 +177,7 @@ public class RWEProcess extends PamProcess { minSoundType = rweControl.rweParameters.minSoundType; classifier.setSoundData(getSampleRate(), sourceDataBlock.getFftLength(), sourceDataBlock.getFftHop()); - System.out.println("Create right whale channel process " + iChannel); +// System.out.println("Create right whale channel process " + iChannel); } diff --git a/src/binaryFileStorage/BinaryStoreProcess.java b/src/binaryFileStorage/BinaryStoreProcess.java index 7d653fbc..c3a728b4 100644 --- a/src/binaryFileStorage/BinaryStoreProcess.java +++ b/src/binaryFileStorage/BinaryStoreProcess.java @@ -46,7 +46,7 @@ public class BinaryStoreProcess extends PamProcess { startTime = PamCalendar.getTimeInMillis(); long round = binaryStore.binaryStoreSettings.fileSeconds * 1000; nextFileTime = (startTime/round) * round + round; - System.out.println("Next file start at " + PamCalendar.formatDateTime(nextFileTime)); +// System.out.println("Next file start at " + PamCalendar.formatDateTime(nextFileTime)); timer = new Timer(); timer.schedule(new FileTimerTask(), 1000, 1000); diff --git a/src/generalDatabase/DBControl.java b/src/generalDatabase/DBControl.java index eb2697d5..525020e7 100644 --- a/src/generalDatabase/DBControl.java +++ b/src/generalDatabase/DBControl.java @@ -412,8 +412,9 @@ PamSettingsSource { } - if (dbParameters.getUseAutoCommit() == false) { +// if (dbParameters.getUseAutoCommit() == false) { JMenuItem commitItem = new JMenuItem("Commit Changes"); + commitItem.setEnabled(dbParameters.getUseAutoCommit() == false); commitItem.setToolTipText("Immediately commit recent changes to the database"); commitItem.addActionListener(new ActionListener() { @Override @@ -422,7 +423,7 @@ PamSettingsSource { } }); menu.add(commitItem); - } +// } if (SMRUEnable.isEnable()) { JMenuItem speedMenu = new JMenuItem("Test database speed"); diff --git a/src/generalDatabase/sqlite/SqliteSystem.java b/src/generalDatabase/sqlite/SqliteSystem.java index 3ba3e90f..22a1bc61 100644 --- a/src/generalDatabase/sqlite/SqliteSystem.java +++ b/src/generalDatabase/sqlite/SqliteSystem.java @@ -279,7 +279,9 @@ public class SqliteSystem extends DBSystem implements PamSettings { { if(connection != null){ // if (USEAUTOCOMMIT == false) { - connection.getConnection().commit(); + if (connection.getConnection().getAutoCommit()) { + connection.getConnection().commit(); + } // } connection.getConnection().close(); }