mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2024-11-22 07:02:29 +00:00
Squashed commit of the following:
commitdb037c6d29
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri May 12 15:37:21 2023 +0100 Fixing SUD order commitc95579d04f
Merge:bf5f0dac
88b03420
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri May 12 10:03:58 2023 +0100 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard.git into main commitbf5f0daca5
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri May 12 10:03:30 2023 +0100 NI Playback bug Fix bug in NI playback which threw an exception if no devices were present and configured in NI-MAX commit88b034207a
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon May 8 15:44:26 2023 +0100 Merge pull request #42 from PAMGuard/main (#106) commit29f0bf7e48
Merge:f5ff9da8
2953d82b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon May 8 15:43:46 2023 +0100 Merge branch 'main' into main commitf5ff9da8dd
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon May 8 15:23:31 2023 +0100 updated x3 repo Updated X3 to use CRC checks on data. Affects a small number of sud files. commitaf82147f9e
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri May 5 14:14:22 2023 +0100 Bug fix Bug fix in binary store checks commita7cacc108f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu May 4 13:39:50 2023 +0100 update to X3 repo commit36cd0af0bc
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed May 3 19:17:36 2023 +0100 updated x3 library commit56cb06ea1c
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed May 3 19:10:07 2023 +0100 Batch and X3 updates (#105) * 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 * Small changes for batch processing * update X3 to get Detector parameters X3 and PAMguard updated to get and save the SoundTrap click detector parameters. commit2953d82b58
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed May 3 19:06:45 2023 +0100 update X3 to get Detector parameters X3 and PAMguard updated to get and save the SoundTrap click detector parameters. commitf74bb5eb89
Merge:795b32e4
317f8726
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Apr 24 13:29:09 2023 +0100 Merge pull request #41 from PAMGuard/main updated x3 commit317f87265a
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Apr 24 12:49:19 2023 +0100 Updated x3 updated SUD reader to handle and unexpectedchunkID. commit96d18b85a7
Merge:73282b9a
6a0c9b55
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 19 09:08:58 2023 +0100 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard commit73282b9a71
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 19 09:07:54 2023 +0100 checking nan sample rate in ST Click detector commit6a0c9b55d1
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 19 09:05:25 2023 +0100 Improvements for batch processing (#104) * 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 * Small changes for batch processing commit795b32e440
Merge:e3a7dc3a
57bae3c3
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Apr 13 17:11:28 2023 +0100 Merge pull request #40 from PAMGuard/main merge fix in reprocess manager commite3a7dc3ad1
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Apr 13 17:06:53 2023 +0100 Small changes for batch processing commit57bae3c39c
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Apr 13 17:05:40 2023 +0100 Fix reprocess manager Stop it responding with stupid questions when there are no part complete stores. commit87db5ae6ab
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Apr 7 18:36:51 2023 +0100 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 commitf97977a1ea
Merge:fff36a90
7ae7739b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Apr 7 18:36:07 2023 +0100 Merge pull request #39 from PAMGuard/main Batch Processing (#102) commitfff36a904b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Apr 7 18:32:18 2023 +0100 Batch changes Changes in support of batch processing commit7ae7739b22
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Apr 7 18:25:27 2023 +0100 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 commit30fbc6d290
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Apr 6 21:43:20 2023 +0100 Database float unpack Better unpacking checks of floats coming back from the database commita2da810690
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Apr 6 16:44:47 2023 +0100 Support batch processing Multicast controller and a couple of additional commands to work with the batch processing plugin. commit2bb8c0b164
Merge:da21d54d
ed776704
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 5 19:36:10 2023 +0100 Merge branch 'main' of https://github.com/douggillespie/PAMGuard commitda21d54d3e
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 5 19:35:48 2023 +0100 Update FileListWorker.java commited77670458
Merge:16e8184a
42d560f9
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 5 19:33:16 2023 +0100 Merge pull request #38 from PAMGuard/main Merge in from main commit42d560f91b
Merge:629f4309
16e8184a
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 5 19:33:05 2023 +0100 Merge branch 'main' into main commit629f430988
Author: stabbutt <100229685+stabbutt@users.noreply.github.com> Date: Wed Apr 5 01:37:17 2023 -0700 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 commit3573eaa
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> commit74066712b8
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Apr 4 18:04:13 2023 +0100 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. commit16e8184a23
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Mar 1 16:43:08 2023 +0000 Batch processing Updates to support batch processing control commit5f9d29e131
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Feb 21 16:01:50 2023 +0000 Reprocessing Ironed out a few bugs in restarting processing. commitf910d80517
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Feb 20 17:15:54 2023 +0000 Reprocessing options Analysis of input and output files and can restart from where it left off when processing an offline dataset. commitf64deecbd5
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Feb 17 11:12:08 2023 +0000 Fix but in filedata Stops errors (and returns 0) if an invalid user data format is used. commite4c4c95340
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Feb 7 17:35:01 2023 +0000 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. commitac004ab9cc
Author: Jamie Mac <macster110@gmail.com> Date: Thu Feb 2 14:05:24 2023 +0000 Deep learning bug fixes. (#95) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. 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: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit6b15b3d536
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. commit4b3a37636b
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 commitc641c58e4f
Author: Jamie Mac <macster110@gmail.com> Date: Tue Aug 23 14:19:28 2022 +0100 Bug fixes to click train detector (#51) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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: commitb01cb4d100
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. commitae6e2f947b
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. commitcd89c65d7c
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Sep 13 09:07:11 2022 +0100 Fix synchronization problem in RawDataTransfroms commit6b15b3d536
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. commit4b3a37636b
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 commitc641c58e4f
Author: Jamie Mac <macster110@gmail.com> Date: Tue Aug 23 14:19:28 2022 +0100 Bug fixes to click train detector (#51) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
Author: Douglas Gillespie <50671166+… * Fixes to click train detector and deep learning * Squashed commit of the following: commit313ce0c46f
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 commit290f2fbb95
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 commit6aefbc124b
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. commiteb176a4568
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 15 17:10:09 2022 +0100 Merge from dg (#57) commitdee7e1d52e
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) commit1ed74bebe3
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) commitfbe39a7416
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 commit425dd21d9f
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 commit0114c80d61
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 15 16:59:37 2022 +0100 Work on click train detector help commitc8e271734f
Author: Jamie Mac <macster110@gmail.com> 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: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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: commit149dfab281
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) commit91a704b07a
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) commitd01576c855
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) commit11bed6ffba
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) commitfccc0a715d
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 commit5983f30ded
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 commit075aceb4aa
Author: Jamie Mac <macster110@gmail.com> 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: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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: commit3a452936c0
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 commit4015461fbc
Author: Jamie Mac <macster110@gmail.com> 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: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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: commit67060016c2
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Oct 21 12:26:42 2022 +0100 REsolve issues in binayUIDFunctions commit61c3d80f30
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 commit1de5ec6e11
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 commit4473d1b1bf
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. commit63cc66a4b1
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. commite4faed5cfc
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 commitf4f7cc59b6
Author: Jamie Mac <macster110@gmail.com> 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: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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: commit5b1cc760d8
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. commit3f5e4e4a79
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 commit890230a6ff
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:49:06 2022 +0000 Final final readme 2.02.06 commit05268d810d
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:40:44 2022 +0000 Version 2.02.06 (#87) (hopefully) commit7d7ecb9545
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:39:37 2022 +0000 Version 2.02.06 (#86) (hopefully) commit76e8467201
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 commitd2f74f606e
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:36:49 2022 +0000 readme for 2.02.06 commitac280e1b6f
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 commit655a546764
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:56:00 2022 +0000 Update X3 Jar commit96cd32034f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:55:37 2022 +0000 Delete x3-2.2.0.pom commitbf90443b1b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:55:28 2022 +0000 Delete x3-2.2.0.jar commit22d32b4682
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:54:15 2022 +0000 Update x3 jar file commit14c5cf5afe
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 commit376a9f0f0e
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 14:30:04 2022 +0000 Reinstate x3 jar commit93193638b1
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 14:29:37 2022 +0000 Last changes to x3 commitccd0fc7965
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 commitea32c5cdcb
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. commitf08cf4ffd7
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 commitd3277be3b1
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. commitd1af000040
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. commit4a75afc414
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 commit3b053ff342
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. commit068a8b1a27
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 commitee24c0ab6b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Nov 10 17:21:37 2022 +0000 Small changes to SUD in PAMGuard commit87cd2cd41f
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 commit61dd6ef4d1
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 commitfcdb64e467
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) commitfe0fe11faf
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> commita72e68c26a
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. commit3e717bd207
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 commitd2e69c507e
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 commitaa7f18eaa2
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 commit4f734b7775
Author: Jamie Mac <macster110@gmail.com> 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: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on 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: commit30cd72e2e5
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Jan 20 11:59:49 2023 +0000 Update dependency-reduced-pom.xml commitb5cf955cba
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. commit269398890e
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 commita89279ef81
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. commite169ccb1a7
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 commit44da3ffb57
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 commit8642834c1e
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. commitb1016c0cc8
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. commit4322b2d42b
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. commit407e9d9d08
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. commit0d48118487
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. commitbd0bed350c
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 commit4e0eab5d75
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. commitd27e4fb19f
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 commitfc9c70ad78
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Dec 12 17:01:06 2022 +0000 Fix Gebco grid data overlay offset commit1be8a5ee83
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. commite7a67d33cf
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 commit6995bee65b
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. commitc32d172000
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 commit3203a0a50f
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 commit6f6f7407ca
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. commit35ee1e3dfc
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. commit5b1cc760d8
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. commit3f5e4e4a79
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 commit890230a6ff
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:49:06 2022 +0000 Final final readme 2.02.06 commit05268d810d
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:40:44 2022 +0000 Version 2.02.06 (#87) (hopefully) commit7d7ecb9545
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:39:37 2022 +0000 Version 2.02.06 (#86) (hopefully) commit76e8467201
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 commitd2f74f606e
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:36:49 2022 +0000 readme for 2.02.06 commitac280e1b6f
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 commit655a546764
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:56:00 2022 +0000 Update X3 Jar commit96cd32034f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:55:37 2022 +0000 Delete x3-2.2.0.pom commitbf90443b1b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:55:28 2022 +0000 Delete x3-2.2.0.jar commit22d32b4682
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:54:15 2022 +0000 Update x3 jar file commit14c5cf5afe
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 commit376a9f0f0e
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 14:30:04 2022 +0000 Reinstate x3 jar commit93193638b1
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 14:29:37 2022 +0000 Last changes to x3 commitccd0fc7965
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 commitea32c5cdcb
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. commitf08cf4ffd7
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 commitd3277be3b1
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. commitd1af000040
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. commit4a75afc414
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 commit3b053ff342
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. commit068a8b1a27
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 commitee24c0ab6b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Nov 10 17:21:37 2022 +0000 Small changes to SUD in PAMGuard commit87cd2cd41f
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 commit61dd6ef4d1
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 commitfcdb64e467
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) commitfe0fe11faf
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> commita72e68c26a
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. commit3e717bd207
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 commitd2e69c507e
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 commitaa7f18eaa2
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 commit4f734b7775
Author: Jamie Mac <macster110@gmail.com> 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: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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: commit5a37bfe915
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. commitb08e86e330
Author: Jamie Mac <macster110@gmail.com> Date: Wed Aug 17 09:16:52 2022 +0100 Bug fix for click train detector (#49) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * More screenshots * Add screenshots * Update click_train_help.md * Add classifier screenshot * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update POM with latest jdl4pam * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Update pom.xml * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Update click_train_help.md * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Screenshots * Update click_train_help.md * More screenshots * Update click_train_help.md * Update click_train_help.md * Add screenshots * Add classifier screenshot * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Update click_train_help.md * Add screenshots for click train detector help * Screenshots * Update click_train_help.md * Defult option for CPOD and porpoise to click train detector. Also a minor * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Create click_train_help.md * Update click_train_help.md * Update click_train_help.md * Updates and bug fixes to click train detector and CPOD importer * Bug fix for raw spectrogram in TDDisplayFX * Update KetosClassifier.java * Fix standard classifier JSON logging * Fixed bug in sweep classifier when using SoundTrap click detections * Added some colour averaging in the TFDisplayFX spectrgoram * Bug fix for rainbow click bearings Bug fix when rainbow clicks are imported mean bearings cannot be calculated - was an array size issue in DelayGroup * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Updated the prediction plots on time display Deep learning prediciton plots on the time display have now been updated to have some colour options and also act as a legend. * Updates to TDisplayFX yFIshmael now owrks with TDisplayFX TDisplayFX UI changes to make simpler. Some abstraction for drawing lines on TDisplayFX * Merge fixes to click train detector * Bug fix to UI * Updates to FX GUI * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Merge fixes to click train detector * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX pop up menu displays Fixed Peak Frequency symbol chooser so it saves the colour box settings * Screenshots * Updates and bug fixes to click train detector and CPOD importer * Fix standard classifier JSON logging * Google humpback whale deep learning classifier Google's humpback whale deep learning classifier can now be imported. Updated TDisplayFX to make the data selection panes cleaner and clearer. Updated the TDisplayFX so that predicitons from deep learning models now have some display options e.g. changing colour. * Bug fix to UI * Bug fixes to FX GUI * Updates to click train detector * Squashed commit of the following: commit9f998165ee
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: commit62b020b320
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat May 14 06:52:20 2022 +0100 Add a new offlinefileslist function commit3a9a5311aa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Apr 27 09:43:31 2022 +0100 Update .gitignore commit9f998165ee
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: commit11ba8bf91e
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 commit9a9f542d95
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 commit49cd547aee
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 commit016cfd0da5
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 commitc9f2ab3e97
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 commit55f5a3fcf1
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. commitb3f6c0e665
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. commit8569b6b579
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 commit128a512ff6
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. commit6eaa6e4978
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. commit9fdd30556b
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> commitef0330173b
Author: Jamie Mac <macster110@gmail.com> Date: Mon Aug 8 10:32:19 2022 +0100 Click trian detector fixes (#48) * Updates to click train detector New GUI for click train classification - more intuitive and allows users to build more powerful classifiers. CPOD data can now build average waveforms. CPOD click trains can be viewed in TDisplayFX p… * More work on FX click classifier * Bug fixes to deep learning module --------- Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> commite4de847b5d
Merge:85d25401
a7745c3b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Jan 30 08:36:28 2023 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard into main commit85d25401a1
Merge:738c9ab6
7baf6dce
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Jan 27 14:43:24 2023 +0000 Merge pull request #37 from PAMGuard/main Couple of fixes commit738c9ab6dc
Merge:358770b4
3573eaa4
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Jan 25 16:32:11 2023 +0000 Merge pull request #36 from PAMGuard/main Merging from PM Main commit358770b485
Merge:75b05a25
3203a0a5
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 20 21:04:48 2022 +0000 Merge pull request #35 from PAMGuard/main Last fixes just after release 2.02.06 commit75b05a25e6
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Nov 20 21:00:00 2022 +0000 ROCCA Memory leak Another attempt at healing ROCCA memory leak commit6f3992dc2d
Merge:842509b9
5b1cc760
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Nov 16 12:09:19 2022 +0000 Merge pull request #34 from PAMGuard/main V2.02.06 commit842509b9da
Merge:edfc5c90
7d7ecb95
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:39:59 2022 +0000 Merge pull request #33 from PAMGuard/main Version 2.02.06 (#86) commitedfc5c9083
Merge:48410970
76e84672
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:39:11 2022 +0000 Merge pull request #32 from PAMGuard/main Readme for 2.02.06 commit484109703e
Merge:22531824
e6740e15
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:34:57 2022 +0000 Merge branch 'main' of https://github.com/douggillespie/PAMGuard.git into main commit2253182438
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 17:34:10 2022 +0000 Version 2.02.06 (hopefully) commite6740e1534
Merge:49f7bb60
ac280e1b
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Nov 15 15:45:41 2022 +0000 Merge pull request #31 from PAMGuard/main X£ and ROCCA updates commit49f7bb6094
Merge:376a9f0f
14c5cf5a
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Nov 14 15:49:46 2022 +0000 Merge pull request #30 from PAMGuard/main Rocca update from Mike
This commit is contained in:
parent
af51ea66a6
commit
ac85571bf0
30
.gitignore
vendored
30
.gitignore
vendored
@ -41,33 +41,3 @@ settings.xml
|
||||
.classpath
|
||||
.classpath
|
||||
.classpath
|
||||
.metadata/version.ini
|
||||
.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml
|
||||
.metadata/.plugins/org.eclipse.ui.intro/introstate
|
||||
.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml
|
||||
.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup
|
||||
.metadata/.plugins/org.eclipse.m2e.logback/logback.2.1.100.20230106-1511.xml
|
||||
.metadata/.plugins/org.eclipse.m2e.core/workspaceState.ser
|
||||
.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
|
||||
.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
|
||||
.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml
|
||||
.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
|
||||
.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache
|
||||
.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt
|
||||
.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache
|
||||
.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache
|
||||
.metadata/.plugins/org.eclipse.egit.core/.org.eclipse.egit.core.cmp/.settings/org.eclipse.core.resources.prefs
|
||||
.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
|
||||
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs
|
||||
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs
|
||||
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
|
||||
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs
|
||||
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
|
||||
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs
|
||||
.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
|
||||
.metadata/.plugins/org.eclipse.core.resources/.root/1.tree
|
||||
.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version
|
||||
.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index
|
||||
.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version
|
||||
.metadata/.plugins/org.eclipse.core.resources/.projects/.org.eclipse.egit.core.cmp/.location
|
||||
.metadata/.lock
|
||||
|
142
README.html
142
README.html
@ -388,7 +388,10 @@ PamguardBeta_ViewerMode.exe):</p>
|
||||
|
||||
<h1><a name="_LATEST_VERSION_2.02.03"></a><a name="_VERSION_2.02.07_January"></a><em><span
|
||||
style='font-size:12.0pt;font-family:"Cambria",serif;font-style:normal'><a
|
||||
href="#_Latest_Version_2.02.07">LATEST VERSION 2.02.07 January 2023</a></span></em></h1>
|
||||
href="#_Latest_Version_2.02.08">LATEST VERSION 2.02.08 May 2023</a></span></em></h1>
|
||||
|
||||
<h1><em><span style='font-size:12.0pt;font-family:"Cambria",serif;font-style:
|
||||
normal'><a href="#_Latest_Version_2.02.07">Version 2.02.07 January 2023</a></span></em></h1>
|
||||
|
||||
<h1><em><span style='font-size:12.0pt;font-family:"Cambria",serif;font-style:
|
||||
normal'><a href="#_Latest_Version_2.02.06">Version 2.02.06 November 2022</a></span></em></h1>
|
||||
@ -450,14 +453,35 @@ Version 2.00.10 June 2017</a></span></h1>
|
||||
<h1><span style='font-size:12.0pt'><a href="#_Older_Versions">Older Versions</a></span></h1>
|
||||
|
||||
<h1><a name="_Latest_Version_2.02.03_1"></a><a name="_Latest_Version_2.02.05"></a><a
|
||||
name="_Latest_Version_2.02.06"></a><a name="_Latest_Version_2.02.07"></a><span
|
||||
lang=EN-US>Latest Version 2.02.07 January 2023</span></h1>
|
||||
name="_Latest_Version_2.02.06"></a><a name="_Latest_Version_2.02.07"></a><a
|
||||
name="_Latest_Version_2.02.08"></a><span lang=EN-US>Latest Version 2.02.08 May
|
||||
2023</span></h1>
|
||||
|
||||
<h2><span lang=EN-US>Bug Fixes</span></h2>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Use of localization sensor and orientation data
|
||||
for static hydrophones had a bug whereby it would continually ‘forget’ angle
|
||||
offsets applied to static hydrophones in viewer mode. This is now fixed. </span></p>
|
||||
<p class=MsoNormal><span lang=EN-US>ROCCA Memory Leak: A memory leak in ROCCA,
|
||||
which mostly occurred when processing large datasets of many offline files, has
|
||||
been fixed.</span></p>
|
||||
|
||||
<h2><span lang=EN-US>New Features</span></h2>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Restart Options: When you restart
|
||||
processing of offline files, if output data already exist (binary data of
|
||||
within database tables) you will be asked if you want to overwrite the data, cancel,
|
||||
or try to continue from where to left off. </span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Updated SoundTrap sud file interface so
|
||||
that PAMGuard now extracts and stores the Click Detector settings from the sud
|
||||
files and stores them within the PAMGuard configuration. This does not affect
|
||||
processing, but is important for record keeping. </span></p>
|
||||
|
||||
<h1><span lang=EN-US>Version 2.02.07 January 2023</span></h1>
|
||||
|
||||
<h2><span lang=EN-US>Bug Fixes</span></h2>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Use of localization sensor and orientation
|
||||
data for static hydrophones had a bug whereby it would continually ‘forget’
|
||||
angle offsets applied to static hydrophones in viewer mode. This is now fixed. </span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Click tool bar: Correctly shows event
|
||||
selection options even if no species classification options are in place. </span></p>
|
||||
@ -467,8 +491,8 @@ selection options even if no species classification options are in place. </span
|
||||
mode. Now fixed. </span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>ROCCA: Fixed (another) memory leak which
|
||||
caused PAMGuard to crash when processing large data sets with the ROCCA
|
||||
classifier. </span></p>
|
||||
caused PAMGuard to crash when processing large data sets with the ROCCA classifier.
|
||||
</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Ishmael Modules: Fixed bug which
|
||||
occasionally caused crashes when processing many files offline. </span></p>
|
||||
@ -1169,8 +1193,8 @@ Bug 441. Plot coordinate calculations incorrect in PamAxis.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>10. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
lang=EN-US> </span>Bug 442. BT Display does not change click symbol color when Colour
|
||||
By Superdetection is selected.</p>
|
||||
lang=EN-US> </span>Bug 442. BT Display does not change click symbol color when
|
||||
Colour By Superdetection is selected.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>11. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
@ -1194,7 +1218,8 @@ Spectrogram display.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>15. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||
Bug 447. Viewer mode throws exception when trying to load beamformer localisations</p>
|
||||
Bug 447. Viewer mode throws exception when trying to load beamformer
|
||||
localisations</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>16. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
@ -1207,8 +1232,8 @@ Bug 449. Rocca Encounter Stats output file calculating incorrect values.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>18. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
lang=EN-US> </span>Bug 450. Ishmael Detectors subscribing to FFTDataBlock twice,
|
||||
meaning they process each data unit 2x doubling the output.</p>
|
||||
lang=EN-US> </span>Bug 450. Ishmael Detectors subscribing to FFTDataBlock
|
||||
twice, meaning they process each data unit 2x doubling the output.</p>
|
||||
|
||||
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
||||
|
||||
@ -1596,9 +1621,9 @@ lang=EN-US> </span>Added decimal degrees option to latitude/longitude dialog.</p
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
lang=EN-US> </span>Added option in the Click Delay parameters to restrict the number
|
||||
of initial samples used in the calculation. This can be useful for cleaning up
|
||||
delays in the presence of echoes and small time delays.</p>
|
||||
lang=EN-US> </span>Added option in the Click Delay parameters to restrict the
|
||||
number of initial samples used in the calculation. This can be useful for
|
||||
cleaning up delays in the presence of echoes and small time delays.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||
@ -1971,8 +1996,8 @@ User is now able to specify Soundtrap date/time format</p>
|
||||
<h1><a name="_Latest_Beta_Version_2.00.11"></a><span lang=EN-US>Beta Version
|
||||
2.00.11 October 2017</span></h1>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>PAMGuard Version 2 contains major updates. You
|
||||
should read and understand the notes listed for <a
|
||||
<p class=MsoNormal><span lang=EN-US>PAMGuard Version 2 contains major updates.
|
||||
You should read and understand the notes listed for <a
|
||||
href="#_Latest_Beta_Version_2.00.10">Beta Version 2.00.10</a> before proceeding
|
||||
with installation and use of this version.</span></p>
|
||||
|
||||
@ -2126,8 +2151,8 @@ to colour them by the colour assigned to the group. </span></p>
|
||||
|
||||
<h3><span lang=EN-US>Using Old PAMGuard Configurations</span></h3>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Old PAMGuard configurations will work with the
|
||||
new version. However please note the following:</span></p>
|
||||
<p class=MsoNormal><span lang=EN-US>Old PAMGuard configurations will work with
|
||||
the new version. However please note the following:</span></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-36.0pt'><span
|
||||
lang=EN-US>1.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
@ -3147,8 +3172,8 @@ correctly calculated in real world coordinates. </p>
|
||||
<p class=MsoNormal><i>Wild ArcGIS Interface</i> (Maps and Mapping group)</p>
|
||||
|
||||
<p class=MsoNormal>This module, developed by Michael Oswald / SWFSC, allows
|
||||
PAMGuard to output data in a format suitable for display in the WILD ArcGIS
|
||||
marine mammal survey package. See online help for details. </p>
|
||||
PAMGuard to output data in a format suitable for display in the WILD ArcGIS marine
|
||||
mammal survey package. See online help for details. </p>
|
||||
|
||||
<p class=MsoNormal><i>Alarms</i> (Utilities Group)</p>
|
||||
|
||||
@ -3288,8 +3313,8 @@ whistle.</p>
|
||||
forms which did not display correctly in 'night' mode. </li>
|
||||
<li class=MsoNormal style='margin-bottom:0cm'>Bug fix in simulator. No longer
|
||||
stops or fails to start generating sounds. </li>
|
||||
<li class=MsoNormal style='margin-bottom:0cm'>Bug in calculated spectrum levels
|
||||
if data were decimated (<a
|
||||
<li class=MsoNormal style='margin-bottom:0cm'>Bug in calculated spectrum
|
||||
levels if data were decimated (<a
|
||||
href="http://sourceforge.net/p/pamguard/bugs/187/">http://sourceforge.net/p/pamguard/bugs/187/</a>)
|
||||
. Did not affect band level calculations. </li>
|
||||
<li class=MsoNormal style='margin-bottom:0cm'>Bug in noise band monitor.
|
||||
@ -3373,9 +3398,9 @@ databases.</p>
|
||||
<p class=MsoNormal style='margin-left:36.0pt'>National Instruments cards: Added
|
||||
code in support of the new x-series devices. </p>
|
||||
|
||||
<p class=MsoNormal style='margin-left:36.0pt'>ASIO sound cards: Added support for
|
||||
a new open source ASIO driver system (jasiohost). The old system has been left
|
||||
in place for now while we assess users response to the newer system. </p>
|
||||
<p class=MsoNormal style='margin-left:36.0pt'>ASIO sound cards: Added support
|
||||
for a new open source ASIO driver system (jasiohost). The old system has been
|
||||
left in place for now while we assess users response to the newer system. </p>
|
||||
|
||||
<p class=MsoNormal style='margin-left:36.0pt'><i>AIS</i></p>
|
||||
|
||||
@ -3450,14 +3475,14 @@ have implemented database storage for output of these modules. </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>Radar Display: A bug which stopped the radar display from correctly
|
||||
displaying bearings to whistles from arrays containing more than two hydrophone
|
||||
elements has been fixed. </p>
|
||||
</span>Radar Display: A bug which stopped the radar display from correctly displaying
|
||||
bearings to whistles from arrays containing more than two hydrophone elements
|
||||
has been fixed. </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>Database Speed: A substantial rewriting of some of the indexing methods in
|
||||
the database module has led to a significant increase in the speed at which
|
||||
</span>Database Speed: A substantial rewriting of some of the indexing methods
|
||||
in the database module has led to a significant increase in the speed at which
|
||||
data are written to the database (orders of magnitude for large databases).
|
||||
This is having a significant impact on the overall reliability of the software.
|
||||
Other changes have increased the speed (again by orders of magnitude) at which
|
||||
@ -3564,8 +3589,8 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>Bearings can be calculated using the envelope of the waveform rather
|
||||
than the full waveform. The waveform or envelope can also be filtered prior to
|
||||
</span>Bearings can be calculated using the envelope of the waveform rather than
|
||||
the full waveform. The waveform or envelope can also be filtered prior to
|
||||
bearing calculation.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
@ -3698,11 +3723,11 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
|
||||
|
||||
<p class=MsoNormal>2. Improved offline viewer functionality. </p>
|
||||
|
||||
<p class=MsoNormal>The offline viewer is much improved with better data scrolling
|
||||
and the ability to view data either stored in the database or the binary
|
||||
storage system. Work has stated on functions which read and use data stored in
|
||||
audio files. This is currently limited to re-calculating and displaying
|
||||
displaying spectrogram data during viewer mode operation. </p>
|
||||
<p class=MsoNormal>The offline viewer is much improved with better data
|
||||
scrolling and the ability to view data either stored in the database or the
|
||||
binary storage system. Work has stated on functions which read and use data
|
||||
stored in audio files. This is currently limited to re-calculating and
|
||||
displaying displaying spectrogram data during viewer mode operation. </p>
|
||||
|
||||
<p class=MsoNormal>3. Heading sensor readout</p>
|
||||
|
||||
@ -3721,8 +3746,8 @@ frequency division (i.e. previous versions would convert well from 96kHz to
|
||||
|
||||
<p class=MsoNormal><b>Bug fixes</b></p>
|
||||
|
||||
<p class=MsoNormal>1. Placement of axes on some displays (array manager and
|
||||
depth side panel). Problem in 1.9.01 Beta now fixed. </p>
|
||||
<p class=MsoNormal>1. Placement of axes on some displays (array manager and depth
|
||||
side panel). Problem in 1.9.01 Beta now fixed. </p>
|
||||
|
||||
<p class=MsoNormal>2. Fixed problems of NMEA read out not restarting after a
|
||||
serial drop out. NMEA now restarts correctly. </p>
|
||||
@ -3799,12 +3824,12 @@ re-label those channels 0,1,2,3. </p>
|
||||
numbering scheme. For instance, if you had a configuration which worked in real
|
||||
time using channels 7 and 8 of a sound card, you could not use that same
|
||||
configuration to analyse wav files, which would always read their data as
|
||||
channels 0 and 1. Similarly if you switched sound cards, you may have to reconfigure
|
||||
every detector and several of the displays to handle the changes in channel
|
||||
numbering. </p>
|
||||
channels 0 and 1. Similarly if you switched sound cards, you may have to
|
||||
reconfigure every detector and several of the displays to handle the changes in
|
||||
channel numbering. </p>
|
||||
|
||||
<p class=MsoNormal>I have spent a considerable amount of time trying to work out
|
||||
a better system for handling channel numbering in PAMGUARD and have decided
|
||||
<p class=MsoNormal>I have spent a considerable amount of time trying to work
|
||||
out a better system for handling channel numbering in PAMGUARD and have decided
|
||||
that the only practical thing to do is to force all software channel numbering
|
||||
back to a zero indexed system. i.e. even if you read out hardware channels
|
||||
3,4,5 and 6, within PAMGUARD, everywhere apart from the Sound acquisition
|
||||
@ -3997,10 +4022,10 @@ synchronisation.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>Wigner time-frequency plot for the click detector. Clicks are NOT
|
||||
automatically displayed in the Winger window as they are for the waveform and
|
||||
spectrum windows since the Wigner transformation is very time consuming. Clicks
|
||||
will be displayed if you select them with the mouse.</p>
|
||||
</span>Wigner time-frequency plot for the click detector. Clicks are NOT automatically
|
||||
displayed in the Winger window as they are for the waveform and spectrum
|
||||
windows since the Wigner transformation is very time consuming. Clicks will be
|
||||
displayed if you select them with the mouse.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
@ -4392,9 +4417,9 @@ a serial port </p>
|
||||
|
||||
<p class=MsoNormal>New Likelihood detector. </p>
|
||||
|
||||
<p class=MsoNormal>The likelihood detector module is an implementation of a likelihood
|
||||
ratio test with flexible algorithms and configuration to estimate likelihood.
|
||||
It is </p>
|
||||
<p class=MsoNormal>The likelihood detector module is an implementation of a
|
||||
likelihood ratio test with flexible algorithms and configuration to estimate
|
||||
likelihood. It is </p>
|
||||
|
||||
<p class=MsoNormal>suitable for detecting both short duration Odontocete clicks
|
||||
(Sperm, Beaked, etc.) as well as moderate duration Mysticete calls (Humpback,
|
||||
@ -4676,8 +4701,7 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
|
||||
|
||||
<h2>0.5b 31 August 2007 </h2>
|
||||
|
||||
<p class=MsoNormal>Requires Java 6 Update 2
|
||||
(http://java.com/en/download/manual.jsp)</p>
|
||||
<p class=MsoNormal>Requires Java 6 Update 2 (http://java.com/en/download/manual.jsp)</p>
|
||||
|
||||
<p class=MsoNormal>Major new features include:</p>
|
||||
|
||||
@ -4720,8 +4744,8 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
|
||||
<p class=MsoNormal> </p>
|
||||
|
||||
<p class=MsoNormal><a name="_Toc312065304"></a><a name="_Toc312063949"></a><span
|
||||
class=Heading2Char><span style='font-size:13.0pt'>1.0Beta 22 Jan 2008 -
|
||||
Pamguard starts two releases, core and beta release</span></span>, </p>
|
||||
class=Heading2Char><span style='font-size:13.0pt'>1.0Beta 22 Jan 2008 - Pamguard
|
||||
starts two releases, core and beta release</span></span>, </p>
|
||||
|
||||
<p class=MsoNormal>this is the beta release</p>
|
||||
|
||||
@ -4739,8 +4763,8 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>Multi animal click tracking with least squares fit calculation of
|
||||
position on map</p>
|
||||
</span>Multi animal click tracking with least squares fit calculation of position
|
||||
on map</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<groupId>org.pamguard</groupId>
|
||||
<artifactId>Pamguard</artifactId>
|
||||
<name>Pamguard Java12+</name>
|
||||
<version>2.02.07b</version>
|
||||
<version>2.02.07ab</version>
|
||||
<description>Pamguard for Java 12+, using Maven to control dependcies</description>
|
||||
<url>www.pamguard.org</url>
|
||||
<organization>
|
||||
|
328
pom.xml
328
pom.xml
@ -4,7 +4,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.pamguard</groupId>
|
||||
<artifactId>Pamguard</artifactId>
|
||||
<version>2.02.07b</version>
|
||||
<version>2.02.07ab</version>
|
||||
<name>Pamguard Java12+</name>
|
||||
<description>Pamguard for Java 12+, using Maven to control dependcies</description>
|
||||
<url>www.pamguard.org</url>
|
||||
@ -22,8 +22,6 @@
|
||||
|
||||
<build>
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
|
||||
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src</directory>
|
||||
@ -33,23 +31,25 @@
|
||||
</excludes>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
|
||||
<!-- original maven compiler definition - uses the JRE's javac compiler,
|
||||
not the one Eclipse uses <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version>
|
||||
<configuration> <release>13</release> </configuration> -->
|
||||
<!-- original maven compiler definition - uses the JRE's javac compiler, not the one Eclipse uses
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<release>13</release>
|
||||
</configuration>
|
||||
-->
|
||||
|
||||
<!-- attempt to use the Eclipse JDT compiler, so that the errors match
|
||||
when building https://stackoverflow.com/questions/38070326/java-generics-compiler-error-not-shown-in-eclipse
|
||||
<!-- attempt to use the Eclipse JDT compiler, so that the errors match when building
|
||||
https://stackoverflow.com/questions/38070326/java-generics-compiler-error-not-shown-in-eclipse
|
||||
https://wiki.eclipse.org/JDT/FAQ#Can_I_use_JDT_outside_Eclipse_to_compile_Java_code.3F
|
||||
https://wiki.eclipse.org/Tycho/FAQ#Can_I_use_the_Tycho_compiler_support_in_non-OSGi_projects.2C_too.3F -->
|
||||
https://wiki.eclipse.org/Tycho/FAQ#Can_I_use_the_Tycho_compiler_support_in_non-OSGi_projects.2C_too.3F
|
||||
-->
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.11.0</version>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
|
||||
<!-- set compiler to use Java version 11 API https://docs.oracle.com/javase/9/tools/javac.htm#JSWOR627 -->
|
||||
@ -83,12 +83,11 @@
|
||||
</plugin>
|
||||
|
||||
<!-- Maven Shade plugin - for creating the uberjar / fatjar -->
|
||||
<!-- see http://maven.apache.org/plugins/maven-shade-plugin/index.html
|
||||
for details -->
|
||||
<!-- see http://maven.apache.org/plugins/maven-shade-plugin/index.html for details -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.4.1</version>
|
||||
<version>3.2.1</version>
|
||||
<configuration>
|
||||
<transformers>
|
||||
<transformer
|
||||
@ -103,23 +102,20 @@
|
||||
</goals>
|
||||
<configuration>
|
||||
<transformers>
|
||||
<transformer
|
||||
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<manifestEntries>
|
||||
<Main-Class>pamguard.Pamguard</Main-Class>
|
||||
<Class-Path>.</Class-Path> <!-- this is from the orig ant build file -->
|
||||
<SplashScreen-Image>Resources/pgBlankSplash.png</SplashScreen-Image> <!-- this is from the orig ant build file -->
|
||||
</manifestEntries>
|
||||
</transformer>
|
||||
<transformer
|
||||
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
|
||||
</transformers>
|
||||
<filters>
|
||||
<filter>
|
||||
<artifact>*:*</artifact>
|
||||
<excludes>
|
||||
<exclude>META-INF/*.SF</exclude> <!-- get rid of manifests from library jars - also done in orig ant build
|
||||
file -->
|
||||
<exclude>META-INF/*.SF</exclude> <!-- get rid of manifests from library jars - also done in orig ant build file -->
|
||||
<exclude>META-INF/*.DSA</exclude>
|
||||
<exclude>META-INF/*.RSA</exclude>
|
||||
</excludes>
|
||||
@ -138,12 +134,11 @@
|
||||
<version>0.5.1</version>
|
||||
</plugin>
|
||||
|
||||
<!-- The Maven dependency plugin, which can copy all dependencies into
|
||||
a temp folder for jdeps analysis -->
|
||||
<!-- The Maven dependency plugin, which can copy all dependencies into a temp folder for jdeps analysis -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>3.5.0</version>
|
||||
<version>3.1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-dependencies</id>
|
||||
@ -159,42 +154,35 @@
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
<!-- this deletes all the dependencies in the local repository and downloads
|
||||
them again. Run a Maven > Update after doing this in order to properly reset
|
||||
the dependencies. Also, you will need to add the 3 jar files (x3, JasioHost
|
||||
and jave) back into the local repository after running this command -->
|
||||
<!-- this deletes all the dependencies in the local repository and downloads them again.
|
||||
Run a Maven > Update after doing this in order to properly reset the dependencies. Also, you
|
||||
will need to add the 3 jar files (x3, JasioHost and jave) back into the local repository after
|
||||
running this command -->
|
||||
|
||||
<!-- I'm not sure why, but every time I try to run the shade:shade build
|
||||
to create a fatjar it first runs this, which deletes all of the dependencies
|
||||
and completely fails. I think it has something to do with the lifecycle mapping,
|
||||
but that's beyond my Maven abilities right now. I can't even remember why
|
||||
I added this in the first place, so I'm going to comment it out <execution>
|
||||
<id>purge-local-dependencies</id> <phase>process-sources</phase> <goals>
|
||||
<goal>purge-local-repository</goal> </goals> <configuration> </configuration>
|
||||
</execution> -->
|
||||
<!-- I'm not sure why, but every time I try to run the shade:shade build to create a
|
||||
fatjar it first runs this, which deletes all of the dependencies and completely fails.
|
||||
I think it has something to do with the lifecycle mapping, but that's beyond my Maven
|
||||
abilities right now.
|
||||
I can't even remember why I added this in the first place, so I'm going to comment
|
||||
it out
|
||||
<execution>
|
||||
<id>purge-local-dependencies</id>
|
||||
<phase>process-sources</phase>
|
||||
<goals>
|
||||
<goal>purge-local-repository</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
</configuration>
|
||||
</execution>
|
||||
-->
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- Allows Maven to run JUnit tests -->
|
||||
<!-- Note that for some reason surefire 3.0.0 does not seem to work.
|
||||
It fails to find or run any of the unit tests - no idea why. -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.0</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.22.0</version>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings
|
||||
only. It has no influence on the Maven build itself. -->
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
@ -245,9 +233,8 @@
|
||||
<!-- ************************* Extra Repositories ************************************* -->
|
||||
<repositories>
|
||||
|
||||
<!-- Project repo to hold the custom jar files that are not available in
|
||||
Maven. Do this so that we don't have to do the extra step of manually installing
|
||||
jar files in the local repo -->
|
||||
<!-- Project repo to hold the custom jar files that are not available in Maven. Do
|
||||
this so that we don't have to do the extra step of manually installing jar files in the local repo -->
|
||||
<repository>
|
||||
<id>repo</id>
|
||||
<releases>
|
||||
@ -261,19 +248,21 @@
|
||||
</repository>
|
||||
|
||||
<!-- Repo for Jamie's code -->
|
||||
<!-- IMPORTANT: SOMEHOW THIS REPO INTERFERES WITH THE JAVAFX DEPENDENCIES.
|
||||
Don't understand how, but it does. If Maven is not downloading the JavaFX
|
||||
dependencies and is instead throwing errors, try commenting out this repository.
|
||||
Let Maven download the JavaFX files, and then uncomment this repo again.
|
||||
<!-- IMPORTANT: SOMEHOW THIS REPO INTERFERES WITH THE
|
||||
JAVAFX DEPENDENCIES. Don't understand how, but it
|
||||
does. If Maven is not downloading the JavaFX dependencies
|
||||
and is instead throwing errors, try commenting out this
|
||||
repository. Let Maven download the JavaFX files, and
|
||||
then uncomment this repo again.
|
||||
Same thing seems to be occurring if I try to update the postgresql library. -->
|
||||
<!-- <repository> -->
|
||||
<!-- <snapshots> -->
|
||||
<!-- <enabled>false</enabled> -->
|
||||
<!-- </snapshots> -->
|
||||
<!-- <id>central</id> -->
|
||||
<!-- <name>a0u0ltozdsehx-artifactory-primary-0-releases</name> -->
|
||||
<!-- <url>https://jmachund.jfrog.io/artifactory/jpam2</url> -->
|
||||
<!-- </repository> -->
|
||||
<!-- <repository> -->
|
||||
<!-- <snapshots> -->
|
||||
<!-- <enabled>false</enabled> -->
|
||||
<!-- </snapshots> -->
|
||||
<!-- <id>central</id> -->
|
||||
<!-- <name>a0u0ltozdsehx-artifactory-primary-0-releases</name> -->
|
||||
<!-- <url>https://jmachund.jfrog.io/artifactory/jpam2</url> -->
|
||||
<!-- </repository> -->
|
||||
|
||||
<!-- Repo for netCDF -->
|
||||
<repository>
|
||||
@ -285,8 +274,15 @@
|
||||
<url>https://artifacts.unidata.ucar.edu/repository/unidata-all/</url>
|
||||
</repository>
|
||||
|
||||
<!-- <repository> <snapshots> <enabled>false</enabled> </snapshots> <id>geomajas</id>
|
||||
<name>geomajas</name> <url>http://maven.geomajas.org/</url> </repository> -->
|
||||
<!--
|
||||
<repository>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
<id>geomajas</id>
|
||||
<name>geomajas</name>
|
||||
<url>http://maven.geomajas.org/</url>
|
||||
</repository>-->
|
||||
|
||||
<!-- Repo for Renjin Script Engine -->
|
||||
<repository>
|
||||
@ -318,23 +314,6 @@
|
||||
<!-- ************************* Dependencies ************************************* -->
|
||||
<dependencies>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/junit/junit Testing framework for
|
||||
PAMGuard -->
|
||||
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-engine</artifactId>
|
||||
<version>5.9.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.junit.platform</groupId>
|
||||
<artifactId>junit-platform-runner</artifactId>
|
||||
<version>1.9.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!--jpam project - utilities -->
|
||||
<dependency>
|
||||
<groupId>io.github.macster110</groupId>
|
||||
@ -342,15 +321,15 @@
|
||||
<version>0.0.56</version>
|
||||
</dependency>
|
||||
|
||||
<!--jpam project - Deep learning java library DG has commented this out
|
||||
since there are problems with access to the maven repo on JDJM's Github.
|
||||
For now a jar file is included in the build and we'll go back to Maven when
|
||||
we can ... DG 15 Jan 2022. Repo for jpam code- this used for deep learning
|
||||
[15:17] Jamie MacAulay -->
|
||||
<!--jpam project - Deep learning java library
|
||||
DG has commented this out since there are problems with access to the maven repo
|
||||
on JDJM's Github. For now a jar file is included in the build and we'll go back to
|
||||
Maven when we can ... DG 15 Jan 2022.
|
||||
Repo for jpam code- this used for deep learning [15:17] Jamie MacAulay-->
|
||||
<dependency>
|
||||
<groupId>io.github.macster110</groupId>
|
||||
<artifactId>jdl4pam</artifactId>
|
||||
<version>0.0.96</version>
|
||||
<version>0.0.94</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/gov.nist.math/jama -->
|
||||
@ -361,11 +340,12 @@
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-controls -->
|
||||
<!-- IMPORTANT - IF MAVEN IS NOT DOWNLOADING THE JAVAFX FILES AND INSTEAD
|
||||
THROWING AN ERROR, IT MIGHT BE BECAUSE THERE IS AN INTERFERENCE WITH JAMIE'S
|
||||
REPOSITORY. I'm not sure why this happens, but it does. To fix, comment out
|
||||
the repository (in the <repositories> section above, let Maven download the
|
||||
JavaFX files, and then uncomment the repository again. -->
|
||||
<!-- IMPORTANT - IF MAVEN IS NOT DOWNLOADING THE JAVAFX FILES AND
|
||||
INSTEAD THROWING AN ERROR, IT MIGHT BE BECAUSE THERE IS AN
|
||||
INTERFERENCE WITH JAMIE'S REPOSITORY. I'm not sure why this happens,
|
||||
but it does. To fix, comment out the repository (in
|
||||
the <repositories> section above, let Maven download the JavaFX
|
||||
files, and then uncomment the repository again. -->
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-controls</artifactId>
|
||||
@ -373,11 +353,12 @@
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-swing -->
|
||||
<!-- IMPORTANT - IF MAVEN IS NOT DOWNLOADING THE JAVAFX FILES AND INSTEAD
|
||||
THROWING AN ERROR, IT MIGHT BE BECAUSE THERE IS AN INTERFERENCE WITH JAMIE'S
|
||||
REPOSITORY. I'm not sure why this happens, but it does. To fix, comment out
|
||||
the repository (in the <repositories> section above, let Maven download the
|
||||
JavaFX files, and then uncomment the repository again. -->
|
||||
<!-- IMPORTANT - IF MAVEN IS NOT DOWNLOADING THE JAVAFX FILES AND
|
||||
INSTEAD THROWING AN ERROR, IT MIGHT BE BECAUSE THERE IS AN
|
||||
INTERFERENCE WITH JAMIE'S REPOSITORY. I'm not sure why this happens,
|
||||
but it does. To fix, comment out the repository (in
|
||||
the <repositories> section above, let Maven download the JavaFX
|
||||
files, and then uncomment the repository again. -->
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-swing</artifactId>
|
||||
@ -385,11 +366,12 @@
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-media -->
|
||||
<!-- IMPORTANT - IF MAVEN IS NOT DOWNLOADING THE JAVAFX FILES AND INSTEAD
|
||||
THROWING AN ERROR, IT MIGHT BE BECAUSE THERE IS AN INTERFERENCE WITH JAMIE'S
|
||||
REPOSITORY. I'm not sure why this happens, but it does. To fix, comment out
|
||||
the repository (in the <repositories> section above, let Maven download the
|
||||
JavaFX files, and then uncomment the repository again. -->
|
||||
<!-- IMPORTANT - IF MAVEN IS NOT DOWNLOADING THE JAVAFX FILES AND
|
||||
INSTEAD THROWING AN ERROR, IT MIGHT BE BECAUSE THERE IS AN
|
||||
INTERFERENCE WITH JAMIE'S REPOSITORY. I'm not sure why this happens,
|
||||
but it does. To fix, comment out the repository (in
|
||||
the <repositories> section above, let Maven download the JavaFX
|
||||
files, and then uncomment the repository again. -->
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-media</artifactId>
|
||||
@ -397,18 +379,19 @@
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-web -->
|
||||
<!-- IMPORTANT - IF MAVEN IS NOT DOWNLOADING THE JAVAFX FILES AND INSTEAD
|
||||
THROWING AN ERROR, IT MIGHT BE BECAUSE THERE IS AN INTERFERENCE WITH JAMIE'S
|
||||
REPOSITORY. I'm not sure why this happens, but it does. To fix, comment out
|
||||
the repository (in the <repositories> section above, let Maven download the
|
||||
JavaFX files, and then uncomment the repository again. -->
|
||||
<!-- IMPORTANT - IF MAVEN IS NOT DOWNLOADING THE JAVAFX FILES AND
|
||||
INSTEAD THROWING AN ERROR, IT MIGHT BE BECAUSE THERE IS AN
|
||||
INTERFERENCE WITH JAMIE'S REPOSITORY. I'm not sure why this happens,
|
||||
but it does. To fix, comment out the repository (in
|
||||
the <repositories> section above, let Maven download the JavaFX
|
||||
files, and then uncomment the repository again. -->
|
||||
<dependency>
|
||||
<groupId>org.openjfx</groupId>
|
||||
<artifactId>javafx-web</artifactId>
|
||||
<version>${javafx.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Decorates JavaFX components -->
|
||||
<!-- Decorates JavaFX components-->
|
||||
<dependency>
|
||||
<groupId>net.synedra</groupId>
|
||||
<artifactId>validatorfx</artifactId>
|
||||
@ -494,8 +477,8 @@
|
||||
</dependency>
|
||||
|
||||
<!-- https://search.maven.org/artifact/org.kordamp.ikonli/ikonli-javafx/12.2.0/jar -->
|
||||
<!-- Icon symbol pack to replace FontAwesome. This is the core library,
|
||||
and the actual symbol packs need to be added separately (see below) -->
|
||||
<!-- Icon symbol pack to replace FontAwesome. This is the core library, and the
|
||||
actual symbol packs need to be added separately (see below) -->
|
||||
<dependency>
|
||||
<groupId>org.kordamp.ikonli</groupId>
|
||||
<artifactId>ikonli-javafx</artifactId>
|
||||
@ -503,8 +486,13 @@
|
||||
</dependency>
|
||||
|
||||
<!-- Ikonli FontAwesome5 font pack https://kordamp.org/ikonli/cheat-sheet-fontawesome5.html -->
|
||||
<!-- <dependency> <groupId>org.kordamp.ikonli</groupId> <artifactId>ikonli-fontawesome5-pack</artifactId>
|
||||
<version>12.2.0</version> </dependency> -->
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>org.kordamp.ikonli</groupId>
|
||||
<artifactId>ikonli-fontawesome5-pack</artifactId>
|
||||
<version>12.2.0</version>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<!-- Ikonli MaterialDesign2 (Latest) font pack https://kordamp.org/ikonli/cheat-sheet-materialdesign2.html -->
|
||||
<dependency>
|
||||
@ -553,11 +541,22 @@
|
||||
</dependency>
|
||||
|
||||
<!-- NOT SURE IF WE NEED THE JAXB LIBRARIES HERE - NO ERRORS WHEN REMOVED
|
||||
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId>
|
||||
<version>2.3.1</version> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId>
|
||||
<artifactId>jaxb-core</artifactId> <version>2.3.0.1</version> </dependency>
|
||||
<dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId>
|
||||
<version>2.3.2</version> </dependency> -->
|
||||
<dependency>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<version>2.3.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.glassfish.jaxb</groupId>
|
||||
<artifactId>jaxb-core</artifactId>
|
||||
<version>2.3.0.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sun.xml.bind</groupId>
|
||||
<artifactId>jaxb-impl</artifactId>
|
||||
<version>2.3.2</version>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.jflac/jflac-codec -->
|
||||
<dependency>
|
||||
@ -637,8 +636,7 @@
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
|
||||
<!-- this is needed so that tensorflow models run properly (used in Deep
|
||||
Learning plugin) -->
|
||||
<!-- this is needed so that tensorflow models run properly (used in Deep Learning plugin) -->
|
||||
<!-- NOTE it is important this is included before edu.ucar.netcdfAll so
|
||||
that this version is used instead of the internal version - exclusions do
|
||||
not seem to work otherwise -->
|
||||
@ -649,8 +647,7 @@
|
||||
</dependency>
|
||||
|
||||
<!-- https://docs.unidata.ucar.edu/netcdf-java/5.2/userguide/using_netcdf_java_artifacts.html -->
|
||||
<!-- exclusions have been added here to fix problem with Deep Learning
|
||||
plugin - see above -->
|
||||
<!-- exclusions have been added here to fix problem with Deep Learning plugin - see above -->
|
||||
<dependency>
|
||||
<groupId>edu.ucar</groupId>
|
||||
<artifactId>netcdfAll</artifactId>
|
||||
@ -691,8 +688,8 @@
|
||||
<version>0.9.2725</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api this one is
|
||||
only needed to get rid of an annoying warning that shows up during startup -->
|
||||
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api
|
||||
this one is only needed to get rid of an annoying warning that shows up during startup -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
@ -701,8 +698,8 @@
|
||||
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop this one is
|
||||
only needed to get rid of an annoying warning that shows up during startup -->
|
||||
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop
|
||||
this one is only needed to get rid of an annoying warning that shows up during startup -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-nop</artifactId>
|
||||
@ -712,18 +709,24 @@
|
||||
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.docx4j/docx4j-JAXB-ReferenceImpl -->
|
||||
<!-- note that we are excluding slf4j-api here, because if we don't then
|
||||
one of the transitive dependencies of docx4j (jcl-over-slf4j) will try to
|
||||
load an older version of slf4j-api, resulting in a weird warning/error that
|
||||
shows up every time that PAMGuard start up -->
|
||||
<!-- DONT BOTHER WITH EXCLUSION, DOESN'T MAKE THE ERROR GO AWAY. Leaving
|
||||
code here just in case the older version does cause a conflict at some point -->
|
||||
<!-- note that we are excluding slf4j-api here, because if we don't then one of the
|
||||
transitive dependencies of docx4j (jcl-over-slf4j) will try to load an older
|
||||
version of slf4j-api, resulting in a weird warning/error that shows up every time that
|
||||
PAMGuard start up -->
|
||||
<!-- DONT BOTHER WITH EXCLUSION, DOESN'T MAKE THE ERROR GO AWAY. Leaving code here
|
||||
just in case the older version does cause a conflict at some point -->
|
||||
<dependency>
|
||||
<groupId>org.docx4j</groupId>
|
||||
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
|
||||
<version>11.1.3</version>
|
||||
<!-- <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId>
|
||||
</exclusion> </exclusions> -->
|
||||
<!--
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
-->
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
|
||||
@ -754,23 +757,37 @@
|
||||
<version>1.5.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Jave2 (https://github.com/a-schild/jave2) - fork of original jave
|
||||
from sauronsoft. A LOT bigger; the win64 files alone are > 60Mb compared
|
||||
to 14Mb originally. Since the old one worked fine, let's stick with it for
|
||||
now and save the space <dependency> <groupId>ws.schild</groupId> <artifactId>jave-core</artifactId>
|
||||
<version>2.7.1</version> </dependency> <dependency> <groupId>ws.schild</groupId>
|
||||
<artifactId>jave-nativebin-win64</artifactId> <version>2.7.1</version> </dependency> -->
|
||||
<!-- Jave2 (https://github.com/a-schild/jave2) - fork of original jave from sauronsoft. A LOT bigger; the win64 files alone are > 60Mb compared
|
||||
to 14Mb originally. Since the old one worked fine, let's stick with it for now and save the space
|
||||
<dependency>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-core</artifactId>
|
||||
<version>2.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-nativebin-win64</artifactId>
|
||||
<version>2.7.1</version>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/it.sauronsoftware/jave DOESN'T
|
||||
WORK - NOT IN THE ICM REPOSITORY ANYMORE. STICK WITH ORIG JAR FILE <dependency>
|
||||
<groupId>it.sauronsoftware</groupId> <artifactId>jave</artifactId> <version>1.0.2</version>
|
||||
</dependency> -->
|
||||
<!-- https://mvnrepository.com/artifact/it.sauronsoftware/jave
|
||||
DOESN'T WORK - NOT IN THE ICM REPOSITORY ANYMORE. STICK WITH ORIG JAR FILE
|
||||
<dependency>
|
||||
<groupId>it.sauronsoftware</groupId>
|
||||
<artifactId>jave</artifactId>
|
||||
<version>1.0.2</version>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<!-- not in Maven repository -->
|
||||
<!-- not in Maven repository
|
||||
you may need to copy files from your downloaded PAMGuard source code, e.g. C:\Users\*yourreposfolder*\source\repos\PAMGuardPAMGuard\repo\pamguard\org\x3\2.2.2 to
|
||||
C:\Users\*yourusername*\.m2\repository\pamguard\org\x3\2.2.2
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>pamguard.org</groupId>
|
||||
<artifactId>x3</artifactId>
|
||||
<version>2.2.0</version>
|
||||
<version>2.2.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/it.sauronsoftware/jave -->
|
||||
@ -788,8 +805,13 @@
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
|
||||
<!-- <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId>
|
||||
<version>2.10.1</version> </dependency> -->
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-xml</artifactId>
|
||||
<version>2.10.1</version>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
|
||||
<dependency>
|
||||
|
4
repo/pamguard/org/x3/2.2.1/_remote.repositories
Normal file
4
repo/pamguard/org/x3/2.2.1/_remote.repositories
Normal file
@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Mon Apr 24 10:32:52 BST 2023
|
||||
x3-2.2.1.jar>=
|
||||
x3-2.2.1.pom>=
|
BIN
repo/pamguard/org/x3/2.2.1/x3-2.2.1.jar
Normal file
BIN
repo/pamguard/org/x3/2.2.1/x3-2.2.1.jar
Normal file
Binary file not shown.
9
repo/pamguard/org/x3/2.2.1/x3-2.2.1.pom
Normal file
9
repo/pamguard/org/x3/2.2.1/x3-2.2.1.pom
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>pamguard.org</groupId>
|
||||
<artifactId>x3</artifactId>
|
||||
<version>2.2.1</version>
|
||||
<description>POM was created from install:install-file</description>
|
||||
</project>
|
4
repo/pamguard/org/x3/2.2.2/_remote.repositories
Normal file
4
repo/pamguard/org/x3/2.2.2/_remote.repositories
Normal file
@ -0,0 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Mon May 08 15:05:07 BST 2023
|
||||
x3-2.2.2.jar>=
|
||||
x3-2.2.2.pom>=
|
15
repo/pamguard/org/x3/2.2.2/m2e-lastUpdated.properties
Normal file
15
repo/pamguard/org/x3/2.2.2/m2e-lastUpdated.properties
Normal file
@ -0,0 +1,15 @@
|
||||
#Sat May 06 19:10:45 BST 2023
|
||||
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|javadoc=1683396645122
|
||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo|javadoc=1683137958887
|
||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo|javadoc=1683137015763
|
||||
talan|https\://nexus.talanlabs.com/content/repositories/releases/|sources=1683368185314
|
||||
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|sources=1683368185314
|
||||
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|sources=1683368185314
|
||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo|sources=1683368185314
|
||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo|sources=1683136978098
|
||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo|sources=1683137602295
|
||||
talan|https\://nexus.talanlabs.com/content/repositories/releases/|javadoc=1683396645122
|
||||
central|https\://repo1.maven.org/maven2|sources=1683368185314
|
||||
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|javadoc=1683396645122
|
||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo|javadoc=1683396645122
|
||||
central|https\://repo1.maven.org/maven2|javadoc=1683396645122
|
16
repo/pamguard/org/x3/2.2.2/x3-2.2.2-javadoc.jar.lastUpdated
Normal file
16
repo/pamguard/org/x3/2.2.2/x3-2.2.2-javadoc.jar.lastUpdated
Normal file
@ -0,0 +1,16 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Sat May 06 19:10:45 BST 2023
|
||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1683137015553
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
|
||||
https\://repo1.maven.org/maven2/.error=
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1683137958884
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo/.lastUpdated=1683396645119
|
||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo/.error=
|
||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1683137015146
|
||||
https\://repo1.maven.org/maven2/.lastUpdated=1683137015762
|
||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.2.2 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.2.2/x3-2.2.2-javadoc.jar. Error code 401, Unauthorized
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.lastUpdated=1683137014154
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.error=
|
||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1683137015343
|
16
repo/pamguard/org/x3/2.2.2/x3-2.2.2-sources.jar.lastUpdated
Normal file
16
repo/pamguard/org/x3/2.2.2/x3-2.2.2-sources.jar.lastUpdated
Normal file
@ -0,0 +1,16 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Sat May 06 11:16:25 BST 2023
|
||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1683136977699
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
|
||||
https\://repo1.maven.org/maven2/.error=
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1683137602291
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo/.lastUpdated=1683368185312
|
||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo/.error=
|
||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1683136976818
|
||||
https\://repo1.maven.org/maven2/.lastUpdated=1683136978096
|
||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.2.2 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.2.2/x3-2.2.2-sources.jar. Error code 401, Unauthorized
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.lastUpdated=1683136975590
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.error=
|
||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1683136977227
|
BIN
repo/pamguard/org/x3/2.2.2/x3-2.2.2.jar
Normal file
BIN
repo/pamguard/org/x3/2.2.2/x3-2.2.2.jar
Normal file
Binary file not shown.
9
repo/pamguard/org/x3/2.2.2/x3-2.2.2.pom
Normal file
9
repo/pamguard/org/x3/2.2.2/x3-2.2.2.pom
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>pamguard.org</groupId>
|
||||
<artifactId>x3</artifactId>
|
||||
<version>2.2.2</version>
|
||||
<description>POM was created from install:install-file</description>
|
||||
</project>
|
12
repo/pamguard/org/x3/2.2.2/x3-2.2.2.pom.lastUpdated
Normal file
12
repo/pamguard/org/x3/2.2.2/x3-2.2.2.pom.lastUpdated
Normal file
@ -0,0 +1,12 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Thu May 04 11:43:09 BST 2023
|
||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1683196988926
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
|
||||
https\://repo1.maven.org/maven2/.error=
|
||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.lastUpdated=1683196987083
|
||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1683196988663
|
||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1683196988452
|
||||
https\://repo1.maven.org/maven2/.lastUpdated=1683196989198
|
||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:pom\:2.2.2 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.2.2/x3-2.2.2.pom. Error code 401, Unauthorized
|
@ -62,6 +62,8 @@ import Acquisition.sud.SUDNotificationManager;
|
||||
import Array.ArrayManager;
|
||||
import Array.PamArray;
|
||||
import Array.Preamplifier;
|
||||
import PamController.DataInputStore;
|
||||
import PamController.InputStoreInfo;
|
||||
import PamController.OfflineFileDataStore;
|
||||
import PamController.PamControlledUnit;
|
||||
import PamController.PamControlledUnitGUI;
|
||||
@ -71,6 +73,8 @@ import PamController.PamControllerInterface;
|
||||
import PamController.PamGUIManager;
|
||||
import PamController.PamSettingManager;
|
||||
import PamController.PamSettings;
|
||||
import PamController.RawInputControlledUnit;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamModel.PamModel;
|
||||
import PamModel.SMRUEnable;
|
||||
import PamUtils.FrequencyFormat;
|
||||
@ -100,7 +104,7 @@ import PamguardMVC.dataOffline.OfflineDataLoadInfo;
|
||||
* @see Acquisition.DaqSystem
|
||||
*
|
||||
*/
|
||||
public class AcquisitionControl extends PamControlledUnit implements PamSettings, OfflineFileDataStore {
|
||||
public class AcquisitionControl extends RawInputControlledUnit implements PamSettings, OfflineFileDataStore, DataInputStore {
|
||||
|
||||
protected ArrayList<DaqSystem> systemList;
|
||||
|
||||
@ -849,4 +853,39 @@ public class AcquisitionControl extends PamControlledUnit implements PamSettings
|
||||
return sudNotificationManager;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getRawInputType() {
|
||||
DaqSystem system = acquisitionProcess.getRunningSystem();
|
||||
if (system == null) {
|
||||
return RAW_INPUT_UNKNOWN;
|
||||
}
|
||||
else {
|
||||
return system.isRealTime() ? RAW_INPUT_REALTIME : RAW_INPUT_FILEARCHIVE;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public InputStoreInfo getStoreInfo(boolean detail) {
|
||||
return getDaqProcess().getStoreInfo(detail);
|
||||
}
|
||||
@Override
|
||||
public boolean setAnalysisStartTime(long startTime) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,7 +1,9 @@
|
||||
package Acquisition;
|
||||
|
||||
import java.awt.Window;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@ -19,7 +21,13 @@ import Filters.FilterBand;
|
||||
import Filters.FilterParams;
|
||||
import Filters.FilterType;
|
||||
import Filters.IirfFilter;
|
||||
import PamController.DataInputStore;
|
||||
import PamController.InputStoreInfo;
|
||||
import PamController.OfflineDataStore;
|
||||
import PamController.PamControlledUnit;
|
||||
import PamController.PamController;
|
||||
import PamController.fileprocessing.ReprocessManager;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamController.status.BaseProcessCheck;
|
||||
import PamController.status.ProcessCheck;
|
||||
import PamDetection.RawDataUnit;
|
||||
@ -36,7 +44,10 @@ import PamguardMVC.PamProcess;
|
||||
import PamguardMVC.PamRawDataBlock;
|
||||
import PamguardMVC.RequestCancellationObject;
|
||||
import PamguardMVC.dataOffline.OfflineDataLoadInfo;
|
||||
import dataGram.DatagramManager;
|
||||
import dataMap.OfflineDataMapPoint;
|
||||
import pamScrollSystem.AbstractScrollManager;
|
||||
import pamScrollSystem.ViewLoadObserver;
|
||||
|
||||
/**
|
||||
* Data acquisition process for all types of input device.
|
||||
@ -54,7 +65,7 @@ import pamScrollSystem.AbstractScrollManager;
|
||||
* @see PamguardMVC.PamDataUnit
|
||||
*
|
||||
*/
|
||||
public class AcquisitionProcess extends PamProcess {
|
||||
public class AcquisitionProcess extends PamProcess implements DataInputStore {
|
||||
|
||||
public static final int LASTDATA = 2; // don't use zero since need to see if no notification has been received.
|
||||
|
||||
@ -524,11 +535,11 @@ public class AcquisitionProcess extends PamProcess {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
systemPrepared = runningSystem.prepareSystem(acquisitionControl);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setSampleRate(float sampleRate, boolean notify) {
|
||||
acquisitionControl.acquisitionParameters.sampleRate = sampleRate;
|
||||
@ -1224,5 +1235,27 @@ public class AcquisitionProcess extends PamProcess {
|
||||
return daqStatusDataBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputStoreInfo getStoreInfo(boolean detail) {
|
||||
if (runningSystem instanceof DataInputStore) {
|
||||
return ((DataInputStore) runningSystem).getStoreInfo(detail);
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setAnalysisStartTime(long startTime) {
|
||||
if (runningSystem instanceof DataInputStore) {
|
||||
return ((DataInputStore) runningSystem).setAnalysisStartTime(startTime);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -558,7 +558,10 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
||||
// if (fileInputParameters.recentFiles == null) return false;
|
||||
// if (fileInputParameters.recentFiles.size() < 1) return false;
|
||||
// String fileName = fileInputParameters.recentFiles.get(0);
|
||||
return runFileAnalysis();
|
||||
if (runFileAnalysis() == false) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public File getCurrentFile() {
|
||||
@ -737,6 +740,8 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
||||
@Override
|
||||
public boolean startSystem(AcquisitionControl daqControl) {
|
||||
|
||||
|
||||
|
||||
if (audioStream == null) return false;
|
||||
|
||||
dontStop = true;
|
||||
@ -1146,6 +1151,7 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
||||
protected void fileListComplete() {
|
||||
if (GlobalArguments.getParam(PamController.AUTOEXIT) != null) {
|
||||
System.out.println("All sound files processed, PAMGuard can close on " + PamController.AUTOEXIT);
|
||||
PamController.getInstance().setPamStatus(PamController.PAM_COMPLETE);
|
||||
PamController.getInstance().batchProcessingComplete();
|
||||
}
|
||||
}
|
||||
|
@ -33,6 +33,8 @@ import pamguard.GlobalArguments;
|
||||
import Acquisition.pamAudio.PamAudioFileManager;
|
||||
import Acquisition.pamAudio.PamAudioFileFilter;
|
||||
import Acquisition.pamAudio.PamAudioSystem;
|
||||
import PamController.DataInputStore;
|
||||
import PamController.InputStoreInfo;
|
||||
import PamController.PamControlledUnitSettings;
|
||||
import PamController.PamController;
|
||||
import PamController.PamSettings;
|
||||
@ -48,6 +50,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
|
||||
@ -57,7 +60,7 @@ import PamView.panel.PamProgressBar;
|
||||
* @author Doug Gillespie
|
||||
*
|
||||
*/
|
||||
public class FolderInputSystem extends FileInputSystem implements PamSettings{
|
||||
public class FolderInputSystem extends FileInputSystem implements PamSettings, DataInputStore {
|
||||
|
||||
// Timer timer;
|
||||
public static final String daqType = "File Folder Acquisition System";
|
||||
@ -116,7 +119,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 +129,24 @@ 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);
|
||||
// need to immediately make the allfiles list since it's about to get used by the reprocess manager
|
||||
// need to worry about how to wait for this since it's starting in a different thread.
|
||||
//makeSelFileList();
|
||||
return selList;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -290,15 +299,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() {
|
||||
|
||||
String[] selection = checkComandLineFolder();
|
||||
|
||||
if (selection == null) {
|
||||
if (fileInputParameters.recentFiles == null || fileInputParameters.recentFiles.size() < 1) {
|
||||
return 0;
|
||||
}
|
||||
String[] selection = folderInputParameters.getSelectedFiles();
|
||||
selection = folderInputParameters.getSelectedFiles();
|
||||
}
|
||||
if (selection.length > 0) {
|
||||
System.out.println("FolderInputSystem.makeSelFileList(): Searching for sound files in " + selection[0]);
|
||||
}
|
||||
return makeSelFileList(selection);
|
||||
}
|
||||
|
||||
@ -827,5 +845,93 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings{
|
||||
folderInputPane.setParams(folderInputParameters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputStoreInfo getStoreInfo(boolean detail) {
|
||||
if (allFiles == null || allFiles.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
WavFileType firstFile = allFiles.get(0);
|
||||
long firstFileStart = getFileStartTime(firstFile.getAbsoluteFile());
|
||||
WavFileType lastFile = allFiles.get(allFiles.size()-1);
|
||||
long lastFileStart = getFileStartTime(lastFile.getAbsoluteFile());
|
||||
lastFile.getAudioInfo();
|
||||
long lastFileEnd = (long) (lastFileStart + lastFile.getDurationInSeconds()*1000.);
|
||||
InputStoreInfo storeInfo = new InputStoreInfo(acquisitionControl, allFiles.size(), firstFileStart, lastFileStart, lastFileEnd);
|
||||
if (detail) {
|
||||
long[] allFileStarts = new long[allFiles.size()];
|
||||
for (int i = 0; i < allFiles.size(); i++) {
|
||||
allFileStarts[i] = getFileStartTime(allFiles.get(i).getAbsoluteFile());
|
||||
if (allFileStarts[i] < firstFileStart) {
|
||||
// System.out.printf("Swap first file from %s to %s\n", firstFile.getName(), allFiles.get(i).getName());
|
||||
firstFile = allFiles.get(i);
|
||||
firstFileStart = allFileStarts[i];
|
||||
}
|
||||
if (allFileStarts[i] > lastFileEnd) {
|
||||
// System.out.printf("Swap last file from %s to %s\n", lastFile.getName(), allFiles.get(i).getName());
|
||||
lastFile = allFiles.get(i);
|
||||
lastFileEnd = allFileStarts[i] + (long) (lastFile.getDurationInSeconds()*1000.);
|
||||
}
|
||||
}
|
||||
storeInfo.setFirstFileStart(firstFileStart); // just incase changed.
|
||||
storeInfo.setLastFileEnd(lastFileEnd); // just incase changed
|
||||
storeInfo.setFileStartTimes(allFileStarts);
|
||||
}
|
||||
return storeInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setAnalysisStartTime(long startTime) {
|
||||
/**
|
||||
* Called from the reprocess manager just before PAMGuard starts with a time
|
||||
* we want to process from. This should be equal to the start of one of the files
|
||||
* so all we have to do (in principle) is to set the currentfile to that index and
|
||||
* 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);
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -284,9 +284,12 @@ 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) {
|
||||
return 0;
|
||||
}
|
||||
return d.getTime();
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,7 @@ import Acquisition.pamAudio.PamAudioFileManager;
|
||||
import Acquisition.pamAudio.PamAudioFileLoader;
|
||||
import Acquisition.pamAudio.PamAudioFileFilter;
|
||||
import PamController.OfflineFileDataStore;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamguardMVC.PamDataBlock;
|
||||
import PamguardMVC.dataOffline.OfflineDataLoadInfo;
|
||||
import dataMap.OfflineDataMap;
|
||||
@ -188,5 +189,4 @@ public class OfflineWavFileServer extends OfflineFileServer<FileDataMapPoint> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
31
src/PamController/DataInputStore.java
Normal file
31
src/PamController/DataInputStore.java
Normal file
@ -0,0 +1,31 @@
|
||||
package PamController;
|
||||
|
||||
/**
|
||||
* Functions for a data input store. There is a fair bit of overlap for this and
|
||||
* OfflineDataStore, but the OfflineDataStore is really about stuff that can provide
|
||||
* data offline which needs mapping. This is specifically about data which will be input
|
||||
* during 'normal operation, i.e. sound acquisition and Tritech sonar data
|
||||
* (a plugin, but coming down the tracks at us all).
|
||||
* @author dg50
|
||||
* @see OfflineDataStore
|
||||
* @See DataOutputStore
|
||||
*
|
||||
*/
|
||||
public interface DataInputStore {
|
||||
|
||||
/**
|
||||
* Get information about the input store (e.g. start times of all files).
|
||||
* @param detail
|
||||
* @return information about data input.
|
||||
*/
|
||||
public InputStoreInfo getStoreInfo(boolean detail);
|
||||
|
||||
/**
|
||||
* Set an analysis start time. This might get called just before
|
||||
* processing starts, in which case
|
||||
* @param startTime
|
||||
* @return ok if no problems.
|
||||
*/
|
||||
public boolean setAnalysisStartTime(long startTime);
|
||||
|
||||
}
|
32
src/PamController/DataOutputStore.java
Normal file
32
src/PamController/DataOutputStore.java
Normal file
@ -0,0 +1,32 @@
|
||||
package PamController;
|
||||
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
|
||||
/**
|
||||
* Functions for a data output store. there is a fair bit of overlap for this and
|
||||
* OfflineDataStore, but the OfflineDataStore is really about stuff that can provide
|
||||
* data offline which needs mapping. This is specifically about data which will be stored
|
||||
* during 'normal operation, i.e. binary and database modules.
|
||||
* @author dg50
|
||||
* @see OfflineDataStore
|
||||
* @See DataInputStore
|
||||
*
|
||||
*/
|
||||
public interface DataOutputStore extends OfflineDataStore {
|
||||
|
||||
/**
|
||||
* Get the store status, i.e. does it exist, does it contain data, if so over what date range,
|
||||
* etc.
|
||||
* @param getDetail
|
||||
* @return
|
||||
*/
|
||||
public StoreStatus getStoreStatus(boolean getDetail);
|
||||
|
||||
/**
|
||||
* Delete all data from a given time, in all data streams.
|
||||
* @param timeMillis time to delete from (anything >= this time)
|
||||
* @return true if it seems to have worked OK. False if any errors (e.g. database or file system error).
|
||||
*/
|
||||
public boolean deleteDataFrom(long timeMillis);
|
||||
|
||||
}
|
102
src/PamController/InputStoreInfo.java
Normal file
102
src/PamController/InputStoreInfo.java
Normal file
@ -0,0 +1,102 @@
|
||||
package PamController;
|
||||
|
||||
import PamUtils.PamCalendar;
|
||||
|
||||
public class InputStoreInfo {
|
||||
|
||||
private DataInputStore dataInputStore;
|
||||
private int nFiles;
|
||||
private long firstFileStart, lastFileStart, lastFileEnd;
|
||||
private long[] fileStartTimes;
|
||||
|
||||
public InputStoreInfo(DataInputStore dataInputStore, int nFiles, long firstFileStart, long lastFileStart, long lastFileEnd) {
|
||||
super();
|
||||
this.dataInputStore = dataInputStore;
|
||||
this.nFiles = nFiles;
|
||||
this.firstFileStart = firstFileStart;
|
||||
this.lastFileStart = lastFileStart;
|
||||
this.lastFileEnd = lastFileEnd;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the nFiles
|
||||
*/
|
||||
public int getnFiles() {
|
||||
return nFiles;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the firstFileStart
|
||||
*/
|
||||
public long getFirstFileStart() {
|
||||
return firstFileStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the lastFileStart
|
||||
*/
|
||||
public long getLastFileStart() {
|
||||
return lastFileStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the lastFileEnd
|
||||
*/
|
||||
public long getLastFileEnd() {
|
||||
return lastFileEnd;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%s: %d files. First start %s, last start %s, last end %s", dataInputStore.getClass().getName(), nFiles,
|
||||
PamCalendar.formatDBDateTime(firstFileStart), PamCalendar.formatDBDateTime(lastFileStart),
|
||||
PamCalendar.formatDBDateTime(lastFileEnd));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the dataInputStore
|
||||
*/
|
||||
public DataInputStore getDataInputStore() {
|
||||
return dataInputStore;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the start times of all files in data set.
|
||||
* @param allFileStarts
|
||||
*/
|
||||
public void setFileStartTimes(long[] allFileStarts) {
|
||||
this.fileStartTimes = allFileStarts;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the fileStartTimes
|
||||
*/
|
||||
public long[] getFileStartTimes() {
|
||||
return fileStartTimes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param firstFileStart the firstFileStart to set
|
||||
*/
|
||||
public void setFirstFileStart(long firstFileStart) {
|
||||
this.firstFileStart = firstFileStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param lastFileStart the lastFileStart to set
|
||||
*/
|
||||
public void setLastFileStart(long lastFileStart) {
|
||||
this.lastFileStart = lastFileStart;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param lastFileEnd the lastFileEnd to set
|
||||
*/
|
||||
public void setLastFileEnd(long lastFileEnd) {
|
||||
this.lastFileEnd = lastFileEnd;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -2,6 +2,7 @@ package PamController;
|
||||
|
||||
import java.awt.Window;
|
||||
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import dataGram.DatagramManager;
|
||||
import dataMap.OfflineDataMapPoint;
|
||||
import pamScrollSystem.ViewLoadObserver;
|
||||
@ -52,7 +53,7 @@ public interface OfflineDataStore {
|
||||
|
||||
/**
|
||||
* Moved this function over from binary data store.
|
||||
* Many storage systems may notbe able to do this, but some might !
|
||||
* Many storage systems may not be able to do this, but some might !
|
||||
* @param dataBlock
|
||||
* @param dmp
|
||||
* @return
|
||||
@ -63,4 +64,5 @@ public interface OfflineDataStore {
|
||||
* @return the datagramManager
|
||||
*/
|
||||
public DatagramManager getDatagramManager();
|
||||
|
||||
}
|
||||
|
@ -55,10 +55,11 @@ 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;
|
||||
import PamController.fileprocessing.ReprocessManager;
|
||||
import PamController.masterReference.MasterReferencePoint;
|
||||
import PamController.settings.output.xml.PamguardXMLWriter;
|
||||
import PamController.settings.output.xml.XMLWriterDialog;
|
||||
@ -119,6 +120,7 @@ public class PamController implements PamControllerInterface, PamSettings {
|
||||
public static final int PAM_STALLED = 3;
|
||||
public static final int PAM_INITIALISING = 4;
|
||||
public static final int PAM_STOPPING = 5;
|
||||
public static final int PAM_COMPLETE = 6;
|
||||
|
||||
// status' for RunMode = RUN_PAMVIEW
|
||||
public static final int PAM_LOADINGDATA = 2;
|
||||
@ -256,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);
|
||||
@ -705,7 +707,7 @@ public class PamController implements PamControllerInterface, PamSettings {
|
||||
Platform.exit();
|
||||
|
||||
// terminate the JVM
|
||||
System.exit(0);
|
||||
System.exit(getPamStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1022,6 +1024,24 @@ public class PamController implements PamControllerInterface, PamSettings {
|
||||
return foundUnits;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an Array list of PamControlledUnits of a particular class (exact matches only).
|
||||
* @param unitClass PamControlledUnit class
|
||||
* @return List of current instances of this class.
|
||||
*/
|
||||
public ArrayList<PamControlledUnit> findControlledUnits(Class unitClass, boolean includeSubClasses) {
|
||||
if (includeSubClasses == false) {
|
||||
return findControlledUnits(unitClass);
|
||||
}
|
||||
ArrayList<PamControlledUnit> foundUnits = new ArrayList<>();
|
||||
for (int i = 0; i < getNumControlledUnits(); i++) {
|
||||
if (unitClass.isAssignableFrom(pamControlledUnits.get(i).getClass())) {
|
||||
foundUnits.add(pamControlledUnits.get(i));
|
||||
}
|
||||
}
|
||||
return foundUnits;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a controlled unit exists based on it's name.
|
||||
* @param the controlled unit name e.g. "my crazy click detector", not the default name.
|
||||
@ -1191,6 +1211,23 @@ public class PamController implements PamControllerInterface, PamSettings {
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
* This needs to be called after prepareproces.
|
||||
* Now we do some extra checks on the stores to see if we want to overwite data,
|
||||
* carry on from where we left off, etc.
|
||||
*/
|
||||
if (saveSettings && getRunMode() == RUN_NORMAL) { // only true on a button press or network start.
|
||||
ReprocessManager reprocessManager = new ReprocessManager();
|
||||
boolean goonthen = reprocessManager.checkOutputDataStatus();
|
||||
if (goonthen == false) {
|
||||
System.out.println("Data processing will not start since you've chosen not to overwrite existing output data");
|
||||
pamStop();
|
||||
setPamStatus(PAM_IDLE);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (saveSettings) {
|
||||
saveSettings(PamCalendar.getSessionStartTime());
|
||||
}
|
||||
@ -1277,7 +1314,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) {
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
21
src/PamController/RawInputControlledUnit.java
Normal file
21
src/PamController/RawInputControlledUnit.java
Normal file
@ -0,0 +1,21 @@
|
||||
package PamController;
|
||||
|
||||
public abstract class RawInputControlledUnit extends PamControlledUnit {
|
||||
|
||||
|
||||
public static final int RAW_INPUT_UNKNOWN = 0;
|
||||
public static final int RAW_INPUT_FILEARCHIVE = 1;
|
||||
public static final int RAW_INPUT_REALTIME = 2;
|
||||
|
||||
public RawInputControlledUnit(String unitType, String unitName) {
|
||||
super(unitType, unitName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Type of data input, which can be one of RAW_INPUT_UNKNOWN (0),
|
||||
* RAW_INPUT_FILEARCHIVE (1), or RAW_INPUT_REALTIME (2)
|
||||
* @return
|
||||
*/
|
||||
public abstract int getRawInputType();
|
||||
|
||||
}
|
64
src/PamController/command/BatchCommand.java
Normal file
64
src/PamController/command/BatchCommand.java
Normal file
@ -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;
|
||||
}
|
||||
|
||||
}
|
31
src/PamController/command/BatchStatusCommand.java
Normal file
31
src/PamController/command/BatchStatusCommand.java
Normal file
@ -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();
|
||||
}
|
||||
|
||||
}
|
@ -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);
|
||||
|
||||
}
|
||||
|
@ -10,15 +10,20 @@ import PamController.PamSettingManager;
|
||||
*/
|
||||
public class ExitCommand extends ExtCommand {
|
||||
|
||||
public static final String commandId = "Exit";
|
||||
|
||||
public ExitCommand() {
|
||||
super("Exit", false);
|
||||
super(commandId, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
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();
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ public class HelpCommand extends ExtCommand {
|
||||
out += "\n";
|
||||
}
|
||||
}
|
||||
commandManager.sendData(out);
|
||||
commandManager.sendData(this, out);
|
||||
return getName();
|
||||
}
|
||||
|
||||
|
@ -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 {
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
116
src/PamController/fileprocessing/ReprocessChoiceDialog.java
Normal file
116
src/PamController/fileprocessing/ReprocessChoiceDialog.java
Normal file
@ -0,0 +1,116 @@
|
||||
package PamController.fileprocessing;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.GridBagConstraints;
|
||||
import java.awt.GridBagLayout;
|
||||
import java.awt.Window;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.ButtonGroup;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JRadioButton;
|
||||
import javax.swing.border.TitledBorder;
|
||||
|
||||
import PamUtils.PamCalendar;
|
||||
import PamView.dialog.PamDialog;
|
||||
import PamView.dialog.PamGridBagContraints;
|
||||
import PamView.dialog.warn.WarnOnce;
|
||||
import PamView.panel.PamAlignmentPanel;
|
||||
|
||||
public class ReprocessChoiceDialog extends PamDialog {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private static ReprocessChoiceDialog singleInstance;
|
||||
|
||||
private JRadioButton[] choiceButtons;
|
||||
|
||||
private ReprocessStoreChoice chosenChoice = null;
|
||||
|
||||
private StoreChoiceSummary choiceSummary;
|
||||
|
||||
private ReprocessChoiceDialog(Window parentFrame, StoreChoiceSummary choiceSummary) {
|
||||
super(parentFrame, "Existing Output Data", false);
|
||||
this.choiceSummary = choiceSummary;
|
||||
JPanel mainPanel = new JPanel(new BorderLayout());
|
||||
JPanel infoPanel = new JPanel(new GridBagLayout());
|
||||
infoPanel.setBorder(new TitledBorder("Data Summary"));
|
||||
mainPanel.add(infoPanel, BorderLayout.NORTH);
|
||||
GridBagConstraints c = new PamGridBagContraints();
|
||||
c.gridx = c.gridy = 0;
|
||||
String inStr = String.format("Input data dates: %s to %s", PamCalendar.formatDBDateTime(choiceSummary.getInputStartTime()),
|
||||
PamCalendar.formatDBDateTime(choiceSummary.getInputEndTime()));
|
||||
infoPanel.add(new JLabel(inStr), c);
|
||||
c.gridy++;
|
||||
String outStr = String.format("Output data dates: %s to %s", PamCalendar.formatDBDateTime(choiceSummary.getOutputStartTime()),
|
||||
PamCalendar.formatDBDateTime(choiceSummary.getOutputEndTime()));
|
||||
infoPanel.add(new JLabel(outStr), c);
|
||||
String stateStr;
|
||||
if (choiceSummary.isProcessingComplete()) {
|
||||
stateStr = "Processing appears to be complete";
|
||||
}
|
||||
else {
|
||||
stateStr = "Processing appears to be partially complete";
|
||||
}
|
||||
c.gridy++;
|
||||
infoPanel.add(new JLabel(stateStr), c);
|
||||
|
||||
|
||||
JPanel choicePanel = new PamAlignmentPanel(new GridBagLayout(), BorderLayout.WEST);
|
||||
choicePanel.setBorder(new TitledBorder("Chose what to do"));
|
||||
c = new PamGridBagContraints();
|
||||
mainPanel.add(BorderLayout.SOUTH, choicePanel);
|
||||
List<ReprocessStoreChoice> userChoices = choiceSummary.getChoices();
|
||||
choiceButtons = new JRadioButton[userChoices.size()];
|
||||
ButtonGroup bg = new ButtonGroup();
|
||||
for (int i = 0; i < userChoices.size(); i++) {
|
||||
ReprocessStoreChoice aChoice = userChoices.get(i);
|
||||
choiceButtons[i] = new JRadioButton(aChoice.toString());
|
||||
choiceButtons[i].setToolTipText(aChoice.getToolTip());
|
||||
choicePanel.add(choiceButtons[i], c);
|
||||
c.gridy++;
|
||||
}
|
||||
setDialogComponent(mainPanel);
|
||||
getCancelButton().setVisible(false);
|
||||
}
|
||||
|
||||
public static ReprocessStoreChoice showDialog(Window parentFrame, StoreChoiceSummary choices) {
|
||||
// if (singleInstance == null || singleInstance.getOwner() != parentFrame) {
|
||||
singleInstance = new ReprocessChoiceDialog(parentFrame, choices);
|
||||
// }
|
||||
singleInstance.setVisible(true);
|
||||
return singleInstance.chosenChoice;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getParams() {
|
||||
List<ReprocessStoreChoice> userChoices = choiceSummary.getChoices();
|
||||
for (int i = 0; i < choiceButtons.length; i++) {
|
||||
if (choiceButtons[i].isSelected()) {
|
||||
chosenChoice = userChoices.get(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (chosenChoice == ReprocessStoreChoice.OVERWRITEALL) {
|
||||
String w = "Are you sure you want to delete / overwrite all existing output data ?";
|
||||
int ans = WarnOnce.showWarning("Overwrite existing data", w, WarnOnce.OK_CANCEL_OPTION);
|
||||
if (ans == WarnOnce.CANCEL_OPTION) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return chosenChoice != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancelButtonPressed() {
|
||||
chosenChoice = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restoreDefaultSettings() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
285
src/PamController/fileprocessing/ReprocessManager.java
Normal file
285
src/PamController/fileprocessing/ReprocessManager.java
Normal file
@ -0,0 +1,285 @@
|
||||
package PamController.fileprocessing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import PamController.DataInputStore;
|
||||
import PamController.DataOutputStore;
|
||||
import PamController.InputStoreInfo;
|
||||
import PamController.OfflineDataStore;
|
||||
import PamController.PamControlledUnit;
|
||||
import PamController.PamController;
|
||||
import PamController.PamGUIManager;
|
||||
import PamController.RawInputControlledUnit;
|
||||
import PamUtils.PamCalendar;
|
||||
import PamView.dialog.warn.WarnOnce;
|
||||
import pamguard.GlobalArguments;
|
||||
|
||||
/**
|
||||
* Set of functions to help decide what to do when reprocessing.
|
||||
* These are probably all called from AcquisitionProcess, but it's easier to have them in their own class.
|
||||
* @author dg50
|
||||
*
|
||||
*/
|
||||
public class ReprocessManager {
|
||||
|
||||
/**
|
||||
public ReprocessManager() {
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
/*
|
||||
* run checks on the output data storage system. If data already exist in the output
|
||||
* we may not want to start again.
|
||||
*/
|
||||
public boolean checkOutputDataStatus() {
|
||||
|
||||
StoreChoiceSummary choiceSummary = null;
|
||||
if (isOfflineFiles()) {
|
||||
choiceSummary = checkIOFilesStatus();
|
||||
}
|
||||
else {
|
||||
/*
|
||||
* don't really need to do anything for real time processing since adding
|
||||
* more data to existing stores is normal behaviour.
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
if (choiceSummary == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (choiceSummary.getInputStoreInfo() == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// 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);
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
private boolean setupInputStream(StoreChoiceSummary choiceSummary, ReprocessStoreChoice choice) {
|
||||
// work out the first file index and send it to the appropriate input module.
|
||||
long deleteFrom = getDeleteFromTime(choiceSummary, choice);
|
||||
ArrayList<PamControlledUnit> inputStores = PamController.getInstance().findControlledUnits(DataInputStore.class, true);
|
||||
if (inputStores == null || inputStores.size() == 0) {
|
||||
return false;
|
||||
}
|
||||
InputStoreInfo inputInfo = null;
|
||||
boolean OK = true;
|
||||
for (PamControlledUnit aPCU : inputStores) {
|
||||
DataInputStore inputStore = (DataInputStore) aPCU;
|
||||
OK &= inputStore.setAnalysisStartTime(deleteFrom);
|
||||
// System.out.println("Input store info: " + inputInfo);
|
||||
}
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Just gets on and does it. The user should already have been asked what they
|
||||
* want to do, so don't ask again.
|
||||
* @param choiceSummary
|
||||
* @param choice
|
||||
*/
|
||||
private boolean deleteOldData(StoreChoiceSummary choiceSummary, ReprocessStoreChoice choice) {
|
||||
long deleteFrom = getDeleteFromTime(choiceSummary, choice);
|
||||
// go through the data stores and tell them to delete from that time.
|
||||
if (deleteFrom == Long.MAX_VALUE) {
|
||||
return false;
|
||||
}
|
||||
ArrayList<PamControlledUnit> outputStores = PamController.getInstance().findControlledUnits(DataOutputStore.class, true);
|
||||
boolean partStores = false;
|
||||
boolean ok = true;
|
||||
for (PamControlledUnit aPCU : outputStores) {
|
||||
DataOutputStore offlineStore = (DataOutputStore) aPCU;
|
||||
ok &= offlineStore.deleteDataFrom(deleteFrom);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
private long getDeleteFromTime(StoreChoiceSummary choiceSummary, ReprocessStoreChoice choice) {
|
||||
if (choice == null) {
|
||||
return Long.MAX_VALUE; // I don't think this can happen, but you never know.
|
||||
}
|
||||
Long t = null;
|
||||
switch (choice) {
|
||||
case CONTINUECURRENTFILE:
|
||||
t = choiceSummary.getInputTimeForIndex(choiceSummary.getFileIndexBefore(choiceSummary.getOutputEndTime()));
|
||||
break;
|
||||
case CONTINUENEXTFILE:
|
||||
t = choiceSummary.getInputTimeForIndex(choiceSummary.getFileIndexAfter(choiceSummary.getOutputEndTime()));
|
||||
break;
|
||||
case DONTSSTART: // we should'nt get here with this option.
|
||||
return Long.MAX_VALUE;
|
||||
case OVERWRITEALL:
|
||||
return 0; // delete from start. (
|
||||
case STARTNORMAL: // we should'nt get here with this option.
|
||||
return Long.MAX_VALUE;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
if (t == null) {
|
||||
// shouldn't happen, don't do any deleteing
|
||||
return Long.MAX_VALUE;
|
||||
}
|
||||
else {
|
||||
return t;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check the output of current files and databases and return a flag to PamController saying whether or
|
||||
* not processing should actually start, possibly overwriting, or if we need to not start to avoid overwriting.
|
||||
* @return true if processing should start.
|
||||
*/
|
||||
private StoreChoiceSummary checkIOFilesStatus() {
|
||||
/**
|
||||
* Get information about the input.
|
||||
*
|
||||
*/
|
||||
ArrayList<PamControlledUnit> inputStores = PamController.getInstance().findControlledUnits(DataInputStore.class, true);
|
||||
if (inputStores == null || inputStores.size() == 0) {
|
||||
return new StoreChoiceSummary(null, ReprocessStoreChoice.STARTNORMAL);
|
||||
}
|
||||
InputStoreInfo inputInfo = null;
|
||||
for (PamControlledUnit aPCU : inputStores) {
|
||||
DataInputStore inputStore = (DataInputStore) aPCU;
|
||||
inputInfo = inputStore.getStoreInfo(true);
|
||||
// System.out.println("Input store info: " + inputInfo);
|
||||
}
|
||||
StoreChoiceSummary choiceSummary = new StoreChoiceSummary(inputInfo);
|
||||
|
||||
if (inputInfo == null || inputInfo.getFileStartTimes() == null) {
|
||||
choiceSummary.addChoice(ReprocessStoreChoice.STARTNORMAL);
|
||||
return choiceSummary;
|
||||
}
|
||||
|
||||
ArrayList<PamControlledUnit> 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;
|
||||
}
|
||||
if (status.getStoreStatus() == StoreStatus.STATUS_HASDATA) {
|
||||
status = offlineStore.getStoreStatus(true); // get more detail.
|
||||
partStores = true;
|
||||
System.out.printf("Storage %s already contains some data\n", offlineStore.getDataSourceName());
|
||||
choiceSummary.testOutputEndTime(status.getLastDataTime());
|
||||
choiceSummary.testOutputStartTime(status.getFirstDataTime());
|
||||
}
|
||||
}
|
||||
|
||||
if (partStores == false) {
|
||||
// choiceSummary.addChoice(ReprocessStoreChoice.STARTNORMAL);
|
||||
return null; // no part full stores, so can start without questions
|
||||
}
|
||||
if (choiceSummary.getInputStartTime() >= choiceSummary.getOutputEndTime()) {
|
||||
/*
|
||||
* looks like it's new data that starts after the end of the current store,
|
||||
* so there is no need to do anything.
|
||||
*/
|
||||
choiceSummary.addChoice(ReprocessStoreChoice.STARTNORMAL);
|
||||
return choiceSummary;
|
||||
}
|
||||
/*
|
||||
* If we land here, it looks like we have overlapping data. so need to make a decision
|
||||
* First, check to see if processing has actually completed which will be the case if
|
||||
* the data time and the end of the files are the same.
|
||||
*/
|
||||
choiceSummary.addChoice(ReprocessStoreChoice.DONTSSTART);
|
||||
choiceSummary.addChoice(ReprocessStoreChoice.OVERWRITEALL);
|
||||
if (choiceSummary.isProcessingComplete() == false) {
|
||||
choiceSummary.addChoice(ReprocessStoreChoice.CONTINUECURRENTFILE);
|
||||
choiceSummary.addChoice(ReprocessStoreChoice.CONTINUENEXTFILE);
|
||||
}
|
||||
|
||||
return choiceSummary;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Either opens a dialog to ask the user, or uses a choice entered into the command line for nogui mode.
|
||||
* Decide what to do with stores that already have data. Can return continue from end or overwrite
|
||||
* in which case stores will be deleted and we'll start again. The chosen action will need to be
|
||||
* communicated to the various inputs.
|
||||
* @param choices
|
||||
*/
|
||||
private ReprocessStoreChoice chosePartStoreAction(StoreChoiceSummary choices) {
|
||||
/**
|
||||
* Do we really have to deal with multiple inputs ? Can I envisage a situation where there is
|
||||
* ever more than one input going at any one time ? not really, but should I add code
|
||||
* to make sure that there really can be only one ? i.e. two daq's would be allowed for real
|
||||
* time processing, but only one for offline ? could do all I guess by looking at sources of
|
||||
* all output data blocks and doing it on a case by case basis. All we have to do here though
|
||||
* is to get an answer about what to do.
|
||||
*/
|
||||
// see if we've got a global parameter passed in as an argument
|
||||
String arg = GlobalArguments.getParam(ReprocessStoreChoice.paramName);
|
||||
if (arg != null) {
|
||||
ReprocessStoreChoice choice = ReprocessStoreChoice.valueOf(arg);
|
||||
if (choice == null) {
|
||||
String warn = String.format("Reprocessing storage input parameter %s value \"%s\" is not a recognised value", ReprocessStoreChoice.paramName, arg);
|
||||
WarnOnce.showWarning("Invalid input parameter", warn, WarnOnce.WARNING_MESSAGE);
|
||||
}
|
||||
if (choice == ReprocessStoreChoice.CONTINUECURRENTFILE || choice == ReprocessStoreChoice.CONTINUENEXTFILE) {
|
||||
if (choices.isProcessingComplete()) {
|
||||
return ReprocessStoreChoice.DONTSSTART;
|
||||
}
|
||||
}
|
||||
return choice;
|
||||
}
|
||||
if (PamGUIManager.getGUIType() == PamGUIManager.NOGUI) {
|
||||
System.out.println("In Nogui mode you should set a choice as to how to handle existing storage overwrites. Using default of overwriting everything");
|
||||
return ReprocessStoreChoice.OVERWRITEALL;
|
||||
}
|
||||
|
||||
// otherwise we'll need to show a dialog to let the user decide what to do
|
||||
ReprocessStoreChoice choice = ReprocessChoiceDialog.showDialog(PamController.getMainFrame(), choices);
|
||||
|
||||
return choice;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if we seem to be reprocessing offline files.
|
||||
* Note that this might be the Tritech data as well as the sound acquisition so
|
||||
* have added an abstract intermediate class on the controlled units so we can check them all.
|
||||
* @return
|
||||
*/
|
||||
public boolean isOfflineFiles() {
|
||||
ArrayList<PamControlledUnit> sources = PamController.getInstance().findControlledUnits(RawInputControlledUnit.class, true);
|
||||
if (sources == null) {
|
||||
return false;
|
||||
}
|
||||
for (PamControlledUnit pcu : sources) {
|
||||
RawInputControlledUnit rawPCU = (RawInputControlledUnit) pcu;
|
||||
if (rawPCU.getRawInputType() == RawInputControlledUnit.RAW_INPUT_FILEARCHIVE) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
53
src/PamController/fileprocessing/ReprocessStoreChoice.java
Normal file
53
src/PamController/fileprocessing/ReprocessStoreChoice.java
Normal file
@ -0,0 +1,53 @@
|
||||
package PamController.fileprocessing;
|
||||
|
||||
/**
|
||||
* Choices on what to do when re-processing data and finding that output data already exist.
|
||||
* @author dg50
|
||||
*
|
||||
*/
|
||||
public enum ReprocessStoreChoice {
|
||||
|
||||
|
||||
STARTNORMAL, CONTINUECURRENTFILE, CONTINUENEXTFILE, OVERWRITEALL, DONTSSTART;
|
||||
|
||||
public static final String paramName = "-reprocessoption";
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
switch (this) {
|
||||
case STARTNORMAL:
|
||||
return "Start normally. Note risk of overwriting!";
|
||||
case CONTINUECURRENTFILE:
|
||||
return "Continue from start of last input file processed";
|
||||
case CONTINUENEXTFILE:
|
||||
return "Continue from start of next input file to process";
|
||||
case DONTSSTART:
|
||||
return "Don't start processing";
|
||||
case OVERWRITEALL:
|
||||
return "Overwrite existing output data";
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getToolTip() {
|
||||
switch (this) {
|
||||
case STARTNORMAL:
|
||||
return "No risk of data overlap, so system will start normally";
|
||||
case CONTINUECURRENTFILE:
|
||||
return "System will work out how far data processing has got and continue from the start of the file it stopped in";
|
||||
case CONTINUENEXTFILE:
|
||||
return "System will work out how far data processing has got and continue from the start of the file AFTER the one it stopped in";
|
||||
case DONTSSTART:
|
||||
return "Processing will not start. Select alternative storage locations / databases and try again";
|
||||
case OVERWRITEALL:
|
||||
return "Overwrite existing output data. Existing data will be deleted";
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
234
src/PamController/fileprocessing/StoreChoiceSummary.java
Normal file
234
src/PamController/fileprocessing/StoreChoiceSummary.java
Normal file
@ -0,0 +1,234 @@
|
||||
package PamController.fileprocessing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import PamController.InputStoreInfo;
|
||||
|
||||
/**
|
||||
* Summary information about the data stores.
|
||||
* @author dg50
|
||||
*
|
||||
*/
|
||||
public class StoreChoiceSummary {
|
||||
|
||||
private long outputEndTime;
|
||||
|
||||
private long outputStartTime;
|
||||
|
||||
private List<ReprocessStoreChoice> choices = new ArrayList<>();
|
||||
|
||||
private InputStoreInfo inputStoreInfo;
|
||||
|
||||
public StoreChoiceSummary(InputStoreInfo info, ReprocessStoreChoice singleChoice) {
|
||||
this.inputStoreInfo = info;
|
||||
addChoice(singleChoice);
|
||||
}
|
||||
|
||||
public StoreChoiceSummary(long outputEndTime, InputStoreInfo inputStoreInfo) {
|
||||
super();
|
||||
this.outputEndTime = outputEndTime;
|
||||
this.inputStoreInfo = inputStoreInfo;
|
||||
}
|
||||
|
||||
public StoreChoiceSummary(InputStoreInfo inputInfo) {
|
||||
this.inputStoreInfo = inputInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the number of choices. If it's only one, then there
|
||||
* isn't a lot to do. If it's >1, then need a decision in the
|
||||
* form of a command line instruction or a user dialog.
|
||||
* @return number of choices.
|
||||
*/
|
||||
public int getNumChoices() {
|
||||
return choices.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is processing complete, i.e. last time in output matches last time
|
||||
* in input data.
|
||||
* @return true if processing appears to be complete.
|
||||
*/
|
||||
public boolean isProcessingComplete() {
|
||||
if (inputStoreInfo == null) {
|
||||
return false;
|
||||
}
|
||||
long inputEnd = getInputEndTime();
|
||||
long outputEnd = getOutputEndTime();
|
||||
long diff = inputEnd-outputEnd;
|
||||
return (diff < 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a reasonable choice to what the user can select to do.
|
||||
* @param choice
|
||||
*/
|
||||
public void addChoice(ReprocessStoreChoice choice) {
|
||||
choices.add(choice);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the start time of the first input file
|
||||
*/
|
||||
public Long getInputStartTime() {
|
||||
if (inputStoreInfo == null) {
|
||||
return null;
|
||||
}
|
||||
return inputStoreInfo.getFirstFileStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the start time of the first input file
|
||||
*/
|
||||
public Long getInputEndTime() {
|
||||
if (inputStoreInfo == null) {
|
||||
return null;
|
||||
}
|
||||
return inputStoreInfo.getLastFileEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the outputEndTime
|
||||
*/
|
||||
public long getOutputEndTime() {
|
||||
return outputEndTime;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the last data time, but only if the passed value
|
||||
* is not null and is bigger than the current value.
|
||||
* @param lastDataTime
|
||||
* @return largest of current and passed value.
|
||||
*/
|
||||
public long testOutputEndTime(Long lastDataTime) {
|
||||
if (lastDataTime == null) {
|
||||
return this.getOutputEndTime();
|
||||
}
|
||||
setOutputEndTime(Math.max(outputEndTime, lastDataTime));
|
||||
return getOutputEndTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the last data time, but only if the passed value
|
||||
* is not null and is bigger than the current value.
|
||||
* @param lastDataTime
|
||||
* @return largest of current and passed value.
|
||||
*/
|
||||
public long testOutputStartTime(Long firstDataTime) {
|
||||
if (firstDataTime == null) {
|
||||
return this.getOutputStartTime();
|
||||
}
|
||||
if (outputStartTime == 0 || firstDataTime < outputStartTime) {
|
||||
outputStartTime = firstDataTime;
|
||||
}
|
||||
return getOutputStartTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param outputEndTime the outputEndTime to set
|
||||
*/
|
||||
public void setOutputEndTime(long outputEndTime) {
|
||||
this.outputEndTime = outputEndTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the inputStoreInfo
|
||||
*/
|
||||
public InputStoreInfo getInputStoreInfo() {
|
||||
return inputStoreInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param inputStoreInfo the inputStoreInfo to set
|
||||
*/
|
||||
public void setInputStoreInfo(InputStoreInfo inputStoreInfo) {
|
||||
this.inputStoreInfo = inputStoreInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the choices
|
||||
*/
|
||||
public List<ReprocessStoreChoice> getChoices() {
|
||||
return choices;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the outputStartTime
|
||||
*/
|
||||
public long getOutputStartTime() {
|
||||
return outputStartTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param outputStartTime the outputStartTime to set
|
||||
*/
|
||||
public void setOutputStartTime(long outputStartTime) {
|
||||
this.outputStartTime = outputStartTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the index of the file that starts before or exactly at the given time.
|
||||
* @param inputEndTime
|
||||
* @return index of file, or -1 if none found.
|
||||
*/
|
||||
public int getFileIndexBefore(Long inputEndTime) {
|
||||
if (inputStoreInfo == null) {
|
||||
return -1;
|
||||
}
|
||||
long[] fileStarts = inputStoreInfo.getFileStartTimes();
|
||||
if (fileStarts == null) {
|
||||
return -1;
|
||||
}
|
||||
for (int i = fileStarts.length-1; i>= 0; i--) {
|
||||
if (fileStarts[i] <= inputEndTime) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the start time in millis of a file for the given index.
|
||||
* @param fileIndex
|
||||
* @return file time, or null if no file available.
|
||||
*/
|
||||
public Long getInputTimeForIndex(int fileIndex) {
|
||||
if (inputStoreInfo == null) {
|
||||
return null;
|
||||
}
|
||||
long[] fileStarts = inputStoreInfo.getFileStartTimes();
|
||||
if (fileStarts == null) {
|
||||
return null;
|
||||
}
|
||||
if (fileIndex < 0 || fileIndex >= fileStarts.length) {
|
||||
return null;
|
||||
}
|
||||
return fileStarts[fileIndex];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the index of the file that starts after the given time.
|
||||
* @param inputEndTime
|
||||
* @return index of file, or -1 if none found.
|
||||
*/
|
||||
public int getFileIndexAfter(Long inputEndTime) {
|
||||
if (inputStoreInfo == null) {
|
||||
return -1;
|
||||
}
|
||||
long[] fileStarts = inputStoreInfo.getFileStartTimes();
|
||||
if (fileStarts == null) {
|
||||
return -1;
|
||||
}
|
||||
for (int i = 0; i < fileStarts.length; i++) {
|
||||
if (fileStarts[i] > inputEndTime) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
115
src/PamController/fileprocessing/StoreStatus.java
Normal file
115
src/PamController/fileprocessing/StoreStatus.java
Normal file
@ -0,0 +1,115 @@
|
||||
package PamController.fileprocessing;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import PamController.OfflineDataStore;
|
||||
|
||||
/**
|
||||
* Class to carry information about an OfflineDataStore. Used when restarting offline
|
||||
* processing to help work out if we should overwrite, start again, etc.
|
||||
* @author dg50
|
||||
*
|
||||
*/
|
||||
abstract public class StoreStatus {
|
||||
|
||||
public static final int STATUS_MISSING = 1;
|
||||
|
||||
public static final int STATUS_EMPTY = 2;
|
||||
|
||||
public static final int STATUS_HASDATA = 3;
|
||||
|
||||
private OfflineDataStore offlineDataStore;
|
||||
|
||||
/**
|
||||
* Time of first data, may be null if detail not asked for or if
|
||||
* hasData is false.
|
||||
*/
|
||||
private Long firstDataTime;
|
||||
|
||||
/**
|
||||
* Time of last data, may be null if detail not asked for or if
|
||||
* hasData is false.
|
||||
*/
|
||||
private Long lastDataTime;
|
||||
|
||||
/**
|
||||
* General status flag.
|
||||
*/
|
||||
private int storeStatus;
|
||||
|
||||
public StoreStatus(OfflineDataStore offlineDataStore) {
|
||||
this.offlineDataStore = offlineDataStore;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the amount of free space for this storage.
|
||||
* @return free space in bytes.
|
||||
*/
|
||||
public abstract long getFreeSpace();
|
||||
|
||||
public long getFreeSpace(String currDir) {
|
||||
if (currDir == null) {
|
||||
return 0;
|
||||
}
|
||||
File dirFile = new File(currDir);
|
||||
long space = 0;
|
||||
try {
|
||||
space = dirFile.getUsableSpace();
|
||||
}
|
||||
catch (SecurityException e) {
|
||||
System.out.printf("Security exception getting space for %s: \n%s\n", currDir, e.getMessage());
|
||||
}
|
||||
return space;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the firstDataTime
|
||||
*/
|
||||
public Long getFirstDataTime() {
|
||||
return firstDataTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param firstDataTime the firstDataTime to set
|
||||
*/
|
||||
public void setFirstDataTime(Long firstDataTime) {
|
||||
this.firstDataTime = firstDataTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the lastDataTime
|
||||
*/
|
||||
public Long getLastDataTime() {
|
||||
return lastDataTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param lastDataTime the lastDataTime to set
|
||||
*/
|
||||
public void setLastDataTime(Long lastDataTime) {
|
||||
this.lastDataTime = lastDataTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the storeStatus
|
||||
*/
|
||||
public int getStoreStatus() {
|
||||
return storeStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param storeStatus the storeStatus to set
|
||||
*/
|
||||
public void setStoreStatus(int storeStatus) {
|
||||
this.storeStatus = storeStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the offlineDataStore
|
||||
*/
|
||||
public OfflineDataStore getOfflineDataStore() {
|
||||
return offlineDataStore;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -460,8 +460,6 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
||||
mi.setModulesMenuGroup(utilitiesGroup);
|
||||
mi.setMaxNumber(1);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ************* End Utilities Group *******************
|
||||
*/
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +47,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) {
|
||||
|
@ -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<T extends File> implements PamWorkWrapper<F
|
||||
this.fileList = rootList;
|
||||
this.subFolders = subFolders;
|
||||
this.useOldIfPossible = useOldIfPossible;
|
||||
for (int i = 0; i < rootList.length; i++) {
|
||||
Debug.out.println(">>>>>>>>Starting file search in " + rootList[i]);
|
||||
}
|
||||
if (noChange(rootList, subFolders, useOldIfPossible)) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
@ -162,6 +166,7 @@ public abstract class FileListWorker<T extends File> implements PamWorkWrapper<F
|
||||
private void addFiles(PamWorker<FileListData<T>> pamWorker, FileListData<T> 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) {
|
||||
@ -175,6 +180,7 @@ public abstract class FileListWorker<T extends File> implements PamWorkWrapper<F
|
||||
T newFile = createFile(moreFiles[i]);
|
||||
eachFileTask(newFile);
|
||||
newFileList.addFile(newFile);
|
||||
Debug.out.println("Adding file " + newFile.getAbsolutePath());
|
||||
if (i%100 == 0) {
|
||||
sayProgress(pamWorker, newFileList, folder);
|
||||
}
|
||||
|
@ -55,9 +55,19 @@ public class WavFileType extends File {
|
||||
* @return the audioInfo
|
||||
*/
|
||||
public AudioFormat getAudioInfo() {
|
||||
if (audioInfo == null) {
|
||||
audioInfo = getAudioFormat();
|
||||
}
|
||||
return audioInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the audio format.
|
||||
* @return the audio format.
|
||||
*/
|
||||
private AudioFormat getAudioFormat() {
|
||||
return getAudioFormat(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the audio format.
|
||||
|
@ -5,6 +5,7 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.JMenuItem;
|
||||
@ -49,6 +50,14 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
|
||||
private SwingTableColumnWidths columnWidths;
|
||||
|
||||
/**
|
||||
* Most work will run off a copy of the data.
|
||||
* Makes it easier to include data selectors, etc.
|
||||
*/
|
||||
private ArrayList<T> dataUnitCopy;
|
||||
|
||||
private Object copySynch = new Object();
|
||||
|
||||
public DataBlockTableView(PamDataBlock<T> pamDataBlock, String displayName) {
|
||||
this.pamDataBlock = pamDataBlock;
|
||||
this.displayName = displayName;
|
||||
@ -97,6 +106,13 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Call the table data changed function to update table values.
|
||||
*/
|
||||
public void fireTableDataChanged() {
|
||||
blockTableModel.fireTableDataChanged();
|
||||
}
|
||||
|
||||
public JComponent getComponent() {
|
||||
return tablePanel;
|
||||
}
|
||||
@ -141,11 +157,23 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
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);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -201,21 +229,31 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
* @return data unit for the table row.
|
||||
*/
|
||||
private final T getDataUnit(int tableRow) {
|
||||
synchronized (pamDataBlock.getSynchLock()) {
|
||||
synchronized (copySynch) {
|
||||
int rowIndex = getDataIndexForRow(tableRow);
|
||||
if (rowIndex < 0) return null;
|
||||
return pamDataBlock.getDataUnit(rowIndex, PamDataBlock.REFERENCE_CURRENT);
|
||||
if (dataUnitCopy == null) {
|
||||
return null;
|
||||
}
|
||||
return dataUnitCopy.get(tableRow);
|
||||
// return pamDataBlock.getDataUnit(rowIndex, PamDataBlock.REFERENCE_CURRENT);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 numer of table rows to show.
|
||||
* @return number of table rows to show.
|
||||
*/
|
||||
public int getRowCount() {
|
||||
return pamDataBlock.getUnitsCount();
|
||||
if (dataUnitCopy == null) {
|
||||
updatePamData();
|
||||
if (dataUnitCopy == null) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return dataUnitCopy.size();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -227,7 +265,10 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
* @return
|
||||
*/
|
||||
public int getDataIndexForRow(int tableRow) {
|
||||
int nRow = pamDataBlock.getUnitsCount();
|
||||
if (dataUnitCopy == null) {
|
||||
return tableRow;
|
||||
}
|
||||
int nRow = dataUnitCopy.size();
|
||||
if (!isViewer) {
|
||||
tableRow = nRow-tableRow-1;
|
||||
}
|
||||
@ -244,12 +285,14 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
|
||||
@Override
|
||||
public void addData(PamObservable o, PamDataUnit arg) {
|
||||
blockTableModel.fireTableDataChanged();
|
||||
DataBlockTableView.this.updatePamData();
|
||||
// blockTableModel.fireTableDataChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateData(PamObservable observable, PamDataUnit pamDataUnit) {
|
||||
blockTableModel.fireTableDataChanged();
|
||||
DataBlockTableView.this.updatePamData();
|
||||
// blockTableModel.fireTableDataChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -258,6 +301,15 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updatePamData() {
|
||||
synchronized (copySynch) {
|
||||
dataUnitCopy = pamDataBlock.getDataCopy();
|
||||
}
|
||||
blockTableModel.fireTableDataChanged();
|
||||
}
|
||||
|
||||
|
||||
private class MouseAction extends MouseAdapter {
|
||||
|
||||
/* (non-Javadoc)
|
||||
@ -304,7 +356,11 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
* @return Array of multiple rows selected.
|
||||
*/
|
||||
public T[] getMultipleSelectedRows() {
|
||||
synchronized(pamDataBlock.getSynchLock()) {
|
||||
if (dataUnitCopy == null) {
|
||||
return null;
|
||||
}
|
||||
// synchronized(pamDataBlock.getSynchLock()) { // synch not needed with data copy.
|
||||
synchronized (copySynch) {
|
||||
int[] selRows = testTable.getSelectedRows();
|
||||
if (selRows == null) {
|
||||
return null;
|
||||
@ -337,12 +393,14 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
|
||||
@Override
|
||||
public void scrollValueChanged(AbstractPamScroller abstractPamScroller) {
|
||||
blockTableModel.fireTableDataChanged();
|
||||
// blockTableModel.fireTableDataChanged();
|
||||
updatePamData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void scrollRangeChanged(AbstractPamScroller pamScroller) {
|
||||
blockTableModel.fireTableDataChanged();
|
||||
// blockTableModel.fireTableDataChanged();
|
||||
updatePamData();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2078,6 +2078,9 @@ public class PamDataBlock<Tunit extends PamDataUnit> extends PamObservable {
|
||||
/*
|
||||
* Doesnt notify it's own parent to avoid an infinite loop
|
||||
*/
|
||||
if (Float.isNaN(sampleRate)) {
|
||||
System.out.println("NaN sample rate being set in " + getLongDataName());
|
||||
}
|
||||
if (notify) {
|
||||
for (int i = 0; i < countObservers(); i++) {
|
||||
if (getPamObserver(i).getObserverObject() != parentProcess) {
|
||||
|
@ -46,6 +46,7 @@ import javax.xml.xpath.XPathConstants;
|
||||
import javax.xml.xpath.XPathExpression;
|
||||
import javax.xml.xpath.XPathFactory;
|
||||
|
||||
import org.apache.commons.io.comparator.NameFileComparator;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
@ -391,7 +392,7 @@ public class binaryUIDFunctions {
|
||||
// System.out.println("Warning - no " + filePrefix + " binary files found in " + binStore.getBinaryStoreSettings().getStoreLocation());
|
||||
return maxUID;
|
||||
}
|
||||
Collections.sort(binFiles);
|
||||
Collections.sort(binFiles, NameFileComparator.NAME_COMPARATOR);
|
||||
|
||||
// loop through the binary files from the last one to the first, and stop as
|
||||
// soon as we find
|
||||
|
@ -177,6 +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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -42,6 +42,8 @@ public abstract class BinaryDataSource {
|
||||
|
||||
private BackgroundBinaryWriter backgroundBinaryWriter;
|
||||
|
||||
public static final Object packSynchObject = new Object();
|
||||
|
||||
/**
|
||||
* Create a binary data source. These are used both to store data in binary
|
||||
* files, and possibly also to send data to other PAMguard instances over the network.
|
||||
@ -224,12 +226,14 @@ public abstract class BinaryDataSource {
|
||||
* Then pack the data
|
||||
*/
|
||||
BinaryObjectData data;
|
||||
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.
|
||||
*/
|
||||
|
@ -118,6 +118,8 @@ public class BinaryOutputStream {
|
||||
|
||||
boolean open = openPGDFFile(outputFile);
|
||||
|
||||
// System.out.println("Open outout file " + outputFile.getAbsolutePath());
|
||||
|
||||
if (open) {
|
||||
addToDataMap(outputFile);
|
||||
}
|
||||
@ -260,6 +262,7 @@ public class BinaryOutputStream {
|
||||
|
||||
public synchronized boolean closeFile() {
|
||||
boolean ok = true;
|
||||
// System.out.println("Close output file " + mainFileName);
|
||||
if (dataOutputStream != null) {
|
||||
if (currentDataMapPoint != null) {
|
||||
currentDataMapPoint.setBinaryFooter(footer);
|
||||
|
@ -36,6 +36,8 @@ import dataGram.DatagramManager;
|
||||
import dataMap.OfflineDataMap;
|
||||
import dataMap.OfflineDataMapPoint;
|
||||
import PamController.AWTScheduler;
|
||||
import PamController.DataInputStore;
|
||||
import PamController.DataOutputStore;
|
||||
import PamController.OfflineDataStore;
|
||||
import PamController.PamControlledUnit;
|
||||
import PamController.PamControlledUnitGUI;
|
||||
@ -49,6 +51,7 @@ import PamController.PamSettingsGroup;
|
||||
import PamController.PamSettingsSource;
|
||||
import PamController.StorageOptions;
|
||||
import PamController.StorageParameters;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamController.status.ModuleStatus;
|
||||
import PamController.status.QuickRemedialAction;
|
||||
import PamModel.SMRUEnable;
|
||||
@ -89,7 +92,7 @@ import binaryFileStorage.layoutFX.BinaryStoreGUIFX;
|
||||
*
|
||||
*/
|
||||
public class BinaryStore extends PamControlledUnit implements PamSettings,
|
||||
PamSettingsSource, OfflineDataStore {
|
||||
PamSettingsSource, DataOutputStore {
|
||||
|
||||
public static final String fileType = "pgdf";
|
||||
|
||||
@ -1113,6 +1116,8 @@ PamSettingsSource, OfflineDataStore {
|
||||
|
||||
String lastFailedStream = null;
|
||||
|
||||
private BinaryStoreStatusFuncs binaryStoreStatusFuncs;
|
||||
|
||||
public boolean removeMapPoint(File aFile, ArrayList<PamDataBlock> streams) {
|
||||
BinaryHeaderAndFooter bhf = getFileHeaderAndFooter(aFile);
|
||||
if (bhf == null || bhf.binaryHeader == null) {
|
||||
@ -1355,6 +1360,26 @@ PamSettingsSource, OfflineDataStore {
|
||||
return newFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the noise file to match a given data file.
|
||||
* @param dataFile data file.
|
||||
* @param checkExists check the file exists and if it doens't return null
|
||||
* @return index file to go with the data file.
|
||||
*/
|
||||
public File findNoiseFile(File dataFile, boolean checkExists) {
|
||||
// String filePath = dataFile.getAbsolutePath();
|
||||
// // check that the last 4 characters are "pgdf"
|
||||
// int pathLen = filePath.length();
|
||||
// String newPath = filePath.substring(0, pathLen-4) + indexFileType;
|
||||
File newFile = swapFileType(dataFile, noiseFileType);
|
||||
if (checkExists) {
|
||||
if (newFile.exists() == false) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return newFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an index file (pgdx) name from a data file (pgdf) file name
|
||||
* @param dataFile data file name
|
||||
@ -1488,7 +1513,7 @@ PamSettingsSource, OfflineDataStore {
|
||||
* @param folder folder to search
|
||||
* @param filter file filter
|
||||
*/
|
||||
private void listDataFiles(ArrayList<File> fileList, File folder, PamFileFilter filter) {
|
||||
public void listDataFiles(ArrayList<File> fileList, File folder, PamFileFilter filter) {
|
||||
File[] newFiles = folder.listFiles(filter);
|
||||
if (newFiles == null) {
|
||||
return;
|
||||
@ -1684,7 +1709,7 @@ PamSettingsSource, OfflineDataStore {
|
||||
* @param binaryObjectData
|
||||
* @param dataSink
|
||||
*/
|
||||
private void unpackAnnotationData(int fileVersion, PamDataUnit createdUnit, BinaryObjectData binaryObjectData, BinaryDataSink dataSink) {
|
||||
protected void unpackAnnotationData(int fileVersion, PamDataUnit createdUnit, BinaryObjectData binaryObjectData, BinaryDataSink dataSink) {
|
||||
|
||||
//System.out.println("Hello annotation " + binaryObjectData.getAnnotationDataLength());
|
||||
if (binaryObjectData.getAnnotationDataLength() == 0) {
|
||||
@ -2211,7 +2236,7 @@ PamSettingsSource, OfflineDataStore {
|
||||
|
||||
|
||||
|
||||
private boolean reportError(String string) {
|
||||
boolean reportError(String string) {
|
||||
System.out.println(string);
|
||||
return false;
|
||||
}
|
||||
@ -2379,6 +2404,7 @@ PamSettingsSource, OfflineDataStore {
|
||||
}
|
||||
else {
|
||||
reportError("No valid header in file " + file.getAbsolutePath());
|
||||
inputStream.closeFile();
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -2509,4 +2535,17 @@ PamSettingsSource, OfflineDataStore {
|
||||
return binaryStoreSettings.getNoiseStoreType();
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoreStatus getStoreStatus(boolean getDetail) {
|
||||
if (binaryStoreStatusFuncs == null) {
|
||||
binaryStoreStatusFuncs = new BinaryStoreStatusFuncs(this);
|
||||
}
|
||||
return binaryStoreStatusFuncs.getStoreStatus(getDetail);
|
||||
}
|
||||
@Override
|
||||
public boolean deleteDataFrom(long timeMillis) {
|
||||
BinaryStoreDeleter storeDeleter = new BinaryStoreDeleter(this);
|
||||
return storeDeleter.deleteDataFrom(timeMillis);
|
||||
}
|
||||
|
||||
}
|
||||
|
369
src/binaryFileStorage/BinaryStoreDeleter.java
Normal file
369
src/binaryFileStorage/BinaryStoreDeleter.java
Normal file
@ -0,0 +1,369 @@
|
||||
package binaryFileStorage;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.io.comparator.NameFileComparator;
|
||||
|
||||
import PamUtils.PamCalendar;
|
||||
import PamUtils.PamFileFilter;
|
||||
import PamguardMVC.DataUnitBaseData;
|
||||
import PamguardMVC.PamDataBlock;
|
||||
import PamguardMVC.PamDataUnit;
|
||||
|
||||
public class BinaryStoreDeleter {
|
||||
|
||||
private static final int FILE_DELETE_ERROR = 1;
|
||||
private static final int FILE_TOO_EARLY = 2;
|
||||
private static final int FILE_DELETED = 3;
|
||||
private static final int FILE_PARTIAL_DELETE = 4;
|
||||
|
||||
|
||||
private BinaryStore binaryStore;
|
||||
|
||||
private FileFilter directoryFilter;
|
||||
|
||||
private BinaryStoreStatusFuncs binaryStoreStatusFuncs;
|
||||
|
||||
public BinaryStoreDeleter(BinaryStore binaryStore) {
|
||||
this.binaryStore = binaryStore;
|
||||
directoryFilter = new DirectoryFilter();
|
||||
binaryStoreStatusFuncs = new BinaryStoreStatusFuncs(binaryStore);
|
||||
}
|
||||
|
||||
public boolean deleteDataFrom(long timeMillis) {
|
||||
if (timeMillis == 0) {
|
||||
return deleteEverything();
|
||||
}
|
||||
else {
|
||||
return deleteFrom(timeMillis);
|
||||
}
|
||||
}
|
||||
|
||||
private class DirectoryFilter implements java.io.FileFilter {
|
||||
|
||||
@Override
|
||||
public boolean accept(File pathname) {
|
||||
return pathname.isDirectory();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean deleteEverything() {
|
||||
ArrayList<File> fileList = new ArrayList<File>();
|
||||
String root = binaryStore.binaryStoreSettings.getStoreLocation();
|
||||
if (root == null) {
|
||||
return false;
|
||||
}
|
||||
File rootFolder = new File(root);
|
||||
PamFileFilter binaryDataFilter = new PamFileFilter("Binary Data Files", BinaryStore.fileType);
|
||||
binaryDataFilter.addFileType(BinaryStore.indexFileType);
|
||||
binaryDataFilter.addFileType(BinaryStore.noiseFileType);
|
||||
binaryDataFilter.setAcceptFolders(true);
|
||||
|
||||
binaryStore.listDataFiles(fileList, rootFolder, binaryDataFilter);
|
||||
int errors = 0;
|
||||
for (File aFile : fileList) {
|
||||
try {
|
||||
aFile.delete();
|
||||
}
|
||||
catch (Exception e) {
|
||||
errors++;
|
||||
}
|
||||
}
|
||||
deleteEmptyFolders();
|
||||
return errors == 0;
|
||||
}
|
||||
|
||||
private boolean deleteFrom(long timeMillis) {
|
||||
/*
|
||||
* need to go through the data one stream at a time so that
|
||||
* we can pick files off from the end of the list.
|
||||
*/
|
||||
ArrayList<PamDataBlock> streams = BinaryStore.getStreamingDataBlocks(true);
|
||||
int errors = 0;
|
||||
for (PamDataBlock aBlock : streams) {
|
||||
boolean ok = deleteFrom(aBlock, timeMillis);
|
||||
if (!ok) {
|
||||
errors++;
|
||||
}
|
||||
}
|
||||
|
||||
deleteEmptyFolders();
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean deleteFrom(PamDataBlock aBlock, long timeMillis) {
|
||||
System.out.printf("Deleting binary data for %s from %s\n", aBlock.getDataName(), PamCalendar.formatDBDateTime(timeMillis));
|
||||
BinaryDataSource dataSource = aBlock.getBinaryDataSource();
|
||||
if (dataSource == null) {
|
||||
return true; // don't see how this can happen.
|
||||
}
|
||||
// first deal with pgdf and pgdx files, then noise.
|
||||
String filePrefix = dataSource.createFilenamePrefix();
|
||||
List<File> binFiles = binaryStore.listAllFilesWithPrefix(filePrefix);
|
||||
if (binFiles == null || binFiles.isEmpty()) {
|
||||
return true; // nothing to delete.
|
||||
}
|
||||
Collections.sort(binFiles, NameFileComparator.NAME_COMPARATOR);
|
||||
for (int i = binFiles.size()-1; i >= 0; i--) {
|
||||
int ans = deleteFileFrom(aBlock, binFiles.get(i), timeMillis);
|
||||
if (ans == FILE_TOO_EARLY) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a specific file from a specific time. If the start of the file
|
||||
* is after timeMillis, delete the entire file, otherwise it will have
|
||||
* to be a partial delete.
|
||||
* @param aBlock
|
||||
* @param file
|
||||
* @param timeMillis
|
||||
* @return
|
||||
*/
|
||||
private int deleteFileFrom(PamDataBlock aBlock, File dataFile, long timeMillis) {
|
||||
File indexFile = binaryStore.findIndexFile(dataFile, true);
|
||||
if (indexFile == null) {
|
||||
indexFile = dataFile;
|
||||
}
|
||||
File noiseFile = binaryStore.findNoiseFile(dataFile, true);
|
||||
// get the header.
|
||||
boolean headOk = false;
|
||||
BinaryHeader binaryHead = new BinaryHeader();
|
||||
try {
|
||||
FileInputStream fis = new FileInputStream(indexFile);
|
||||
DataInputStream dis = new DataInputStream(new BufferedInputStream(fis));
|
||||
headOk = binaryHead.readHeader(dis);
|
||||
fis.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
headOk = false;
|
||||
}
|
||||
if (headOk == false || binaryHead.getDataDate() >= timeMillis) {
|
||||
boolean deleteOk = deleteFileSet(dataFile);
|
||||
return deleteOk ? FILE_DELETED : FILE_DELETE_ERROR;
|
||||
}
|
||||
/**
|
||||
* Now need to see if the file is earlier than we want, in which case we return
|
||||
* immediately and won't look at any more files.
|
||||
*/
|
||||
BinaryFooter fileEnd = binaryStoreStatusFuncs.findLastData(dataFile);
|
||||
if (fileEnd == null) {
|
||||
// the file has no footer and no data, so must be corrupt, so delete it.
|
||||
boolean deleteOk = deleteFileSet(dataFile);
|
||||
return deleteOk ? FILE_DELETED : FILE_DELETE_ERROR;
|
||||
}
|
||||
if (fileEnd.getDataDate() <= timeMillis) {
|
||||
/*
|
||||
* this file is earlier than our delete time, so we don't want to delete it
|
||||
* and need to send a message saying not to delete anything else either.
|
||||
*/
|
||||
return FILE_TOO_EARLY;
|
||||
}
|
||||
/**
|
||||
* If we land here, it looks like we're in the realm of needing to partially delete
|
||||
* a file / set of data and noise files. What a pain ! Will need to do
|
||||
* the deleting and update the index file. f** knows what to do about a
|
||||
* serialized datamap.
|
||||
*/
|
||||
partialCopyFile(aBlock, dataFile, timeMillis);
|
||||
if (indexFile != null) {
|
||||
partialCopyFile(aBlock, indexFile, timeMillis);
|
||||
}
|
||||
if (noiseFile != null) {
|
||||
partialCopyFile(aBlock, noiseFile, timeMillis);
|
||||
}
|
||||
|
||||
return FILE_PARTIAL_DELETE;
|
||||
}
|
||||
|
||||
private boolean partialCopyFile(PamDataBlock aBlock, File dataFile, long timeMillis) {
|
||||
System.out.printf("Partial delete of file %s from %s\n", dataFile.getAbsoluteFile(), PamCalendar.formatDBDateTime(timeMillis));
|
||||
try {
|
||||
BinaryInputStream inputStream = new BinaryInputStream(binaryStore, aBlock);
|
||||
if (inputStream.openFile(dataFile) == false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
BinaryDataSource dataSource = aBlock.getBinaryDataSource();
|
||||
|
||||
File tempFile = new File(dataFile.getAbsolutePath() + ".tmp");
|
||||
BinaryOutputStream outputStream = new BinaryOutputStream(binaryStore, aBlock);
|
||||
dataSource.setBinaryStorageStream(outputStream);
|
||||
|
||||
BinaryObjectData binaryObjectData;
|
||||
BinaryHeader bh = inputStream.readHeader();
|
||||
if (bh==null) {
|
||||
return false;
|
||||
}
|
||||
outputStream.writeHeader(bh.getDataDate(), bh.getAnalysisDate());
|
||||
ModuleHeader mh = null;
|
||||
|
||||
BinaryFooter bf = null;
|
||||
int inputFormat = bh.getHeaderFormat();
|
||||
while ((binaryObjectData = inputStream.readNextObject(inputFormat)) != null) {
|
||||
|
||||
switch (binaryObjectData.getObjectType()) {
|
||||
case BinaryTypes.FILE_FOOTER:
|
||||
// this is unlikely to happen, since we'll probably already have found an index file.
|
||||
bf = new BinaryFooter();
|
||||
bf.readFooterData(binaryObjectData.getDataInputStream(), inputFormat);
|
||||
bf.setDataDate(timeMillis);
|
||||
outputStream.writeFileFooter(bf);
|
||||
break;
|
||||
case BinaryTypes.MODULE_HEADER:
|
||||
mh = dataSource.sinkModuleHeader(binaryObjectData, bh);
|
||||
outputStream.writeModuleHeader();
|
||||
break;
|
||||
case BinaryTypes.MODULE_FOOTER:
|
||||
ModuleFooter mf = dataSource.sinkModuleFooter(binaryObjectData, bh, mh);
|
||||
outputStream.writeModuleFooter();
|
||||
break;
|
||||
case BinaryTypes.DATAGRAM:
|
||||
// dataSource.
|
||||
break;
|
||||
default: // should be data.
|
||||
DataUnitBaseData baseData = binaryObjectData.getDataUnitBaseData();
|
||||
if (baseData == null) {
|
||||
continue;
|
||||
}
|
||||
if (baseData.getTimeMilliseconds() > timeMillis) {
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* otherwise we need to store this data unit. I think we can just copy in the
|
||||
* existing binary data to the new file non ? Might mess the datagram slightly,
|
||||
* but that is only in the index file and can sort itself out.
|
||||
* better to make a data unit and then rewrite it I think.
|
||||
*/
|
||||
PamDataUnit dataUnit = dataSource.sinkData(binaryObjectData, bh, inputFormat);
|
||||
if (dataUnit != null) {
|
||||
dataUnit.getBasicData().mergeBaseData(binaryObjectData.getDataUnitBaseData());
|
||||
binaryStore.unpackAnnotationData(bh.getHeaderFormat(), dataUnit, binaryObjectData, null);
|
||||
dataSource.saveData(dataUnit);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
outputStream.closeFile();
|
||||
inputStream.closeFile();
|
||||
|
||||
/*
|
||||
* Now file final stage - copy the temp file in place of the
|
||||
* original file.
|
||||
*/
|
||||
boolean deletedOld = false;
|
||||
try {
|
||||
deletedOld = dataFile.delete();
|
||||
}
|
||||
catch (SecurityException e) {
|
||||
System.out.println("Error deleting old pgdf file: " + dataFile.getAbsolutePath());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
boolean renamedNew = false;
|
||||
try {
|
||||
renamedNew = tempFile.renameTo(dataFile);
|
||||
}
|
||||
catch (SecurityException e) {
|
||||
System.out.println("Error renaming new pgdf file: " + tempFile.getAbsolutePath() +
|
||||
" to " + dataFile.getAbsolutePath());
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (renamedNew == false) {
|
||||
if (deletedOld == false) {
|
||||
binaryStore.reportError("Unable to delete " + dataFile.getAbsolutePath());
|
||||
}
|
||||
return binaryStore.reportError(String.format("Unable to rename %s to %s",
|
||||
tempFile.getAbsolutePath(), dataFile.getAbsolutePath()));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
catch (Exception ex) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a set of files, including main data file, index file and noise file.
|
||||
* @param dataFile
|
||||
* @return
|
||||
*/
|
||||
private boolean deleteFileSet(File dataFile) {
|
||||
System.out.printf("Deleting full file set for %s\n", dataFile.getAbsoluteFile());
|
||||
boolean deleteOk = true;
|
||||
try {
|
||||
File indexFile = binaryStore.findIndexFile(dataFile, true);
|
||||
File noiseFile = binaryStore.findNoiseFile(dataFile, true);
|
||||
deleteOk &= dataFile.delete();
|
||||
if (indexFile != null) {
|
||||
deleteOk &= indexFile.delete();
|
||||
}
|
||||
if (noiseFile != null) {
|
||||
deleteOk &= noiseFile.delete();
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
deleteOk = false;
|
||||
}
|
||||
|
||||
System.out.printf("Deleting full file set %s for %s\n", deleteOk?"OK":"Error", dataFile.getAbsoluteFile());
|
||||
|
||||
return deleteOk;
|
||||
|
||||
}
|
||||
|
||||
private void deleteEmptyFolders() {
|
||||
String root = binaryStore.binaryStoreSettings.getStoreLocation();
|
||||
if (root == null) {
|
||||
return;
|
||||
}
|
||||
/**
|
||||
* Iterate through the root folder first and then call a
|
||||
* recursive function to delete sub folders. this will stop the
|
||||
* root folder from being deleted, but sub folders will get deleted if
|
||||
* they have no files (of any type) in them.
|
||||
*/
|
||||
File rootFolder = new File(root);
|
||||
File[] subFolders = rootFolder.listFiles(directoryFilter);
|
||||
if (subFolders == null) {
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < subFolders.length; i++) {
|
||||
deleteEmptyFolders(subFolders[i]);
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteEmptyFolders(File file) {
|
||||
File[] subFolders = file.listFiles(directoryFilter);
|
||||
for (int i = 0; i < subFolders.length; i++) {
|
||||
deleteEmptyFolders(subFolders[i]);
|
||||
}
|
||||
// see if there is anything at all in this folder
|
||||
File[] remaining = file.listFiles();
|
||||
if (remaining.length == 0) {
|
||||
try {
|
||||
file.delete();
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.out.printf("Binary folder %s cannot be deleted: %s\n", file.getAbsolutePath(), e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -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);
|
||||
|
||||
|
169
src/binaryFileStorage/BinaryStoreStatus.java
Normal file
169
src/binaryFileStorage/BinaryStoreStatus.java
Normal file
@ -0,0 +1,169 @@
|
||||
package binaryFileStorage;
|
||||
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
|
||||
public class BinaryStoreStatus extends StoreStatus {
|
||||
|
||||
private BinaryStore binaryStore;
|
||||
|
||||
private BinaryHeader firstHeader;
|
||||
|
||||
private BinaryFooter lastFooter;
|
||||
|
||||
private BinaryFooter lastData;
|
||||
|
||||
public BinaryStoreStatus(BinaryStore binaryStore) {
|
||||
super(binaryStore);
|
||||
this.binaryStore = binaryStore;
|
||||
}
|
||||
|
||||
public BinaryStoreStatus(BinaryStore binaryStore, BinaryHeader firstHead, BinaryFooter lastFoot,
|
||||
BinaryFooter lastData) {
|
||||
super(binaryStore);
|
||||
this.binaryStore = binaryStore;
|
||||
this.firstHeader = firstHead;
|
||||
this.lastFooter = lastFoot;
|
||||
this.lastData = lastData;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Long getFirstDataTime() {
|
||||
if (firstHeader != null) {
|
||||
return firstHeader.getDataDate();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getLastDataTime() {
|
||||
if (lastData != null) {
|
||||
return lastData.getDataDate();
|
||||
}
|
||||
if (lastFooter != null) {
|
||||
return lastFooter.getDataDate();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the firstHeader
|
||||
*/
|
||||
public BinaryHeader getFirstHeader() {
|
||||
return firstHeader;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param firstHeader the firstHeader to set
|
||||
*/
|
||||
public void setFirstHeader(BinaryHeader firstHeader) {
|
||||
this.firstHeader = firstHeader;
|
||||
if (firstHeader != null) {
|
||||
setFirstDataTime(firstHeader.getDataDate());
|
||||
}
|
||||
else {
|
||||
setFirstDataTime(null);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the lastFooter
|
||||
*/
|
||||
public BinaryFooter getLastFooter() {
|
||||
return lastFooter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param lastFooter the lastFooter to set
|
||||
*/
|
||||
public void setLastFooter(BinaryFooter lastFooter) {
|
||||
this.lastFooter = lastFooter;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the lastData
|
||||
*/
|
||||
public BinaryFooter getLastData() {
|
||||
return lastData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param lastData the lastData to set
|
||||
*/
|
||||
public void setLastData(BinaryFooter lastData) {
|
||||
this.lastData = lastData;
|
||||
if (lastData != null) {
|
||||
setLastDataTime(lastData.getDataDate());
|
||||
}
|
||||
else {
|
||||
setLastDataTime(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getFreeSpace() {
|
||||
return getFreeSpace(binaryStore.getBinaryStoreSettings().getStoreLocation());
|
||||
}
|
||||
|
||||
/**
|
||||
* Looking overall for first header, last footers, etc.
|
||||
* @param blockStatus
|
||||
*/
|
||||
public void considerBlockStatus(BinaryStoreStatus blockStatus) {
|
||||
if (blockStatus == null) {
|
||||
return;
|
||||
}
|
||||
considerFirstHeader(blockStatus.firstHeader);
|
||||
considerLastFooter(blockStatus.lastFooter);
|
||||
considerLastData(blockStatus.lastData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Take a footer for last data with the later date
|
||||
* @param footer
|
||||
*/
|
||||
private void considerLastData(BinaryFooter footer) {
|
||||
if (footer == null || footer.getDataDate() == 0) {
|
||||
return;
|
||||
}
|
||||
if (lastData == null || lastData.getDataDate() == 0) {
|
||||
lastData = footer;
|
||||
}
|
||||
if (footer.getDataDate() > lastData.getDataDate()) {
|
||||
lastData = footer;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Take a footer for last footer with the later date
|
||||
* @param footer
|
||||
*/
|
||||
private void considerLastFooter(BinaryFooter footer) {
|
||||
if (footer == null || footer.getDataDate() == 0) {
|
||||
return;
|
||||
}
|
||||
if (lastFooter == null || lastFooter.getDataDate() == 0) {
|
||||
lastFooter = footer;
|
||||
}
|
||||
if (footer.getDataDate() > lastFooter.getDataDate()) {
|
||||
lastFooter = footer;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Take a header for the first header with the earliest date.
|
||||
* @param header
|
||||
*/
|
||||
private void considerFirstHeader(BinaryHeader header) {
|
||||
if (header == null || header.getDataDate() == 0) {
|
||||
return;
|
||||
}
|
||||
if (this.firstHeader == null || firstHeader.getDataDate() == 0) {
|
||||
this.firstHeader = header;
|
||||
}
|
||||
if (header.getDataDate() < firstHeader.getDataDate()) {
|
||||
firstHeader = header;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
287
src/binaryFileStorage/BinaryStoreStatusFuncs.java
Normal file
287
src/binaryFileStorage/BinaryStoreStatusFuncs.java
Normal file
@ -0,0 +1,287 @@
|
||||
package binaryFileStorage;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.io.comparator.NameFileComparator;
|
||||
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamUtils.PamFileFilter;
|
||||
import PamguardMVC.DataUnitBaseData;
|
||||
import PamguardMVC.PamDataBlock;
|
||||
|
||||
/**
|
||||
* Set of functions used at restarts to determine the status of the binary store.
|
||||
* @author dg50
|
||||
*
|
||||
*/
|
||||
public class BinaryStoreStatusFuncs {
|
||||
|
||||
private BinaryStore binaryStore;
|
||||
|
||||
public BinaryStoreStatusFuncs(BinaryStore binaryStore) {
|
||||
this.binaryStore = binaryStore;
|
||||
}
|
||||
|
||||
public StoreStatus getStoreStatus(boolean getDetail) {
|
||||
BinaryStoreStatus binStoreStatus = new BinaryStoreStatus(binaryStore);
|
||||
binStoreStatus.setStoreStatus(checkStoreStatus());
|
||||
if (getDetail && binStoreStatus.getStoreStatus() == StoreStatus.STATUS_HASDATA) {
|
||||
binStoreStatus = getStoreDetail(binStoreStatus);
|
||||
}
|
||||
return binStoreStatus;
|
||||
}
|
||||
|
||||
private BinaryStoreStatus getStoreDetail(BinaryStoreStatus binStoreStatus) {
|
||||
// go through every stream and find it's first and last data times.
|
||||
long lastTime = Long.MIN_VALUE;
|
||||
long firstTime = Long.MAX_VALUE;
|
||||
ArrayList<PamDataBlock> streams = BinaryStore.getStreamingDataBlocks(true);
|
||||
for (PamDataBlock aBlock : streams) {
|
||||
BinaryDataSource dataSource = aBlock.getBinaryDataSource();
|
||||
if (dataSource == null) {
|
||||
continue;
|
||||
}
|
||||
BinaryStoreStatus blockStatus = getStreamStartEnd(dataSource);
|
||||
if (blockStatus == null) {
|
||||
continue;
|
||||
}
|
||||
binStoreStatus.considerBlockStatus(blockStatus);
|
||||
}
|
||||
|
||||
return binStoreStatus;
|
||||
}
|
||||
|
||||
|
||||
private BinaryStoreStatus getStreamStartEnd(BinaryDataSource dataSource) {
|
||||
String filePrefix = dataSource.createFilenamePrefix();
|
||||
List<File> binFiles = binaryStore.listAllFilesWithPrefix(filePrefix);
|
||||
if (binFiles == null || binFiles.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
Collections.sort(binFiles, NameFileComparator.NAME_COMPARATOR);
|
||||
BinaryHeader firstHead = findFirstHeader(binFiles);
|
||||
BinaryFooter lastFoot = findLastFooter(binFiles);
|
||||
BinaryFooter lastData = findLastData(binFiles);
|
||||
BinaryStoreStatus storeStatus = new BinaryStoreStatus(binaryStore, firstHead, lastFoot, lastData);
|
||||
return storeStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the last footer. This may be in the last file, but may not be if things
|
||||
* crashed and the last file didn't get completed, i nwhich case it will be in
|
||||
* the file before.
|
||||
* @param binFiles
|
||||
* @return
|
||||
*/
|
||||
private BinaryFooter findLastFooter(List<File> binFiles) {
|
||||
for (int i = binFiles.size()-1; i>=0; i--) {
|
||||
File aFile = binFiles.get(i);
|
||||
/*
|
||||
* if the last file was completed correctly, it will have an index file. If there isn't
|
||||
* an index file it's very unlikely there will be a footer in the main file
|
||||
*/
|
||||
File indexFile = binaryStore.findIndexFile(aFile, true);
|
||||
if (indexFile == null) {
|
||||
continue;
|
||||
}
|
||||
BinaryHeaderAndFooter headAndFoot = binaryStore.readHeaderAndFooter(indexFile);
|
||||
if (headAndFoot != null && headAndFoot.binaryFooter != null) {
|
||||
return headAndFoot.binaryFooter;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the last time of any data, whether it's from a header, footer, or actual data.
|
||||
* @param binFiles
|
||||
* @return
|
||||
*/
|
||||
private BinaryFooter findLastData(List<File> binFiles) {
|
||||
for (int i = binFiles.size()-1; i>=0; i--) {
|
||||
File aFile = binFiles.get(i);
|
||||
BinaryFooter bf = findLastData(aFile);
|
||||
if (bf != null) {
|
||||
return bf;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the last data in a file. Hopefully this comes
|
||||
* from the footer, but it might have to look at all data if
|
||||
* the footer is absent or the index file missing.
|
||||
* @param aFile
|
||||
* @return
|
||||
*/
|
||||
public BinaryFooter findLastData(File aFile) {
|
||||
Long lastUID = null;
|
||||
Long lastTime = null;
|
||||
Long firstUID = null;
|
||||
|
||||
File indexFile = binaryStore.findIndexFile(aFile, true);
|
||||
if (indexFile != null) {
|
||||
BinaryHeaderAndFooter headAndFoot = binaryStore.readHeaderAndFooter(indexFile);
|
||||
if (headAndFoot != null && headAndFoot.binaryFooter != null) {
|
||||
return headAndFoot.binaryFooter;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* otherwise it would seem that we've a file without a valid end, so unpack it and
|
||||
* get the UID and time of the last item in the file. Can return these in the form of
|
||||
* a BinaryFooter since it's pretty much the same information needed.
|
||||
*/
|
||||
BinaryInputStream inputStream = new BinaryInputStream(binaryStore, null);
|
||||
try {
|
||||
// need to work through the file now.
|
||||
if (inputStream.openFile(aFile) == false) {
|
||||
return null;
|
||||
};
|
||||
BinaryObjectData binaryObjectData;
|
||||
BinaryHeader bh = inputStream.readHeader();
|
||||
if (bh==null) {
|
||||
inputStream.closeFile();
|
||||
return null;
|
||||
}
|
||||
int inputFormat = bh.getHeaderFormat();
|
||||
while ((binaryObjectData = inputStream.readNextObject(inputFormat)) != null) {
|
||||
if (binaryObjectData.getTimeMilliseconds() != 0) {
|
||||
lastTime = binaryObjectData.getTimeMilliseconds();
|
||||
}
|
||||
BinaryFooter bf;
|
||||
switch (binaryObjectData.getObjectType()) {
|
||||
case BinaryTypes.FILE_FOOTER:
|
||||
// this is unlikely to happen, since we'll probably already have found an index file.
|
||||
bf = new BinaryFooter();
|
||||
if (bf.readFooterData(binaryObjectData.getDataInputStream(), inputFormat)) {
|
||||
if (bf.getDataDate() != 0) {
|
||||
inputStream.closeFile();
|
||||
return bf;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case BinaryTypes.MODULE_HEADER:
|
||||
break;
|
||||
case BinaryTypes.MODULE_FOOTER:
|
||||
break;
|
||||
case BinaryTypes.DATAGRAM:
|
||||
break;
|
||||
default: // should be data.
|
||||
DataUnitBaseData baseData = binaryObjectData.getDataUnitBaseData();
|
||||
if (baseData != null) {
|
||||
if (baseData.getTimeMilliseconds() != 0) {
|
||||
lastTime = baseData.getTimeMilliseconds();
|
||||
}
|
||||
if (baseData.getUID() != 0) {
|
||||
lastUID = baseData.getUID();
|
||||
if (firstUID == null) {
|
||||
firstUID = lastUID;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.out.printf("Corrupt data file %s: %s\n", aFile, e.getMessage());
|
||||
// return null;
|
||||
}
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.closeFile();
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
|
||||
}
|
||||
if (lastTime != null && lastUID != null) {
|
||||
BinaryFooter bf = new BinaryFooter();
|
||||
bf.setHighestUID(lastUID);
|
||||
bf.setLowestUID(firstUID);
|
||||
bf.setDataDate(lastTime);
|
||||
bf.setFileEndReason(BinaryFooter.END_CRASHED);
|
||||
return bf;
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the first header. This can be read from a data file whether or not there was a
|
||||
* valid index file created.
|
||||
* @param binFiles
|
||||
* @return
|
||||
*/
|
||||
private BinaryHeader findFirstHeader(List<File> binFiles) {
|
||||
BinaryHeader binaryHead = new BinaryHeader();
|
||||
DataInputStream dis = null;
|
||||
for (File aFile : binFiles) {
|
||||
try {
|
||||
dis = new DataInputStream(new BufferedInputStream(new FileInputStream(aFile)));
|
||||
}
|
||||
catch (IOException e) {
|
||||
binaryHead = null;
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
dis.close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
|
||||
}
|
||||
}
|
||||
return binaryHead;
|
||||
}
|
||||
|
||||
/**
|
||||
* first simple status check to see if there are any files there at all.
|
||||
*/
|
||||
private int checkStoreStatus() {
|
||||
String currDir = binaryStore.binaryStoreSettings.getStoreLocation();
|
||||
if (currDir == null) {
|
||||
return StoreStatus.STATUS_MISSING;
|
||||
}
|
||||
File currfolder = new File(currDir);
|
||||
if (currfolder.exists() == false) {
|
||||
return StoreStatus.STATUS_MISSING;
|
||||
}
|
||||
// look for files in the folder.
|
||||
boolean hasFiles = hasAnyFiles(currfolder);
|
||||
if (hasFiles) {
|
||||
return StoreStatus.STATUS_HASDATA;
|
||||
}
|
||||
else {
|
||||
return StoreStatus.STATUS_EMPTY;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean hasAnyFiles(File currFolder) {
|
||||
PamFileFilter filefilter = new PamFileFilter("data files", ".pgdf");
|
||||
File[] list = currFolder.listFiles(filefilter);
|
||||
if (list == null) {
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
if (list[i].isDirectory()) {
|
||||
if (hasAnyFiles(list[i])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (list[i].getAbsolutePath().endsWith(".pgdf")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
@ -1086,6 +1086,9 @@ public class ClickControl extends PamControlledUnit implements PamSettings {
|
||||
}
|
||||
|
||||
public ClickDisplayManager getDisplayManager(){
|
||||
if (tabPanelControl == null) {
|
||||
return null;
|
||||
}
|
||||
return tabPanelControl.clickDisplayManager;
|
||||
}
|
||||
|
||||
|
@ -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++) {
|
||||
|
@ -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) {
|
||||
|
@ -19,6 +19,7 @@ import PamController.PamControlledUnitSettings;
|
||||
import PamController.PamController;
|
||||
import PamController.PamSettingManager;
|
||||
import PamController.PamSettings;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamView.PamDetectionOverlayGraphics;
|
||||
import PamView.PamSymbol;
|
||||
import PamguardMVC.PamDataBlock;
|
||||
|
@ -10,6 +10,7 @@ import java.util.List;
|
||||
import com.opencsv.CSVReader;
|
||||
import com.opencsv.exceptions.CsvException;
|
||||
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import d3.calibration.CalFileReader;
|
||||
import d3.calibration.CalibrationInfo;
|
||||
import d3.calibration.CalibrationSet;
|
||||
@ -487,4 +488,5 @@ public class D3Control extends OfflineFileControl {
|
||||
public D3DataPlotProvider getD3DataPlotProvider() {
|
||||
return d3DataPlotProvider;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -45,6 +45,7 @@ import PamController.PamController;
|
||||
import PamController.PamControllerInterface;
|
||||
import PamController.PamSettingManager;
|
||||
import PamController.PamSettings;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamguardMVC.PamDataBlock;
|
||||
import PamguardMVC.PamDataUnit;
|
||||
import PamguardMVC.PamProcess;
|
||||
|
@ -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) {
|
||||
|
@ -17,6 +17,7 @@ import PamController.PamControlledUnitSettings;
|
||||
import PamController.PamController;
|
||||
import PamController.PamSettingManager;
|
||||
import PamController.PamSettings;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamUtils.PamUtils;
|
||||
import PamguardMVC.PamDataBlock;
|
||||
import PamguardMVC.PamProcess;
|
||||
@ -197,5 +198,6 @@ public class BeamformControl extends PamControlledUnit implements PamSettings, O
|
||||
// TODO Auto-generated method stub
|
||||
return beamformProcess;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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");
|
||||
|
@ -18,12 +18,14 @@ import generalDatabase.backup.DatabaseBackupStream;
|
||||
import pamScrollSystem.ViewLoadObserver;
|
||||
import pamViewFX.pamTask.PamTaskUpdate;
|
||||
import PamController.AWTScheduler;
|
||||
import PamController.DataOutputStore;
|
||||
import PamController.OfflineDataStore;
|
||||
import PamController.PamControlledUnit;
|
||||
import PamController.PamController;
|
||||
import PamController.PamControllerInterface;
|
||||
import PamController.PamGUIManager;
|
||||
import PamController.PamSettingManager;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamController.status.ModuleStatus;
|
||||
import PamController.status.QuickRemedialAction;
|
||||
import PamguardMVC.PamDataBlock;
|
||||
@ -39,7 +41,7 @@ import backupmanager.BackupInformation;
|
||||
* @see DBControl
|
||||
*
|
||||
*/
|
||||
public class DBControlUnit extends DBControl implements OfflineDataStore {
|
||||
public class DBControlUnit extends DBControl implements DataOutputStore {
|
||||
|
||||
|
||||
|
||||
@ -492,5 +494,15 @@ public class DBControlUnit extends DBControl implements OfflineDataStore {
|
||||
return backupInformation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoreStatus getStoreStatus(boolean getDetail) {
|
||||
return getDbProcess().getStoreStatus(this, getDetail);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteDataFrom(long timeMillis) {
|
||||
return getDbProcess().deleteDataFrom(timeMillis);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,9 @@
|
||||
package generalDatabase;
|
||||
|
||||
import generalDatabase.ColumnMetaData.METACOLNAMES;
|
||||
import generalDatabase.clauses.FixedClause;
|
||||
import generalDatabase.clauses.FromClause;
|
||||
import generalDatabase.clauses.PAMSelectClause;
|
||||
import generalDatabase.pamCursor.PamCursor;
|
||||
import generalDatabase.ucanAccess.UCanAccessSystem;
|
||||
|
||||
@ -14,6 +17,7 @@ import java.io.InputStreamReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DatabaseMetaData;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.sql.SQLException;
|
||||
@ -21,6 +25,7 @@ import java.sql.SQLWarning;
|
||||
import java.sql.Statement;
|
||||
import java.sql.Types;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.JFileChooser;
|
||||
import javax.swing.JFrame;
|
||||
@ -39,6 +44,7 @@ import loggerForms.formdesign.FormEditor;
|
||||
import PamController.PamControlledUnit;
|
||||
import PamController.PamController;
|
||||
import PamController.PamFolders;
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
import PamUtils.PamCalendar;
|
||||
import PamUtils.PamFileChooser;
|
||||
import PamView.dialog.warn.WarnOnce;
|
||||
@ -1435,4 +1441,141 @@ public class DBProcess extends PamProcess {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the store status for use with pre-process checks.
|
||||
* @param getDetail get full details of start and end times.
|
||||
* @return database store status.
|
||||
*/
|
||||
public StoreStatus getStoreStatus(DBControlUnit dbControlUnit, boolean getDetail) {
|
||||
DatabaseStoreStatus dbStoreStatus = new DatabaseStoreStatus(dbControlUnit);
|
||||
// and work out if any tables have anything in them already ...
|
||||
int status = 0;
|
||||
if (dbControlUnit.getConnection() == null) {
|
||||
status = StoreStatus.STATUS_MISSING;
|
||||
}
|
||||
else {
|
||||
boolean anyData = hasAnyOutputData();
|
||||
if (anyData) {
|
||||
status = StoreStatus.STATUS_HASDATA;
|
||||
}
|
||||
else {
|
||||
status = StoreStatus.STATUS_EMPTY;
|
||||
}
|
||||
}
|
||||
if (status == StoreStatus.STATUS_HASDATA && getDetail) {
|
||||
getStoreLimits(dbStoreStatus);
|
||||
}
|
||||
dbStoreStatus.setStoreStatus(status);
|
||||
return dbStoreStatus;
|
||||
}
|
||||
|
||||
private void getStoreLimits(DatabaseStoreStatus dbStoreStatus) {
|
||||
ArrayList<PamDataBlock> allDataBlocks = PamController.getInstance().getDataBlocks();
|
||||
PamTableDefinition tableDefinition;
|
||||
SQLLogging logging;
|
||||
|
||||
// for each datablock, check that the process can log (ignoring GPS process)
|
||||
for (int i = 0; i < allDataBlocks.size(); i++) {
|
||||
PamDataBlock aBlock = allDataBlocks.get(i);
|
||||
logging = aBlock.getLogging();
|
||||
if (logging == null) {
|
||||
continue;
|
||||
}
|
||||
if (aBlock.getMixedDirection() != PamDataBlock.MIX_INTODATABASE) {
|
||||
continue; // don't want things like GPS data.
|
||||
}
|
||||
getStoreLimits(aBlock, dbStoreStatus);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get first and last records for a table.
|
||||
* @param aBlock
|
||||
* @param dbStoreStatus
|
||||
*/
|
||||
private void getStoreLimits(PamDataBlock aBlock, DatabaseStoreStatus dbStoreStatus) {
|
||||
// TODO Auto-generated method stub
|
||||
SQLLogging logging = aBlock.getLogging();
|
||||
PamConnection con = databaseControll.getConnection();
|
||||
SQLTypes sqlTypes = con.getSqlTypes();
|
||||
String q1 = String.format("SELECT MIN(UTC) FROM %s",sqlTypes.formatTableName(logging.getTableDefinition().getTableName()));
|
||||
Long t = getUTC(con, q1);
|
||||
dbStoreStatus.testFirstDataTime(t);
|
||||
String q2 = String.format("SELECT MAX(UTC) FROM %s",sqlTypes.formatTableName(logging.getTableDefinition().getTableName()));
|
||||
Long t2 = getUTC(con, q2);
|
||||
dbStoreStatus.testLastDataTime(t2);
|
||||
}
|
||||
|
||||
private Long getUTC(PamConnection con, String qStr) {
|
||||
|
||||
Object utcObject = null;
|
||||
try {
|
||||
PreparedStatement stmt = con.getConnection().prepareStatement(qStr);
|
||||
ResultSet result = stmt.executeQuery();
|
||||
if (result.next()) {
|
||||
utcObject = result.getObject(1);
|
||||
|
||||
}
|
||||
result.close();
|
||||
stmt.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
if (utcObject == null) {
|
||||
return null;
|
||||
}
|
||||
Long millis = SQLTypes.millisFromTimeStamp(utcObject);
|
||||
return millis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is there any data in any output tables ?
|
||||
* @return
|
||||
*/
|
||||
private boolean hasAnyOutputData() {
|
||||
ArrayList<PamDataBlock> allDataBlocks = PamController.getInstance().getDataBlocks();
|
||||
PamTableDefinition tableDefinition;
|
||||
SQLLogging logging;
|
||||
|
||||
// for each datablock, check that the process can log (ignoring GPS process)
|
||||
for (int i = 0; i < allDataBlocks.size(); i++) {
|
||||
PamDataBlock aBlock = allDataBlocks.get(i);
|
||||
logging = aBlock.getLogging();
|
||||
if (logging == null) {
|
||||
continue;
|
||||
}
|
||||
if (aBlock.getMixedDirection() != PamDataBlock.MIX_INTODATABASE) {
|
||||
continue; // don't want things like GPS data.
|
||||
}
|
||||
// get a record count.
|
||||
Integer count = logging.countTableItems(null);
|
||||
if (count != null && count > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean deleteDataFrom(long timeMillis) {
|
||||
ArrayList<PamDataBlock> allDataBlocks = PamController.getInstance().getDataBlocks();
|
||||
PamTableDefinition tableDefinition;
|
||||
SQLLogging logging;
|
||||
|
||||
// for each datablock, check that the process can log (ignoring GPS process)
|
||||
boolean ok = true;
|
||||
for (int i = 0; i < allDataBlocks.size(); i++) {
|
||||
PamDataBlock aBlock = allDataBlocks.get(i);
|
||||
logging = aBlock.getLogging();
|
||||
if (logging == null) {
|
||||
continue;
|
||||
}
|
||||
PAMSelectClause clause = new FromClause(timeMillis);
|
||||
ok &= logging.deleteData(clause);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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 {
|
||||
|
43
src/generalDatabase/DatabaseStoreStatus.java
Normal file
43
src/generalDatabase/DatabaseStoreStatus.java
Normal file
@ -0,0 +1,43 @@
|
||||
package generalDatabase;
|
||||
|
||||
import PamController.fileprocessing.StoreStatus;
|
||||
|
||||
public class DatabaseStoreStatus extends StoreStatus {
|
||||
|
||||
private DBControlUnit dbControl;
|
||||
|
||||
public DatabaseStoreStatus(DBControlUnit dbControl) {
|
||||
super(dbControl);
|
||||
this.dbControl = dbControl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getFreeSpace() {
|
||||
String name = dbControl.getDatabaseName(); // may not have the path, which is what we need.
|
||||
return getFreeSpace(name); // this may not work, particularly for server based systems.
|
||||
}
|
||||
|
||||
public void testFirstDataTime(Long t) {
|
||||
if (t == null) {
|
||||
return;
|
||||
}
|
||||
if (getFirstDataTime() == null) {
|
||||
setFirstDataTime(t);
|
||||
}
|
||||
if (t < getFirstDataTime()) {
|
||||
setFirstDataTime(t);
|
||||
}
|
||||
}
|
||||
public void testLastDataTime(Long t) {
|
||||
if (t == null) {
|
||||
return;
|
||||
}
|
||||
if (getLastDataTime() == null) {
|
||||
setLastDataTime(t);
|
||||
}
|
||||
if (t > getLastDataTime()) {
|
||||
setLastDataTime(t);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -13,7 +13,7 @@ import PamUtils.PamCalendar;
|
||||
* tables. Also used to prepare Sql statements for writing and
|
||||
* reading back data.
|
||||
*
|
||||
* I did a bit of redifining what columns are used for on 4 Oct, 2012.
|
||||
* I did a bit of redefining what columns are used for on 4 Oct, 2012.
|
||||
* PCLocalTime was a UTC time from the PC of the time analysis took place.
|
||||
* When running in real time, this would be the same as the data in the UTC column
|
||||
* (give or take the odd second for data to get through the system). I've now defined
|
||||
|
@ -225,7 +225,10 @@ public class PamTableItem implements Cloneable {
|
||||
// }
|
||||
|
||||
public String getDeblankedStringValue() {
|
||||
if (sqlType != Types.CHAR || value == null) {
|
||||
// if (sqlType != Types.CHAR || value == null) {
|
||||
// return null;
|
||||
// }
|
||||
if (value instanceof String == false) {
|
||||
return null;
|
||||
}
|
||||
return ((String) value).trim();
|
||||
@ -485,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;
|
||||
|
@ -635,11 +635,20 @@ public abstract class SQLLogging {
|
||||
if (pamConn == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
SQLTypes sqlTypes = pamConn.getSqlTypes();
|
||||
//the clause contains 'WHERE' so it's possible to make a null one.
|
||||
String qStr = String.format("SELECT COUNT(%s.Id) FROM %s %s",
|
||||
String qStr;
|
||||
if (pamViewParameters == null) {
|
||||
qStr = String.format("SELECT COUNT(Id) FROM %s",
|
||||
pamTableDefinition.getTableName());
|
||||
}
|
||||
else {
|
||||
qStr = String.format("SELECT COUNT(%s.Id) FROM %s %s",
|
||||
pamTableDefinition.getTableName(),
|
||||
pamTableDefinition.getTableName(),
|
||||
pamViewParameters.getSelectClause(sqlTypes));
|
||||
}
|
||||
int count = 0;
|
||||
try {
|
||||
PreparedStatement stmt = pamConn.getConnection().prepareStatement(qStr);
|
||||
|
@ -103,7 +103,10 @@ public class SqliteSystem extends DBSystem implements PamSettings {
|
||||
if (commandName == null) {
|
||||
return;
|
||||
}
|
||||
setDatabaseName(commandName);
|
||||
File commandFile = new File(commandName);
|
||||
// check the file end is of the right type. Some batch systems may not get this right.
|
||||
commandFile = PamFileFilter.checkFileEnd(commandFile, "sqlite3", true);
|
||||
setDatabaseName(commandFile.getAbsolutePath());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -276,7 +279,9 @@ public class SqliteSystem extends DBSystem implements PamSettings {
|
||||
{
|
||||
if(connection != null){
|
||||
// if (USEAUTOCOMMIT == false) {
|
||||
if (connection.getConnection().getAutoCommit()) {
|
||||
connection.getConnection().commit();
|
||||
}
|
||||
// }
|
||||
connection.getConnection().close();
|
||||
}
|
||||
@ -303,6 +308,30 @@ public class SqliteSystem extends DBSystem implements PamSettings {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkDatabaseExists(String dbName) {
|
||||
String commandName = GlobalArguments.getParam(DBControl.GlobalDatabaseNameArg);
|
||||
if (commandName != null) {
|
||||
return checkCommandLineDatabase();
|
||||
}
|
||||
return super.checkDatabaseExists(dbName);
|
||||
}
|
||||
|
||||
private boolean checkCommandLineDatabase() {
|
||||
String commandName = GlobalArguments.getParam(DBControl.GlobalDatabaseNameArg);
|
||||
if (commandName == null) {
|
||||
return false;
|
||||
}
|
||||
File dbFile = new File(commandName);
|
||||
dbFile = PamFileFilter.checkFileEnd(dbFile, ".sqlite3", true);
|
||||
commandName = dbFile.getAbsolutePath();
|
||||
if (dbFile.exists() == false) {
|
||||
// create a new database without asking.
|
||||
createNewDatabase(commandName);
|
||||
}
|
||||
return dbFile.exists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDatabaseName() {
|
||||
/*
|
||||
@ -311,6 +340,9 @@ public class SqliteSystem extends DBSystem implements PamSettings {
|
||||
*/
|
||||
String commandName = GlobalArguments.getParam(DBControl.GlobalDatabaseNameArg);
|
||||
if (commandName != null) {
|
||||
File dbFile = new File(commandName);
|
||||
dbFile = PamFileFilter.checkFileEnd(dbFile, ".sqlite3", true);
|
||||
commandName = dbFile.getAbsolutePath();
|
||||
return commandName;
|
||||
}
|
||||
|
||||
|
@ -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]);
|
||||
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;
|
||||
|
@ -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),
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
@ -45,6 +47,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;
|
||||
private boolean initialisationComplete = false;
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -452,7 +481,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 +494,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 +542,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;
|
||||
|
@ -127,7 +127,8 @@ public class NIFilePlayback implements FilePlaybackDevice, PamSettings {
|
||||
|
||||
@Override
|
||||
public boolean preparePlayback(PlaybackParameters playbackParameters) {
|
||||
if (niDeviceLUT == null || niDeviceLUT.length <= playbackParameters.deviceNumber) {
|
||||
if (niDeviceLUT == null || niDeviceLUT.length <= playbackParameters.deviceNumber
|
||||
|| playbackParameters.deviceNumber < 0) {
|
||||
return false;
|
||||
}
|
||||
int bn = niDeviceLUT[playbackParameters.deviceNumber];
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -22,8 +22,6 @@ import dataMap.OfflineDataMapPoint;
|
||||
*/
|
||||
public class DataCopyTask<T extends PamDataUnit> extends OfflineTask<T> {
|
||||
|
||||
private PamDataBlock<T> pamDataBlock;
|
||||
|
||||
private SQLLogging sqlLogging;
|
||||
|
||||
private BinaryDataSource binaryDataSource;
|
||||
@ -40,7 +38,6 @@ public class DataCopyTask<T extends PamDataUnit> extends OfflineTask<T> {
|
||||
*/
|
||||
public DataCopyTask(PamDataBlock<T> pamDataBlock) {
|
||||
super(pamDataBlock);
|
||||
this.pamDataBlock = pamDataBlock;
|
||||
this.sqlLogging = pamDataBlock.getLogging();
|
||||
this.binaryDataSource = pamDataBlock.getBinaryDataSource();
|
||||
setParentDataBlock(pamDataBlock);
|
||||
@ -77,7 +74,7 @@ public class DataCopyTask<T extends PamDataUnit> extends OfflineTask<T> {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Copy " + pamDataBlock.getDataName() + " To database";
|
||||
return "Copy " + getDataBlock().getDataName() + " To database";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -458,5 +458,4 @@ public abstract class OfflineTask<T extends PamDataUnit> {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -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";
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ import PamController.PamGUIManager;
|
||||
import PamController.PamSettingManager;
|
||||
import PamController.PamguardVersionInfo;
|
||||
import PamController.pamBuoyGlobals;
|
||||
import PamController.fileprocessing.ReprocessStoreChoice;
|
||||
import PamModel.SMRUEnable;
|
||||
import PamUtils.FileFunctions;
|
||||
import PamUtils.PamExceptionHandler;
|
||||
@ -42,6 +43,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;
|
||||
@ -123,6 +125,7 @@ public class Pamguard {
|
||||
String InputPsf = "NULL";
|
||||
|
||||
|
||||
|
||||
// set up the system to output to both a log file and the console window. Also
|
||||
// set up a monitor to check for the size of the folder every hour - if it gets
|
||||
// too big, just stop logging the messages
|
||||
@ -136,6 +139,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,22 +220,25 @@ public class Pamguard {
|
||||
}
|
||||
else if (anArg.equalsIgnoreCase("-nogui")) {
|
||||
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);
|
||||
}
|
||||
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")) {
|
||||
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 multicast 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 +246,56 @@ 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(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(ReprocessStoreChoice.paramName)) {
|
||||
String arg = args[iArg++];
|
||||
ReprocessStoreChoice choice = ReprocessStoreChoice.valueOf(arg);
|
||||
if (choice == null) {
|
||||
String warn = String.format("Reprocessing storage input parameter %s value \"%s\" is not a recognised value", ReprocessStoreChoice.paramName, arg);
|
||||
WarnOnce.showWarning("Invalid input parameter", warn, WarnOnce.WARNING_MESSAGE);
|
||||
}
|
||||
GlobalArguments.setParam(ReprocessStoreChoice.paramName, arg);
|
||||
}
|
||||
else if (anArg.equalsIgnoreCase("-help")) {
|
||||
System.out.println("--PamGuard Help");
|
||||
|
@ -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();
|
||||
|
@ -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) {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user