diff --git a/README.html b/README.html index 80869b8a..a8b1ad86 100644 --- a/README.html +++ b/README.html @@ -388,7 +388,10 @@ PamguardBeta_ViewerMode.exe):

LATEST VERSION 2.02.07 January 2023

+href="#_Latest_Version_2.02.08">LATEST VERSION 2.02.08 May 2023 + +

Version 2.02.07 January 2023

Version 2.02.06 November 2022

@@ -450,14 +453,35 @@ Version 2.00.10 June 2017

Older Versions

Latest Version 2.02.07 January 2023

+name="_Latest_Version_2.02.06">Latest Version 2.02.08 May +2023

Bug Fixes

-

Use of localization sensor and orientation data -for static hydrophones had a bug whereby it would continually ‘forget’ angle -offsets applied to static hydrophones in viewer mode. This is now fixed.

+

ROCCA Memory Leak: A memory leak in ROCCA, +which mostly occurred when processing large datasets of many offline files, has +been fixed.

+ +

New Features

+ +

Restart Options: When you restart +processing of offline files, if output data already exist (binary data of +within database tables) you will be asked if you want to overwrite the data, cancel, +or try to continue from where to left off.

+ +

Updated SoundTrap sud file interface so +that PAMGuard now extracts and stores the Click Detector settings from the sud +files and stores them within the PAMGuard configuration. This does not affect +processing, but is important for record keeping.

+ +

Version 2.02.07 January 2023

+ +

Bug Fixes

+ +

Use of localization sensor and orientation +data for static hydrophones had a bug whereby it would continually ‘forget’ +angle offsets applied to static hydrophones in viewer mode. This is now fixed.

Click tool bar: Correctly shows event selection options even if no species classification options are in place.

@@ -467,8 +491,8 @@ selection options even if no species classification options are in place.

ROCCA: Fixed (another) memory leak which -caused PAMGuard to crash when processing large data sets with the ROCCA -classifier.

+caused PAMGuard to crash when processing large data sets with the ROCCA classifier. +

Ishmael Modules: Fixed bug which occasionally caused crashes when processing many files offline.

@@ -1169,8 +1193,8 @@ Bug 441. Plot coordinate calculations incorrect in PamAxis.

10.        Bug 442. BT Display does not change click symbol color when Colour -By Superdetection is selected.

+lang=EN-US> Bug 442. BT Display does not change click symbol color when +Colour By Superdetection is selected.

11.       

15.        -Bug 447. Viewer mode throws exception when trying to load beamformer localisations

+Bug 447. Viewer mode throws exception when trying to load beamformer +localisations

16.       

18.        Bug 450. Ishmael Detectors subscribing to FFTDataBlock twice, -meaning they process each data unit 2x doubling the output.

+lang=EN-US> Bug 450. Ishmael Detectors subscribing to FFTDataBlock +twice, meaning they process each data unit 2x doubling the output.

Upgrades

@@ -1596,9 +1621,9 @@ lang=EN-US> Added decimal degrees option to latitude/longitude dialog.

2.        Added option in the Click Delay parameters to restrict the number -of initial samples used in the calculation. This can be useful for cleaning up -delays in the presence of echoes and small time delays.

+lang=EN-US> Added option in the Click Delay parameters to restrict the +number of initial samples used in the calculation. This can be useful for +cleaning up delays in the presence of echoes and small time delays.

3.        @@ -1971,8 +1996,8 @@ User is now able to specify Soundtrap date/time format

Beta Version 2.00.11 October 2017

-

PAMGuard Version 2 contains major updates. You -should read and understand the notes listed for PAMGuard Version 2 contains major updates. +You should read and understand the notes listed for Beta Version 2.00.10 before proceeding with installation and use of this version.

@@ -2126,8 +2151,8 @@ to colour them by the colour assigned to the group.

Using Old PAMGuard Configurations

-

Old PAMGuard configurations will work with the -new version. However please note the following:

+

Old PAMGuard configurations will work with +the new version. However please note the following:

1.                   @@ -3147,8 +3172,8 @@ correctly calculated in real world coordinates.

