mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2024-11-22 07:02:29 +00:00
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 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 … Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> commit30793b55b0
Merge:abc33adb
63cc66a4
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Oct 21 11:11:03 2022 +0100 Merge pull request #26 from PAMGuard/main Merge from DG (#76) commitabc33adbfd
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Oct 21 11:09:35 2022 +0100 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. commit0029fbb1c1
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Oct 18 17:02:49 2022 +0100 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. commit15d4468a0e
Merge:68271501
e4faed5c
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Oct 4 11:19:37 2022 +0100 Merge pull request #25 from PAMGuard/main Merge changes from main commit682715018f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 30 14:49:33 2022 +0100 couple of final neatenings up of CTD commitde809b6572
Merge:cc003c16
4015461f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 30 14:24:34 2022 +0100 Merge pull request #24 from PAMGuard/main Fixes to click train detector (#73) commitcc003c167a
Merge:55cd735e
149dfab2
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 30 14:10:59 2022 +0100 Merge pull request #23 from PAMGuard/main Work on bug fixes in CTD classifier (#72) commit55cd735ec3
Merge:f899d01a
91a704b0
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 30 09:55:32 2022 +0100 Merge pull request #22 from PAMGuard/main merge main commitf899d01a41
Merge:83f1343b
fccc0a71
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 29 14:55:24 2022 +0100 Merge pull request #21 from PAMGuard/main Work on bug fixes in CTD classifier commit83f1343b02
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Sep 29 14:54:52 2022 +0100 Work on bug fixes in CTD classifier commit481315187f
Merge:570479ef
5983f30d
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Sep 27 16:57:54 2022 +0100 Merge pull request #20 from PAMGuard/main Get CTD bug fix commit570479efcf
Merge:ec4082eb
cf4c97a2
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Sep 23 11:47:13 2022 +0100 Merge pull request #19 from PAMGuard/main CTD Data Selector fixes (#66)
This commit is contained in:
parent
403ed74c26
commit
793ac96576
1
.gitignore
vendored
1
.gitignore
vendored
@ -40,4 +40,3 @@ settings.xml
|
|||||||
.classpath
|
.classpath
|
||||||
.classpath
|
.classpath
|
||||||
.classpath
|
.classpath
|
||||||
.project
|
|
||||||
|
495
README.html
495
README.html
@ -15,12 +15,12 @@
|
|||||||
@font-face
|
@font-face
|
||||||
{font-family:"Calibri Light";
|
{font-family:"Calibri Light";
|
||||||
panose-1:2 15 3 2 2 2 4 3 2 4;}
|
panose-1:2 15 3 2 2 2 4 3 2 4;}
|
||||||
@font-face
|
|
||||||
{font-family:Tahoma;
|
|
||||||
panose-1:2 11 6 4 3 5 4 4 2 4;}
|
|
||||||
@font-face
|
@font-face
|
||||||
{font-family:Cambria;
|
{font-family:Cambria;
|
||||||
panose-1:2 4 5 3 5 4 6 3 2 4;}
|
panose-1:2 4 5 3 5 4 6 3 2 4;}
|
||||||
|
@font-face
|
||||||
|
{font-family:Tahoma;
|
||||||
|
panose-1:2 11 6 4 3 5 4 4 2 4;}
|
||||||
/* Style Definitions */
|
/* Style Definitions */
|
||||||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||||||
{margin-top:0cm;
|
{margin-top:0cm;
|
||||||
@ -388,7 +388,10 @@ PamguardBeta_ViewerMode.exe):</p>
|
|||||||
|
|
||||||
<h1><a name="_LATEST_VERSION_2.02.03"></a><em><span style='font-size:12.0pt;
|
<h1><a name="_LATEST_VERSION_2.02.03"></a><em><span style='font-size:12.0pt;
|
||||||
font-family:"Cambria",serif;font-style:normal'><a
|
font-family:"Cambria",serif;font-style:normal'><a
|
||||||
href="#_Latest_Version_2.02.05">LATEST VERSION 2.02.05 October 2022</a></span></em></h1>
|
href="#_Latest_Version_2.02.06">LATEST VERSION 2.02.06 November 2022</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.05">Version 2.02.05 October 2022</a></span></em></h1>
|
||||||
|
|
||||||
<h1><em><span style='font-size:12.0pt;font-family:"Cambria",serif;font-style:
|
<h1><em><span style='font-size:12.0pt;font-family:"Cambria",serif;font-style:
|
||||||
normal'><a href="#_Latest_Version_2.02.03_2">Version 2.02.03 February 2022</a></span></em></h1>
|
normal'><a href="#_Latest_Version_2.02.03_2">Version 2.02.03 February 2022</a></span></em></h1>
|
||||||
@ -443,8 +446,34 @@ 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><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><span
|
<h1><a name="_Latest_Version_2.02.03_1"></a><a name="_Latest_Version_2.02.05"></a><a
|
||||||
lang=EN-US>Latest Version 2.02.05 October 2022</span></h1>
|
name="_Latest_Version_2.02.06"></a><span lang=EN-US>Latest Version 2.02.06
|
||||||
|
November 2022</span></h1>
|
||||||
|
|
||||||
|
<h2><span lang=EN-US>Bug Fixes</span></h2>
|
||||||
|
|
||||||
|
<p class=MsoNormal><span lang=EN-US>Two memory leaks:</span></p>
|
||||||
|
|
||||||
|
<p class=MsoNormal><span lang=EN-US>A memory leak has been found which seems to
|
||||||
|
mostly occur in Viewer mode. Some data on background noise measurements are not
|
||||||
|
being cleared from memory, so memory will eventually run out. This could happen
|
||||||
|
after browsing a lot of data, but was most likely when reprocessing files
|
||||||
|
offline, for example running click classifiers. This is now fixed. </span></p>
|
||||||
|
|
||||||
|
<p class=MsoNormal><span lang=EN-US>Also fixed a memory leak in the ROCCA
|
||||||
|
whistle classification module.</span></p>
|
||||||
|
|
||||||
|
<h2><span lang=EN-US>New Features</span></h2>
|
||||||
|
|
||||||
|
<p class=MsoNormal><span lang=EN-US>SoundTrap SUD file reading. If you’re using
|
||||||
|
SoundTrap autonomous recorders from Ocean Instruments, you no longer need to
|
||||||
|
decompress the SoundTrap files prior to processing. This will save time and a
|
||||||
|
lot of disk space. Extraction of clicks from the inbuilt SoundTrap Click
|
||||||
|
detector can also happen while processing SUD file data with other detectors,
|
||||||
|
thereby streamlining the whole processing chain. Read the online Help for
|
||||||
|
details. </span></p>
|
||||||
|
|
||||||
|
<h1><span lang=EN-US>Version 2.02.05 October 2022</span></h1>
|
||||||
|
|
||||||
<h2><span lang=EN-US>Click Train Detector Features and Bug Fixes</span></h2>
|
<h2><span lang=EN-US>Click Train Detector Features and Bug Fixes</span></h2>
|
||||||
|
|
||||||
@ -453,16 +482,16 @@ lang=EN-US>Latest Version 2.02.05 October 2022</span></h1>
|
|||||||
<p class=MsoNormal><span lang=EN-US>Changes to GUI to make dialog shorter for
|
<p class=MsoNormal><span lang=EN-US>Changes to GUI to make dialog shorter for
|
||||||
low DPI screens. </span></p>
|
low DPI screens. </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Complete rewrite of the classification system
|
<p class=MsoNormal><span lang=EN-US>Complete rewrite of the classification
|
||||||
to have nested classifiers which can be enabled or disabled. </span></p>
|
system to have nested classifiers which can be enabled or disabled. </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Changes to classification GUI to
|
<p class=MsoNormal><span lang=EN-US>Changes to classification GUI to
|
||||||
accommodate the new classification system.</span></p>
|
accommodate the new classification system.</span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Addition of data selectors to the minimum
|
<p class=MsoNormal><span lang=EN-US>Addition of data selectors to the minimum number
|
||||||
number of clicks accepted by the classifier. This allows the click-by-click
|
of clicks accepted by the classifier. This allows the click-by-click classifier
|
||||||
classifier and the click train detector to be used to together to improve
|
and the click train detector to be used to together to improve classification
|
||||||
classification accuracy. </span></p>
|
accuracy. </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><b><span lang=EN-US>Bug fixes</span></b></p>
|
<p class=MsoNormal><b><span lang=EN-US>Bug fixes</span></b></p>
|
||||||
|
|
||||||
@ -499,9 +528,9 @@ audio files. </span></p>
|
|||||||
|
|
||||||
<h2><span lang=EN-US>Bug Fixes</span></h2>
|
<h2><span lang=EN-US>Bug Fixes</span></h2>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Soundtrap DWV import. Will now generate binary
|
<p class=MsoNormal><span lang=EN-US>Soundtrap DWV import. Will now generate
|
||||||
files even if DWV file doesnt exist (which is correct behavior in quiet
|
binary files even if DWV file doesnÂ’t exist (which is correct behavior in
|
||||||
conditions when no clicks were detected). </span></p>
|
quiet conditions when no clicks were detected). </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Spectrogram. Changes to stop occasional
|
<p class=MsoNormal><span lang=EN-US>Spectrogram. Changes to stop occasional
|
||||||
crashing when restarting processing of wav files. </span></p>
|
crashing when restarting processing of wav files. </span></p>
|
||||||
@ -535,8 +564,8 @@ running in real time. Added template names based on file names. </p>
|
|||||||
<p class=MsoNormal>#13 Merging files when offline processing file folders: Had
|
<p class=MsoNormal>#13 Merging files when offline processing file folders: Had
|
||||||
an error introduced in last release which caused it to fail to recognise gaps
|
an error introduced in last release which caused it to fail to recognise gaps
|
||||||
between files, meaning that some output data (i.e. after a gap) would have an
|
between files, meaning that some output data (i.e. after a gap) would have an
|
||||||
incorrect time stamp. This did not affect data if the merge contiguous files
|
incorrect time stamp. This did not affect data if the ‘merge contiguous
|
||||||
option was not selected. </p>
|
files’ option was not selected. </p>
|
||||||
|
|
||||||
<p class=MsoNormal>#14 Logger forms data were not plotting correctly. This was
|
<p class=MsoNormal>#14 Logger forms data were not plotting correctly. This was
|
||||||
due to the required data selection functions not being fully implemented. This
|
due to the required data selection functions not being fully implemented. This
|
||||||
@ -609,10 +638,10 @@ href="http://www.pamguard.org/downloads.php?cat_id=3">here</a>.</p>
|
|||||||
<p class=MsoNormal><b><span lang=EN-US>Detection Group Localiser</span></b><span
|
<p class=MsoNormal><b><span lang=EN-US>Detection Group Localiser</span></b><span
|
||||||
lang=EN-US> </span></p>
|
lang=EN-US> </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal>This module has been renamed Detection Grouper, so as to
|
<p class=MsoNormal>This module has been renamed “Detection Grouper”, so
|
||||||
avoid confusion with the Group 3D localizer. This is because the Detection
|
as to avoid confusion with the Group 3D localizer. This is because the
|
||||||
Grouper is more for organizing data into groups to be localized than it is for
|
Detection Grouper is more for organizing data into groups to be localized than
|
||||||
doing localization.</p>
|
it is for doing localization.</p>
|
||||||
|
|
||||||
<p class=MsoNormal><b><span lang=EN-US>Minor Bug Fixes</span></b><span
|
<p class=MsoNormal><b><span lang=EN-US>Minor Bug Fixes</span></b><span
|
||||||
lang=EN-US> </span></p>
|
lang=EN-US> </span></p>
|
||||||
@ -672,13 +701,13 @@ Implemented a Backup Manager for backing up multiple types of data to multiple
|
|||||||
locations] </p>
|
locations] </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Upgrades to how PAMGuard lets the user enter custom date formats in the Sound
|
lang=EN-US> </span>Upgrades to how PAMGuard lets the user enter custom date
|
||||||
Acquisition dialog </p>
|
formats in the Sound Acquisition dialog </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>7. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>7. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Extended XML-output support to all of the modules </p>
|
lang=EN-US> </span>Extended XML-output support to all of the modules </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>8. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>8. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -690,8 +719,8 @@ lang=EN-US> </span>Upgrades to the Symbol Manager framework, to give more
|
|||||||
control over colours and symbols </p>
|
control over colours and symbols </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>10. </span><span
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Added an option to hide the ship on the map </p>
|
lang=EN-US> </span>Added an option to hide the ship on the map </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>11. </span><span
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -720,9 +749,9 @@ decimating/upsampling by a non-integer amount </p>
|
|||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>16. </span><span
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
Noise Level Outputs - as an aid to performance diagnosis, some detectors
|
Noise Level Outputs - as an aid to performance diagnosis, some detectors
|
||||||
(currently the GPL, Click Detector and Whistle and Moan Detector) are outputting
|
(currently the GPL, Click Detector and Whistle and Moan Detector) are
|
||||||
additional noise metrics to their binary output files. These can be read with
|
outputting additional noise metrics to their binary output files. These can be
|
||||||
the <a href="https://sourceforge.net/projects/pamguard/files/Matlab/">PAMGuard
|
read with the <a href="https://sourceforge.net/projects/pamguard/files/Matlab/">PAMGuard
|
||||||
Matlab library</a> and used to diagnose system performance in varying noise
|
Matlab library</a> and used to diagnose system performance in varying noise
|
||||||
conditions. Improved displays within PAMGuard for these noise metrics will be
|
conditions. Improved displays within PAMGuard for these noise metrics will be
|
||||||
included in a future release. </p>
|
included in a future release. </p>
|
||||||
@ -730,10 +759,10 @@ included in a future release. </p>
|
|||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>17. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>17. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
An implementation of the Generalized Power Law Detector, developed by Tyler
|
An implementation of the Generalized Power Law Detector, developed by Tyler
|
||||||
Helble ([Helble et al., A generalized power-law detection algorithm for humpback
|
Helble ([Helble et al., ‘A generalized power-law detection algorithm for
|
||||||
whale vocalizations, The Journal of the Acoustical Society of America, vol.
|
humpback whale vocalizations’, The Journal of the Acoustical Society of
|
||||||
131, no. 4, pp. 26822699, 2012) is now available. For details, see the online
|
America, vol. 131, no. 4, pp. 2682–2699, 2012) is now available. For
|
||||||
help </p>
|
details, see the online help </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>18. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>18. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -755,10 +784,10 @@ Version 2.00.10</a> before proceeding with installation and use of this
|
|||||||
version.</b></p>
|
version.</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 13
|
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 13
|
||||||
(release 13.0.1). PSFX files generated in previous beta releases (2.xx.xx) should
|
(release 13.0.1). PSFX files generated in previous beta releases (2.xx.xx)
|
||||||
be compatible with this version, and vice-versa. PSF files generated in core
|
should be compatible with this version, and vice-versa. PSF files generated in
|
||||||
releases (1.15.xx) can be loaded in this version, but will be converted to PSFX
|
core releases (1.15.xx) can be loaded in this version, but will be converted to
|
||||||
files when PAMGuard exits.</p>
|
PSFX files when PAMGuard exits.</p>
|
||||||
|
|
||||||
<p class=MsoNormal><b><span lang=EN-US>Bug Fixes</span></b></p>
|
<p class=MsoNormal><b><span lang=EN-US>Bug Fixes</span></b></p>
|
||||||
|
|
||||||
@ -841,8 +870,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
Added logger form annotation to Spectrogram Annotation module. </p>
|
Added logger form annotation to Spectrogram Annotation module. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Better auto-scaling in Ishmael Detector graphics window. </p>
|
lang=EN-US> </span>Better auto-scaling in Ishmael Detector graphics window. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>7. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>7. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -969,8 +998,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Add functionality for bluetooth headsets. </p>
|
lang=EN-US> </span>Add functionality for bluetooth headsets. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
@ -1040,11 +1069,10 @@ placement, etc.</p>
|
|||||||
<h1><a name="_Latest_Beta_Version_2.01.03"></a><span lang=EN-US>Version 2.01.03
|
<h1><a name="_Latest_Beta_Version_2.01.03"></a><span lang=EN-US>Version 2.01.03
|
||||||
February 2020</span></h1>
|
February 2020</span></h1>
|
||||||
|
|
||||||
<p class=MsoNormal><b>If you are upgrading from a PAMGuard core release
|
<p class=MsoNormal><b>If you are upgrading from a PAMGuard core release (1.15.xx),
|
||||||
(1.15.xx), PAMGuard Version 2 contains major updates. You should read and
|
PAMGuard Version 2 contains major updates. You should read and understand the
|
||||||
understand the notes listed for <a href="#_Latest_Beta_Version_2.00.10">Beta
|
notes listed for <a href="#_Latest_Beta_Version_2.00.10">Beta Version 2.00.10</a>
|
||||||
Version 2.00.10</a> before proceeding with installation and use of this
|
before proceeding with installation and use of this version.</b></p>
|
||||||
version.</b></p>
|
|
||||||
|
|
||||||
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 13
|
<p class=MsoNormal>This version of PAMGuard has been bundled with Java 13
|
||||||
(release 13.0.1). PSFX files generated in previous beta releases (2.xx.xx)
|
(release 13.0.1). PSFX files generated in previous beta releases (2.xx.xx)
|
||||||
@ -1068,9 +1096,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
Bug 435. Logger forms subtabs not working.</p>
|
Bug 435. Logger forms subtabs not working.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Bug 436. Bug in Serial Port interface was occassionally causing PAMGuard to
|
lang=EN-US> </span>Bug 436. Bug in Serial Port interface was occassionally
|
||||||
crash without error message.</p>
|
causing PAMGuard to crash without error message.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -1094,13 +1122,14 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
Bug 441. Plot coordinate calculations incorrect in PamAxis.</p>
|
Bug 441. Plot coordinate calculations incorrect in PamAxis.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>10. </span><span
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Bug 442. BT Display does not change click symbol color when Colour By
|
lang=EN-US> </span>Bug 442. BT Display does not change click symbol color when
|
||||||
Superdetection is selected.</p>
|
Colour By Superdetection is selected.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>11. </span><span
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Bug 443. NI playback crashing immediately if a device is not present.</p>
|
lang=EN-US> </span>Bug 443. NI playback crashing immediately if a device is not
|
||||||
|
present.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>12. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>12. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -1149,13 +1178,13 @@ Added option in Sound Acquisition settings dialog to override filename time
|
|||||||
stamp and use PC local time instead. </p>
|
stamp and use PC local time instead. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Add option to Whistle & Moan Detector data selector to only display
|
lang=EN-US> </span>Add option to Whistle & Moan Detector data selector to
|
||||||
whistles that have super-detections. </p>
|
only display whistles that have super-detections. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Functionality to clone hydrophone streamers. </p>
|
lang=EN-US> </span>Functionality to clone hydrophone streamers. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -1183,9 +1212,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
Added a few new options to the Click Detector Sweep Classifier. </p>
|
Added a few new options to the Click Detector Sweep Classifier. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>10. </span><span
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Add option to the Map module's Plot Overlay Options dialog, to show events
|
lang=EN-US> </span>Add option to the Map module's Plot Overlay Options dialog,
|
||||||
occuring in the future (<em><span style='font-family:"Calibri",sans-serif'>look
|
to show events occuring in the future (<em><span style='font-family:"Calibri",sans-serif'>look
|
||||||
ahead</span></em>) instead of the default display of events which have already
|
ahead</span></em>) instead of the default display of events which have already
|
||||||
occurred. Can make it easier to match up the map with clicks seen in the Click
|
occurred. Can make it easier to match up the map with clicks seen in the Click
|
||||||
Detector display. </p>
|
Detector display. </p>
|
||||||
@ -1235,8 +1264,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
Bug 429. Click Bearings at 180 degrees</p>
|
Bug 429. Click Bearings at 180 degrees</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Bug 430. Rocca calculates inflection point parameters incorrectly</p>
|
lang=EN-US> </span>Bug 430. Rocca calculates inflection point parameters
|
||||||
|
incorrectly</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
@ -1250,20 +1280,21 @@ Bug 432. MySQL database interface - connection problems</p>
|
|||||||
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
New display for Gebco Netcdf bathymetry maps.</p>
|
lang=EN-US> </span>New display for Gebco Netcdf bathymetry maps.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
lang=EN-US> </span>Difar enhancements based on recent field testing.</p>
|
lang=EN-US> </span>Difar enhancements based on recent field testing.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Click Train Detector upgrades, including localisation capabilities.</p>
|
lang=EN-US> </span>Click Train Detector upgrades, including localisation
|
||||||
|
capabilities.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Updates to the Ishmael detectors.</p>
|
lang=EN-US> </span>Updates to the Ishmael detectors.</p>
|
||||||
|
|
||||||
<!-- ************************************************************************************************************************** --><!-- ************************************************************************************************************************** -->
|
<!-- ************************************************************************************************************************** --><!-- ************************************************************************************************************************** -->
|
||||||
|
|
||||||
@ -1347,9 +1378,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
Upgrades to the Group Localiser, including better error estimation.</p>
|
Upgrades to the Group Localiser, including better error estimation.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Click Train Detector upgrades, including ability to import time chunks from csv
|
lang=EN-US> </span>Click Train Detector upgrades, including ability to import
|
||||||
file for batch processing.</p>
|
time chunks from csv file for batch processing.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
|
<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><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
@ -1362,9 +1393,9 @@ lang=EN-US> </span>Added adaptive noise filter to Ishmael Detectors.</p>
|
|||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
lang=EN-US> </span>Many upgrades to the Sound Playback module, including a
|
lang=EN-US> </span>Many upgrades to the Sound Playback module, including a
|
||||||
high-pass filter, gain control, and the ability to mix wavefrom and envelope
|
high-pass filter, gain control, and the ability to mix wavefrom and envelope data
|
||||||
data together to listen to high-frequency clicks and dolphin whistles at the
|
together to listen to high-frequency clicks and dolphin whistles at the same
|
||||||
same time.</p>
|
time.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -1476,14 +1507,14 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
Updates to the Ishmael module.</p>
|
Updates to the Ishmael module.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>9. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>9. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Added option to the WarnOnce dialog to hide a warning for the current PAMGuard
|
lang=EN-US> </span>Added option to the WarnOnce dialog to hide a warning for
|
||||||
session, but not forever.</p>
|
the current PAMGuard session, but not forever.</p>
|
||||||
|
|
||||||
<!-- ************************************************************************************************************************** --><!-- ************************************************************************************************************************** -->
|
<!-- ************************************************************************************************************************** --><!-- ************************************************************************************************************************** -->
|
||||||
|
|
||||||
<h1><a name="_Latest_Beta_Version_2.00.14c"></a><span lang=EN-US>Beta Version 2.00.14c
|
<h1><a name="_Latest_Beta_Version_2.00.14c"></a><span lang=EN-US>Beta Version
|
||||||
October 2018</span></h1>
|
2.00.14c October 2018</span></h1>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>PAMGuard Version 2 contains major updates.
|
<p class=MsoNormal><span lang=EN-US>PAMGuard Version 2 contains major updates.
|
||||||
You should read and understand the notes listed for <a
|
You should read and understand the notes listed for <a
|
||||||
@ -1519,10 +1550,10 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
lang=EN-US> </span>Added decimal degrees option to latitude/longitude dialog.</p>
|
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
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Added option in the Click Delay parameters to restrict the number of initial
|
lang=EN-US> </span>Added option in the Click Delay parameters to restrict the
|
||||||
samples used in the calculation. This can be useful for cleaning up delays in
|
number of initial samples used in the calculation. This can be useful for
|
||||||
the presence of echoes and small time delays.</p>
|
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
|
<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>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -1590,7 +1621,8 @@ Annotation module which has now been given two text type annotations.</p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>9. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>9. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 391. Click Detector not registering change in multi-threading option.</p>
|
</span>Bug 391. Click Detector not registering change in multi-threading
|
||||||
|
option.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>10. </span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -1633,11 +1665,11 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
lang=EN-US> </span>Added ability to read differential GPS data.</p>
|
lang=EN-US> </span>Added ability to read differential GPS data.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Added check for duplicate settings in the psf file when exiting Pamguard. If
|
lang=EN-US> </span>Added check for duplicate settings in the psf file when
|
||||||
duplicate settings are found, user is given the option to leave them in the psf
|
exiting Pamguard. If duplicate settings are found, user is given the option to
|
||||||
or get rid of them. Duplicate settings are ignored by Pamguard, but can cause
|
leave them in the psf or get rid of them. Duplicate settings are ignored by
|
||||||
the psf file to grow large over time.</p>
|
Pamguard, but can cause the psf file to grow large over time.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
||||||
@ -1705,8 +1737,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>10. </span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 376. Error when using a serialised data map which spans a period of time
|
</span>Bug 376. Error when using a serialised data map which spans a period of
|
||||||
in which Pamguard modules have changed.</p>
|
time in which Pamguard modules have changed.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>11. </span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -1745,8 +1777,9 @@ used in older versions. Older psf files can be loaded with this version, but
|
|||||||
will be converted.</p>
|
will be converted.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Many updates to the Video Range module. Will currently only work with landmarks.</p>
|
lang=EN-US> </span>Many updates to the Video Range module. Will currently only
|
||||||
|
work with landmarks.</p>
|
||||||
|
|
||||||
<!-- ************************************************************************************************************************** -->
|
<!-- ************************************************************************************************************************** -->
|
||||||
|
|
||||||
@ -1809,8 +1842,8 @@ Beta versions</p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>11. </span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 366. Rocca manual whistle contour extraction throws error when trying
|
</span>Bug 366. Rocca manual whistle contour extraction throws error when
|
||||||
to classify a boxed whistle</p>
|
trying to classify a boxed whistle</p>
|
||||||
|
|
||||||
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
||||||
|
|
||||||
@ -1879,8 +1912,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>10.</span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 354. Whistle Classifier was crashing if user accidentally entered invalid
|
</span>Bug 354. Whistle Classifier was crashing if user accidentally entered
|
||||||
parameters. Have added diagnostics to prevent this.</p>
|
invalid parameters. Have added diagnostics to prevent this.</p>
|
||||||
|
|
||||||
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
<p class=MsoNormal><b><span lang=EN-US>Upgrades</span></b></p>
|
||||||
|
|
||||||
@ -1946,8 +1979,8 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
|||||||
Added sound playback and other useful information to bar on FX display</p>
|
Added sound playback and other useful information to bar on FX display</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Updates/bug fixes to the landmark module. </p>
|
lang=EN-US> </span>Updates/bug fixes to the landmark module. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
|
<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><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
@ -1955,8 +1988,9 @@ lang=EN-US> </span>Added a simulated white noise source which can be moved
|
|||||||
around in the same way as other sources. </p>
|
around in the same way as other sources. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>4. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
Reworked annotation system, and added annotations to binary storage </p>
|
lang=EN-US> </span>Reworked annotation system, and added annotations to binary
|
||||||
|
storage </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5. </span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
@ -1996,7 +2030,7 @@ file format is the addition of a Unique Data Identifier (UID) to each unit of
|
|||||||
data. This is intended to aid in offline analysis by making it easier for the
|
data. This is intended to aid in offline analysis by making it easier for the
|
||||||
user to link what they are seeing on different PAMGuard displays and also to
|
user to link what they are seeing on different PAMGuard displays and also to
|
||||||
link with any data post processed in Matlab or other custom analysis software.
|
link with any data post processed in Matlab or other custom analysis software.
|
||||||
UIDs are also added to PAMGuard database tables. </span></p>
|
UID’s are also added to PAMGuard database tables. </span></p>
|
||||||
|
|
||||||
<h4><span lang=EN-US>Converting Old Data</span></h4>
|
<h4><span lang=EN-US>Converting Old Data</span></h4>
|
||||||
|
|
||||||
@ -2004,14 +2038,14 @@ UIDs are also added to PAMGuard database tables. </span></p>
|
|||||||
viewer they will automatically be converted. For safety, the original binary
|
viewer they will automatically be converted. For safety, the original binary
|
||||||
files will not be overwritten and the new data will be placed in a new folder
|
files will not be overwritten and the new data will be placed in a new folder
|
||||||
on your computer with the same path as the old data, but suffixed with
|
on your computer with the same path as the old data, but suffixed with
|
||||||
_WithUID, e.g. if your binary data were previously stored in the folder
|
‘_WithUID’, e.g. if your binary data were previously stored in the folder
|
||||||
C:\MySurvey\binarydata the new data will be written to
|
C:\MySurvey\binarydata the new data will be written to
|
||||||
C:\MySurvey\binarydata_WithUID. </span></p>
|
C:\MySurvey\binarydata_WithUID. </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>The additional UID column will be added to
|
<p class=MsoNormal><span lang=EN-US>The additional UID column will be added to
|
||||||
all database tables and populated with unique values. For data which are stored
|
all database tables and populated with unique values. For data which are stored
|
||||||
in both the binary files and in database tables, the same UIDs will be used in
|
in both the binary files and in database tables, the same UID’s will be used
|
||||||
both data stores. </span></p>
|
in both data stores. </span></p>
|
||||||
|
|
||||||
<h3><span lang=EN-US>New Displays</span></h3>
|
<h3><span lang=EN-US>New Displays</span></h3>
|
||||||
|
|
||||||
@ -2025,11 +2059,11 @@ Note that this display is only available if you are running Java 8 or later. </s
|
|||||||
|
|
||||||
<h3><span lang=EN-US>Event Marking and the Detection Group Localiser</span></h3>
|
<h3><span lang=EN-US>Event Marking and the Detection Group Localiser</span></h3>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>A new system of event marking which can be used
|
<p class=MsoNormal><span lang=EN-US>A new system of event marking which can be
|
||||||
both online and offline has been added to PAMGuard. Details are in the PAMGuard
|
used both online and offline has been added to PAMGuard. Details are in the
|
||||||
help file (Displays/Display Marking). Data can be selected on the Map, the
|
PAMGuard help file (Displays/Display Marking). Data can be selected on the Map,
|
||||||
Spectrogram Display and the new Time Display FX in a similar way and sent to
|
the Spectrogram Display and the new Time Display FX in a similar way and sent
|
||||||
other PAMGuard modules. The new marking and data selection system works with
|
to other PAMGuard modules. The new marking and data selection system works with
|
||||||
the new Detection Group Localiser. The Detection Group Localiser extends the
|
the new Detection Group Localiser. The Detection Group Localiser extends the
|
||||||
functionality which always existed in the click detector to other types of data
|
functionality which always existed in the click detector to other types of data
|
||||||
(e.g. Whistles) so that they can be grouped and tracked using target motion
|
(e.g. Whistles) so that they can be grouped and tracked using target motion
|
||||||
@ -2074,8 +2108,8 @@ lang=EN-US> </span></p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.</span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.</span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>Bug 317. Rocca Module Data Purging. </span>The ROCCA
|
</span><span lang=EN-US>Bug 317. Rocca Module Data Purging. </span>The ROCCA module
|
||||||
module was not performing data purging when using classifiers developed for
|
was not performing data purging when using classifiers developed for
|
||||||
Hawaii/Temperate Pacific/North Atlantic datasets. This has been corrected.</p>
|
Hawaii/Temperate Pacific/North Atlantic datasets. This has been corrected.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
|
||||||
@ -2154,8 +2188,8 @@ happens when the user selects save as new configuration. This has been fixed.</p
|
|||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 315. code searched for file in working folder, which is the
|
</span>Bug 315. code searched for file in working folder, which is the
|
||||||
installation folder when starting PAMGuard using a shortcut link. But when
|
installation folder when starting PAMGuard using a shortcut link. But when
|
||||||
double-clicking on a psf, the working folder is the location of the psf. This has
|
double-clicking on a psf, the working folder is the location of the psf. This
|
||||||
been fixed.</p>
|
has been fixed.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>7.</span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>7.</span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||||
@ -2184,8 +2218,8 @@ jar file will be required rather than a new bespoke PAMGuard installation.</span
|
|||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>Module code development remains largely
|
<p class=MsoNormal><span lang=EN-US>Module code development remains largely
|
||||||
unchanged, in most cases simply requiring the addition of an interface class.
|
unchanged, in most cases simply requiring the addition of an interface class.
|
||||||
Instructions for the development of new modules utilizing the plug-in scheme
|
Instructions for the development of new modules utilizing the plug-in
|
||||||
can be found <a href="http://www.pamguard.org/16_HowtomakePlug-Ins.html"
|
scheme can be found <a href="http://www.pamguard.org/16_HowtomakePlug-Ins.html"
|
||||||
target="_blank">here</a>. Plug-in modules can be downloaded from the
|
target="_blank">here</a>. Plug-in modules can be downloaded from the
|
||||||
PAMGuard website here, but developers are encouraged to host and maintain their
|
PAMGuard website here, but developers are encouraged to host and maintain their
|
||||||
own modules.</span></p>
|
own modules.</span></p>
|
||||||
@ -2193,8 +2227,8 @@ own modules.</span></p>
|
|||||||
<p class=MsoNormal><span lang=EN-US>Modules of interest to the general PAM
|
<p class=MsoNormal><span lang=EN-US>Modules of interest to the general PAM
|
||||||
community will remain as part of the core PAMGuard installation. However,
|
community will remain as part of the core PAMGuard installation. However,
|
||||||
specialized modules which are useful to only a small number of users have been
|
specialized modules which are useful to only a small number of users have been
|
||||||
removed and are available as a separate download. The following modules have been
|
removed and are available as a separate download. The following modules have
|
||||||
removed:</span></p>
|
been removed:</span></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:43.5pt;text-indent:-25.5pt'>1.<span
|
<p class=MsoListParagraph style='margin-left:43.5pt;text-indent:-25.5pt'>1.<span
|
||||||
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2245,19 +2279,19 @@ November 2016</span></h1>
|
|||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>1.
|
||||||
Bug 303. Some ASIO sound cards not working with either ASIO system in PAMGuard.
|
Bug 303. Some ASIO sound cards not working with either ASIO system in PAMGuard.
|
||||||
For the PAMGuard ASIO system, this was due to a data format used by some sound
|
For the PAMGuard ASIO system, this was due to a data format used by some sound
|
||||||
cards never being properly implemented. For the New ASIO system which is
|
cards never being properly implemented. For the “New ASIO system” which
|
||||||
based on jAsioHost, the unpacking of that format contained a bug which returned
|
is based on jAsioHost, the unpacking of that format contained a bug which
|
||||||
incorrect numbers, so data were swamped with noise. Both systems are now fixed.
|
returned incorrect numbers, so data were swamped with noise. Both systems are
|
||||||
By preference, users should use the PAMGuard ASIO system since the JAsioHost
|
now fixed. By preference, users should use the PAMGuard ASIO system since the
|
||||||
based system seems to drop samples when many channels are running at high
|
JAsioHost based system seems to drop samples when many channels are running at
|
||||||
sample rate. </span></p>
|
high sample rate. </span></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'>2.<span style='font-size-adjust: none;
|
<p class=MsoListParagraph style='text-indent:-18.0pt'>2.<span style='font-size-adjust: none;
|
||||||
font-stretch: normal'><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
font-stretch: normal'><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span></span><span lang=EN-US>Bug 305. Date and Time not being correctly
|
</span></span><span lang=EN-US>Bug 305. Date and Time not being correctly
|
||||||
extracted from wav files created using SoundTrap recorders. Fixed by correctly
|
extracted from wav files created using SoundTrap recorders. Fixed by correctly
|
||||||
finding and unpacking information in the accompanying xml log files that come with
|
finding and unpacking information in the accompanying xml log files that come
|
||||||
SoundTrap files. </span></p>
|
with SoundTrap files. </span></p>
|
||||||
|
|
||||||
<h1><a name="_Latest_Version_1.15.06"></a><span lang=EN-US>Version 1.15.06
|
<h1><a name="_Latest_Version_1.15.06"></a><span lang=EN-US>Version 1.15.06
|
||||||
November 2016</span></h1>
|
November 2016</span></h1>
|
||||||
@ -2376,9 +2410,9 @@ the database. </span></p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2.</span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>The number of data streams associated with the click detector
|
</span><span lang=EN-US>The number of data streams associated with the click
|
||||||
has been tidied up so that there are a) All Click, b) Tracked Clicks (those
|
detector has been tidied up so that there are a) All Click, b) Tracked Clicks
|
||||||
which are part of an event) and c) Events. </span></p>
|
(those which are part of an event) and c) Events. </span></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3.</span><span
|
<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'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2394,9 +2428,9 @@ automatic click train identification and tracking. </span></p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5.</span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5.</span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>The automatic click train identification is now using the
|
</span><span lang=EN-US>The automatic click train identification is now using
|
||||||
same internal structures as the manual tracking, so it's possible to combine
|
the same internal structures as the manual tracking, so it's possible to
|
||||||
automatic and manual tracking. </span></p>
|
combine automatic and manual tracking. </span></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6.</span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>6.</span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2428,15 +2462,15 @@ memory that needed to be cleaned up). In some circumstances, these pauses were
|
|||||||
making data acquisition systems unstable. We have therefore entirely rewritten
|
making data acquisition systems unstable. We have therefore entirely rewritten
|
||||||
the way in which PAMGuard handles arrays of spectrogram data (complex numbers)
|
the way in which PAMGuard handles arrays of spectrogram data (complex numbers)
|
||||||
so that instead of large numbers of small Java objects there are now fewer,
|
so that instead of large numbers of small Java objects there are now fewer,
|
||||||
larger, simpler java objects. These reduce processing delays for garbage
|
larger, simpler java objects. These reduce processing delays for garbage collection
|
||||||
collection and give an overall speed improvement, but will otherwise not be
|
and give an overall speed improvement, but will otherwise not be noticed by
|
||||||
noticed by users. </span></p>
|
users. </span></p>
|
||||||
|
|
||||||
<p class=MsoNormal><i><span lang=EN-US>Click Detector RainbowClick file output</span></i></p>
|
<p class=MsoNormal><i><span lang=EN-US>Click Detector RainbowClick file output</span></i></p>
|
||||||
|
|
||||||
<p class=MsoNormal><span lang=EN-US>This feature has been removed since it has
|
<p class=MsoNormal><span lang=EN-US>This feature has been removed since it has
|
||||||
been obsolete for several years. Users should use the PAMGuard binary storage
|
been obsolete for several years. Users should use the PAMGuard binary storage system
|
||||||
system for Click Detector data. </span></p>
|
for Click Detector data. </span></p>
|
||||||
|
|
||||||
<h1><a name="_Latest_Version_1.15.04"></a><span lang=EN-US>Version 1.15.04 July
|
<h1><a name="_Latest_Version_1.15.04"></a><span lang=EN-US>Version 1.15.04 July
|
||||||
2016</span></h1>
|
2016</span></h1>
|
||||||
@ -2476,8 +2510,9 @@ today. </p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>5.<span
|
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>5.<span
|
||||||
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 277. Text fields in classifier dialog were not large enough to display
|
</span>Bug 277. Text fields in classifier dialog were not large enough to
|
||||||
times greater than 10ms. We have increased length of text fields in the dialog.</p>
|
display times greater than 10ms. We have increased length of text fields in the
|
||||||
|
dialog.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>6.<span
|
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>6.<span
|
||||||
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2495,8 +2530,8 @@ style='font-size:7.0pt;font-family:"Times New Roman",serif'> &n
|
|||||||
</span>Bug 279. GUI Resizing: The whole PAMGuard GUI would suddenly resize to
|
</span>Bug 279. GUI Resizing: The whole PAMGuard GUI would suddenly resize to
|
||||||
something very small when a dialog is opened. This has been traced to improper
|
something very small when a dialog is opened. This has been traced to improper
|
||||||
use of a common dialog component SourcePanel which tries to repack its parent
|
use of a common dialog component SourcePanel which tries to repack its parent
|
||||||
Window. Some programmers had inadvertently set it to repack the main PAMGuard GUI
|
Window. Some programmers had inadvertently set it to repack the main PAMGuard
|
||||||
instead. This has been Fixed.</p>
|
GUI instead. This has been Fixed.</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>8.<span
|
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>8.<span
|
||||||
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2639,12 +2674,12 @@ boundaries when file durations are set to a maximum fixed value. </p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5.</span><span
|
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>5.</span><span
|
||||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 262. Access to SQLite database conversion. This would fail when tables
|
</span>Bug 262. Access to SQLite database conversion. This would fail when
|
||||||
were present which were not created by PAMGuard. Fixes have been put in
|
tables were present which were not created by PAMGuard. Fixes have been
|
||||||
place for spaces in the table name or for not having an 'Id' column. Fixes have
|
put in place for spaces in the table name or for not having an 'Id' column.
|
||||||
not been implemented for spaces in a column name or use of a reserved word as a
|
Fixes have not been implemented for spaces in a column name or use of a
|
||||||
column name, however if either of these problems do exist it will no longer
|
reserved word as a column name, however if either of these problems do exist it
|
||||||
crash but issue a clear warning and carry onto the next table.</p>
|
will no longer crash but issue a clear warning and carry onto the next table.</p>
|
||||||
|
|
||||||
<p class=MsoNormal style='margin-left:18.0pt'><span lang=EN-US> </span></p>
|
<p class=MsoNormal style='margin-left:18.0pt'><span lang=EN-US> </span></p>
|
||||||
|
|
||||||
@ -2653,8 +2688,8 @@ name="_Toc312065299"></a><a name="_Toc312063944"></a><a name="_Toc312065300"></a
|
|||||||
name="_Toc312063945"></a>Version 1.14.00 Beta, September 2015</h1>
|
name="_Toc312063945"></a>Version 1.14.00 Beta, September 2015</h1>
|
||||||
|
|
||||||
<p class=MsoNormal>The format of configuration files has changed for version
|
<p class=MsoNormal>The format of configuration files has changed for version
|
||||||
1.14.00. Older configurations will load with this new version, but
|
1.14.00. Older configurations will load with this new version, but configurations
|
||||||
configurations saved with 1.14.00 may not open correctly with earlier versions.</p>
|
saved with 1.14.00 may not open correctly with earlier versions.</p>
|
||||||
|
|
||||||
<p class=MsoNormal>PAMGuard Versions 1.14.00 and above will work with Java 8.
|
<p class=MsoNormal>PAMGuard Versions 1.14.00 and above will work with Java 8.
|
||||||
PAMGuard will continue to work with Java 7, but support for Java 7 will be
|
PAMGuard will continue to work with Java 7, but support for Java 7 will be
|
||||||
@ -2732,8 +2767,8 @@ events. </span></p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
|
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
|
||||||
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span><span lang=EN-US>Bug 250. DIFAR module was crashing if it attempted to
|
</span><span lang=EN-US>Bug 250. DIFAR module was crashing if it attempted to triangulate
|
||||||
triangulate between more than two simultaneous bearings. Fixed. </span></p>
|
between more than two simultaneous bearings. Fixed. </span></p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
|
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'><span
|
||||||
lang=EN-US>6.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US>6.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2834,11 +2869,11 @@ which is useful when using PAMGuard for demonstration purposes. </p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
||||||
lang=EN-US>4.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US>4.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>The sound File and Folder audio input systems now have an optional time
|
</span>The sound File and Folder audio input systems now have an optional time zone
|
||||||
zone setting. Note that PAMGuard analysis should still all be taking place in
|
setting. Note that PAMGuard analysis should still all be taking place in UTC
|
||||||
UTC and that this option is intended to allow the conversion of file times
|
and that this option is intended to allow the conversion of file times which
|
||||||
which were not recorded as UTC into UTC and not the other way around. Use the
|
were not recorded as UTC into UTC and not the other way around. Use the option
|
||||||
option with caution !</p>
|
with caution !</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
||||||
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2879,8 +2914,8 @@ minutes and seconds. Now correctly displays the number of remaining days. </p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
||||||
lang=EN-US>4.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US>4.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bug 226. Spectrogram Mark Observer list doesn't refresh when modules added
|
</span>Bug 226. Spectrogram Mark Observer list doesn't refresh when modules
|
||||||
or removed. </p>
|
added or removed. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
||||||
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
lang=EN-US>5.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -2953,9 +2988,8 @@ total loss of the PAMGuard configuration in viewer mode and has been rectified.
|
|||||||
7.0pt;font-family:"Times New Roman",serif'> </span>Bug
|
7.0pt;font-family:"Times New Roman",serif'> </span>Bug
|
||||||
218. SAIL Acquisition card would hang the system. This has also been fixed. </p>
|
218. SAIL Acquisition card would hang the system. This has also been fixed. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'>7. Bug
|
<p class=MsoListParagraph style='text-indent:-18.0pt'>7. Bug 219.
|
||||||
219. Problems displaying Offline Click Events in the Viewer map have been
|
Problems displaying Offline Click Events in the Viewer map have been fixed. </p>
|
||||||
fixed. </p>
|
|
||||||
|
|
||||||
<p class=MsoNormal> </p>
|
<p class=MsoNormal> </p>
|
||||||
|
|
||||||
@ -3053,9 +3087,9 @@ sonobuoys. See online help for details. </p>
|
|||||||
<p class=MsoNormal>This module, developed by Jamie Macaulay of St Andrews
|
<p class=MsoNormal>This module, developed by Jamie Macaulay of St Andrews
|
||||||
University estimates the 3D localisation of clicks using a variety of
|
University estimates the 3D localisation of clicks using a variety of
|
||||||
algorithms. It's primarily been developed to track harbour porpoise in three
|
algorithms. It's primarily been developed to track harbour porpoise in three
|
||||||
dimensions over scales of 10's of metres. While currently only working with
|
dimensions over scales of 10's of metres. While currently only working with output
|
||||||
output from the click detector, we hope eventually to extend its use to
|
from the click detector, we hope eventually to extend its use to whistles as
|
||||||
whistles as well. </p>
|
well. </p>
|
||||||
|
|
||||||
<p class=MsoNormal><i>Accelerometer Readout</i> (Sensors group)</p>
|
<p class=MsoNormal><i>Accelerometer Readout</i> (Sensors group)</p>
|
||||||
|
|
||||||
@ -3073,12 +3107,12 @@ marine mammal survey package. See online help for details. </p>
|
|||||||
|
|
||||||
<p class=MsoNormal><i>Alarms</i> (Utilities Group)</p>
|
<p class=MsoNormal><i>Alarms</i> (Utilities Group)</p>
|
||||||
|
|
||||||
<p class=MsoNormal>This is a general system of visual and audio alarms developed
|
<p class=MsoNormal>This is a general system of visual and audio alarms
|
||||||
by Doug Gillespie for use on a variety of projects. The alarms can be coupled
|
developed by Doug Gillespie for use on a variety of projects. The alarms can be
|
||||||
to any module or detector in PAMGuard. Where appropriate, modules can control
|
coupled to any module or detector in PAMGuard. Where appropriate, modules can
|
||||||
which of their data will cause an alarm action (e.g. in the Click detector you
|
control which of their data will cause an alarm action (e.g. in the Click
|
||||||
can set which types of classified click will fire the alarm). See online help
|
detector you can set which types of classified click will fire the alarm). See
|
||||||
for details. </p>
|
online help for details. </p>
|
||||||
|
|
||||||
<p class=MsoNormal><i>Noise Band Monitor</i> (Sound Processing Group)</p>
|
<p class=MsoNormal><i>Noise Band Monitor</i> (Sound Processing Group)</p>
|
||||||
|
|
||||||
@ -3125,11 +3159,10 @@ different. Details are available in the online help. </p>
|
|||||||
<p class=MsoNormal><i>FLAC File Support</i></p>
|
<p class=MsoNormal><i>FLAC File Support</i></p>
|
||||||
|
|
||||||
<p class=MsoNormal>Can now read raw audio data direct from FLAC files. <a
|
<p class=MsoNormal>Can now read raw audio data direct from FLAC files. <a
|
||||||
href="http://en.wikipedia.org/wiki/FLAC">FLAC</a> is a lossless compression
|
href="http://en.wikipedia.org/wiki/FLAC">FLAC</a> is a lossless compression algorithm
|
||||||
algorithm for audio data. Files, or folders of files are accessed in the same
|
for audio data. Files, or folders of files are accessed in the same way as WAV
|
||||||
way as WAV and AIFF files in the Sound Acquisition module. In a future release
|
and AIFF files in the Sound Acquisition module. In a future release we also
|
||||||
we also hope to provide support for writing FLAC files from the sound recorder
|
hope to provide support for writing FLAC files from the sound recorder module. </p>
|
||||||
module. </p>
|
|
||||||
|
|
||||||
<p class=MsoNormal><i>Sound Recorder Module</i></p>
|
<p class=MsoNormal><i>Sound Recorder Module</i></p>
|
||||||
|
|
||||||
@ -3195,8 +3228,8 @@ whistle.</p>
|
|||||||
longer possible to change configurations once PAMGuard has been launched
|
longer possible to change configurations once PAMGuard has been launched
|
||||||
and pressing 'Cancel' on the select dialog causes PAMGuard to exit. </li>
|
and pressing 'Cancel' on the select dialog causes PAMGuard to exit. </li>
|
||||||
<li class=MsoNormal style='margin-bottom:0cm'>Airgun display. If this was
|
<li class=MsoNormal style='margin-bottom:0cm'>Airgun display. If this was
|
||||||
included in the PAMGuard model before the GPS module it would hang
|
included in the PAMGuard model before the GPS module it would hang PAMGuard.
|
||||||
PAMGuard. This has been rectified. </li>
|
This has been rectified. </li>
|
||||||
<li class=MsoNormal style='margin-bottom:0cm'>Fixed occasional exceptions in
|
<li class=MsoNormal style='margin-bottom:0cm'>Fixed occasional exceptions in
|
||||||
the sound output modules when playing back from files. </li>
|
the sound output modules when playing back from files. </li>
|
||||||
<li class=MsoNormal style='margin-bottom:0cm'>Fixed exceptions in spectrogram
|
<li class=MsoNormal style='margin-bottom:0cm'>Fixed exceptions in spectrogram
|
||||||
@ -3276,9 +3309,9 @@ other data sources for the PAMGuard viewer. </p>
|
|||||||
|
|
||||||
<p class=MsoNormal style='margin-left:36.0pt'><i>Database</i></p>
|
<p class=MsoNormal style='margin-left:36.0pt'><i>Database</i></p>
|
||||||
|
|
||||||
<p class=MsoNormal style='margin-left:36.0pt'>Can now copy data from binary storage
|
<p class=MsoNormal style='margin-left:36.0pt'>Can now copy data from binary
|
||||||
to the database offline for any module having both binary and database storage.
|
storage to the database offline for any module having both binary and database
|
||||||
</p>
|
storage. </p>
|
||||||
|
|
||||||
<p class=MsoNormal style='margin-left:36.0pt'>Can create a blank MS Access
|
<p class=MsoNormal style='margin-left:36.0pt'>Can create a blank MS Access
|
||||||
database (2007 and later *.accdb formats only).</p>
|
database (2007 and later *.accdb formats only).</p>
|
||||||
@ -3470,9 +3503,9 @@ 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:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Offline event marking. Offline event marking similar to functionality in
|
</span>Offline event marking. Offline event marking similar to functionality in
|
||||||
RainbowClick is now available in the PAMGUARD viewer. Event summary data is stored
|
RainbowClick is now available in the PAMGUARD viewer. Event summary data is
|
||||||
in the database and can also be exported to text files (e.g. for importing into
|
stored in the database and can also be exported to text files (e.g. for
|
||||||
the Distance software). </p>
|
importing into the Distance software). </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -3579,8 +3612,8 @@ the correct data stream. This has been fixed. </p>
|
|||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Whistle classifier has some new features in the classifier training
|
</span>Whistle classifier has some new features in the classifier training
|
||||||
panel. It is also now possible to export training data files directly from binary
|
panel. It is also now possible to export training data files directly from
|
||||||
data files. </p>
|
binary data files. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -3600,10 +3633,10 @@ source, even if that data source is loaded after the FFT module is created.</p>
|
|||||||
|
|
||||||
<p class=MsoNormal>1. Binary storage module. </p>
|
<p class=MsoNormal>1. Binary storage module. </p>
|
||||||
|
|
||||||
<p class=MsoNormal>Performs a parallel role to the PAMGAURD database but uses
|
<p class=MsoNormal>Performs a parallel role to the PAMGAURD database but uses binary
|
||||||
binary files in a proprietary format which is considerably more efficient for
|
files in a proprietary format which is considerably more efficient for data of
|
||||||
data of unknown length such as whistle contours or small clips of click
|
unknown length such as whistle contours or small clips of click waveform. This
|
||||||
waveform. This feature is currently implemented in the following modules:</p>
|
feature is currently implemented in the following modules:</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -3720,9 +3753,9 @@ re-label those channels 0,1,2,3. </p>
|
|||||||
numbering scheme. For instance, if you had a configuration which worked in real
|
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
|
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
|
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
|
channels 0 and 1. Similarly if you switched sound cards, you may have to reconfigure
|
||||||
reconfigure every detector and several of the displays to handle the changes in
|
every detector and several of the displays to handle the changes in channel
|
||||||
channel numbering. </p>
|
numbering. </p>
|
||||||
|
|
||||||
<p class=MsoNormal>I have spent a considerable amount of time trying to work
|
<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
|
out a better system for handling channel numbering in PAMGUARD and have decided
|
||||||
@ -3833,10 +3866,10 @@ port is closed. Might prevent a few problems when using a GPS. </p>
|
|||||||
<p class=MsoNormal>Crashes caused in real time or Mixed Mode if the number of
|
<p class=MsoNormal>Crashes caused in real time or Mixed Mode if the number of
|
||||||
software channels exceeds the number of hydrophones configured in the array
|
software channels exceeds the number of hydrophones configured in the array
|
||||||
manager. It is of course illogical to have software channels which are not
|
manager. It is of course illogical to have software channels which are not
|
||||||
assigned to a hydrophone, so rather than entirely prevent PAMGUARD from crashing
|
assigned to a hydrophone, so rather than entirely prevent PAMGUARD from
|
||||||
I have inserted additional checks into the hydrophone array dialog which will
|
crashing I have inserted additional checks into the hydrophone array dialog
|
||||||
prevent the user from closing that dialog unless all software channels are
|
which will prevent the user from closing that dialog unless all software
|
||||||
assigned to a hydrophone. </p>
|
channels are assigned to a hydrophone. </p>
|
||||||
|
|
||||||
<h2><span style='font-weight:normal'>Version 1.8.01 Beta February 2010</span></h2>
|
<h2><span style='font-weight:normal'>Version 1.8.01 Beta February 2010</span></h2>
|
||||||
|
|
||||||
@ -3854,8 +3887,8 @@ frequency versions of the click detector.</p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Note that this does not (yet) permit simultaneous acquisition and
|
</span>Note that this does not (yet) permit simultaneous acquisition and playback
|
||||||
playback through</p>
|
through</p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -3933,15 +3966,15 @@ classifier is still available). </p>
|
|||||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Bearing ambiguity resolution for planar and volumetric arrays. New
|
</span>Bearing ambiguity resolution for planar and volumetric arrays. New
|
||||||
features in array dialog for estimations of errors on array location. These
|
features in array dialog for estimations of errors on array location. These
|
||||||
feed into to a maximum likelihood estimate of angles from small 2D or 3D sub arrays
|
feed into to a maximum likelihood estimate of angles from small 2D or 3D sub
|
||||||
to give two polar angle coordinates. this can be used to resolve left right
|
arrays to give two polar angle coordinates. this can be used to resolve left
|
||||||
ambiguity and is implemented for both the click and the whistle/moan detectors.
|
right ambiguity and is implemented for both the click and the whistle/moan
|
||||||
As a result, the click detector bearing time display can now be set to go from
|
detectors. As a result, the click detector bearing time display can now be set
|
||||||
-180 to 180 degrees rather than 0 - 180 degrees. In this case, clicks in the
|
to go from -180 to 180 degrees rather than 0 - 180 degrees. In this case,
|
||||||
upper half of the bearing display will be to port and clicks in the right half
|
clicks in the upper half of the bearing display will be to port and clicks in
|
||||||
will be to starboard. As you pass a whale which is to port, the clicks will
|
the right half will be to starboard. As you pass a whale which is to port, the
|
||||||
move UP the display. In the long term, I hope to turn this display around so
|
clicks will move UP the display. In the long term, I hope to turn this display
|
||||||
that time is up the screen rather than across. </p>
|
around so that time is up the screen rather than across. </p>
|
||||||
|
|
||||||
<p class=MsoNormal><b>Small features and bug fixes</b></p>
|
<p class=MsoNormal><b>Small features and bug fixes</b></p>
|
||||||
|
|
||||||
@ -4050,10 +4083,10 @@ 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:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>New menu functionality by right clicking on any of the tabs of the main
|
</span>New menu functionality by right clicking on any of the tabs of the main
|
||||||
tab control will allow the user to copy the tab contents to the system
|
tab control will allow the user to copy the tab contents to the system clipboard
|
||||||
clipboard from where it can be copied into other programs (e.g. Word,
|
from where it can be copied into other programs (e.g. Word, Powerpoint,
|
||||||
Powerpoint, etc.).Some modules, such as the map, have this implemented in other
|
etc.).Some modules, such as the map, have this implemented in other menus
|
||||||
menus (right click) and also allow printing. </p>
|
(right click) and also allow printing. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -4136,10 +4169,10 @@ help pages</p>
|
|||||||
|
|
||||||
<p class=MsoNormal><b>Bug Fixes</b></p>
|
<p class=MsoNormal><b>Bug Fixes</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>Memory leak caused by Night / Day colour manager now fixed. This
|
<p class=MsoNormal>Memory leak caused by Night / Day colour manager now fixed.
|
||||||
would cause memory leaks when multiple files were being analysed off-line and
|
This would cause memory leaks when multiple files were being analysed off-line
|
||||||
would eventually crash PAMGUARD. The way that colours are managed in PAMGUARD
|
and would eventually crash PAMGUARD. The way that colours are managed in
|
||||||
has been rewritten. </p>
|
PAMGUARD has been rewritten. </p>
|
||||||
|
|
||||||
<p class=MsoNormal>Some issues with Swing fixed that might have been causing
|
<p class=MsoNormal>Some issues with Swing fixed that might have been causing
|
||||||
hang ups on startup especially on Macs/Linux machines</p>
|
hang ups on startup especially on Macs/Linux machines</p>
|
||||||
@ -4210,8 +4243,8 @@ file)</p>
|
|||||||
|
|
||||||
<p class=MsoNormal><b>Changes</b></p>
|
<p class=MsoNormal><b>Changes</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>The User Input module (for text entry of information by the user)
|
<p class=MsoNormal>The User Input module (for text entry of information by the
|
||||||
has been moved from the Displays sub menu of the Add Modules menu, to
|
user) has been moved from the Displays sub menu of the Add Modules menu, to
|
||||||
Utilities. This will not affect how existing settings files are loaded. </p>
|
Utilities. This will not affect how existing settings files are loaded. </p>
|
||||||
|
|
||||||
<p class=MsoNormal><b>Multi-screen environments.</b></p>
|
<p class=MsoNormal><b>Multi-screen environments.</b></p>
|
||||||
@ -4230,8 +4263,8 @@ acquisition. </p>
|
|||||||
|
|
||||||
<p class=MsoNormal><b>Bug fixes</b></p>
|
<p class=MsoNormal><b>Bug fixes</b></p>
|
||||||
|
|
||||||
<p class=MsoNormal>Speed up of graphics, particularly regarding large quantities
|
<p class=MsoNormal>Speed up of graphics, particularly regarding large
|
||||||
of gps track data</p>
|
quantities of gps track data</p>
|
||||||
|
|
||||||
<p class=MsoNormal>National Instruments cards with names > 20 characters
|
<p class=MsoNormal>National Instruments cards with names > 20 characters
|
||||||
long are now correctly recognised. </p>
|
long are now correctly recognised. </p>
|
||||||
@ -4382,8 +4415,8 @@ channels or textual content change. </p>
|
|||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
</span>Model viewer. Have stopped it from jumping on top of the main PAMGUARD display
|
</span>Model viewer. Have stopped it from jumping on top of the main PAMGUARD
|
||||||
when dialogs are closed. </p>
|
display when dialogs are closed. </p>
|
||||||
|
|
||||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
<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'>
|
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||||
@ -4714,12 +4747,12 @@ and Ishmael-type detectors and localisers. </p>
|
|||||||
<p class=MsoNormal>Information from above modules can be displayed on
|
<p class=MsoNormal>Information from above modules can be displayed on
|
||||||
configurable user displays which support real time scrolling spectrograms and
|
configurable user displays which support real time scrolling spectrograms and
|
||||||
radar displays. Detection and localisation information can be optionally
|
radar displays. Detection and localisation information can be optionally
|
||||||
displayed on the map display.Map enhancements include improved scrolling whereby
|
displayed on the map display.Map enhancements include improved scrolling
|
||||||
the user can click and drag to pan the area. PamGuard can now interface with
|
whereby the user can click and drag to pan the area. PamGuard can now interface
|
||||||
MySQL database servers and users can easily select which information is logged.
|
with MySQL database servers and users can easily select which information is
|
||||||
(This replaces the previous 'flat-file' logging feature). A simulation module
|
logged. (This replaces the previous 'flat-file' logging feature). A simulation
|
||||||
allows virtual vocalising animals to be placed on the map to assist in training
|
module allows virtual vocalising animals to be placed on the map to assist in
|
||||||
and development. Extensive online user help has been added to PamGuard
|
training and development. Extensive online user help has been added to PamGuard
|
||||||
Application</p>
|
Application</p>
|
||||||
|
|
||||||
<h2>0.03b - first version used in a real 'at sea' environment.18/08/06</h2>
|
<h2>0.03b - first version used in a real 'at sea' environment.18/08/06</h2>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<groupId>org.pamguard</groupId>
|
<groupId>org.pamguard</groupId>
|
||||||
<artifactId>Pamguard</artifactId>
|
<artifactId>Pamguard</artifactId>
|
||||||
<name>Pamguard Java12+</name>
|
<name>Pamguard Java12+</name>
|
||||||
<version>2.02.04ae</version>
|
<version>2.02.06</version>
|
||||||
<description>Pamguard for Java 12+, using Maven to control dependcies</description>
|
<description>Pamguard for Java 12+, using Maven to control dependcies</description>
|
||||||
<url>www.pamguard.org</url>
|
<url>www.pamguard.org</url>
|
||||||
<organization>
|
<organization>
|
||||||
|
2
pom.xml
2
pom.xml
@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.pamguard</groupId>
|
<groupId>org.pamguard</groupId>
|
||||||
<artifactId>Pamguard</artifactId>
|
<artifactId>Pamguard</artifactId>
|
||||||
<version>2.02.05</version>
|
<version>2.02.06</version>
|
||||||
<name>Pamguard Java12+</name>
|
<name>Pamguard Java12+</name>
|
||||||
<description>Pamguard for Java 12+, using Maven to control dependcies</description>
|
<description>Pamguard for Java 12+, using Maven to control dependcies</description>
|
||||||
<url>www.pamguard.org</url>
|
<url>www.pamguard.org</url>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||||
#Tue Nov 01 15:41:45 GMT 2022
|
#Tue Oct 11 15:59:57 BST 2022
|
||||||
x3-2.1.0.jar>=
|
x3-2.1.0.jar>=
|
||||||
x3-2.1.0.pom>=
|
x3-2.1.0.pom>=
|
||||||
|
@ -38,6 +38,9 @@ import javax.swing.JMenuItem;
|
|||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.SwingConstants;
|
import javax.swing.SwingConstants;
|
||||||
|
|
||||||
|
import org.pamguard.x3.sud.Chunk;
|
||||||
|
import org.pamguard.x3.sud.SudFileListener;
|
||||||
|
|
||||||
import dataGram.DatagramManager;
|
import dataGram.DatagramManager;
|
||||||
import dataMap.OfflineDataMapPoint;
|
import dataMap.OfflineDataMapPoint;
|
||||||
import dataMap.filemaps.OfflineFileServer;
|
import dataMap.filemaps.OfflineFileServer;
|
||||||
@ -49,12 +52,13 @@ import simulatedAcquisition.SimProcess;
|
|||||||
import asiojni.ASIOSoundSystem;
|
import asiojni.ASIOSoundSystem;
|
||||||
import asiojni.NewAsioSoundSystem;
|
import asiojni.NewAsioSoundSystem;
|
||||||
import nidaqdev.NIDAQProcess;
|
import nidaqdev.NIDAQProcess;
|
||||||
import nidaqdev.networkdaq.NINetworkDaq;
|
|
||||||
import Acquisition.filedate.FileDate;
|
import Acquisition.filedate.FileDate;
|
||||||
import Acquisition.filedate.StandardFileDate;
|
import Acquisition.filedate.StandardFileDate;
|
||||||
|
import Acquisition.filetypes.SoundFileTypes;
|
||||||
import Acquisition.layoutFX.AquisitionGUIFX;
|
import Acquisition.layoutFX.AquisitionGUIFX;
|
||||||
import Acquisition.offlineFuncs.OfflineWavFileServer;
|
import Acquisition.offlineFuncs.OfflineWavFileServer;
|
||||||
import Acquisition.rona.RonaOfflineFileServer;
|
import Acquisition.rona.RonaOfflineFileServer;
|
||||||
|
import Acquisition.sud.SUDNotificationManager;
|
||||||
import Array.ArrayManager;
|
import Array.ArrayManager;
|
||||||
import Array.PamArray;
|
import Array.PamArray;
|
||||||
import Array.Preamplifier;
|
import Array.Preamplifier;
|
||||||
@ -133,6 +137,9 @@ public class AcquisitionControl extends PamControlledUnit implements PamSettings
|
|||||||
*/
|
*/
|
||||||
private AquisitionGUIFX aquisitionGUIFX;
|
private AquisitionGUIFX aquisitionGUIFX;
|
||||||
|
|
||||||
|
private SUDNotificationManager sudNotificationManager;
|
||||||
|
|
||||||
|
protected SoundFileTypes soundFileTypes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main control unit for audio data acquisition.
|
* Main control unit for audio data acquisition.
|
||||||
@ -158,6 +165,8 @@ public class AcquisitionControl extends PamControlledUnit implements PamSettings
|
|||||||
|
|
||||||
pamController = PamController.getInstance();
|
pamController = PamController.getInstance();
|
||||||
|
|
||||||
|
soundFileTypes = new SoundFileTypes(this);
|
||||||
|
|
||||||
registerDaqSystem(new SoundCardSystem(this));
|
registerDaqSystem(new SoundCardSystem(this));
|
||||||
if (PlatformInfo.calculateOS() == OSType.WINDOWS) {
|
if (PlatformInfo.calculateOS() == OSType.WINDOWS) {
|
||||||
registerDaqSystem(new ASIOSoundSystem(this));
|
registerDaqSystem(new ASIOSoundSystem(this));
|
||||||
@ -201,14 +210,8 @@ public class AcquisitionControl extends PamControlledUnit implements PamSettings
|
|||||||
else {
|
else {
|
||||||
PamStatusBar statusBar = PamStatusBar.getStatusBar();
|
PamStatusBar statusBar = PamStatusBar.getStatusBar();
|
||||||
|
|
||||||
if (statusBar != null) {
|
if (statusBar != null && statusBarComponent != null) {
|
||||||
// statusBar.getToolBar().add(statusBarText = new JLabel());
|
|
||||||
// fillStatusBarText();
|
|
||||||
// statusBar.getToolBar().add(levelBar = new JProgressBar(-60, 0));
|
|
||||||
// levelBar.setValue(-60);
|
|
||||||
// levelBar.setOrientation(JProgressBar.HORIZONTAL);
|
|
||||||
statusBar.add(statusBarComponent);
|
statusBar.add(statusBarComponent);
|
||||||
// statusBar.getToolBar().addSeparator();
|
|
||||||
setupStatusBar();
|
setupStatusBar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -239,6 +242,7 @@ public class AcquisitionControl extends PamControlledUnit implements PamSettings
|
|||||||
|
|
||||||
|
|
||||||
private PamPanel systemPanel;
|
private PamPanel systemPanel;
|
||||||
|
|
||||||
protected Component getStatusBarComponent() {
|
protected Component getStatusBarComponent() {
|
||||||
PamPanel p = new PamPanel();
|
PamPanel p = new PamPanel();
|
||||||
p.add(statusBarText = new PamLabel());
|
p.add(statusBarText = new PamLabel());
|
||||||
@ -834,4 +838,15 @@ public class AcquisitionControl extends PamControlledUnit implements PamSettings
|
|||||||
return getDaqProcess().getRawDataBlock().getSummaryString(clear);
|
return getDaqProcess().getRawDataBlock().getSummaryString(clear);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the SUD processing notification manager.
|
||||||
|
* @return SUD processing notification manager.
|
||||||
|
*/
|
||||||
|
public SUDNotificationManager getSUDNotificationManager() {
|
||||||
|
if (sudNotificationManager == null) {
|
||||||
|
sudNotificationManager = new SUDNotificationManager();
|
||||||
|
}
|
||||||
|
return sudNotificationManager;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -33,23 +33,23 @@ public class AcquisitionLogging extends SQLLogging {
|
|||||||
this.acquisitionControl = acquisitionControl;
|
this.acquisitionControl = acquisitionControl;
|
||||||
|
|
||||||
tableDef = new PamTableDefinition(pamDataBlock.getDataName(), UPDATE_POLICY_OVERWRITE);
|
tableDef = new PamTableDefinition(pamDataBlock.getDataName(), UPDATE_POLICY_OVERWRITE);
|
||||||
tableDef.addTableItem(adcClockTime = new PamTableItem("ADC Clock", Types.TIMESTAMP));
|
tableDef.addTableItem(adcClockTime = new PamTableItem("ADC Clock", Types.TIMESTAMP, "Time based on PC clock and samples since last PC clock read"));
|
||||||
tableDef.addTableItem(adcClockMillis = new PamTableItem("ADC Clock millis", Types.INTEGER));
|
tableDef.addTableItem(adcClockMillis = new PamTableItem("ADC Clock millis", Types.INTEGER, "Millis for adcClockTime if not supported by database"));
|
||||||
tableDef.addTableItem(rawADCTime = new PamTableItem("RAW ADC Clock", Types.TIMESTAMP));
|
tableDef.addTableItem(rawADCTime = new PamTableItem("RAW ADC Clock", Types.TIMESTAMP, "Time based on start time and number of samples acquired"));
|
||||||
tableDef.addTableItem(gSamples = new PamTableItem("GigaSamples", Types.INTEGER));
|
tableDef.addTableItem(gSamples = new PamTableItem("GigaSamples", Types.INTEGER, "Billions of samples. Add this*1e9 to samples"));
|
||||||
tableDef.addTableItem(samples = new PamTableItem("Samples", Types.INTEGER));
|
tableDef.addTableItem(samples = new PamTableItem("Samples", Types.INTEGER, "Samples. Add this to GigaSamples*1e9"));
|
||||||
tableDef.addTableItem(GPSPPSTime = new PamTableItem("GPSPPSTime", Types.TIMESTAMP));
|
tableDef.addTableItem(GPSPPSTime = new PamTableItem("GPSPPSTime", Types.TIMESTAMP, "Time derived from a GPS with PPS output"));
|
||||||
tableDef.addTableItem(status = new PamTableItem("Status", Types.CHAR, 20));
|
tableDef.addTableItem(status = new PamTableItem("Status", Types.CHAR, 20, "Acquisition Status: 'Start', 'Stop', 'Continue'"));
|
||||||
tableDef.addTableItem(reason = new PamTableItem("Reason", Types.CHAR, 50));
|
tableDef.addTableItem(reason = new PamTableItem("Reason", Types.CHAR, 50, "Reason for status change"));
|
||||||
tableDef.addTableItem(daqSystemType = new PamTableItem("SystemType", Types.CHAR, 50));
|
tableDef.addTableItem(daqSystemType = new PamTableItem("SystemType", Types.CHAR, 50, "Type of acquisition system"));
|
||||||
tableDef.addTableItem(daqSystemName = new PamTableItem("SystemName", Types.CHAR, 50));
|
tableDef.addTableItem(daqSystemName = new PamTableItem("SystemName", Types.CHAR, 50, "Specific acquistision system"));
|
||||||
tableDef.addTableItem(sampleRate = new PamTableItem("sampleRate", Types.INTEGER));
|
tableDef.addTableItem(sampleRate = new PamTableItem("sampleRate", Types.INTEGER, "Sample rate (samples per second)"));
|
||||||
tableDef.addTableItem(nChannels = new PamTableItem("nChannels", Types.INTEGER));
|
tableDef.addTableItem(nChannels = new PamTableItem("nChannels", Types.INTEGER, "Total number of channels"));
|
||||||
tableDef.addTableItem(voltsPeak2Peak = new PamTableItem("voltsPeak2Peak", Types.DOUBLE));
|
tableDef.addTableItem(voltsPeak2Peak = new PamTableItem("voltsPeak2Peak", Types.DOUBLE, "Peak to peak input voltage of ADC"));
|
||||||
tableDef.addTableItem(gain = new PamTableItem("gain", Types.REAL));
|
tableDef.addTableItem(gain = new PamTableItem("gain", Types.REAL, "Additional amplifier gain"));
|
||||||
tableDef.addTableItem(duration = new PamTableItem("duration", Types.DOUBLE));
|
tableDef.addTableItem(duration = new PamTableItem("duration", Types.DOUBLE, "Time since start in seconds"));
|
||||||
tableDef.addTableItem(clockError = new PamTableItem("clockError", Types.DOUBLE));
|
tableDef.addTableItem(clockError = new PamTableItem("clockError", Types.DOUBLE, "Clock error in milliseconds"));
|
||||||
tableDef.addTableItem(serverTime = new PamTableItem("Server Time", Types.TIMESTAMP));
|
tableDef.addTableItem(serverTime = new PamTableItem("Server Time", Types.TIMESTAMP, "Time taken from an Internet time server"));
|
||||||
|
|
||||||
setTableDefinition(tableDef);
|
setTableDefinition(tableDef);
|
||||||
}
|
}
|
||||||
|
@ -254,10 +254,12 @@ public class AcquisitionProcess extends PamProcess {
|
|||||||
|
|
||||||
bufferOverflow = false;
|
bufferOverflow = false;
|
||||||
// daqCheckTime = PamCalendar.getTimeInMillis();
|
// daqCheckTime = PamCalendar.getTimeInMillis();
|
||||||
|
if (!netRX) {
|
||||||
Timer t = new Timer(1, new ReallyStart());
|
Timer t = new Timer(1, new ReallyStart());
|
||||||
t.setRepeats(false);
|
t.setRepeats(false);
|
||||||
t.start();
|
t.start();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean addServerTime(DaqStatusDataUnit daqStatusDataUnit) {
|
private boolean addServerTime(DaqStatusDataUnit daqStatusDataUnit) {
|
||||||
if (runningSystem.isRealTime() == false) {
|
if (runningSystem.isRealTime() == false) {
|
||||||
|
@ -7,6 +7,8 @@ import java.awt.GridBagLayout;
|
|||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.DataInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
@ -14,6 +16,8 @@ import java.io.IOException;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.sound.sampled.AudioFormat;
|
import javax.sound.sampled.AudioFormat;
|
||||||
import javax.sound.sampled.AudioInputStream;
|
import javax.sound.sampled.AudioInputStream;
|
||||||
import javax.sound.sampled.UnsupportedAudioFileException;
|
import javax.sound.sampled.UnsupportedAudioFileException;
|
||||||
@ -31,6 +35,10 @@ import javax.swing.border.TitledBorder;
|
|||||||
import org.jflac.FLACDecoder;
|
import org.jflac.FLACDecoder;
|
||||||
import org.jflac.frame.Frame;
|
import org.jflac.frame.Frame;
|
||||||
import org.jflac.util.ByteData;
|
import org.jflac.util.ByteData;
|
||||||
|
import org.pamguard.x3.sud.Chunk;
|
||||||
|
import org.pamguard.x3.sud.SudAudioInputStream;
|
||||||
|
import org.pamguard.x3.sud.SudFileListener;
|
||||||
|
import org.pamguard.x3.sud.SudParams;
|
||||||
import org.jflac.PCMProcessor;
|
import org.jflac.PCMProcessor;
|
||||||
import org.jflac.metadata.StreamInfo;
|
import org.jflac.metadata.StreamInfo;
|
||||||
import org.jflac.sound.spi.FlacEncoding;
|
import org.jflac.sound.spi.FlacEncoding;
|
||||||
@ -47,15 +55,14 @@ import wavFiles.ByteConverter;
|
|||||||
import Acquisition.filedate.FileDate;
|
import Acquisition.filedate.FileDate;
|
||||||
import Acquisition.filedate.FileDateDialogStrip;
|
import Acquisition.filedate.FileDateDialogStrip;
|
||||||
import Acquisition.filedate.FileDateObserver;
|
import Acquisition.filedate.FileDateObserver;
|
||||||
|
import Acquisition.filetypes.SoundFileType;
|
||||||
import Acquisition.pamAudio.PamAudioFileManager;
|
import Acquisition.pamAudio.PamAudioFileManager;
|
||||||
import Acquisition.pamAudio.PamAudioFileFilter;
|
import Acquisition.pamAudio.PamAudioFileFilter;
|
||||||
import Acquisition.pamAudio.PamAudioSystem;
|
|
||||||
import PamController.PamControlledUnitSettings;
|
import PamController.PamControlledUnitSettings;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamSettings;
|
import PamController.PamSettings;
|
||||||
import PamDetection.RawDataUnit;
|
import PamDetection.RawDataUnit;
|
||||||
import PamModel.SMRUEnable;
|
|
||||||
import PamUtils.PamCalendar;
|
import PamUtils.PamCalendar;
|
||||||
import PamUtils.PamFileChooser;
|
import PamUtils.PamFileChooser;
|
||||||
import PamView.dialog.PamLabel;
|
import PamView.dialog.PamLabel;
|
||||||
@ -141,6 +148,11 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
|
|
||||||
protected FileDateDialogStrip fileDateStrip;
|
protected FileDateDialogStrip fileDateStrip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sound file types present in the current selections.
|
||||||
|
*/
|
||||||
|
private List<SoundFileType> selectedFileTypes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text field for skipping initial few seconds of a file.
|
* Text field for skipping initial few seconds of a file.
|
||||||
*/
|
*/
|
||||||
@ -151,6 +163,9 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
*/
|
*/
|
||||||
private PamWarning fileWarning;
|
private PamWarning fileWarning;
|
||||||
|
|
||||||
|
private SudAudioInputStream sudAudioInputStream;
|
||||||
|
|
||||||
|
private SudListener sudListener;
|
||||||
|
|
||||||
public FileInputSystem(AcquisitionControl acquisitionControl) {
|
public FileInputSystem(AcquisitionControl acquisitionControl) {
|
||||||
this.acquisitionControl = acquisitionControl;
|
this.acquisitionControl = acquisitionControl;
|
||||||
@ -393,6 +408,9 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
if (newFile.length() == 0) return;
|
if (newFile.length() == 0) return;
|
||||||
|
|
||||||
File file = new File(newFile);
|
File file = new File(newFile);
|
||||||
|
|
||||||
|
setSelectedFileTypes(acquisitionControl.soundFileTypes.getUsedTypes(file));
|
||||||
|
|
||||||
if (file == null) return;
|
if (file == null) return;
|
||||||
|
|
||||||
// try to work out the date of the file
|
// try to work out the date of the file
|
||||||
@ -421,6 +439,10 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
if (audioStream instanceof SudAudioInputStream) {
|
||||||
|
acquisitionControl.getSUDNotificationManager().interpretNewFile(newFile, (SudAudioInputStream) audioStream);
|
||||||
|
}
|
||||||
|
|
||||||
AudioFormat audioFormat = audioStream.getFormat();
|
AudioFormat audioFormat = audioStream.getFormat();
|
||||||
// fileLength = file.length();
|
// fileLength = file.length();
|
||||||
fileSamples = audioStream.getFrameLength();
|
fileSamples = audioStream.getFrameLength();
|
||||||
@ -538,7 +560,7 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
}
|
}
|
||||||
|
|
||||||
public File getCurrentFile() {
|
public File getCurrentFile() {
|
||||||
System.out.println("fileInputParameters: " + fileInputParameters);
|
// System.out.println("fileInputParameters: " + fileInputParameters);
|
||||||
if (fileInputParameters.recentFiles == null) return null;
|
if (fileInputParameters.recentFiles == null) return null;
|
||||||
if (fileInputParameters.recentFiles.size() < 1) return null;
|
if (fileInputParameters.recentFiles.size() < 1) return null;
|
||||||
String fileName = fileInputParameters.recentFiles.get(0);
|
String fileName = fileInputParameters.recentFiles.get(0);
|
||||||
@ -565,7 +587,7 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
System.out.println("The current file was null");
|
System.out.println("The current file was null");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
System.out.printf("*********************************** Opening file %s\n", currentFile.getName());
|
// System.out.printf("*********************************** Opening file %s\n", currentFile.getName());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@ -575,6 +597,19 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
|
|
||||||
audioStream = PamAudioFileManager.getInstance().getAudioInputStream(currentFile);
|
audioStream = PamAudioFileManager.getInstance().getAudioInputStream(currentFile);
|
||||||
|
|
||||||
|
if (audioStream instanceof SudAudioInputStream) {
|
||||||
|
sudAudioInputStream = (SudAudioInputStream) audioStream;
|
||||||
|
if (sudListener == null) {
|
||||||
|
sudListener = new SudListener();
|
||||||
|
}
|
||||||
|
sudAudioInputStream.addSudFileListener(sudListener);
|
||||||
|
// sudAudioInputStream.ad
|
||||||
|
acquisitionControl.getSUDNotificationManager().newSudInputStream(sudAudioInputStream);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sudAudioInputStream = null;
|
||||||
|
}
|
||||||
|
|
||||||
if (audioStream == null) {
|
if (audioStream == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -608,6 +643,15 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class SudListener implements SudFileListener {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void chunkProcessed(int chunkID, Chunk sudChunk) {
|
||||||
|
acquisitionControl.getSUDNotificationManager().chunkProcessed(chunkID, sudChunk);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean runFileAnalysis() {
|
public boolean runFileAnalysis() {
|
||||||
// keep a reference to where data will be put.
|
// keep a reference to where data will be put.
|
||||||
@ -997,6 +1041,9 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (audioStream != null) {
|
if (audioStream != null) {
|
||||||
|
if (audioStream instanceof SudAudioInputStream) {
|
||||||
|
acquisitionControl.getSUDNotificationManager().sudStreamClosed();
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
audioStream.close();
|
audioStream.close();
|
||||||
audioStream = null;
|
audioStream = null;
|
||||||
@ -1186,4 +1233,27 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
getDialogPanel();
|
getDialogPanel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the selectedFileTypes
|
||||||
|
*/
|
||||||
|
public List<SoundFileType> getSelectedFileTypes() {
|
||||||
|
return selectedFileTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the file or file list selection is changes and finds a list of all
|
||||||
|
* sound file types included in the selection. this is only implemented for SUD files
|
||||||
|
* at the moment, the idea being to offer some additional functionality.
|
||||||
|
* @param selectedFileTypes the selectedFileTypes to set
|
||||||
|
*/
|
||||||
|
public void setSelectedFileTypes(List<SoundFileType> selectedFileTypes) {
|
||||||
|
this.selectedFileTypes = selectedFileTypes;
|
||||||
|
if (selectedFileTypes == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (SoundFileType aType : selectedFileTypes) {
|
||||||
|
aType.selected(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -10,6 +10,8 @@ import java.awt.event.ActionListener;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.sound.sampled.AudioFormat;
|
import javax.sound.sampled.AudioFormat;
|
||||||
import javax.sound.sampled.AudioInputStream;
|
import javax.sound.sampled.AudioInputStream;
|
||||||
import javax.swing.BoxLayout;
|
import javax.swing.BoxLayout;
|
||||||
@ -495,6 +497,9 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings{
|
|||||||
// fileListData.getFileCount(), System.currentTimeMillis() - wavListStart);
|
// fileListData.getFileCount(), System.currentTimeMillis() - wavListStart);
|
||||||
allFiles = fileListData.getListCopy();
|
allFiles = fileListData.getListCopy();
|
||||||
|
|
||||||
|
List<WavFileType> asList = allFiles;
|
||||||
|
setSelectedFileTypes(acquisitionControl.soundFileTypes.getUsedTypes(allFiles));
|
||||||
|
|
||||||
setFileDateText();
|
setFileDateText();
|
||||||
// also open up the first file and get the sample rate and number of channels from it
|
// also open up the first file and get the sample rate and number of channels from it
|
||||||
// and set these
|
// and set these
|
||||||
|
@ -13,6 +13,7 @@ import java.util.TimeZone;
|
|||||||
import Acquisition.KETime;
|
import Acquisition.KETime;
|
||||||
import Acquisition.layoutFX.FileDatePane;
|
import Acquisition.layoutFX.FileDatePane;
|
||||||
import Acquisition.layoutFX.StandardFileDatePane;
|
import Acquisition.layoutFX.StandardFileDatePane;
|
||||||
|
import Acquisition.sud.SUDFileTime;
|
||||||
import PamController.PamControlledUnitSettings;
|
import PamController.PamControlledUnitSettings;
|
||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamSettings;
|
import PamController.PamSettings;
|
||||||
@ -158,6 +159,11 @@ public class StandardFileDate implements FileDate, PamSettings {
|
|||||||
return forcedDataFormat(file, settings.getForcedDateFormat());
|
return forcedDataFormat(file, settings.getForcedDateFormat());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long sudTime = SUDFileTime.getSUDFileTime(file);
|
||||||
|
if (sudTime != Long.MIN_VALUE) {
|
||||||
|
return sudTime;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dtag files have an accompanying XML file which
|
* Dtag files have an accompanying XML file which
|
||||||
* has the same name. Try to find such a file and get
|
* has the same name. Try to find such a file and get
|
||||||
@ -169,6 +175,7 @@ public class StandardFileDate implements FileDate, PamSettings {
|
|||||||
return dTagTime;
|
return dTagTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
long stTime = SoundTrapTime.getSoundTrapTime(file, settings.getDateTimeFormatToUse());
|
long stTime = SoundTrapTime.getSoundTrapTime(file, settings.getDateTimeFormatToUse());
|
||||||
if (stTime != Long.MIN_VALUE) {
|
if (stTime != Long.MIN_VALUE) {
|
||||||
setLastFormat("Soundtrap file format \"" + settings.getDateTimeFormatToUse() + "\"");
|
setLastFormat("Soundtrap file format \"" + settings.getDateTimeFormatToUse() + "\"");
|
||||||
|
29
src/Acquisition/filetypes/SUDFileType.java
Normal file
29
src/Acquisition/filetypes/SUDFileType.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package Acquisition.filetypes;
|
||||||
|
|
||||||
|
import Acquisition.FileInputSystem;
|
||||||
|
import PamView.dialog.warn.WarnOnce;
|
||||||
|
|
||||||
|
public class SUDFileType extends SoundFileType {
|
||||||
|
|
||||||
|
private boolean isShown = false;
|
||||||
|
|
||||||
|
private String sudInfoText = "<html>There are SoundTrap SUD files in your selection. PAMGuard can now process data from these " +
|
||||||
|
"directly with no need to unpack them into WAV files. " +
|
||||||
|
"<p>If the SoundTrap was running with the click detector, then you should add a SoundTrap Click Detector module" +
|
||||||
|
" and detected clicks will automatically be extracted to binary files while processing the wav data." +
|
||||||
|
"<p>See the Click Detector help for further details";
|
||||||
|
|
||||||
|
public SUDFileType() {
|
||||||
|
super(".sud");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void selected(FileInputSystem fileInputSystem) {
|
||||||
|
if (isShown) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
WarnOnce.showWarning("SoundTrap SUD Files", sudInfoText, WarnOnce.OK_OPTION);
|
||||||
|
isShown = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
65
src/Acquisition/filetypes/SoundFileType.java
Normal file
65
src/Acquisition/filetypes/SoundFileType.java
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
package Acquisition.filetypes;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import Acquisition.FileInputSystem;
|
||||||
|
import Acquisition.pamAudio.PamAudioFileFilter;
|
||||||
|
import PamUtils.worker.filelist.WavFileType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Some functions for the File and Folder input systems to give a bit of
|
||||||
|
* extra functionality / help for different file types. Primarily introduced
|
||||||
|
* to give a couple of extras for sud files.
|
||||||
|
* @author dg50
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public abstract class SoundFileType {
|
||||||
|
|
||||||
|
private String fileType;
|
||||||
|
|
||||||
|
private PamAudioFileFilter fileFilter = new PamAudioFileFilter();
|
||||||
|
|
||||||
|
public SoundFileType(String fileType) {
|
||||||
|
this.fileType = fileType.toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Work out if any files of this type are included in the current selection.
|
||||||
|
* @param fileOrFolder this for a single file.
|
||||||
|
* @param includeSubfolders used with folders.
|
||||||
|
* @return true if any exist.
|
||||||
|
*/
|
||||||
|
public boolean isFileType(File oneFile) {
|
||||||
|
if (oneFile == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (oneFile.isFile()) {
|
||||||
|
return oneFile.getName().toLowerCase().endsWith(fileType);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Work out if any files of this type are included in the current selection.
|
||||||
|
* @param fileOrFolder this for a single file.
|
||||||
|
* @param includeSubfolders used with folders.
|
||||||
|
* @return true if any exist.
|
||||||
|
*/
|
||||||
|
public boolean hasFileType(List<WavFileType> files) {
|
||||||
|
if (files == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
for (File aFile : files) {
|
||||||
|
if (isFileType(aFile)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void selected(FileInputSystem fileInputSystem);
|
||||||
|
|
||||||
|
}
|
74
src/Acquisition/filetypes/SoundFileTypes.java
Normal file
74
src/Acquisition/filetypes/SoundFileTypes.java
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
package Acquisition.filetypes;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import Acquisition.AcquisitionControl;
|
||||||
|
import PamUtils.worker.filelist.WavFileType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of SoundFileType objects.
|
||||||
|
* @author dg50
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SoundFileTypes {
|
||||||
|
|
||||||
|
private AcquisitionControl acquisitionControl;
|
||||||
|
|
||||||
|
private ArrayList<SoundFileType> availableTypes = new ArrayList<>();
|
||||||
|
|
||||||
|
public SoundFileTypes(AcquisitionControl acquisitionControl) {
|
||||||
|
this.acquisitionControl = acquisitionControl;
|
||||||
|
availableTypes.add(new SUDFileType());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of used file types. Reaslistically this
|
||||||
|
* can only return one value.
|
||||||
|
* @param aFile
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public SoundFileType getFileType(File aFile) {
|
||||||
|
ArrayList<SoundFileType> usedTypes = new ArrayList<>();
|
||||||
|
for (SoundFileType aType : availableTypes) {
|
||||||
|
if (aType.isFileType(aFile)) {
|
||||||
|
return aType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of used file types. Realistically this
|
||||||
|
* can only return one value but possibly it's useful to have it in the same
|
||||||
|
* format as the multiple file version. .
|
||||||
|
* @param aFile
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<SoundFileType> getUsedTypes(File aFile) {
|
||||||
|
ArrayList<SoundFileType> usedTypes = new ArrayList<>();
|
||||||
|
for (SoundFileType aType : availableTypes) {
|
||||||
|
if (aType.isFileType(aFile)) {
|
||||||
|
usedTypes.add(aType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return usedTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of used file types for the folder Input System.
|
||||||
|
* @param aFile
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<SoundFileType> getUsedTypes(List<WavFileType> aFile) {
|
||||||
|
ArrayList<SoundFileType> usedTypes = new ArrayList<>();
|
||||||
|
for (SoundFileType aType : availableTypes) {
|
||||||
|
if (aType.hasFileType(aFile)) {
|
||||||
|
usedTypes.add(aType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return usedTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -109,7 +109,7 @@ public class PamAudioFileManager {
|
|||||||
|
|
||||||
AudioInputStream stream = null;
|
AudioInputStream stream = null;
|
||||||
for (int i = 0; i < pamAudioFileTypes.size(); i++) {
|
for (int i = 0; i < pamAudioFileTypes.size(); i++) {
|
||||||
System.out.println(file.getName() + " " + pamAudioFileTypes.get(i).getName());
|
// System.out.println(file.getName() + " " + pamAudioFileTypes.get(i).getName());
|
||||||
if (isExtension(file, pamAudioFileTypes.get(i))) {
|
if (isExtension(file, pamAudioFileTypes.get(i))) {
|
||||||
//System.out.println("Get stream for: " +pamAudioFileTypes.get(i).getName());
|
//System.out.println("Get stream for: " +pamAudioFileTypes.get(i).getName());
|
||||||
stream = pamAudioFileTypes.get(i).getAudioStream(file);
|
stream = pamAudioFileTypes.get(i).getAudioStream(file);
|
||||||
|
86
src/Acquisition/sud/SUDFileTime.java
Normal file
86
src/Acquisition/sud/SUDFileTime.java
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
package Acquisition.sud;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
|
import org.pamguard.x3.sud.ChunkHeader;
|
||||||
|
import org.pamguard.x3.sud.SudAudioInputStream;
|
||||||
|
import org.pamguard.x3.sud.SudFileMap;
|
||||||
|
import org.pamguard.x3.sud.SudParams;
|
||||||
|
|
||||||
|
import PamUtils.PamCalendar;
|
||||||
|
|
||||||
|
public class SUDFileTime {
|
||||||
|
|
||||||
|
private static long sudTime;
|
||||||
|
|
||||||
|
private static String lastFilePath = "";
|
||||||
|
/**
|
||||||
|
* Temp measure to get the time from the first available sud record.
|
||||||
|
* @param file
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static long getSUDFileTime(File file) {
|
||||||
|
if (file == null || file.exists() == false) {
|
||||||
|
return Long.MIN_VALUE;
|
||||||
|
}
|
||||||
|
if (file.getName().toLowerCase().endsWith(".sud") == false) {
|
||||||
|
return Long.MIN_VALUE;
|
||||||
|
}
|
||||||
|
String filePath = file.getAbsolutePath();
|
||||||
|
if (filePath.equals(lastFilePath)) {
|
||||||
|
return sudTime;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Open the sud file and read it until the first chunk arrive, get the time
|
||||||
|
* from there and close it again. I don't really see another way.
|
||||||
|
*/
|
||||||
|
// long t1 = System.currentTimeMillis();
|
||||||
|
sudTime = Long.MIN_VALUE;
|
||||||
|
SudParams sudParams = new SudParams();
|
||||||
|
sudParams.saveMeta = false;
|
||||||
|
sudParams.saveWav = false;
|
||||||
|
try {
|
||||||
|
SudAudioInputStream sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
|
||||||
|
if (sudAudioInputStream == null) {
|
||||||
|
return Long.MIN_VALUE;
|
||||||
|
}
|
||||||
|
SudFileMap sudMap = sudAudioInputStream.getSudMap();
|
||||||
|
if (sudMap == null) {
|
||||||
|
return Long.MIN_VALUE;
|
||||||
|
}
|
||||||
|
long t = sudMap.getFirstChunkTimeMillis();
|
||||||
|
if (t != 0) {
|
||||||
|
sudTime = t;
|
||||||
|
}
|
||||||
|
// sudAudioInputStream.addSudFileListener((chunkID, sudChunk)->{
|
||||||
|
// ChunkHeader chunkHead = sudChunk.chunkHeader;
|
||||||
|
// if (chunkHead == null || sudTime != Long.MIN_VALUE) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// long millis = (long) chunkHead.TimeS*1000 + (long) chunkHead.TimeOffsetUs/1000;
|
||||||
|
// if (millis > 0) {
|
||||||
|
// sudTime = millis;
|
||||||
|
// lastFilePath = filePath;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// while (sudAudioInputStream.available() > 0 && sudTime == Long.MIN_VALUE) {
|
||||||
|
//
|
||||||
|
// //note this is reading bytes of uncompressed continuous recordings only.
|
||||||
|
// sudAudioInputStream.read();
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
sudAudioInputStream.close();
|
||||||
|
// long t2 = System.currentTimeMillis();
|
||||||
|
// System.out.printf("SUD file time %s extracted in %d milliseconds\n", PamCalendar.formatDBDateTime(sudTime), t2-t1);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Error getting time from SUD file: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return sudTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
36
src/Acquisition/sud/SUDNotificationHandler.java
Normal file
36
src/Acquisition/sud/SUDNotificationHandler.java
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package Acquisition.sud;
|
||||||
|
|
||||||
|
import org.pamguard.x3.sud.Chunk;
|
||||||
|
import org.pamguard.x3.sud.SudAudioInputStream;
|
||||||
|
import org.pamguard.x3.sud.SudFileListener;
|
||||||
|
import org.pamguard.x3.sud.SudProgressListener;
|
||||||
|
|
||||||
|
public interface SUDNotificationHandler extends SudFileListener, SudProgressListener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A new SUD file input stream has been opened.
|
||||||
|
* @param sudAudioInputStream
|
||||||
|
*/
|
||||||
|
public void newSudInputStream(SudAudioInputStream sudAudioInputStream);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SUD stream has closed.
|
||||||
|
*/
|
||||||
|
public void sudStreamClosed();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void progress(double arg0, int arg1, int arg2);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void chunkProcessed(int chunkId, Chunk sudChunk);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notification that a new file or folder is selected. This is called when a file
|
||||||
|
* or folder is selected in the dialog, NOT when acquisition starts, so is a good
|
||||||
|
* opportunity for the SUD Click Detector to work out channel maps and sample rates.
|
||||||
|
* @param newFile
|
||||||
|
* @param sudAudioStream
|
||||||
|
*/
|
||||||
|
public void interpretNewFile(String newFile, SudAudioInputStream sudAudioStream);
|
||||||
|
|
||||||
|
}
|
66
src/Acquisition/sud/SUDNotificationManager.java
Normal file
66
src/Acquisition/sud/SUDNotificationManager.java
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
package Acquisition.sud;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.pamguard.x3.sud.Chunk;
|
||||||
|
import org.pamguard.x3.sud.SudAudioInputStream;
|
||||||
|
import org.pamguard.x3.sud.SudFileListener;
|
||||||
|
import org.pamguard.x3.sud.SudProgressListener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to handle appropriate notifications for SUD files, which go a bit
|
||||||
|
* beyond what's handled in the chunk notifications.
|
||||||
|
* @author dg50
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SUDNotificationManager implements SUDNotificationHandler {
|
||||||
|
|
||||||
|
private ArrayList<SUDNotificationHandler> handlers = new ArrayList();
|
||||||
|
|
||||||
|
public void addNotificationHandler(SUDNotificationHandler sudNotificationHandler) {
|
||||||
|
if (handlers.contains(sudNotificationHandler)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
handlers.add(sudNotificationHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean removeNotificationHandler(SUDNotificationHandler sudNotificationHandler) {
|
||||||
|
return handlers.remove(sudNotificationHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void newSudInputStream(SudAudioInputStream sudAudioInputStream) {
|
||||||
|
for (SUDNotificationHandler handler : handlers) {
|
||||||
|
handler.newSudInputStream(sudAudioInputStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sudStreamClosed() {
|
||||||
|
for (SUDNotificationHandler handler : handlers) {
|
||||||
|
handler.sudStreamClosed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void progress(double arg0, int arg1, int arg2) {
|
||||||
|
for (SUDNotificationHandler handler : handlers) {
|
||||||
|
handler.progress(arg0, arg1, arg2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void chunkProcessed(int chunkId, Chunk sudChunk) {
|
||||||
|
for (SUDNotificationHandler handler : handlers) {
|
||||||
|
handler.chunkProcessed(chunkId, sudChunk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void interpretNewFile(String newFile, SudAudioInputStream sudAudioStream) {
|
||||||
|
for (SUDNotificationHandler handler : handlers) {
|
||||||
|
handler.interpretNewFile(newFile, sudAudioStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -77,6 +77,9 @@ public class ThreadingHydrophoneLocator extends StraightHydrophoneLocator implem
|
|||||||
*/
|
*/
|
||||||
while (gpsIt.hasPrevious()) {
|
while (gpsIt.hasPrevious()) {
|
||||||
gpsUnit = gpsIt.previous();
|
gpsUnit = gpsIt.previous();
|
||||||
|
if (gpsUnit == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
gpsData = gpsUnit;
|
gpsData = gpsUnit;
|
||||||
if (gpsUnit.getTimeInMillis() < timeMilliseconds) {
|
if (gpsUnit.getTimeInMillis() < timeMilliseconds) {
|
||||||
break;
|
break;
|
||||||
|
@ -313,6 +313,9 @@ public abstract class IIRFilterMethod extends FilterMethod {
|
|||||||
// if (nOddOnes != 0) {
|
// if (nOddOnes != 0) {
|
||||||
pole1 = pzPairs[i].getPole();
|
pole1 = pzPairs[i].getPole();
|
||||||
zero1 = pzPairs[i].getZero();
|
zero1 = pzPairs[i].getZero();
|
||||||
|
if (pole1 == null || zero1 == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
a1 = -zero1.real;
|
a1 = -zero1.real;
|
||||||
b1 = pole1.real;
|
b1 = pole1.real;
|
||||||
doubleCoefficients[j+0] = a1;
|
doubleCoefficients[j+0] = a1;
|
||||||
|
@ -31,12 +31,12 @@ public class PamguardVersionInfo {
|
|||||||
* Version number, major version.minorversion.sub-release.
|
* Version number, major version.minorversion.sub-release.
|
||||||
* Note: can't go higher than sub-release 'f'
|
* Note: can't go higher than sub-release 'f'
|
||||||
*/
|
*/
|
||||||
static public final String version = "2.02.05";
|
static public final String version = "2.02.06";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Release date
|
* Release date
|
||||||
*/
|
*/
|
||||||
static public final String date = "21 October 2022";
|
static public final String date = "15 November 2022";
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * Release type - Beta or Core
|
// * Release type - Beta or Core
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package PamController.command;
|
package PamController.command;
|
||||||
|
|
||||||
import Map.GetMapFile;
|
|
||||||
import PamController.PamControlledUnit;
|
import PamController.PamControlledUnit;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
import PamUtils.PamCalendar;
|
import PamUtils.PamCalendar;
|
||||||
@ -56,6 +55,9 @@ public class SummaryCommand extends ExtCommand {
|
|||||||
totalString += String.format("\n<%s>%s:%s<\\%s>", aModule.getShortUnitType(),
|
totalString += String.format("\n<%s>%s:%s<\\%s>", aModule.getShortUnitType(),
|
||||||
aModule.getUnitName(), aString, aModule.getShortUnitType());
|
aModule.getUnitName(), aString, aModule.getShortUnitType());
|
||||||
}
|
}
|
||||||
|
if (clear) {
|
||||||
|
lastCallTime = nowTime;
|
||||||
|
}
|
||||||
return totalString;
|
return totalString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -674,11 +674,6 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
mi.setModulesMenuGroup(detectorsGroup);
|
mi.setModulesMenuGroup(detectorsGroup);
|
||||||
mi.addGUICompatabilityFlag(PamGUIManager.FX);
|
mi.addGUICompatabilityFlag(PamGUIManager.FX);
|
||||||
|
|
||||||
mi = PamModuleInfo.registerControlledUnit("soundtrap.STClickControl", "SoundTrap Click Detector");
|
|
||||||
mi.setModulesMenuGroup(detectorsGroup);
|
|
||||||
mi.setToolTipText("Click Detector module for Soundtrap detector data");
|
|
||||||
mi.setHidden(isViewer == false);
|
|
||||||
|
|
||||||
mi = PamModuleInfo.registerControlledUnit("clickTrainDetector.ClickTrainControl", "Click Train Detector");
|
mi = PamModuleInfo.registerControlledUnit("clickTrainDetector.ClickTrainControl", "Click Train Detector");
|
||||||
mi.addDependency(new PamDependency(RawDataUnit.class, "clickDetector.ClickControl"));
|
mi.addDependency(new PamDependency(RawDataUnit.class, "clickDetector.ClickControl"));
|
||||||
mi.setToolTipText("Searches for click trains in detected clicks.");
|
mi.setToolTipText("Searches for click trains in detected clicks.");
|
||||||
@ -729,6 +724,11 @@ final public class PamModel implements PamModelInterface, PamSettings {
|
|||||||
mi.setToolTipText("Generalised Power Law Detector for tonal sounds");
|
mi.setToolTipText("Generalised Power Law Detector for tonal sounds");
|
||||||
mi.setModulesMenuGroup(detectorsGroup);
|
mi.setModulesMenuGroup(detectorsGroup);
|
||||||
|
|
||||||
|
mi = PamModuleInfo.registerControlledUnit("soundtrap.STClickControl", "SoundTrap Click Detector");
|
||||||
|
mi.setModulesMenuGroup(detectorsGroup);
|
||||||
|
mi.setToolTipText("Click Detector module for Soundtrap detector data only");
|
||||||
|
// mi.setHidden(isViewer == false);
|
||||||
|
|
||||||
// mi = PamModuleInfo.registerControlledUnit("WorkshopDemo.WorkshopController", "Workshop Demo Detector");
|
// mi = PamModuleInfo.registerControlledUnit("WorkshopDemo.WorkshopController", "Workshop Demo Detector");
|
||||||
// mi.addDependency(new PamDependency(FFTDataUnit.class, "fftManager.PamFFTControl"));
|
// mi.addDependency(new PamDependency(FFTDataUnit.class, "fftManager.PamFFTControl"));
|
||||||
// mi.setToolTipText("Simple demo detector for programmers");
|
// mi.setToolTipText("Simple demo detector for programmers");
|
||||||
|
@ -17,7 +17,7 @@ public class PamAudioFileFilter extends PamFileFilter {
|
|||||||
// addFileType(".AIFF");
|
// addFileType(".AIFF");
|
||||||
// addFileType(".FLAC");
|
// addFileType(".FLAC");
|
||||||
addFileType(".flac");
|
addFileType(".flac");
|
||||||
// addFileType(".sud");
|
addFileType(".sud");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package PamUtils;
|
package PamUtils;
|
||||||
|
|
||||||
|
import java.io.BufferedWriter;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
@ -9,6 +11,7 @@ import java.io.StringWriter;
|
|||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
|
import javax.xml.transform.OutputKeys;
|
||||||
import javax.xml.transform.Transformer;
|
import javax.xml.transform.Transformer;
|
||||||
import javax.xml.transform.TransformerException;
|
import javax.xml.transform.TransformerException;
|
||||||
import javax.xml.transform.TransformerFactory;
|
import javax.xml.transform.TransformerFactory;
|
||||||
@ -183,4 +186,47 @@ public class XMLUtils {
|
|||||||
}
|
}
|
||||||
return doc;
|
return doc;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Write to the given file.
|
||||||
|
* @param doc xml document
|
||||||
|
* @param outFile file
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public static void writeToFile(Document doc, File outFile) throws IOException {
|
||||||
|
String asString = getAsString(doc);
|
||||||
|
if (asString!=null) {
|
||||||
|
try {
|
||||||
|
BufferedWriter out = new BufferedWriter(new FileWriter(outFile, false));
|
||||||
|
out.write(asString);
|
||||||
|
out.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the xml document as a String.
|
||||||
|
* @param doc xml document
|
||||||
|
* @return xml content as a a string.
|
||||||
|
*/
|
||||||
|
public static String getAsString(Document doc) {
|
||||||
|
try {
|
||||||
|
DOMSource domSource = new DOMSource(doc);
|
||||||
|
StringWriter writer = new StringWriter();
|
||||||
|
StreamResult result = new StreamResult(writer);
|
||||||
|
TransformerFactory tf = TransformerFactory.newInstance();
|
||||||
|
Transformer transformer = tf.newTransformer();
|
||||||
|
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
|
||||||
|
transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
|
||||||
|
// transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
|
||||||
|
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||||
|
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
|
||||||
|
transformer.transform(domSource, result);
|
||||||
|
return writer.toString();
|
||||||
|
} catch (TransformerException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,6 +65,7 @@ import PamDetection.LocalisationInfo;
|
|||||||
import PamUtils.PamCalendar;
|
import PamUtils.PamCalendar;
|
||||||
import PamUtils.PamUtils;
|
import PamUtils.PamUtils;
|
||||||
import PamView.symbol.PamSymbolManager;
|
import PamView.symbol.PamSymbolManager;
|
||||||
|
import PamguardMVC.background.BackgroundDataBlock;
|
||||||
import PamguardMVC.background.BackgroundManager;
|
import PamguardMVC.background.BackgroundManager;
|
||||||
import PamguardMVC.dataOffline.OfflineDataLoadInfo;
|
import PamguardMVC.dataOffline.OfflineDataLoadInfo;
|
||||||
import PamguardMVC.dataOffline.OfflineDataLoading;
|
import PamguardMVC.dataOffline.OfflineDataLoading;
|
||||||
@ -944,6 +945,12 @@ public class PamDataBlock<Tunit extends PamDataUnit> extends PamObservable {
|
|||||||
recycledUnits.clear();
|
recycledUnits.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (backgroundManager != null) {
|
||||||
|
BackgroundDataBlock bdb = backgroundManager.getBackgroundDataBlock();
|
||||||
|
if (bdb != null) {
|
||||||
|
bdb.clearAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -400,7 +400,7 @@ public class PamObservable {//extends PanelOverlayDraw {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Timer t = new Timer(1000, new ActionListener() {
|
private Timer t = new Timer(4321, new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
if (cpuUsage == null) return;
|
if (cpuUsage == null) return;
|
||||||
@ -413,6 +413,16 @@ public class PamObservable {//extends PanelOverlayDraw {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Had some issues with the Timer holding a reference to the underlying PamDataBlock
|
||||||
|
* (RoccaContourDataBlock, in this case) and not releasing it for garbage collection.
|
||||||
|
* Added in this method to force the timer to stop and release it's hold.
|
||||||
|
*/
|
||||||
|
public void stopTimer() {
|
||||||
|
t.stop();
|
||||||
|
}
|
||||||
|
|
||||||
public double getCPUPercent(int objectIndex) {
|
public double getCPUPercent(int objectIndex) {
|
||||||
if (objectIndex < 0 || objectIndex >= cpuPercent.length) return -1;
|
if (objectIndex < 0 || objectIndex >= cpuPercent.length) return -1;
|
||||||
return cpuPercent[objectIndex];
|
return cpuPercent[objectIndex];
|
||||||
|
@ -17,6 +17,7 @@ import javax.swing.Timer;
|
|||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.w3c.dom.Element;
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
|
import Acquisition.FolderInputSystem;
|
||||||
import PamController.PamControlledUnit;
|
import PamController.PamControlledUnit;
|
||||||
import PamController.PamControlledUnitSettings;
|
import PamController.PamControlledUnitSettings;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
@ -24,6 +25,7 @@ import PamController.PamControllerInterface;
|
|||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamSettings;
|
import PamController.PamSettings;
|
||||||
import PamController.command.CommandManager;
|
import PamController.command.CommandManager;
|
||||||
|
import PamUtils.FileFunctions;
|
||||||
import PamUtils.PamCalendar;
|
import PamUtils.PamCalendar;
|
||||||
import PamUtils.PamUtils;
|
import PamUtils.PamUtils;
|
||||||
import PamView.MenuItemEnabler;
|
import PamView.MenuItemEnabler;
|
||||||
@ -35,6 +37,7 @@ import SoundRecorder.trigger.RecorderTrigger;
|
|||||||
import SoundRecorder.trigger.RecorderTriggerData;
|
import SoundRecorder.trigger.RecorderTriggerData;
|
||||||
import SoundRecorder.trigger.TriggerDecisionMaker;
|
import SoundRecorder.trigger.TriggerDecisionMaker;
|
||||||
import backupmanager.BackupInformation;
|
import backupmanager.BackupInformation;
|
||||||
|
import pamguard.GlobalArguments;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Control a sound file recorder. The sound file recorder has two
|
* Control a sound file recorder. The sound file recorder has two
|
||||||
@ -434,9 +437,51 @@ public class RecorderControl extends PamControlledUnit implements PamSettings {
|
|||||||
public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings) {
|
public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings) {
|
||||||
recorderSettings = ((RecorderSettings) pamControlledUnitSettings.getSettings()).clone();
|
recorderSettings = ((RecorderSettings) pamControlledUnitSettings.getSettings()).clone();
|
||||||
newParams();
|
newParams();
|
||||||
|
/*
|
||||||
|
* Then check to see if there is a command line override of the currently stored folder name.
|
||||||
|
*/
|
||||||
|
String globFolder = GlobalArguments.getParam(FolderInputSystem.GlobalWavFolderArg);
|
||||||
|
if (globFolder != null) {
|
||||||
|
boolean ok = checkGlobFolder(globFolder);
|
||||||
|
if (ok) {
|
||||||
|
recorderSettings.setOutputFolder(globFolder); // remember it.
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
System.err.println("Unable to set recording storage folder " + globFolder);
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set and create if necessary the global folder.
|
||||||
|
* @param globFolder
|
||||||
|
*/
|
||||||
|
private boolean checkGlobFolder(String globFolder) {
|
||||||
|
File outFold = new File(globFolder);
|
||||||
|
if (outFold.exists()) {
|
||||||
|
if (outFold.isDirectory()) {
|
||||||
|
return true; // all OK
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false; // it must be a file - that's bad !
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// try to create it.
|
||||||
|
try {
|
||||||
|
if (outFold.mkdirs()) {
|
||||||
|
FileFunctions.setNonIndexingBit(outFold);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false; // unable to make the folder.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
System.err.println("Can't set recording store folder: " + e.getLocalizedMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a recorder trigger to this recorderControl. This can either be called
|
* Adds a recorder trigger to this recorderControl. This can either be called
|
||||||
|
@ -64,6 +64,10 @@ public class RecorderSettings implements Serializable, Cloneable, ManagedParamet
|
|||||||
*/
|
*/
|
||||||
public String outputFolder;
|
public String outputFolder;
|
||||||
|
|
||||||
|
public void setOutputFolder(String outputFolder) {
|
||||||
|
this.outputFolder = outputFolder;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initials to add to the start of a file name, the rest
|
* Initials to add to the start of a file name, the rest
|
||||||
* of which is made up from the date.
|
* of which is made up from the date.
|
||||||
|
@ -17,7 +17,7 @@ public class SnrSqlAddon implements SQLLoggingAddon {
|
|||||||
public SnrSqlAddon(SNRAnnotationType snrAnnotationType) {
|
public SnrSqlAddon(SNRAnnotationType snrAnnotationType) {
|
||||||
super();
|
super();
|
||||||
this.snrAnnotationType = snrAnnotationType;
|
this.snrAnnotationType = snrAnnotationType;
|
||||||
snr = new PamTableItem("snr", Types.DOUBLE);
|
snr = new PamTableItem("snr", Types.DOUBLE, "Signal to Noise ratio");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -18,10 +18,10 @@ public class SPLSqlAddon implements SQLLoggingAddon {
|
|||||||
public SPLSqlAddon(SPLAnnotationType splAnnotationType) {
|
public SPLSqlAddon(SPLAnnotationType splAnnotationType) {
|
||||||
super();
|
super();
|
||||||
this.splAnnotationType = splAnnotationType;
|
this.splAnnotationType = splAnnotationType;
|
||||||
rms = new PamTableItem("RMS", Types.DOUBLE);
|
rms = new PamTableItem("RMS", Types.DOUBLE, "RMS Level");
|
||||||
zeroPeak = new PamTableItem("ZeroPeak", Types.DOUBLE);
|
zeroPeak = new PamTableItem("ZeroPeak", Types.DOUBLE, "Zero to Peak Level");
|
||||||
peakPeak = new PamTableItem("PeakPeak", Types.DOUBLE);
|
peakPeak = new PamTableItem("PeakPeak", Types.DOUBLE, "Peak to Peak Level");
|
||||||
sel = new PamTableItem("SEL", Types.DOUBLE);
|
sel = new PamTableItem("SEL", Types.DOUBLE, "Sound Exposure Level");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -20,7 +20,7 @@ public class StringSQLLogging implements SQLLoggingAddon {
|
|||||||
super();
|
super();
|
||||||
this.stringAnnotationType = stringAnnotationType;
|
this.stringAnnotationType = stringAnnotationType;
|
||||||
notes = new PamTableItem(stringAnnotationType.getAnnotationName(),
|
notes = new PamTableItem(stringAnnotationType.getAnnotationName(),
|
||||||
Types.CHAR, stringAnnotationType.getMaxLength());
|
Types.CHAR, stringAnnotationType.getMaxLength(), "Notes");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -21,16 +21,16 @@ public class BearingAnnotationSQL implements SQLLoggingAddon {
|
|||||||
public BearingAnnotationSQL(BearingAnnotationType bearingAnnotationType) {
|
public BearingAnnotationSQL(BearingAnnotationType bearingAnnotationType) {
|
||||||
super();
|
super();
|
||||||
this.bearingAnnotationType = bearingAnnotationType;
|
this.bearingAnnotationType = bearingAnnotationType;
|
||||||
algoName = new PamTableItem("BearingAlgorithm", Types.CHAR, 30);
|
algoName = new PamTableItem("BearingAlgorithm", Types.CHAR, 30, "Algorithm Name");
|
||||||
angle[0] = new PamTableItem("BearingAngle1", Types.REAL);
|
angle[0] = new PamTableItem("BearingAngle1", Types.REAL, "Horizontal angle (radians)");
|
||||||
angle[1] = new PamTableItem("BearingAngle2", Types.REAL);
|
angle[1] = new PamTableItem("BearingAngle2", Types.REAL, "Vertical angle (radians)");
|
||||||
angleError[0] = new PamTableItem("BearingError1", Types.REAL);
|
angleError[0] = new PamTableItem("BearingError1", Types.REAL, "Horizontal angle error (radians)");
|
||||||
angleError[1] = new PamTableItem("BearingError2", Types.REAL);
|
angleError[1] = new PamTableItem("BearingError2", Types.REAL, "Vertical angle error (radians)");
|
||||||
refAngles[0] = new PamTableItem("ReferenceAngle1", Types.REAL);
|
refAngles[0] = new PamTableItem("ReferenceAngle1", Types.REAL, "Horizontal angle reference");
|
||||||
refAngles[1] = new PamTableItem("ReferenceAngle2", Types.REAL);
|
refAngles[1] = new PamTableItem("ReferenceAngle2", Types.REAL, "Vertical angle reference");
|
||||||
bfPhones = new PamTableItem("BearingPhones", Types.INTEGER);
|
bfPhones = new PamTableItem("BearingPhones", Types.INTEGER, "Used hydrophones bitmap");
|
||||||
bfArrayType = new PamTableItem("BearingArrayType", Types.SMALLINT);
|
bfArrayType = new PamTableItem("BearingArrayType", Types.SMALLINT, "Array Type 1=point;2=line;3=plane;4=volume");
|
||||||
bfContents = new PamTableItem("BearingLocContents", Types.INTEGER);
|
bfContents = new PamTableItem("BearingLocContents", Types.INTEGER, "Bitmap of localisation information types");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -131,6 +131,17 @@ public class BinaryStorageDialogPanel {
|
|||||||
binaryStoreSettings.datedSubFolders = dateSubFolders.isSelected();
|
binaryStoreSettings.datedSubFolders = dateSubFolders.isSelected();
|
||||||
binaryStoreSettings.limitFileSize = limitfileSize.isSelected();
|
binaryStoreSettings.limitFileSize = limitfileSize.isSelected();
|
||||||
|
|
||||||
|
if (allowChannelOffsets) {
|
||||||
|
try {
|
||||||
|
binaryStoreSettings.channelShift = Integer.valueOf(channelOffset.getText());
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e) {
|
||||||
|
return PamDialog.showWarning(owner, errorTitle, "Invalid channel offset number format");
|
||||||
|
}
|
||||||
|
if (binaryStoreSettings.channelShift < 0 || binaryStoreSettings.channelShift > 31) {
|
||||||
|
return PamDialog.showWarning(owner, errorTitle, "Channel offset bust be between 0 and 31");
|
||||||
|
}
|
||||||
|
}
|
||||||
if (PamController.getInstance().getRunMode() == PamController.RUN_PAMVIEW) {
|
if (PamController.getInstance().getRunMode() == PamController.RUN_PAMVIEW) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -157,17 +168,6 @@ public class BinaryStorageDialogPanel {
|
|||||||
return PamDialog.showWarning(owner, errorTitle, "Invalid file size data");
|
return PamDialog.showWarning(owner, errorTitle, "Invalid file size data");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (allowChannelOffsets) {
|
|
||||||
try {
|
|
||||||
binaryStoreSettings.channelShift = Integer.valueOf(channelOffset.getText());
|
|
||||||
}
|
|
||||||
catch (NumberFormatException e) {
|
|
||||||
return PamDialog.showWarning(owner, errorTitle, "Invalid channel offset number format");
|
|
||||||
}
|
|
||||||
if (binaryStoreSettings.channelShift < 0 || binaryStoreSettings.channelShift > 31) {
|
|
||||||
return PamDialog.showWarning(owner, errorTitle, "Channel offset bust be between 0 and 31");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
NoiseStoreType nst = (NoiseStoreType) noiseStoreType.getSelectedItem();
|
NoiseStoreType nst = (NoiseStoreType) noiseStoreType.getSelectedItem();
|
||||||
if (nst == null) {
|
if (nst == null) {
|
||||||
return PamDialog.showWarning(owner, errorTitle, "You must select a noise storage type");
|
return PamDialog.showWarning(owner, errorTitle, "You must select a noise storage type");
|
||||||
|
@ -1096,7 +1096,7 @@ public class ClickDetector extends PamProcess {
|
|||||||
* @return true if the tasks complete successfully and the click is to be kept.
|
* @return true if the tasks complete successfully and the click is to be kept.
|
||||||
* false otherwise.
|
* false otherwise.
|
||||||
*/
|
*/
|
||||||
private boolean completeClick(ClickDetection newClick) {
|
public boolean completeClick(ClickDetection newClick) {
|
||||||
|
|
||||||
if (newClick.dataType == ClickDetection.CLICK_CLICK) {
|
if (newClick.dataType == ClickDetection.CLICK_CLICK) {
|
||||||
int nChannels = PamUtils.getNumChannels(newClick.getChannelBitmap());
|
int nChannels = PamUtils.getNumChannels(newClick.getChannelBitmap());
|
||||||
|
@ -428,11 +428,26 @@ PamSettingsSource {
|
|||||||
JMenuItem speedMenu = new JMenuItem("Test database speed");
|
JMenuItem speedMenu = new JMenuItem("Test database speed");
|
||||||
speedMenu.addActionListener(new SpeedMenu(parentFrame));
|
speedMenu.addActionListener(new SpeedMenu(parentFrame));
|
||||||
menu.add(speedMenu);
|
menu.add(speedMenu);
|
||||||
|
|
||||||
|
JMenuItem exSchema = new JMenuItem("Export database schema");
|
||||||
|
exSchema.addActionListener(new ActionListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
exportDatabaseSchema(parentFrame);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
menu.add(exSchema);
|
||||||
}
|
}
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void exportDatabaseSchema(JFrame parentFrame) {
|
||||||
|
dbProcess.exportDatabaseSchema(parentFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class DatabaseFileMenuAction implements ActionListener {
|
class DatabaseFileMenuAction implements ActionListener {
|
||||||
|
|
||||||
private Frame frame;
|
private Frame frame;
|
||||||
|
@ -22,6 +22,8 @@ import java.sql.Statement;
|
|||||||
import java.sql.Types;
|
import java.sql.Types;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import javax.swing.JFileChooser;
|
||||||
|
import javax.swing.JFrame;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.Timer;
|
import javax.swing.Timer;
|
||||||
@ -36,7 +38,9 @@ import loggerForms.UDFTableDefinition;
|
|||||||
import loggerForms.formdesign.FormEditor;
|
import loggerForms.formdesign.FormEditor;
|
||||||
import PamController.PamControlledUnit;
|
import PamController.PamControlledUnit;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
|
import PamController.PamFolders;
|
||||||
import PamUtils.PamCalendar;
|
import PamUtils.PamCalendar;
|
||||||
|
import PamUtils.PamFileChooser;
|
||||||
import PamView.dialog.warn.WarnOnce;
|
import PamView.dialog.warn.WarnOnce;
|
||||||
import PamguardMVC.PamDataBlock;
|
import PamguardMVC.PamDataBlock;
|
||||||
import PamguardMVC.PamDataUnit;
|
import PamguardMVC.PamDataUnit;
|
||||||
@ -1393,4 +1397,42 @@ public class DBProcess extends PamProcess {
|
|||||||
return logViewerSettings;
|
return logViewerSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Export all available database schema, converting PamTableDefinitions into
|
||||||
|
* valid xsd documents.
|
||||||
|
* @param parentFrame
|
||||||
|
*/
|
||||||
|
public void exportDatabaseSchema(JFrame parentFrame) {
|
||||||
|
File startLoc = PamFolders.getFileChooserPath(PamFolders.getDefaultProjectFolder());
|
||||||
|
PamFileChooser fc = new PamFileChooser();
|
||||||
|
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||||||
|
startLoc = PamFolders.getFileChooserPath(startLoc);
|
||||||
|
fc.setCurrentDirectory(startLoc);
|
||||||
|
|
||||||
|
int ans = fc.showDialog(parentFrame, "Select storage folder");
|
||||||
|
|
||||||
|
if (ans == JFileChooser.APPROVE_OPTION) {
|
||||||
|
startLoc = fc.getSelectedFile();
|
||||||
|
exportDatabaseSchema(parentFrame, startLoc);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Export all table definitions to xsd files in given folder.
|
||||||
|
* @param parentFrame
|
||||||
|
* @param folder
|
||||||
|
*/
|
||||||
|
private void exportDatabaseSchema(JFrame parentFrame, File folder) {
|
||||||
|
ArrayList<PamDataBlock> allDataBlocks = PamController.getInstance().getDataBlocks();
|
||||||
|
DBSchemaWriter schemaWriter = new DBSchemaWriter();
|
||||||
|
for (PamDataBlock aBlock : allDataBlocks) {
|
||||||
|
SQLLogging logging = aBlock.getLogging();
|
||||||
|
if (logging == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
schemaWriter.writeSchema(folder, aBlock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
263
src/generalDatabase/DBSchemaWriter.java
Normal file
263
src/generalDatabase/DBSchemaWriter.java
Normal file
@ -0,0 +1,263 @@
|
|||||||
|
package generalDatabase;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.sql.Types;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
|
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.w3c.dom.Element;
|
||||||
|
|
||||||
|
import PamUtils.XMLUtils;
|
||||||
|
import PamguardMVC.PamDataBlock;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Functions for writing database table schema in a format
|
||||||
|
* compatible with the Tethys schemas.
|
||||||
|
* @author dg50
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DBSchemaWriter {
|
||||||
|
|
||||||
|
private PamTableDefinition baseTableDefinition = new PamTableDefinition("PamTableDefinition");
|
||||||
|
|
||||||
|
private PamTableDefinition parentTable;
|
||||||
|
|
||||||
|
public DBSchemaWriter() {
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean writeStandardTableDef(File outputFolder, PamDataBlock dataBlock) {
|
||||||
|
PamTableDefinition aTable = new PamTableDefinition("PamStandardTable");
|
||||||
|
parentTable = null;
|
||||||
|
exportDatabaseSchema(outputFolder, dataBlock, null, aTable);
|
||||||
|
parentTable = aTable;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean writeSchema(File outputFolder, PamDataBlock dataBlock) {
|
||||||
|
if (dataBlock == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SQLLogging logging = dataBlock.getLogging();
|
||||||
|
if (logging == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PamTableDefinition tableDef = logging.getTableDefinition();
|
||||||
|
tableDef = logging.getBaseTableDefinition();
|
||||||
|
|
||||||
|
if (tableDef instanceof PamTableDefinition) {
|
||||||
|
writeStandardTableDef(outputFolder, dataBlock);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
parentTable = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
exportDatabaseSchema(outputFolder, dataBlock, logging, tableDef);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void exportDatabaseSchema(File outputFolder, PamDataBlock dataBlock, SQLLogging logging, PamTableDefinition tableDef) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* write a parent item, e.g. if tableDef is a sub class of PamTableDefinition
|
||||||
|
*/
|
||||||
|
// String parentName = writeParentTableSchema(outputFolder, dataBlock, tableDef);
|
||||||
|
|
||||||
|
String tableName = tableDef.getTableName();
|
||||||
|
Document doc = PamUtils.XMLUtils.createBlankDoc();
|
||||||
|
Element schemaEl = doc.createElement("xs:schema");
|
||||||
|
schemaEl.setAttribute("xmlns:xs","http://www.w3.org/2001/XMLSchema");
|
||||||
|
schemaEl.setAttribute("targetNamespace", "http://tethys.sdsu.edu/schema/1.0");
|
||||||
|
doc.appendChild(schemaEl);
|
||||||
|
if (parentTable != null) {
|
||||||
|
Element parentEl = doc.createElement("xs:include");
|
||||||
|
parentEl.setAttribute("schemaLocation", parentTable.getTableName()+".xsd");
|
||||||
|
schemaEl.appendChild(parentEl);
|
||||||
|
}
|
||||||
|
|
||||||
|
fillItemElement(doc, schemaEl, tableDef.pamTableItems);
|
||||||
|
|
||||||
|
if (logging != null) {
|
||||||
|
ArrayList<SQLLoggingAddon> annots = logging.getLoggingAddOns();
|
||||||
|
if (annots != null) {
|
||||||
|
for (SQLLoggingAddon addon : annots) {
|
||||||
|
Element compEl = addAddonElement(doc, schemaEl, addon);
|
||||||
|
if (compEl != null) {
|
||||||
|
schemaEl.appendChild(compEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
File outputFile = new File(outputFolder, tableName+".xsd");
|
||||||
|
XMLUtils.writeToFile(doc, outputFile);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a complex element for a SQLLogging addon.
|
||||||
|
* @param doc
|
||||||
|
* @param schemaEl
|
||||||
|
* @param addon
|
||||||
|
*/
|
||||||
|
private Element addAddonElement(Document doc, Element schemaEl, SQLLoggingAddon addon) {
|
||||||
|
Element compEl = doc.createElement("xs:complexType");
|
||||||
|
|
||||||
|
Element oEl = doc.createElement("xs:element");
|
||||||
|
oEl.setAttribute("name", addon.getName());
|
||||||
|
|
||||||
|
Element seqEl = doc.createElement("xs:sequence");
|
||||||
|
|
||||||
|
|
||||||
|
PamTableDefinition mtTable = new PamTableDefinition(addon.getName());
|
||||||
|
addon.addTableItems(mtTable);
|
||||||
|
// this is a mess ! must avoid the standard items.
|
||||||
|
fillItemElement(doc, seqEl, mtTable.pamTableItems);
|
||||||
|
|
||||||
|
|
||||||
|
compEl.appendChild(seqEl);
|
||||||
|
|
||||||
|
oEl.appendChild(compEl);
|
||||||
|
return oEl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fills information on items in a list into the given element
|
||||||
|
* This may be the schema element or may be a complex element.
|
||||||
|
* @param doc
|
||||||
|
* @param schemaEl
|
||||||
|
* @param tableItems
|
||||||
|
*/
|
||||||
|
private void fillItemElement(Document doc, Element schemaEl, List<PamTableItem> tableItems) {
|
||||||
|
for (PamTableItem tableItem : tableItems) {
|
||||||
|
if (shouldSkip(tableItem, parentTable)) {
|
||||||
|
// element is included in parent table, so skip it.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Element itemEl = doc.createElement("xs:element");
|
||||||
|
itemEl.setAttribute("name", tableItem.getName());
|
||||||
|
itemEl.setAttribute("type", sqlTypeToString(tableItem.getSqlType(), tableItem.getLength()));
|
||||||
|
String documentation = tableItem.getDescription();
|
||||||
|
if (documentation != null) {
|
||||||
|
Element annotation = doc.createElement("xs:annotation");
|
||||||
|
itemEl.appendChild(annotation);
|
||||||
|
Element docEl = doc.createElement("xs:documentation");
|
||||||
|
docEl.setTextContent(documentation);
|
||||||
|
annotation.appendChild(docEl);
|
||||||
|
}
|
||||||
|
schemaEl.appendChild(itemEl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean shouldSkip(PamTableItem tableItem, PamTableDefinition parentTable) {
|
||||||
|
if (parentTable == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (parentTable.findTableItem(tableItem.getName()) != null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// private String writeParentTableSchema(File outputFolder, PamDataBlock dataBlock, PamTableDefinition tableDef) {
|
||||||
|
// /**
|
||||||
|
// * Write a schema of everything that is in the parent table, then include a reference to that
|
||||||
|
// * schema. To do this, we need to a) establish if there is a table def parent, then go through
|
||||||
|
// * all the fields in THIS tableDef, see if the field exists in the parent. IF it exists in the
|
||||||
|
// * parent, write it in the parent doc, if it's only in this, write it in this doc. So far so good, but
|
||||||
|
// * we need to also make this recursive so it can build layer on layer ?
|
||||||
|
// * Reaslistically, this is all too complicated ! Just write out the schema for the PamTableDefinition
|
||||||
|
// * at the start of everything, and skip those fields in everything else. This will be a bit ad-hoc, but
|
||||||
|
// * it will otherwise be a nightmare since we don't know which table items are in which class at this point.
|
||||||
|
// */
|
||||||
|
// Class tableClass = tableDef.getClass();
|
||||||
|
// Class parentClass = tableClass.getSuperclass();
|
||||||
|
// if (parentClass.isAssignableFrom(tableClass) == false) {
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
|
||||||
|
private String sqlTypeToString(int sqlType, int length) {
|
||||||
|
switch (sqlType) {
|
||||||
|
case Types.ARRAY:
|
||||||
|
return "ARRAY";
|
||||||
|
case Types.BIGINT:
|
||||||
|
return "xs:long";
|
||||||
|
case Types.BINARY:
|
||||||
|
return "BINARY";
|
||||||
|
case Types.BIT:
|
||||||
|
return "BIT";
|
||||||
|
case Types.BLOB:
|
||||||
|
return "BLOB";
|
||||||
|
case Types.BOOLEAN:
|
||||||
|
return "xs:boolean";
|
||||||
|
case Types.CHAR:
|
||||||
|
return "xs:string";
|
||||||
|
case Types.CLOB:
|
||||||
|
return "CLOB";
|
||||||
|
case Types.DATALINK:
|
||||||
|
return "DATALINK";
|
||||||
|
case Types.DATE:
|
||||||
|
return "xs:dateTime";
|
||||||
|
case Types.DECIMAL:
|
||||||
|
return "DECIMAL";
|
||||||
|
case Types.DISTINCT:
|
||||||
|
return "DISTINCT";
|
||||||
|
case Types.DOUBLE:
|
||||||
|
return "xs:double";
|
||||||
|
case Types.FLOAT:
|
||||||
|
return "xs:float";
|
||||||
|
case Types.INTEGER:
|
||||||
|
return "xs:int";
|
||||||
|
case Types.JAVA_OBJECT:
|
||||||
|
return "JAVA_OBJECT";
|
||||||
|
case Types.LONGVARBINARY:
|
||||||
|
return "LONGVARBINARY(" + length + ")";
|
||||||
|
case Types.LONGVARCHAR:
|
||||||
|
return "LONGVARCHAR(" + length + ")";
|
||||||
|
case Types.NULL:
|
||||||
|
return "NULL";
|
||||||
|
case Types.NUMERIC:
|
||||||
|
return "NUMERIC";
|
||||||
|
case Types.OTHER:
|
||||||
|
return "OTHER";
|
||||||
|
case Types.REAL:
|
||||||
|
return "xs:float";
|
||||||
|
case Types.REF:
|
||||||
|
return "REF";
|
||||||
|
case Types.SMALLINT:
|
||||||
|
return "xs:short";
|
||||||
|
case Types.STRUCT:
|
||||||
|
return "STRUCT";
|
||||||
|
case Types.TIME:
|
||||||
|
return "TIME";
|
||||||
|
case Types.TIMESTAMP:
|
||||||
|
return "xs:dateTime";
|
||||||
|
case Types.TINYINT:
|
||||||
|
return "TINYINT";
|
||||||
|
case Types.VARBINARY:
|
||||||
|
return "VARBINARY(" + length + ")";
|
||||||
|
case Types.VARCHAR:
|
||||||
|
return "VARCHAR(" + length + ")";
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
33
src/generalDatabase/DatabaseFetchSpeed.java
Normal file
33
src/generalDatabase/DatabaseFetchSpeed.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package generalDatabase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run some tests to try to work out why it's so much slower to load
|
||||||
|
* data when the query is based on a non indexed column compared
|
||||||
|
* to an index one, even though the actual query execution time
|
||||||
|
* is a small fraction of the total time.
|
||||||
|
* @author dg50
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DatabaseFetchSpeed {
|
||||||
|
|
||||||
|
String dbName = "C:\\ProjectData\\meyGenMayData\\Database\\MeygenTritechDetectHDD_03_24.06.2022.sqlite3";
|
||||||
|
long[] idRange = {9906111, 9906977};
|
||||||
|
long[] uidRange = {8030630, 8031496};
|
||||||
|
String[] utcRange = {"2022-05-24 09:27:34", "2022-05-24 09:27:52"};
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public DatabaseFetchSpeed() {
|
||||||
|
//
|
||||||
|
// qStr{1} = sprintf('SELECT Id FROM Gemini_Threshold_Detector_Targets WHERE Id BETWEEN %d and %d', ...
|
||||||
|
// idRange(1), idRange(2));
|
||||||
|
// qStr{2} = sprintf('SELECT Id FROM Gemini_Threshold_Detector_Targets WHERE UID BETWEEN %d and %d', ...
|
||||||
|
// uidRange(1), uidRange(2));
|
||||||
|
// qStr{3} = sprintf('SELECT Id FROM Gemini_Threshold_Detector_Targets WHERE UTC BETWEEN ''%s'' and ''%s''', ...
|
||||||
|
// utcRange{1}, utcRange{2});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -43,7 +43,7 @@ public class EmptyTableDefinition implements Cloneable {
|
|||||||
this.tableName = tableName;
|
this.tableName = tableName;
|
||||||
this.setUpdatePolicy(updatePolicy);
|
this.setUpdatePolicy(updatePolicy);
|
||||||
pamTableItems = new ArrayList<PamTableItem>();
|
pamTableItems = new ArrayList<PamTableItem>();
|
||||||
pamTableItems.add(indexItem = new PamTableItem(indexColName, Types.INTEGER));
|
pamTableItems.add(indexItem = new PamTableItem(indexColName, Types.INTEGER, "Primary key"));
|
||||||
indexItem.setPrimaryKey(true);
|
indexItem.setPrimaryKey(true);
|
||||||
indexItem.setCounter(true);
|
indexItem.setCounter(true);
|
||||||
}
|
}
|
||||||
|
@ -55,15 +55,15 @@ public class PamTableDefinition extends EmptyTableDefinition implements Cloneabl
|
|||||||
*/
|
*/
|
||||||
public PamTableDefinition(String tableName, int updatePolicy) {
|
public PamTableDefinition(String tableName, int updatePolicy) {
|
||||||
super(tableName, updatePolicy);
|
super(tableName, updatePolicy);
|
||||||
pamTableItems.add(uid = new PamTableItem("UID", Types.BIGINT));
|
pamTableItems.add(uid = new PamTableItem("UID", Types.BIGINT, "Unique Identifier"));
|
||||||
pamTableItems.add(timeStampItem = new PamTableItem(utcColName, Types.TIMESTAMP));
|
pamTableItems.add(timeStampItem = new PamTableItem(utcColName, Types.TIMESTAMP, "Timestamp UTC"));
|
||||||
pamTableItems.add(timeStampMillis = new PamTableItem("UTCMilliseconds", Types.SMALLINT));
|
pamTableItems.add(timeStampMillis = new PamTableItem("UTCMilliseconds", Types.SMALLINT, "Time milliseconds (for databases which do not support millis)"));
|
||||||
pamTableItems.add(localTime = new PamTableItem("PCLocalTime", Types.TIMESTAMP));
|
pamTableItems.add(localTime = new PamTableItem("PCLocalTime", Types.TIMESTAMP, "Local time on PC"));
|
||||||
pamTableItems.add(pcTime = new PamTableItem("PCTime", Types.TIMESTAMP));
|
pamTableItems.add(pcTime = new PamTableItem("PCTime", Types.TIMESTAMP, "Time data written, UTC. Same as UTC for real time data, current time for offline file analysis"));
|
||||||
pamTableItems.add(channelBitmap = new PamTableItem("ChannelBitmap", Types.INTEGER));
|
pamTableItems.add(channelBitmap = new PamTableItem("ChannelBitmap", Types.INTEGER, "Bitmap of input channels used"));
|
||||||
pamTableItems.add(sequenceBitmap = new PamTableItem("SequenceBitmap", Types.INTEGER));
|
pamTableItems.add(sequenceBitmap = new PamTableItem("SequenceBitmap", Types.INTEGER, "Bitmap of beam or channel outputs used"));
|
||||||
if (updatePolicy == SQLLogging.UPDATE_POLICY_WRITENEW) {
|
if (updatePolicy == SQLLogging.UPDATE_POLICY_WRITENEW) {
|
||||||
addTableItem(updateReference = new PamTableItem("UpdateOf", Types.INTEGER));
|
addTableItem(updateReference = new PamTableItem("UpdateOf", Types.INTEGER, "Reference to previous value"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +50,14 @@ public class PamTableItem implements Cloneable {
|
|||||||
*/
|
*/
|
||||||
private Object value;
|
private Object value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test description of field. Can be exported to schema and may
|
||||||
|
* be possible to write into database description fields one day. In any case
|
||||||
|
* it can be useful to the programmer when looking back to see what on earth
|
||||||
|
* code is supposed to be doing.
|
||||||
|
*/
|
||||||
|
private String description;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Reference to another PamTableItem in a different
|
* Reference to another PamTableItem in a different
|
||||||
* table. This must be of the same sqlType as this
|
* table. This must be of the same sqlType as this
|
||||||
@ -60,6 +68,11 @@ public class PamTableItem implements Cloneable {
|
|||||||
*/
|
*/
|
||||||
private PamTableItem crossReferenceItem;
|
private PamTableItem crossReferenceItem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a table item
|
||||||
|
* @param name name of table item
|
||||||
|
* @param sqlType SQL Type from java.sql.Types, e.g. Types.INTEGER
|
||||||
|
*/
|
||||||
public PamTableItem(String name, int sqlType) {
|
public PamTableItem(String name, int sqlType) {
|
||||||
super();
|
super();
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@ -68,6 +81,27 @@ public class PamTableItem implements Cloneable {
|
|||||||
this.required = false;
|
this.required = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a table item
|
||||||
|
* @param name name of table item
|
||||||
|
* @param sqlType SQL Type from java.sql.Types, e.g. Types.INTEGER
|
||||||
|
* @param description optional description
|
||||||
|
*/
|
||||||
|
public PamTableItem(String name, int sqlType, String description) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
this.sqlType = sqlType;
|
||||||
|
this.description = description;
|
||||||
|
this.length = 0;
|
||||||
|
this.required = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a table item
|
||||||
|
* @param name name of table item
|
||||||
|
* @param sqlType SQL Type from java.sql.Types, e.g. Types.INTEGER
|
||||||
|
* @param length length (only applicable to Types.CHAR types)
|
||||||
|
*/
|
||||||
public PamTableItem(String name, int sqlType, int length) {
|
public PamTableItem(String name, int sqlType, int length) {
|
||||||
super();
|
super();
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@ -76,6 +110,22 @@ public class PamTableItem implements Cloneable {
|
|||||||
this.required = false;
|
this.required = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a table item
|
||||||
|
* @param name name of table item
|
||||||
|
* @param sqlType SQL Type from java.sql.Types, e.g. Types.INTEGER
|
||||||
|
* @param length length (only applicable to Types.CHAR types)
|
||||||
|
* @param description optional description
|
||||||
|
*/
|
||||||
|
public PamTableItem(String name, int sqlType, int length, String description) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
this.sqlType = sqlType;
|
||||||
|
this.length = length;
|
||||||
|
this.description = description;
|
||||||
|
this.required = false;
|
||||||
|
}
|
||||||
|
|
||||||
public PamTableItem(String name, int sqlType, int length, boolean required) {
|
public PamTableItem(String name, int sqlType, int length, boolean required) {
|
||||||
super();
|
super();
|
||||||
this.name = name;
|
this.name = name;
|
||||||
@ -501,5 +551,19 @@ public class PamTableItem implements Cloneable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the description
|
||||||
|
*/
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param description the description to set
|
||||||
|
*/
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2183,5 +2183,12 @@ public abstract class SQLLogging {
|
|||||||
return subDetection.getSuperDetection(superDataBlock);
|
return subDetection.getSuperDetection(superDataBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the loggingAddOns
|
||||||
|
*/
|
||||||
|
public ArrayList<SQLLoggingAddon> getLoggingAddOns() {
|
||||||
|
return loggingAddOns;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,2 +1,2 @@
|
|||||||
JavaSearch 1.0
|
JavaSearch 1.0
|
||||||
TMAP bs=2048 rt=1 fl=-1 id1=6679 id2=1
|
TMAP bs=2048 rt=1 fl=-1 id1=6700 id2=1
|
||||||
|
Binary file not shown.
@ -574,6 +574,8 @@
|
|||||||
|
|
||||||
<mapID target="utilities.SIDEModule.docs.SIDE_Overview_seq" url="utilities/SIDEModule/docs/SIDE_Overview.html#seq"/>
|
<mapID target="utilities.SIDEModule.docs.SIDE_Overview_seq" url="utilities/SIDEModule/docs/SIDE_Overview.html#seq"/>
|
||||||
|
|
||||||
|
<mapID target="detectors.clickDetectorHelp.docs.SoundTrapClickDetector" url="detectors/clickDetectorHelp/docs/SoundTrapClickDetector.html"/>
|
||||||
|
|
||||||
<mapID target="utilities.spectrogramannotations.docs.using" url="utilities/spectrogramannotations/docs/using.html"/>
|
<mapID target="utilities.spectrogramannotations.docs.using" url="utilities/spectrogramannotations/docs/using.html"/>
|
||||||
|
|
||||||
<mapID target="visual_methods.loggerFormsHelp.docs.NMEAINT" url="visual_methods/loggerFormsHelp/docs/NMEAINT.html"/>
|
<mapID target="visual_methods.loggerFormsHelp.docs.NMEAINT" url="visual_methods/loggerFormsHelp/docs/NMEAINT.html"/>
|
||||||
@ -802,6 +804,8 @@
|
|||||||
|
|
||||||
<mapID target="visual_methods.loggerFormsHelp.docs.NMEACHAR" url="visual_methods/loggerFormsHelp/docs/NMEACHAR.html"/>
|
<mapID target="visual_methods.loggerFormsHelp.docs.NMEACHAR" url="visual_methods/loggerFormsHelp/docs/NMEACHAR.html"/>
|
||||||
|
|
||||||
|
<mapID target="sound_processing.AcquisitionHelp.docs.sudfiles" url="sound_processing/AcquisitionHelp/docs/sudfiles.html"/>
|
||||||
|
|
||||||
<mapID target="sound_processing.LTSA.Docs.LTSADisplays" url="sound_processing/LTSA/Docs/LTSADisplays.html"/>
|
<mapID target="sound_processing.LTSA.Docs.LTSADisplays" url="sound_processing/LTSA/Docs/LTSADisplays.html"/>
|
||||||
|
|
||||||
<mapID target="localisation.difar.difarLocalisation.docs.difar_PostProcessingTutorial__Toc396467156" url="localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial.html#_Toc396467156"/>
|
<mapID target="localisation.difar.difarLocalisation.docs.difar_PostProcessingTutorial__Toc396467156" url="localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial.html#_Toc396467156"/>
|
||||||
|
@ -15,6 +15,12 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -34,6 +40,12 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -53,6 +65,12 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -74,6 +92,12 @@ top
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -93,6 +117,12 @@ top
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -112,6 +142,12 @@ top
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -131,6 +167,12 @@ top
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -152,6 +194,12 @@ TOC
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -173,6 +221,12 @@ TOC
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -194,6 +248,12 @@ javax.help.TOCView
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -215,6 +275,12 @@ PAMGUARDTOC.xml
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -234,6 +300,12 @@ PAMGUARDTOC.xml
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -253,6 +325,12 @@ PAMGUARDTOC.xml
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -274,6 +352,12 @@ Index
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -295,6 +379,12 @@ Index
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -316,6 +406,12 @@ javax.help.IndexView
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -337,6 +433,12 @@ PAMGUARDIndex.xml
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -356,6 +458,12 @@ PAMGUARDIndex.xml
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -375,6 +483,12 @@ PAMGUARDIndex.xml
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -396,6 +510,12 @@ Search
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -417,6 +537,12 @@ Search
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -438,6 +564,12 @@ javax.help.SearchView
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -459,6 +591,12 @@ JavaHelpSearch
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -478,6 +616,12 @@ JavaHelpSearch
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,6 +2,18 @@
|
|||||||
<!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "http://java.sun.com/products/javahelp/index_2_0.dtd"><!--generated by JHelpDev Version: 0.63, 14 May 2008, see jhelpdev.sourceforge.net-->
|
<!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "http://java.sun.com/products/javahelp/index_2_0.dtd"><!--generated by JHelpDev Version: 0.63, 14 May 2008, see jhelpdev.sourceforge.net-->
|
||||||
|
|
||||||
<index version="1.0">
|
<index version="1.0">
|
||||||
|
<indexitem text="SUD Files " target="sound_processing.AcquisitionHelp.docs.sudfiles"/>
|
||||||
|
|
||||||
|
<indexitem text="SoundTrap " target="sound_processing.AcquisitionHelp.docs.sudfiles"/>
|
||||||
|
|
||||||
|
<indexitem text="Sound Trap " target="sound_processing.AcquisitionHelp.docs.sudfiles"/>
|
||||||
|
|
||||||
|
<indexitem text="Click Train " target="detectors.ClickTrainDetector.docs.ClickTrainDetector"/>
|
||||||
|
|
||||||
|
<indexitem text="SUD " target="detectors.clickDetectorHelp.docs.SoundTrapClickDetector"/>
|
||||||
|
|
||||||
|
<indexitem text="SoundTrap " target="detectors.clickDetectorHelp.docs.SoundTrapClickDetector"/>
|
||||||
|
|
||||||
<indexitem text="3D Localisation " target="detectors.Pam3DHelp.docs.guiOverview"/>
|
<indexitem text="3D Localisation " target="detectors.Pam3DHelp.docs.guiOverview"/>
|
||||||
|
|
||||||
<indexitem text="Adding or Editing a Hydrophone " target="utilities.hydrophoneArrayManagerHelp.docs.Array_NewHydrophone"/>
|
<indexitem text="Adding or Editing a Hydrophone " target="utilities.hydrophoneArrayManagerHelp.docs.Array_NewHydrophone"/>
|
||||||
|
@ -278,8 +278,10 @@
|
|||||||
|
|
||||||
<tocitem text="Asio Sound Cards " target="sound_processing.AcquisitionHelp.docs.AcquisitionAsioSoundCard" image="topic"/>
|
<tocitem text="Asio Sound Cards " target="sound_processing.AcquisitionHelp.docs.AcquisitionAsioSoundCard" image="topic"/>
|
||||||
|
|
||||||
<tocitem text="Audio Files " target="sound_processing.AcquisitionHelp.docs.AcquisitionFile" image="topic"/>
|
<tocitem text="Audio Files " target="sound_processing.AcquisitionHelp.docs.AcquisitionFile" image="topic">
|
||||||
|
<tocitem text="SUD Files " target="sound_processing.AcquisitionHelp.docs.sudfiles" image="topic"/>
|
||||||
|
|
||||||
|
</tocitem>
|
||||||
<tocitem text="Audio File Folders " target="sound_processing.AcquisitionHelp.docs.AcquisitionFileFolder" image="topic"/>
|
<tocitem text="Audio File Folders " target="sound_processing.AcquisitionHelp.docs.AcquisitionFileFolder" image="topic"/>
|
||||||
|
|
||||||
<tocitem text="File Dates " target="sound_processing.AcquisitionHelp.docs.FileTimeZone" image="topic"/>
|
<tocitem text="File Dates " target="sound_processing.AcquisitionHelp.docs.FileTimeZone" image="topic"/>
|
||||||
@ -426,6 +428,8 @@
|
|||||||
<tocitem text="Create Binary Files Offline " target="utilities.BinaryStore.docs.CreateBinariesOffline" image="topic"/>
|
<tocitem text="Create Binary Files Offline " target="utilities.BinaryStore.docs.CreateBinariesOffline" image="topic"/>
|
||||||
|
|
||||||
</tocitem>
|
</tocitem>
|
||||||
|
<tocitem text="SoundTrap Click Detector " target="detectors.clickDetectorHelp.docs.SoundTrapClickDetector" image="topic"/>
|
||||||
|
|
||||||
</tocitem>
|
</tocitem>
|
||||||
<tocitem text="Whistle and Moan Detector ">
|
<tocitem text="Whistle and Moan Detector ">
|
||||||
<tocitem text="Overview " target="detectors.whistleMoanHelp.docs.whistleMoan_Overview" image="topic"/>
|
<tocitem text="Overview " target="detectors.whistleMoanHelp.docs.whistleMoan_Overview" image="topic"/>
|
||||||
|
@ -0,0 +1,82 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html><head>
|
||||||
|
<link href="../../../pamHelpStylesheet.css" type="text/css" rel="STYLESHEET"><title>Click Classification</title></head>
|
||||||
|
<body><h1>Click Detector</h1>
|
||||||
|
<h2>SoundTrap Click Detector</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<p>If you are using a SountTrap recording device with built in click detection from
|
||||||
|
<a href="https://www.oceaninstruments.co.nz/">Ocean Instruments</a>,
|
||||||
|
you may need to use a modified version of the <a href="ClickDetector_clickDetector.html">Click Detector</a>.
|
||||||
|
</p>
|
||||||
|
<p>The SoundTrap click detector allows you to detect and store clicks at high frequencies (say 384kS/sec), suitable for odontocete echolocation clicks, and
|
||||||
|
at the same time, record audio data files at a lower frequency (e.g. 96 or 48kS/sec). This optimises disk space usage and makes long deployments
|
||||||
|
of several months possible without running out of data storage. </p>
|
||||||
|
<p>Having two sample rates present within a single PAMGuard configuration is possible using
|
||||||
|
<a href="../../../sound_processing/decimatorHelp/docs/decimator_decimator.html">Decimator</</a> modules. However such configurations become particularly
|
||||||
|
complicated to configure when the sample rate of the recorded files is lower than the sample rate of the click detector.</p>
|
||||||
|
<p>We therefore recommend that you use a modified version of the <a href="ClickDetector_clickDetector.html">Click Detector</a>, which manages it's own sample rate and
|
||||||
|
channel information based on information extracted from the SoundTrap data.</p>
|
||||||
|
<p>Note that the SoundTrap click detector should only be used for clicks automatically detected by the SoundTrap. If you want to detect clicks from the
|
||||||
|
SoundTrap recordings, then use a normal <a href="ClickDetector_clickDetector.html">Click Detector</a> in the normal way.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Creating an instance of the SoundTrap Click Detector</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
From the <strong><em>File>Add modules>Detectors</em></strong> menu, or
|
||||||
|
from the pop-up menu on the data model display, select <i>'SoundTrap Click
|
||||||
|
Detector'</i> near the bottom of the Detectors list. Enter a descriptive name for the new detector and press Ok.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Importing SoundTrap Data</h3>
|
||||||
|
<p>SoundTrap data are stored in proprietary files called <a href="../../../sound_processing/AcquisitionHelp/docs/sudfiles.html">SUD files</a>.</p>
|
||||||
|
<p> There are two ways in which you can get data from <a href="../../../sound_processing/AcquisitionHelp/docs/sudfiles.html">SUD files</a> into
|
||||||
|
the SoundTrap Click Detector. </p>
|
||||||
|
|
||||||
|
<h4>The Old Way</h4>
|
||||||
|
<p>The 'standard' way of using SoundTrap data was to inflate all of the data from the compressed SUD files. For details of this process, see the
|
||||||
|
SoundTrap user manuals and the SoundTrap Host software.</p>
|
||||||
|
<p>Normally, several inflated files are generated from each sud file:</p>
|
||||||
|
<ol>
|
||||||
|
<li>A wav file: Audio data in standard wav file format</li>
|
||||||
|
<li>An XML file: Metadata on the SoundTrap configuration, file start times in various formats, etc.</li>
|
||||||
|
<li>If the click detector was running BCL and DWV files, which contain the times of clicks and click waveforms respectively.</li>
|
||||||
|
</ol>
|
||||||
|
<p>To convert the SUD files to the binary storage format used by PAMGuard, working in the
|
||||||
|
<a href="../../../overview/PamMasterHelp/docs/viewerMode.html">PAMGuard Viewer</a>, create a Binary Store, a
|
||||||
|
SoundTrap Click Detector and also create a 'SoundTrap Detector Import' module. Then use the import module to import the BCL and DWV
|
||||||
|
data into PAMGuard. Once imported you can run <a href="ClickDetector_clickClassification.html">Click Classifiers</a>
|
||||||
|
and use other Click Detector offline functions to mark events, etc. </p>
|
||||||
|
<p>If you want to run additional analysis on the WAV file data (for example to
|
||||||
|
<a href="../../../sound_processing/NoiseBands/Docs/NoiseBands.html">make noise measurements</a> or to
|
||||||
|
<a href="../../whistleMoanHelp/docs/whistleMoan_Overview.html">detect whistles</a>),
|
||||||
|
create a different PAMGuard configuration to process those data.<p>
|
||||||
|
|
||||||
|
<h4>The (better) New Way</h4>
|
||||||
|
<p>Current versions of PAMGuard can read <a href="../../../sound_processing/AcquisitionHelp/docs/sudfiles.html">SUD files</a> directly,
|
||||||
|
without first unpacking them into WAV, XML, BCL and DWV files. This not
|
||||||
|
only reduces the amount of disk space you need by about x4, but also saves a lot of time.</p>
|
||||||
|
<p>Better still, you can now set up PAMGuard in normal mode to simultaneously process the audio data in the
|
||||||
|
<a href="../../../sound_processing/AcquisitionHelp/docs/sudfiles.html">SUD file</a> with one set of
|
||||||
|
detectors, and simultaneously extract the click detector data into appropriate files for a SoundTrap Click Detector. </p>
|
||||||
|
|
||||||
|
<p>Start PAMGuard in <a href="../../../overview/PamMasterHelp/docs/normalMode.html">Normal Mode</a> and add a
|
||||||
|
<a href="../../../sound_processing/AcquisitionHelp/docs/AcquisitionOverview.html">Sound Acquisition</a> module.
|
||||||
|
Add a SoundTrap Click Detector, a <a href="../../../utilities/BinaryStore/docs/binarystore_overview.html">Binary Store</a> store and a
|
||||||
|
<a href="../../../utilities/generalDatabaseHelp/docs/database_database.html">Database</a>
|
||||||
|
module (optional). In the <a href="../../../sound_processing/AcquisitionHelp/docs/AcquisitionConfiguration.html">Sound Acquisition dialog</a>
|
||||||
|
select a single SUD file or a folder of SUD files. At this point, the SoundTrap
|
||||||
|
Click Detector will be automatically configured with the correct sample rate (which won't be the sample rate displayed in the Sound Acquisition
|
||||||
|
module). </p>
|
||||||
|
<p>Configure any <a href="ClickDetector_clickClassification.html">Click Classifiers</a> you want to be run on the SoundTrap click data as it is imported.</p>
|
||||||
|
<p>You can then add any other detectors and measurement processes you want to run on the SoundTrap audio data, this may include
|
||||||
|
instances of the normal Click Detector module if you want to detect clicks in the lower frequency audio data.</p>
|
||||||
|
<p>Process the data in the normal way and clicks will automatically be generated within the SoundTrap click detector</p>
|
||||||
|
<p>Further process you data using the <a href="../../../overview/PamMasterHelp/docs/viewerMode.html">PAMGuard Viewer</a> in the normal way.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</body></html>
|
@ -7,7 +7,9 @@
|
|||||||
|
|
||||||
<h1>Audio Files</h1>
|
<h1>Audio Files</h1>
|
||||||
<p>As well as analysing data from sound cards in real time, PAMGUARD can be used to analyse archived data
|
<p>As well as analysing data from sound cards in real time, PAMGUARD can be used to analyse archived data
|
||||||
from audio filed in WAV or AIF format.</p>
|
from audio filed in <a href="https://en.wikipedia.org/wiki/WAV">WAV</a>,
|
||||||
|
<a href="https://en.wikipedia.org/wiki/Audio_Interchange_File_Format">AIF</a>, <a href="https://en.wikipedia.org/wiki/FLAC">FLAC</a>,
|
||||||
|
or <a href="sudfiles.html">SUD</a> file format.</p>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<h2>Setting up an Audio File</h2>
|
<h2>Setting up an Audio File</h2>
|
||||||
|
45
src/help/sound_processing/AcquisitionHelp/docs/sudfiles.html
Normal file
45
src/help/sound_processing/AcquisitionHelp/docs/sudfiles.html
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<LINK href="../../../pamHelpStylesheet.css" type=text/css rel=STYLESHEET>
|
||||||
|
<title>SUD Files</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>SoundTrap data files</h1>
|
||||||
|
<h3>SUD Files</h3>
|
||||||
|
<p>
|
||||||
|
SoundTrap recorders from
|
||||||
|
<a href="https://www.oceaninstruments.co.nz/">Ocean Instruments</a>
|
||||||
|
store data in proprietary files called SUD files. See SoundTrap documentation for information on how to
|
||||||
|
extract SUD files from SoundTrap recorders. </p>
|
||||||
|
|
||||||
|
<p>Earlier versions of PAMGuard required you to 'inflate' the SUD files into standard wav audio files using
|
||||||
|
the <a href="https://www.oceaninstruments.co.nz/downloads/">SoundTrap Host software</a> before they could be processed.</p>
|
||||||
|
<p>The current version of PAMGuard no longer requires this since it can read data directly from the SUD files.</p>
|
||||||
|
<p>Inflating SUD files to WAV files generally required between 3 and 5 times as much disk space and could also take
|
||||||
|
a fair amount of time, so not inflating will save both!</p>
|
||||||
|
|
||||||
|
<h3>SUD Index Files</h3>
|
||||||
|
<p>To efficiently navigate SUD files, PAMGuard makes a map of each file and stores it in a new file in the same
|
||||||
|
folder as the original SUD file. The index files have the same name as the original file, but end with .sudx.
|
||||||
|
The index files are about 2.5% of the size of the original SUD files. When processing SUD files it is therefore
|
||||||
|
important that a) the drive containing the SUD files is less than 95% full and b) that the system running PAMGuard has
|
||||||
|
write access to the folder containing the SUD files. </p>
|
||||||
|
|
||||||
|
<h3>SUD File Times</h3>
|
||||||
|
<p>The name of each SUD file contains the device serial number and a timestamp (data and time) in the form YYMMDDhhmmss.
|
||||||
|
Note that these time stamps are in local time. When processing the file, PAMGuard will extract a UTC timestamp from within
|
||||||
|
each SUD file and apply the UTC time to the data. you may therefore notice that the times of binary files and database
|
||||||
|
entries differ from the times in the file names. </p>
|
||||||
|
|
||||||
|
<h3>Mixing SUD and WAV files</h3>
|
||||||
|
<p>If a SUD file and a WAV file with the same name are in the same folder, then PAMGuard will ignore the SUD file
|
||||||
|
and process the WAV file. Note that in this case, PAMGuard will be unable to extract any metadata from the SUD file
|
||||||
|
and will not extract SoundTrap Click Detections (see below).</p>
|
||||||
|
|
||||||
|
<h3>SoundTrap Click Detector</h3>
|
||||||
|
<p>If you are using the SoundTrap build in click detector (see SoundTrap manuals) then the SUD files will also contain
|
||||||
|
detected clicks.</p> <p>See the help page for the <a href="../../../detectors/clickDetectorHelp/docs/SoundTrapClickDetector.html">SoundTrap Click Detector</a>
|
||||||
|
for information on how to get these clicks from the SUD files into PAMGuard. </p>
|
||||||
|
<br><br><br>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -17,6 +17,7 @@ import Acquisition.DaqSystem;
|
|||||||
import Acquisition.AudioDataQueue;
|
import Acquisition.AudioDataQueue;
|
||||||
import PamController.PamControlledUnitSettings;
|
import PamController.PamControlledUnitSettings;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
|
import PamController.PamGUIManager;
|
||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamSettings;
|
import PamController.PamSettings;
|
||||||
import PamDetection.RawDataUnit;
|
import PamDetection.RawDataUnit;
|
||||||
@ -192,7 +193,12 @@ public class SmruDaqSystem extends DaqSystem implements PamSettings {
|
|||||||
+ " in another instance of PAMGuard. \n"
|
+ " in another instance of PAMGuard. \n"
|
||||||
+ "Check that no other instances of PAMGuard are open and try again. \nIf no other instances of PAMGuard are open "
|
+ "Check that no other instances of PAMGuard are open and try again. \nIf no other instances of PAMGuard are open "
|
||||||
+ "then you should cycle the power on the card(s) and restart PAMGuard");
|
+ "then you should cycle the power on the card(s) and restart PAMGuard");
|
||||||
|
if (PamGUIManager.getGUIType() == PamGUIManager.NOGUI) {
|
||||||
|
System.out.println(msg);
|
||||||
|
}
|
||||||
|
else {
|
||||||
JOptionPane.showMessageDialog(daqControl.getGuiFrame(), msg, daqControl.getUnitName() + " Error", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(daqControl.getGuiFrame(), msg, daqControl.getUnitName() + " Error", JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
PamController.getInstance().stopLater();
|
PamController.getInstance().stopLater();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -144,4 +144,9 @@ public class BuoyStatusData implements Serializable, ManagedParameters {
|
|||||||
return ps;
|
return ps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format("Buoy %d(%d) ip %s", buoyId1, buoyId2, ipAddr);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -387,6 +387,11 @@ public class BuoyStatusDataUnit extends PamDataUnit {
|
|||||||
return buoyStatusData;
|
return buoyStatusData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format("Status %s\n", buoyStatusData.toString());
|
||||||
|
}
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * @return the genericStringPairsChanged
|
// * @return the genericStringPairsChanged
|
||||||
// */
|
// */
|
||||||
|
@ -23,17 +23,14 @@ package pamguard;
|
|||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
|
||||||
import Acquisition.AcquisitionControl;
|
|
||||||
import Acquisition.FolderInputSystem;
|
import Acquisition.FolderInputSystem;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
import PamController.PamGUIManager;
|
import PamController.PamGUIManager;
|
||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamguardVersionInfo;
|
import PamController.PamguardVersionInfo;
|
||||||
import PamController.pamBuoyGlobals;
|
import PamController.pamBuoyGlobals;
|
||||||
import PamController.command.TerminalController;
|
|
||||||
import PamModel.SMRUEnable;
|
import PamModel.SMRUEnable;
|
||||||
import PamUtils.FileFunctions;
|
import PamUtils.FileFunctions;
|
||||||
import PamUtils.PamCalendar;
|
|
||||||
import PamUtils.PamExceptionHandler;
|
import PamUtils.PamExceptionHandler;
|
||||||
import PamUtils.PlatformInfo;
|
import PamUtils.PlatformInfo;
|
||||||
import PamUtils.Splash;
|
import PamUtils.Splash;
|
||||||
@ -45,6 +42,7 @@ import PamguardMVC.debug.Debug;
|
|||||||
import binaryFileStorage.BinaryStore;
|
import binaryFileStorage.BinaryStore;
|
||||||
import dataPlotsFX.JamieDev;
|
import dataPlotsFX.JamieDev;
|
||||||
import generalDatabase.DBControl;
|
import generalDatabase.DBControl;
|
||||||
|
import rocca.RoccaDev;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -190,6 +188,10 @@ public class Pamguard {
|
|||||||
JamieDev.setEnabled(true);
|
JamieDev.setEnabled(true);
|
||||||
System.out.println("Enabling Jamie Macaulay modifications.");
|
System.out.println("Enabling Jamie Macaulay modifications.");
|
||||||
}
|
}
|
||||||
|
else if (anArg.equalsIgnoreCase("-rocca")) {
|
||||||
|
RoccaDev.setEnabled(true);
|
||||||
|
System.out.println("Enabling Rocca development mode");
|
||||||
|
}
|
||||||
else if (anArg.equalsIgnoreCase(Debug.flag)) {
|
else if (anArg.equalsIgnoreCase(Debug.flag)) {
|
||||||
Debug.setPrintDebug(true);
|
Debug.setPrintDebug(true);
|
||||||
Debug.out.println("Enabling debug terminal output.");
|
Debug.out.println("Enabling debug terminal output.");
|
||||||
|
@ -408,6 +408,10 @@ public class RoccaClassifier {
|
|||||||
|
|
||||||
// load the whistle classifier
|
// load the whistle classifier
|
||||||
if (roccaControl.roccaParameters.isClassifyWhistles()) {
|
if (roccaControl.roccaParameters.isClassifyWhistles()) {
|
||||||
|
if (roccaControl.roccaParameters.roccaClassifierModelFilename==null) {
|
||||||
|
roccaControl.roccaParameters.setClassifyWhistles(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
String fname = roccaControl.roccaParameters.roccaClassifierModelFilename.getAbsolutePath();
|
String fname = roccaControl.roccaParameters.roccaClassifierModelFilename.getAbsolutePath();
|
||||||
File f = new File(fname);
|
File f = new File(fname);
|
||||||
if (f.exists() == false) {
|
if (f.exists() == false) {
|
||||||
@ -450,9 +454,14 @@ public class RoccaClassifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// serialVersionUID=24 2016/08/10 added to load click classifier
|
// serialVersionUID=24 2016/08/10 added to load click classifier
|
||||||
if (roccaControl.roccaParameters.isClassifyClicks()) {
|
if (roccaControl.roccaParameters.isClassifyClicks()) {
|
||||||
|
if (roccaControl.roccaParameters.roccaClickClassifierModelFilename==null) {
|
||||||
|
roccaControl.roccaParameters.setClassifyClicks(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
String fname = roccaControl.roccaParameters.roccaClickClassifierModelFilename.getAbsolutePath();
|
String fname = roccaControl.roccaParameters.roccaClickClassifierModelFilename.getAbsolutePath();
|
||||||
File f = new File(fname);
|
File f = new File(fname);
|
||||||
if (f.exists() == false) {
|
if (f.exists() == false) {
|
||||||
@ -495,6 +504,7 @@ public class RoccaClassifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if we didn't load either classifier, don't bother loading trying to load an encounter
|
// if we didn't load either classifier, don't bother loading trying to load an encounter
|
||||||
// classifier because it relies on the species. Just reset the side panel and return
|
// classifier because it relies on the species. Just reset the side panel and return
|
||||||
@ -505,6 +515,10 @@ public class RoccaClassifier {
|
|||||||
|
|
||||||
// serialVersionUID=24 2016/08/10 added to load event classifier
|
// serialVersionUID=24 2016/08/10 added to load event classifier
|
||||||
if (roccaControl.roccaParameters.isClassifyEvents()) {
|
if (roccaControl.roccaParameters.isClassifyEvents()) {
|
||||||
|
if (roccaControl.roccaParameters.roccaEventClassifierModelFilename==null) {
|
||||||
|
roccaControl.roccaParameters.setClassifyEvents(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
String fname = roccaControl.roccaParameters.roccaEventClassifierModelFilename.getAbsolutePath();
|
String fname = roccaControl.roccaParameters.roccaEventClassifierModelFilename.getAbsolutePath();
|
||||||
File f = new File(fname);
|
File f = new File(fname);
|
||||||
if (f.exists() == false) {
|
if (f.exists() == false) {
|
||||||
@ -543,6 +557,7 @@ public class RoccaClassifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
resetSidePanel();
|
resetSidePanel();
|
||||||
return true;
|
return true;
|
||||||
|
27
src/rocca/RoccaDev.java
Normal file
27
src/rocca/RoccaDev.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package rocca;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Global flag set at runtime for Rocca development flags.
|
||||||
|
* @author mo55
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class RoccaDev {
|
||||||
|
|
||||||
|
|
||||||
|
private static boolean enabled = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the enabled
|
||||||
|
*/
|
||||||
|
public static boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param enabled the enabled to set
|
||||||
|
*/
|
||||||
|
public static void setEnabled(boolean enabled) {
|
||||||
|
RoccaDev.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -26,7 +26,6 @@ import java.awt.Frame;
|
|||||||
import java.awt.GridBagConstraints;
|
import java.awt.GridBagConstraints;
|
||||||
import java.awt.GridBagLayout;
|
import java.awt.GridBagLayout;
|
||||||
import java.awt.GridLayout;
|
import java.awt.GridLayout;
|
||||||
import java.awt.Point;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
@ -48,8 +47,6 @@ import PamUtils.PamFileChooser;
|
|||||||
import PamView.dialog.PamDialog;
|
import PamView.dialog.PamDialog;
|
||||||
import PamView.dialog.SourcePanel;
|
import PamView.dialog.SourcePanel;
|
||||||
import PamguardMVC.PamDataBlock;
|
import PamguardMVC.PamDataBlock;
|
||||||
import PamguardMVC.PamDataUnit;
|
|
||||||
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
@ -60,20 +57,14 @@ import java.io.BufferedInputStream;
|
|||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import javax.swing.Box;
|
import javax.swing.Box;
|
||||||
import javax.swing.BoxLayout;
|
import javax.swing.BoxLayout;
|
||||||
import javax.swing.ButtonGroup;
|
|
||||||
import javax.swing.DefaultComboBoxModel;
|
import javax.swing.DefaultComboBoxModel;
|
||||||
import javax.swing.GroupLayout;
|
import javax.swing.GroupLayout;
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.JCheckBox;
|
import javax.swing.JCheckBox;
|
||||||
import javax.swing.JComboBox;
|
import javax.swing.JComboBox;
|
||||||
import javax.swing.JComponent;
|
|
||||||
import javax.swing.JFrame;
|
|
||||||
import javax.swing.JRadioButton;
|
import javax.swing.JRadioButton;
|
||||||
import javax.swing.JFileChooser;
|
import javax.swing.JFileChooser;
|
||||||
import javax.swing.JScrollPane;
|
import javax.swing.JScrollPane;
|
||||||
@ -87,7 +78,6 @@ import javax.swing.border.EtchedBorder;
|
|||||||
import clickDetector.ClickControl;
|
import clickDetector.ClickControl;
|
||||||
import clickDetector.ClickDetection;
|
import clickDetector.ClickDetection;
|
||||||
import clickDetector.NoiseDataBlock;
|
import clickDetector.NoiseDataBlock;
|
||||||
import weka.classifiers.AbstractClassifier;
|
|
||||||
import weka.core.Attribute;
|
import weka.core.Attribute;
|
||||||
import weka.core.Instances;
|
import weka.core.Instances;
|
||||||
import weka.core.SerializationHelper;
|
import weka.core.SerializationHelper;
|
||||||
@ -523,7 +513,13 @@ public class RoccaParametersDialog extends PamDialog implements ActionListener,
|
|||||||
reclassifyButton.addActionListener(this);
|
reclassifyButton.addActionListener(this);
|
||||||
reclassifyButton.setToolTipText("Load the whistle data from the contour stats output file, and run it through the current Classifier");
|
reclassifyButton.setToolTipText("Load the whistle data from the contour stats output file, and run it through the current Classifier");
|
||||||
reclassifyButton.setVisible(true);
|
reclassifyButton.setVisible(true);
|
||||||
extraButtonsSubPanel.setVisible(true); // ******** THIS LINES CONTROLS THE VISIBILITY ********
|
|
||||||
|
// ******** THIS LINES CONTROLS THE VISIBILITY ********
|
||||||
|
if (RoccaDev.isEnabled()) {
|
||||||
|
extraButtonsSubPanel.setVisible(true);
|
||||||
|
} else {
|
||||||
|
extraButtonsSubPanel.setVisible(false);
|
||||||
|
}
|
||||||
GroupLayout extraPanelLayout = new GroupLayout(extraButtonsSubPanel);
|
GroupLayout extraPanelLayout = new GroupLayout(extraButtonsSubPanel);
|
||||||
extraButtonsSubPanel.setLayout(extraPanelLayout);
|
extraButtonsSubPanel.setLayout(extraPanelLayout);
|
||||||
extraPanelLayout.setAutoCreateGaps(true);
|
extraPanelLayout.setAutoCreateGaps(true);
|
||||||
|
@ -388,7 +388,9 @@ public class RoccaProcess extends PamProcess {
|
|||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 1.5 ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 1.5 ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) < 2000. ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) < 2000. ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) > 28000. )) {
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) > 28000. )) {
|
||||||
rcdb.setNaturalLifetimeMillis(0);
|
// rcdb.setNaturalLifetimeMillis(0);
|
||||||
|
rcdb.stopTimer();
|
||||||
|
rcdb = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (roccaControl.roccaParameters.roccaClassifierModelFilename.getName().equals("HIWhist.model") &&
|
if (roccaControl.roccaParameters.roccaClassifierModelFilename.getName().equals("HIWhist.model") &&
|
||||||
@ -402,7 +404,9 @@ public class RoccaProcess extends PamProcess {
|
|||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) > 60000. ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) > 60000. ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQRANGE) < 800. ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQRANGE) < 800. ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQRANGE) > 14000. )) {
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQRANGE) > 14000. )) {
|
||||||
rcdb.setNaturalLifetimeMillis(0);
|
// rcdb.setNaturalLifetimeMillis(0);
|
||||||
|
rcdb.stopTimer();
|
||||||
|
rcdb = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (roccaControl.roccaParameters.roccaClassifierModelFilename.getName().equals("NWAtlWhist.model") &&
|
if (roccaControl.roccaParameters.roccaClassifierModelFilename.getName().equals("NWAtlWhist.model") &&
|
||||||
@ -412,7 +416,9 @@ public class RoccaProcess extends PamProcess {
|
|||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 2.5 ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 2.5 ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) < 9100. ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) < 9100. ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) > 82000. )) {
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.FREQABSSLOPEMEAN) > 82000. )) {
|
||||||
rcdb.setNaturalLifetimeMillis(0);
|
// rcdb.setNaturalLifetimeMillis(0);
|
||||||
|
rcdb.stopTimer();
|
||||||
|
rcdb = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -431,7 +437,9 @@ public class RoccaProcess extends PamProcess {
|
|||||||
saveContourPoints(rcdb, rcdb.getChannelMap(), ++numDetections, sNum);
|
saveContourPoints(rcdb, rcdb.getChannelMap(), ++numDetections, sNum);
|
||||||
saveContourStats(rcdb, rcdb.getChannelMap(), numDetections, sNum);
|
saveContourStats(rcdb, rcdb.getChannelMap(), numDetections, sNum);
|
||||||
saveContour(rcdb, rcdb.getChannelMap(), numDetections, sNum);
|
saveContour(rcdb, rcdb.getChannelMap(), numDetections, sNum);
|
||||||
rcdb.setNaturalLifetimeMillis(0);
|
// rcdb.setNaturalLifetimeMillis(0);
|
||||||
|
rcdb.stopTimer();
|
||||||
|
rcdb = null;
|
||||||
|
|
||||||
/* if this is a click detection (signal, not noise) */
|
/* if this is a click detection (signal, not noise) */
|
||||||
} else if (o==manClickSourceData || o==autoClickSourceData) {
|
} else if (o==manClickSourceData || o==autoClickSourceData) {
|
||||||
@ -499,18 +507,24 @@ public class RoccaProcess extends PamProcess {
|
|||||||
(rcdb.getContour().get(RoccaContourStats.ParamIndx.SNR) > 35. ||
|
(rcdb.getContour().get(RoccaContourStats.ParamIndx.SNR) > 35. ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) < 0.005 ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) < 0.005 ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 0.6 )) {
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 0.6 )) {
|
||||||
|
rcdb.stopTimer();
|
||||||
|
rcdb = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (roccaControl.roccaParameters.roccaClassifierModelFilename.getName().equals("HIClick.model") &&
|
if (roccaControl.roccaParameters.roccaClassifierModelFilename.getName().equals("HIClick.model") &&
|
||||||
(rcdb.getContour().get(RoccaContourStats.ParamIndx.SNR) > 40. ||
|
(rcdb.getContour().get(RoccaContourStats.ParamIndx.SNR) > 40. ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) < 0.01 ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) < 0.01 ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 0.6 )) {
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 0.6 )) {
|
||||||
|
rcdb.stopTimer();
|
||||||
|
rcdb = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (roccaControl.roccaParameters.roccaClassifierModelFilename.getName().equals("NWAtlClick.model") &&
|
if (roccaControl.roccaParameters.roccaClassifierModelFilename.getName().equals("NWAtlClick.model") &&
|
||||||
(rcdb.getContour().get(RoccaContourStats.ParamIndx.SNR) > 35. ||
|
(rcdb.getContour().get(RoccaContourStats.ParamIndx.SNR) > 35. ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) < 0.005 ||
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) < 0.005 ||
|
||||||
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 0.6 )) {
|
rcdb.getContour().get(RoccaContourStats.ParamIndx.DURATION) > 0.6 )) {
|
||||||
|
rcdb.stopTimer();
|
||||||
|
rcdb = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -529,7 +543,9 @@ public class RoccaProcess extends PamProcess {
|
|||||||
// add call to update side panel. Set the isClick flag to True
|
// add call to update side panel. Set the isClick flag to True
|
||||||
updateSidePanel(rcdb, true);
|
updateSidePanel(rcdb, true);
|
||||||
saveContourStats(rcdb, rcdb.getChannelMap(), numDetections, sNum);
|
saveContourStats(rcdb, rcdb.getChannelMap(), numDetections, sNum);
|
||||||
rcdb.setNaturalLifetimeMillis(0);
|
// rcdb.setNaturalLifetimeMillis(0);
|
||||||
|
rcdb.stopTimer();
|
||||||
|
rcdb = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,7 +24,10 @@
|
|||||||
|
|
||||||
package soundtrap;
|
package soundtrap;
|
||||||
|
|
||||||
|
import java.awt.Component;
|
||||||
|
|
||||||
import Acquisition.AcquisitionControl;
|
import Acquisition.AcquisitionControl;
|
||||||
|
import Acquisition.DaqSystem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author SCANS
|
* @author SCANS
|
||||||
@ -34,6 +37,14 @@ public class STAcquisitionControl extends AcquisitionControl {
|
|||||||
|
|
||||||
public static final String STUNITTYPE = "SoundTrap Data Acquisition";
|
public static final String STUNITTYPE = "SoundTrap Data Acquisition";
|
||||||
private STAcquisitionProcess stAcquisitionProcess;
|
private STAcquisitionProcess stAcquisitionProcess;
|
||||||
|
private STDaqSystem stDaqSystem;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Standard voltage for soundtrap data. note that ST calibration is only
|
||||||
|
* provided as end to end peak input, so the correct thing to do is set the peak to peak as 2
|
||||||
|
* (0-peak = 1) and then put the hydrophone sensitivity as - the end to end and all will be well.
|
||||||
|
*/
|
||||||
|
public static final double SOUNDTRAPVP2P = 2.0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param name
|
* @param name
|
||||||
@ -41,46 +52,12 @@ public class STAcquisitionControl extends AcquisitionControl {
|
|||||||
public STAcquisitionControl(String name) {
|
public STAcquisitionControl(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
|
|
||||||
// super(STUNITTYPE, name);
|
|
||||||
//
|
|
||||||
// acquisitionControl = this;
|
|
||||||
//
|
|
||||||
// fileDate = new StandardFileDate(this);
|
|
||||||
//
|
|
||||||
// pamController = PamController.getInstance();
|
|
||||||
//
|
|
||||||
// registerDaqSystem(new FileInputSystem(this));
|
|
||||||
// registerDaqSystem(folderSystem = new FolderInputSystem(this));
|
|
||||||
//
|
|
||||||
// daqChannelListManager = new DAQChannelListManager(this);
|
|
||||||
//
|
|
||||||
// PamSettingManager.getInstance().registerSettings(this);
|
|
||||||
//
|
|
||||||
// addPamProcess(acquisitionProcess = new STAcquisitionProcess(this));
|
|
||||||
//
|
|
||||||
// daqMenuEnabler = new MenuItemEnabler();
|
|
||||||
//
|
|
||||||
// statusBarComponent = getStatusBarComponent();
|
|
||||||
//
|
|
||||||
// if (isViewer) {
|
|
||||||
// offlineFileServer = new OfflineFileServer(this, fileDate);
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// PamStatusBar statusBar = PamStatusBar.getStatusBar();
|
|
||||||
//
|
|
||||||
// if (statusBar != null) {
|
|
||||||
// statusBar.getToolBar().add(statusBarComponent);
|
|
||||||
// statusBar.getToolBar().addSeparator();
|
|
||||||
// setupStatusBar();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// setSelectedSystem();
|
|
||||||
//
|
|
||||||
// TDDataProviderRegisterFX.getInstance().registerDataInfo(new RawSoundProviderFX(this));
|
|
||||||
|
|
||||||
// add a second PAM process, for the click data
|
// add a second PAM process, for the click data
|
||||||
|
registerDaqSystem(stDaqSystem = new STDaqSystem());
|
||||||
addPamProcess(stAcquisitionProcess = new STAcquisitionProcess(this));
|
addPamProcess(stAcquisitionProcess = new STAcquisitionProcess(this));
|
||||||
|
|
||||||
|
acquisitionParameters.voltsPeak2Peak = SOUNDTRAPVP2P;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -101,6 +78,30 @@ public class STAcquisitionControl extends AcquisitionControl {
|
|||||||
return stAcquisitionProcess;
|
return stAcquisitionProcess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// protected Component getStatusBarComponent() {
|
||||||
|
// // call it to create the fields, just incase, then return null;
|
||||||
|
// super.getStatusBarComponent();
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// protected void setupStatusBar() {
|
||||||
|
//// if (systemPanel == null) return;
|
||||||
|
//// systemPanel.removeAll();
|
||||||
|
//// DaqSystem daqSys = findDaqSystem(null);
|
||||||
|
//// if (daqSys == null) return;
|
||||||
|
//// Component specialComponent = daqSys.getStatusBarComponent();
|
||||||
|
//// if (specialComponent != null) {
|
||||||
|
//// systemPanel.add(specialComponent);
|
||||||
|
//// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DaqSystem findDaqSystem(String systemType) {
|
||||||
|
return stDaqSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,13 +25,20 @@
|
|||||||
package soundtrap;
|
package soundtrap;
|
||||||
|
|
||||||
import java.awt.Frame;
|
import java.awt.Frame;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import javax.swing.JMenu;
|
import javax.swing.JMenu;
|
||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
|
|
||||||
import Acquisition.AcquisitionControl;
|
import Acquisition.AcquisitionControl;
|
||||||
|
import Acquisition.sud.SUDNotificationManager;
|
||||||
|
import PamController.PamController;
|
||||||
import PamguardMVC.PamRawDataBlock;
|
import PamguardMVC.PamRawDataBlock;
|
||||||
|
import clickDetector.ClickBTDisplay;
|
||||||
import clickDetector.ClickControl;
|
import clickDetector.ClickControl;
|
||||||
|
import clickDetector.ClickDisplay;
|
||||||
|
import clickDetector.ClickDisplayManager;
|
||||||
|
import soundtrap.sud.SudFileDWVHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author mo55
|
* @author mo55
|
||||||
@ -46,6 +53,9 @@ public class STClickControl extends ClickControl {
|
|||||||
*/
|
*/
|
||||||
private AcquisitionControl rawSource;
|
private AcquisitionControl rawSource;
|
||||||
|
|
||||||
|
private SudFileDWVHandler sudFileDWVHandler;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param name
|
* @param name
|
||||||
*/
|
*/
|
||||||
@ -53,7 +63,10 @@ public class STClickControl extends ClickControl {
|
|||||||
super(name);
|
super(name);
|
||||||
|
|
||||||
// create a private acquisition control that only this module can see
|
// create a private acquisition control that only this module can see
|
||||||
rawSource = new AcquisitionControl("Private Sound Acq for Soundtrap Click Detector");
|
rawSource = new STAcquisitionControl("Private Sound Acq for Soundtrap Click Detector");
|
||||||
|
|
||||||
|
sudFileDWVHandler = new SudFileDWVHandler(this);
|
||||||
|
sudFileDWVHandler.subscribeSUD();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -107,5 +120,39 @@ public class STClickControl extends ClickControl {
|
|||||||
return newMenu;
|
return newMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pamStart() {
|
||||||
|
sudFileDWVHandler.pamStart();
|
||||||
|
super.pamStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pamStop() {
|
||||||
|
sudFileDWVHandler.pamStop();
|
||||||
|
super.pamStop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void notifyModelChanged(int changeType) {
|
||||||
|
super.notifyModelChanged(changeType);
|
||||||
|
if (changeType == PamController.INITIALIZATION_COMPLETE) {
|
||||||
|
sudFileDWVHandler.subscribeSUD();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when running SUD file data to find and scroll the BT Display's
|
||||||
|
* @param timeMillis
|
||||||
|
*/
|
||||||
|
public void updateDisplayScrollers(long timeMillis) {
|
||||||
|
ClickDisplayManager dispManager = getDisplayManager();
|
||||||
|
ArrayList<ClickDisplay> dispList = dispManager.getWindowList();
|
||||||
|
for (ClickDisplay display : dispList) {
|
||||||
|
if (display instanceof ClickBTDisplay) {
|
||||||
|
((ClickBTDisplay) display).newScrollTimingData(timeMillis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
107
src/soundtrap/STDaqSystem.java
Normal file
107
src/soundtrap/STDaqSystem.java
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
package soundtrap;
|
||||||
|
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
|
||||||
|
import Acquisition.AcquisitionControl;
|
||||||
|
import Acquisition.AcquisitionDialog;
|
||||||
|
import Acquisition.DaqSystem;
|
||||||
|
|
||||||
|
public class STDaqSystem extends DaqSystem {
|
||||||
|
|
||||||
|
public STDaqSystem() {
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSystemType() {
|
||||||
|
return "SoundTrap clicks";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSystemName() {
|
||||||
|
return "SoundTrap clicks";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JComponent getDaqSpecificDialogComponent(AcquisitionDialog acquisitionDialog) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dialogSetParams() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean dialogGetParams() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxSampleRate() {
|
||||||
|
return PARAMETER_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxChannels() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getPeak2PeakVoltage(int swChannel) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean prepareSystem(AcquisitionControl daqControl) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean startSystem(AcquisitionControl daqControl) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stopSystem(AcquisitionControl daqControl) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isRealTime() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canPlayBack(float sampleRate) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getDataUnitSamples() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void daqHasEnded() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDeviceName() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return "Sound Trap detector";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -12,6 +12,7 @@ import PamController.PamControlledUnit;
|
|||||||
import PamController.PamControlledUnitSettings;
|
import PamController.PamControlledUnitSettings;
|
||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamSettings;
|
import PamController.PamSettings;
|
||||||
|
import PamView.dialog.warn.WarnOnce;
|
||||||
|
|
||||||
public class STToolsControl extends PamControlledUnit implements PamSettings {
|
public class STToolsControl extends PamControlledUnit implements PamSettings {
|
||||||
|
|
||||||
@ -21,9 +22,17 @@ public class STToolsControl extends PamControlledUnit implements PamSettings {
|
|||||||
public static final String dwvFileEnd = ".dwv";
|
public static final String dwvFileEnd = ".dwv";
|
||||||
public static final String bclFileEnd = ".bcl";
|
public static final String bclFileEnd = ".bcl";
|
||||||
|
|
||||||
|
private String warn = "<html>Versions 2.02.06 of PAMGuard and later can read SoundTrap SUD files directly, removing the need " +
|
||||||
|
" to decompress them and then use this module to import the SoundTrap click detector data into PAMGuard.<p><br>" +
|
||||||
|
"Instead you should process the SUD files in 'normal mode' and include a SoundTrap Click Detector in "
|
||||||
|
+ "your configuration. Click data will then be automatically unpacked into the correct binary files"
|
||||||
|
+ " as you process the SUD file audio data.<p><br>"
|
||||||
|
+ "You can remove this module which is now obsolete. See the online help for details.";
|
||||||
|
|
||||||
public STToolsControl(String unitName) {
|
public STToolsControl(String unitName) {
|
||||||
super("Sound Trap Tools", unitName);
|
super("Sound Trap Tools", unitName);
|
||||||
PamSettingManager.getInstance().registerSettings(this);
|
PamSettingManager.getInstance().registerSettings(this);
|
||||||
|
WarnOnce.showWarning("Importing SoundTrap data", warn, WarnOnce.WARNING_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
59
src/soundtrap/sud/BCLDetectionChunk.java
Normal file
59
src/soundtrap/sud/BCLDetectionChunk.java
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
package soundtrap.sud;
|
||||||
|
|
||||||
|
import org.pamguard.x3.sud.Chunk;
|
||||||
|
|
||||||
|
public class BCLDetectionChunk {
|
||||||
|
|
||||||
|
private long javaMillis;
|
||||||
|
private boolean isDetection;
|
||||||
|
private String bclRecord;
|
||||||
|
private Chunk sudChunk;
|
||||||
|
private long javaMicros;
|
||||||
|
|
||||||
|
public BCLDetectionChunk(long javaMillis, long javaMicros, boolean isDetection, String bclRecord, Chunk sudChunk) {
|
||||||
|
super();
|
||||||
|
this.javaMillis = javaMillis;
|
||||||
|
this.javaMicros = javaMicros;
|
||||||
|
this.isDetection = isDetection;
|
||||||
|
this.bclRecord = bclRecord;
|
||||||
|
this.sudChunk = sudChunk;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the javaMillis
|
||||||
|
*/
|
||||||
|
public long getJavaMillis() {
|
||||||
|
return javaMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the isDetection
|
||||||
|
*/
|
||||||
|
public boolean isDetection() {
|
||||||
|
return isDetection;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the bclRecord
|
||||||
|
*/
|
||||||
|
public String getBclRecord() {
|
||||||
|
return bclRecord;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the sudChunk
|
||||||
|
*/
|
||||||
|
public Chunk getSudChunk() {
|
||||||
|
return sudChunk;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the javaMicros
|
||||||
|
*/
|
||||||
|
public long getJavaMicros() {
|
||||||
|
return javaMicros;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
268
src/soundtrap/sud/SudFileDWVHandler.java
Normal file
268
src/soundtrap/sud/SudFileDWVHandler.java
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
package soundtrap.sud;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.pamguard.x3.sud.Chunk;
|
||||||
|
import org.pamguard.x3.sud.SudAudioInputStream;
|
||||||
|
import org.pamguard.x3.sud.SudDataInputStream;
|
||||||
|
|
||||||
|
import Acquisition.AcquisitionControl;
|
||||||
|
import Acquisition.sud.SUDNotificationHandler;
|
||||||
|
import Acquisition.sud.SUDNotificationManager;
|
||||||
|
import PamController.PamController;
|
||||||
|
import PamUtils.PamCalendar;
|
||||||
|
import clickDetector.ClickDetection;
|
||||||
|
import clickDetector.ClickDetector;
|
||||||
|
import clickDetector.ClickDetector.ChannelGroupDetector;
|
||||||
|
import soundtrap.STAcquisitionControl;
|
||||||
|
import soundtrap.STClickControl;
|
||||||
|
import wavFiles.ByteConverter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to handle BCL and DWV data from a SUD file during sud file processing.
|
||||||
|
* SUD files are the compressed data files from soundtraps. The latest PAMGuard
|
||||||
|
* version contains a audioinputstream for SUD files, making it possible to
|
||||||
|
* process them withoug having to first inflate them to wav files. During
|
||||||
|
* 'normal mode' processing, this class will subscribe to packets from the SUD
|
||||||
|
* files, unpack what would normally be BCL and DWV data and generate
|
||||||
|
* appropriate binary output files.
|
||||||
|
*
|
||||||
|
* @author dg50
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SudFileDWVHandler implements SUDNotificationHandler {
|
||||||
|
|
||||||
|
private STClickControl stClickControl;
|
||||||
|
private SudAudioInputStream sudAudioInputStream;
|
||||||
|
|
||||||
|
private int txtCount = 0;
|
||||||
|
|
||||||
|
private List<Chunk> clickChunks = new LinkedList();
|
||||||
|
|
||||||
|
private List<BCLDetectionChunk> bclChunks = new LinkedList();
|
||||||
|
|
||||||
|
int bclDetCount, bclNoiseCount, dwvCount, processedChunks;
|
||||||
|
private long effortStart, fileStartMicros;
|
||||||
|
private double sampleRate;
|
||||||
|
private ByteConverter byteConverter;
|
||||||
|
private ClickDetector clickDetector;
|
||||||
|
private ChannelGroupDetector channelGroupDetector;
|
||||||
|
|
||||||
|
public SudFileDWVHandler(STClickControl stClickControl) {
|
||||||
|
this.stClickControl = stClickControl;
|
||||||
|
clickDetector = stClickControl.getClickDetector();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void newSudInputStream(SudAudioInputStream sudAudioInputStream) {
|
||||||
|
this.sudAudioInputStream = sudAudioInputStream;
|
||||||
|
interpretNewFile(null, sudAudioInputStream);
|
||||||
|
bclDetCount = bclNoiseCount = dwvCount = processedChunks = 0;
|
||||||
|
bclChunks.clear();
|
||||||
|
clickChunks.clear();
|
||||||
|
byteConverter = ByteConverter.createByteConverter(sudAudioInputStream.getFormat());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void interpretNewFile(String newFile, SudAudioInputStream sudAudioInputStream) {
|
||||||
|
// this is the wav sample rate, not the detector sample rate, so don't use it
|
||||||
|
// sampleRate = sudAudioInputStream.getFormat().getFrameRate();
|
||||||
|
// this is the right one
|
||||||
|
sampleRate = sudAudioInputStream.getSudMap().clickDetSampleRate;
|
||||||
|
fileStartMicros = sudAudioInputStream.getSudMap().getFirstChunkTimeMicros();
|
||||||
|
stClickControl.findRawDataBlock().setChannelMap(1);
|
||||||
|
stClickControl.findRawDataBlock().setSampleRate((float) sampleRate, true);
|
||||||
|
stClickControl.getSTAcquisition().acquisitionParameters.sampleRate = (float) sampleRate;
|
||||||
|
stClickControl.getSTAcquisition().acquisitionParameters.voltsPeak2Peak = STAcquisitionControl.SOUNDTRAPVP2P;
|
||||||
|
stClickControl.getSTAcquisition().getAcquisitionProcess().setSampleRate((float) sampleRate, true);
|
||||||
|
// System.out.printf("Open input stream fs = %3.1f\n", sampleRate);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sudStreamClosed() {
|
||||||
|
// System.out.printf("SUD input stream closed, %d DWV, %d bcl Detectins and %d BCL Noise, %d chunks processed\n",
|
||||||
|
// dwvCount, bclDetCount, bclNoiseCount, processedChunks);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void progress(double arg0, int arg1, int arg2) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void chunkProcessed(int chunkID, Chunk sudChunk) {
|
||||||
|
if (sudAudioInputStream == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String chunkName = "Unknown";
|
||||||
|
int chunkSize = sudChunk.buffer.length;
|
||||||
|
if (sudAudioInputStream.getChunkIDString(chunkID).equals("wav")) {
|
||||||
|
|
||||||
|
long millis = sudChunk.getChunkHeader().getMillisTime();
|
||||||
|
stClickControl.updateDisplayScrollers(millis);
|
||||||
|
|
||||||
|
if (sudAudioInputStream.isChunkIDWav(chunkID)) {
|
||||||
|
// chunkName = "RECORDINGS";
|
||||||
|
// System.out.printf("Chunk ID %d, size %d, type %s\n", chunkID, chunkSize,
|
||||||
|
// chunkName);
|
||||||
|
// System.out.println("ID: " + chunkID + " This is raw data from detected
|
||||||
|
// CLICKS: " + sudAudioInputStream.getChunkIDString(chunkID));
|
||||||
|
} else {
|
||||||
|
chunkName = "CLICKS";
|
||||||
|
processClickChunk(chunkID, sudChunk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sudAudioInputStream.getChunkIDString(chunkID).equals("csv")) {
|
||||||
|
// System.out.println("CSV data the bytes convert directly to comma delimted data");
|
||||||
|
}
|
||||||
|
if (sudAudioInputStream.getChunkIDString(chunkID).equals("txt")) {
|
||||||
|
processTextChunk(chunkID, sudChunk);
|
||||||
|
txtCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pairwise byte swap, i.e. change endianness of int16's. Won't work for
|
||||||
|
* anything else.
|
||||||
|
*
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
public void swapEndian(byte[] data) {
|
||||||
|
for (int i = 0; i < data.length; i += 2) {
|
||||||
|
byte b = data[i];
|
||||||
|
data[i] = data[i + 1];
|
||||||
|
data[i + 1] = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processTextChunk(int chunkID, Chunk sudChunk) {
|
||||||
|
SudDataInputStream dis = new SudDataInputStream(new ByteArrayInputStream(sudChunk.getBuffer()));
|
||||||
|
|
||||||
|
try {
|
||||||
|
while (dis.available() > 0) {
|
||||||
|
long rtime = (dis.readInt()) & 0xffffffffL;
|
||||||
|
long mticks = (dis.readInt()) & 0xffffffffL;
|
||||||
|
int n = dis.readUnsignedShort();
|
||||||
|
|
||||||
|
long javaMillis = (long) rtime * 1000 + mticks / 1000;
|
||||||
|
long javaMicros = (long) rtime * 1000000 + mticks;
|
||||||
|
|
||||||
|
byte[] b = new byte[(n % 2 == 1) ? n + 1 : n];
|
||||||
|
dis.read(b);
|
||||||
|
|
||||||
|
swapEndian(b);
|
||||||
|
|
||||||
|
String s = new String(b, "UTF-8");
|
||||||
|
String[] bits = s.split(",");
|
||||||
|
if (bits[0].equals("E")) {
|
||||||
|
// start or end record.
|
||||||
|
boolean isStart = bits[1].equals("1");
|
||||||
|
if (isStart) {
|
||||||
|
effortStart = javaMicros;
|
||||||
|
}
|
||||||
|
dwvEffort(javaMillis, isStart);
|
||||||
|
} else if (bits[0].equals("D")) {
|
||||||
|
boolean isDet = bits[1].equals("1");
|
||||||
|
if (isDet) {
|
||||||
|
bclDetCount++;
|
||||||
|
String bclText = String.format("%9d,%6d,%s has %d bits", rtime, mticks, s, bits.length);
|
||||||
|
BCLDetectionChunk bclChunk = new BCLDetectionChunk(javaMillis, javaMicros, isDet, bclText,
|
||||||
|
sudChunk);
|
||||||
|
bclChunks.add(bclChunk);
|
||||||
|
} else {
|
||||||
|
bclNoiseCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
convertChunks();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert bcl and dwv data to click detections.
|
||||||
|
*/
|
||||||
|
private void convertChunks() {
|
||||||
|
int nProc = 0;
|
||||||
|
while (bclChunks.size() > 0 && clickChunks.size() > 0) {
|
||||||
|
BCLDetectionChunk bclChunk = bclChunks.remove(0);
|
||||||
|
Chunk dwvChunk = clickChunks.remove(0);
|
||||||
|
makeClick(bclChunk, dwvChunk);
|
||||||
|
nProc++;
|
||||||
|
processedChunks++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void makeClick(BCLDetectionChunk bclChunk, Chunk dwvChunk) {
|
||||||
|
long elapsedSamples = (long) ((bclChunk.getJavaMicros() - fileStartMicros) * (sampleRate / 1e6));
|
||||||
|
long millis = bclChunk.getJavaMillis();
|
||||||
|
byte[] rawData = dwvChunk.getBuffer();
|
||||||
|
int nBytes = rawData.length;
|
||||||
|
int nSamples = nBytes / Short.BYTES;
|
||||||
|
double[][] wavData = new double[1][nSamples];
|
||||||
|
byteConverter.bytesToDouble(rawData, wavData, nBytes);
|
||||||
|
|
||||||
|
// channelGroupDetector = clickDetector.getChannelGroupDetector(0);
|
||||||
|
ClickDetection click = new ClickDetection(1, elapsedSamples, nSamples, clickDetector, channelGroupDetector, 1);
|
||||||
|
click.setTimeMilliseconds(millis);
|
||||||
|
click.setWaveData(wavData);
|
||||||
|
|
||||||
|
// if (groupDetector != null) {
|
||||||
|
// groupDetector.
|
||||||
|
// }
|
||||||
|
if (clickDetector.completeClick(click)) {
|
||||||
|
clickDetector.getClickDataBlock().addPamData(click);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dwvEffort(long javaMillis, boolean isStart) {
|
||||||
|
System.out.printf("DWV Effort %s at %s\n", isStart ? "Start" : "End", PamCalendar.formatDBDateTime(javaMillis));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processClickChunk(int chunkID, Chunk sudChunk) {
|
||||||
|
clickChunks.add(sudChunk);
|
||||||
|
dwvCount++;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void pamStart() {
|
||||||
|
subscribeSUD();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void pamStop() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean subscribeSUD() {
|
||||||
|
if (stClickControl.isViewer()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
AcquisitionControl daq = (AcquisitionControl) PamController.getInstance()
|
||||||
|
.findControlledUnit(AcquisitionControl.unitType);
|
||||||
|
if (daq == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
SUDNotificationManager sudManager = daq.getSUDNotificationManager();
|
||||||
|
if (sudManager == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
sudManager.addNotificationHandler(this);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -278,7 +278,7 @@ public class WhistleBinaryDataSource extends BinaryDataSource {
|
|||||||
* If we're n network receive mode, we can't do this until
|
* If we're n network receive mode, we can't do this until
|
||||||
* channel numbers have been reassigned.
|
* channel numbers have been reassigned.
|
||||||
*/
|
*/
|
||||||
if (runMode == PamController.RUN_PAMVIEW && delays != null) {
|
if ((runMode == PamController.RUN_PAMVIEW || runMode == PamController.RUN_NOTHING) && delays != null) {
|
||||||
ShapeConnector shapeConnector = wmDetector.findShapeConnector(channelMap);
|
ShapeConnector shapeConnector = wmDetector.findShapeConnector(channelMap);
|
||||||
if (shapeConnector != null) {
|
if (shapeConnector != null) {
|
||||||
BearingLocaliser bl = shapeConnector.getBearingLocaliser();
|
BearingLocaliser bl = shapeConnector.getBearingLocaliser();
|
||||||
|
@ -183,11 +183,6 @@ public class WhistleMoanControl extends PamControlledUnit implements PamSettings
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getModuleSummary() {
|
|
||||||
return whistleToneProcess.getModuleSummary();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getShortUnitType() {
|
public Object getShortUnitType() {
|
||||||
return "WMD";
|
return "WMD";
|
||||||
@ -225,4 +220,9 @@ public class WhistleMoanControl extends PamControlledUnit implements PamSettings
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getModuleSummary(boolean clear) {
|
||||||
|
return whistleToneProcess.getModuleSummary(clear);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -968,17 +968,6 @@ public class WhistleToneConnectProcess extends PamProcess {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getModuleSummary() {
|
|
||||||
String sumText = String.format("%d", NSUMMARYPOINTS);
|
|
||||||
for (int i = 0; i < NSUMMARYPOINTS; i++) {
|
|
||||||
sumText += String.format(",%d",whistleSummaryCount[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
clearSummaryData();
|
|
||||||
return sumText;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* When delay data are written to binary files, int16's are used, but these
|
* When delay data are written to binary files, int16's are used, but these
|
||||||
* must be scaled up to allow for sub-sample timing. How much they can be
|
* must be scaled up to allow for sub-sample timing. How much they can be
|
||||||
@ -1099,4 +1088,20 @@ public class WhistleToneConnectProcess extends PamProcess {
|
|||||||
return fftUnitsOut;
|
return fftUnitsOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* replicate Decimus function to give counts of whistles in four evenly spaced frequency
|
||||||
|
* bins.
|
||||||
|
*/
|
||||||
|
public String getModuleSummary(boolean clear) {
|
||||||
|
String sumText = String.format("%d", NSUMMARYPOINTS);
|
||||||
|
for (int i = 0; i < NSUMMARYPOINTS; i++) {
|
||||||
|
sumText += String.format(",%d",whistleSummaryCount[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (clear) {
|
||||||
|
clearSummaryData();
|
||||||
|
}
|
||||||
|
return sumText;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user