Wild ArcGIS Interface (Maps and Mapping group)

This module, developed by Michael Oswald / SWFSC, allows -PAMGuard to output data in a format suitable for display in the WILD ArcGIS -marine mammal survey package. See online help for details.

+PAMGuard to output data in a format suitable for display in the WILD ArcGIS marine +mammal survey package. See online help for details.

Alarms (Utilities Group)

@@ -3288,8 +3313,8 @@ whistle.

forms which did not display correctly in 'night' mode.
  • Bug fix in simulator. No longer stops or fails to start generating sounds.
  • -
  • Bug in calculated spectrum levels - if data were decimated (Bug in calculated spectrum + levels if data were decimated (http://sourceforge.net/p/pamguard/bugs/187/) . Did not affect band level calculations.
  • Bug in noise band monitor. @@ -3373,9 +3398,9 @@ databases.

    National Instruments cards: Added code in support of the new x-series devices.

    -

    ASIO sound cards: Added support for -a new open source ASIO driver system (jasiohost). The old system has been left -in place for now while we assess users response to the newer system.

    +

    ASIO sound cards: Added support +for a new open source ASIO driver system (jasiohost). The old system has been +left in place for now while we assess users response to the newer system.

    AIS

    @@ -3450,14 +3475,14 @@ have implemented database storage for output of these modules.

    '         -Radar Display: A bug which stopped the radar display from correctly -displaying bearings to whistles from arrays containing more than two hydrophone -elements has been fixed.

    +Radar Display: A bug which stopped the radar display from correctly displaying +bearings to whistles from arrays containing more than two hydrophone elements +has been fixed.

    '         -Database Speed: A substantial rewriting of some of the indexing methods in -the database module has led to a significant increase in the speed at which +Database Speed: A substantial rewriting of some of the indexing methods +in the database module has led to a significant increase in the speed at which data are written to the database (orders of magnitude for large databases). This is having a significant impact on the overall reliability of the software. Other changes have increased the speed (again by orders of magnitude) at which @@ -3564,8 +3589,8 @@ Symbol'>''         -Bearings can be calculated using the envelope of the waveform rather -than the full waveform. The waveform or envelope can also be filtered prior to +Bearings can be calculated using the envelope of the waveform rather than +the full waveform. The waveform or envelope can also be filtered prior to bearing calculation.

    ''         -Wigner time-frequency plot for the click detector. Clicks are NOT -automatically displayed in the Winger window as they are for the waveform and -spectrum windows since the Wigner transformation is very time consuming. Clicks -will be displayed if you select them with the mouse.

    +Wigner time-frequency plot for the click detector. Clicks are NOT automatically +displayed in the Winger window as they are for the waveform and spectrum +windows since the Wigner transformation is very time consuming. Clicks will be +displayed if you select them with the mouse.

    '         @@ -4392,9 +4417,9 @@ a serial port

    New Likelihood detector.

    -

    The likelihood detector module is an implementation of a likelihood -ratio test with flexible algorithms and configuration to estimate likelihood. -It is

    +

    The likelihood detector module is an implementation of a +likelihood ratio test with flexible algorithms and configuration to estimate +likelihood. It is

    suitable for detecting both short duration Odontocete clicks (Sperm, Beaked, etc.) as well as moderate duration Mysticete calls (Humpback, @@ -4676,8 +4701,7 @@ Symbol'>''1.0Beta 22 Jan 2008 - -Pamguard starts two releases, core and beta release,

    +class=Heading2Char>1.0Beta 22 Jan 2008 - Pamguard +starts two releases, core and beta release,

    this is the beta release

    @@ -4739,8 +4763,8 @@ Symbol'>''         -Multi animal click tracking with least squares fit calculation of -position on map

    +
    Multi animal click tracking with least squares fit calculation of position +on map

    '         diff --git a/src/binaryFileStorage/BinaryStoreStatus.java b/src/binaryFileStorage/BinaryStoreStatus.java index 53c00717..11f20d3a 100644 --- a/src/binaryFileStorage/BinaryStoreStatus.java +++ b/src/binaryFileStorage/BinaryStoreStatus.java @@ -110,6 +110,9 @@ public class BinaryStoreStatus extends StoreStatus { * @param blockStatus */ public void considerBlockStatus(BinaryStoreStatus blockStatus) { + if (blockStatus == null) { + return; + } considerFirstHeader(blockStatus.firstHeader); considerLastFooter(blockStatus.lastFooter); considerLastData(blockStatus.lastData); diff --git a/src/binaryFileStorage/BinaryStoreStatusFuncs.java b/src/binaryFileStorage/BinaryStoreStatusFuncs.java index 0454655a..c19447b2 100644 --- a/src/binaryFileStorage/BinaryStoreStatusFuncs.java +++ b/src/binaryFileStorage/BinaryStoreStatusFuncs.java @@ -49,6 +49,9 @@ public class BinaryStoreStatusFuncs { continue; } BinaryStoreStatus blockStatus = getStreamStartEnd(dataSource); + if (blockStatus == null) { + continue; + } binStoreStatus.considerBlockStatus(blockStatus); } diff --git a/src/soundtrap/STClickControl.java b/src/soundtrap/STClickControl.java index f210c765..203357fe 100644 --- a/src/soundtrap/STClickControl.java +++ b/src/soundtrap/STClickControl.java @@ -39,11 +39,14 @@ import org.pamguard.x3.sud.SUDClickDetectorInfo; import Acquisition.AcquisitionControl; import PamController.PamControlledUnitSettings; import PamController.PamController; +import PamController.PamSettingManager; +import PamController.PamSettings; import PamguardMVC.PamRawDataBlock; import clickDetector.ClickBTDisplay; import clickDetector.ClickControl; import clickDetector.ClickDisplay; import clickDetector.ClickDisplayManager; +import clickDetector.ClickParameters; import soundtrap.sud.SUDParamsDialog; import soundtrap.sud.SudFileDWVHandler; @@ -76,6 +79,8 @@ public class STClickControl extends ClickControl { sudFileDWVHandler = new SudFileDWVHandler(this); sudFileDWVHandler.subscribeSUD(); + + PamSettingManager.getInstance().registerSettings(new SUDSettings()); } @Override @@ -181,23 +186,30 @@ public class STClickControl extends ClickControl { } } - @Override - public long getSettingsVersion() { - return SUDClickDetectorInfo.serialVersionUID; - } - - @Override - public Serializable getSettingsReference() { - return getSudClickDetectorInfo(); - } + // this was a bad idea since we need to keep hold of settings for the + // classifier, which are in with the main set ... +// @Override +// public long getSettingsVersion() { +// return SUDClickDetectorInfo.serialVersionUID; +// } +// +// @Override +// public Serializable getSettingsReference() { +// return getSudClickDetectorInfo(); +// } @Override public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings) { + // have to leave this in since I've now run data with it using the ST settings, + // so some configs may return these ! Object o = pamControlledUnitSettings.getSettings(); if (o instanceof SUDClickDetectorInfo) { sudClickDetectorInfo = (SUDClickDetectorInfo) o; return true; } + if (o instanceof ClickParameters) { + return super.restoreSettings(pamControlledUnitSettings); + } return false; } @@ -218,5 +230,44 @@ public class STClickControl extends ClickControl { this.sudClickDetectorInfo = sudClickDetectorInfo; } + /** + * Class to handle SoundTrap click detector settings without messing up + * the standard click detector ones which are needed for the classifier. + * @author dg50 + * + */ + private class SUDSettings implements PamSettings { + + @Override + public String getUnitName() { + return STClickControl.this.getUnitName(); + } + + @Override + public String getUnitType() { + return STUNITTYPE; + } + + @Override + public Serializable getSettingsReference() { + return sudClickDetectorInfo; + } + + @Override + public long getSettingsVersion() { + return SUDClickDetectorInfo.serialVersionUID; + } + + @Override + public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings) { + Object o = pamControlledUnitSettings.getSettings(); + if (o instanceof SUDClickDetectorInfo) { + sudClickDetectorInfo = (SUDClickDetectorInfo) o; + return true; + } + return false; + } + + } }