diff --git a/README.html b/README.html index 69409ed8..ccaef28a 100644 --- a/README.html +++ b/README.html @@ -466,9 +466,9 @@ name="_Version_2.02.10_January">Version 2.02.10 January 2024

New Features

Importing modules from other configurations: New options from file menu allowing -import of specific modules, or module settings from other configurations. E.g. -if you had three similar configurations and had set one of them up with a new +lang=EN-US> from other configurations: New options from file menu allowing import +of specific modules, or module settings from other configurations. E.g. if you +had three similar configurations and had set one of them up with a new detector, or got the click classifier settings set up just right in one of those configurations, you can import the additional modules or the click detector settings easily into the other configurations.

@@ -477,6 +477,10 @@ detector settings easily into the other configurations.

files) file performance when scrolling through audio data in Viewer mode.

+

Viewer Launch by right clicking on sqlite database and selecting ‘open with / Pamguard +ViewerMode launcher’ menu option.

+

Bug Fixes

Logger Forms

@@ -492,9 +496,9 @@ correctly saving updated bearings to the database. Now fixed.

ROCCA Classifier fixes

-

Allow Rocca to run without classifiers: Fixed -bug that threw an error if no classifier files were  specified in Rocca Params -dialog

+

Allow Rocca to run without classifiers: +Fixed bug that threw an error if no classifier files were  specified in +Rocca Params dialog

Fix memory issue with RoccaContourDataBlocks not being released for garbage collection

@@ -506,9 +510,9 @@ and stop PamObserver Timer to

Fix problem tracing whistles in Rocca spectrogram pop-up: Whistle and raw data were being cleared before the user had -time to trace out the whistle, causing PAMGuard to throw an exception.  Both -were already being cleared when the pop-up window is closed, so no need to do -it here.

+time to trace out the whistle, causing PAMGuard to throw an exception.  +Both were already being cleared when the pop-up window is closed, so no need to +do it here.

DIFAR Module: Bug crashing the module with null pointer errors fixed.

@@ -517,6 +521,10 @@ Bug crashing the module with null pointer errors fixed.

lang=EN-US>: Fixed bug which caused the detector to slow to almost zero speed when large complex sounds with many branches were detected.

+

Click Detector Offline Event Marking: Fixed problem of events not being correctly deleted and also of +clicks not being correctly reassigned to different events.

+

Screen Position: When using multiple monitors, if you move a configuration to a computer with a different monitor layout, the GUI should work out if it’s @@ -555,9 +563,9 @@ handlers to handle corrupt map files.

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.

+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 @@ -751,8 +759,9 @@ the TF FX display to crash if no data were displayed.

See major release notes for V 2.02.01 below.

-

Bug 495: TD FX display throws NullPointerException -if user has removed all data units and then moves mouse over display area.

+

Bug 495: TD FX display throws +NullPointerException if user has removed all data units and then moves mouse +over display area.

Version 2.02.01 October 2021

@@ -787,12 +796,11 @@ font-family:"Times New Roman",serif'> 

Localisation Modules

-

Bearing and Group 3D localization modules have been -thoroughly tested and a number of bugs rectified. Documentation has been -developed and is available in the online help. Further, a number of example -configurations have been generated, configuration files for these are available -in the PAMGuard downloads area here.

+

Bearing and Group 3D localization modules have been thoroughly +tested and a number of bugs rectified. Documentation has been developed and is +available in the online help. Further, a number of example configurations have +been generated, configuration files for these are available in the PAMGuard +downloads area here.

Detection Group Localiser

@@ -919,10 +927,10 @@ included in a future release.

17.        An implementation of the Generalized Power Law Detector, -developed by Tyler Helble ([Helble et al., ‘A generalized power-law -detection algorithm for humpback whale vocalizations’, The Journal of the -Acoustical Society of America, vol. 131, no. 4, pp. 2682–2699, 2012) is now -available. For details, see the online help

+developed by Tyler Helble ([Helble et al., ‘A generalized power-law detection +algorithm for humpback whale vocalizations’, The Journal of the Acoustical +Society of America, vol. 131, no. 4, pp. 2682–2699, 2012) is now available. +For details, see the online help

18.       Beta Version 2.00.10 before proceeding with installation and use of this version.

-

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 be compatible with this version, and vice-versa. PSF files generated in -core releases (1.15.xx) can be loaded in this version, but will be converted to -PSFX files when PAMGuard exits.

+

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 be +compatible with this version, and vice-versa. PSF files generated in core +releases (1.15.xx) can be loaded in this version, but will be converted to PSFX +files when PAMGuard exits.

Bug Fixes

@@ -1187,8 +1195,8 @@ lang=EN-US> Add option to alarm module to attach screenshots of all frames to email alerts.

7.        -Add Beamformer and Bearing Localiser modules

+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>       Add Beamformer and Bearing Localiser modules

8.       

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

+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>       Bug 447. Viewer mode throws exception when trying to load +beamformer localisations

16.       

7.        -Changes to Spectrogram Mark Observers, to allow individual channels to be selected -instead of the spectrogram panel as a whole.

+Changes to Spectrogram Mark Observers, to allow individual channels to be +selected instead of the spectrogram panel as a whole.

8.       

2.        -Java 12 is better at handling Windows scaling issues on high-DPI displays. Beyond -that, users should not notice much of a difference between this version and -previous beta releases.

+Java 12 is better at handling Windows scaling issues on high-DPI displays. +Beyond that, users should not notice much of a difference between this version +and previous beta releases.

@@ -1465,8 +1473,8 @@ lang=EN-US> Updates to the Ishmael detectors.

Beta Version 2.00.16 May 2019

-

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.

@@ -1765,10 +1773,10 @@ settings even when user tries to cancel or discard changes

6.        -Bug 387. Map was stopping displaying data based on the start time of data -units. Have changed this to last updated time so that click events will display -if they have been recently modified. Otherwise, long events get lost from the -display.

+Bug 387. Map was stopping displaying data based on the start time of +data units. Have changed this to last updated time so that click events will +display if they have been recently modified. Otherwise, long events get lost +from the display.

7.        @@ -1816,9 +1824,9 @@ see new options in main menu.

2.        Added Matched Template Click Classifier. Classifies clicks -based on an ideal template to match and a template to reject. An example of -this is to classify beaked whale clicks in an environment with dolphin clicks.

+lang=EN-US> Added Matched Template Click Classifier. Classifies clicks based +on an ideal template to match and a template to reject. An example of this is +to classify beaked whale clicks in an environment with dolphin clicks.

3.        @@ -1933,12 +1941,12 @@ A number of upgrades and fixes to the Localiser algorithms, including expanding to work with whistles.

3.        -Added option to export all settings and parameters as an XML-formatted file. -Note that this required changes to the structure of the Array Manager, and as -such any settings (psf) files created with this version of Pamguard cannot be -used in older versions. Older psf files can be loaded with this version, but -will be converted.

+lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>       Added option to export all settings and parameters as an +XML-formatted file. Note that this required changes to the structure of the +Array Manager, and as such any settings (psf) files created with this version +of Pamguard cannot be used in older versions. Older psf files can be loaded +with this version, but will be converted.

4.        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.

@@ -2104,9 +2112,9 @@ showing.

2.       -Bug 323. Difar module. Fixed a couple of small bugs -in the DIFAR system which caused it to not work if old configuratins were used. -

+Bug 323. Difar module. Fixed a couple of small +bugs in the DIFAR system which caused it to not work if old configuratins were +used.

3.       @@ -2255,10 +2263,10 @@ so they will no longer work with older PAMGuard versions.

2.                   -Display colour options will be lost and most data displayed -on the map may default to black. This is due to the above changes to how -colours are managed. Changing back to the colours of your choice is relatively -simple through the PAMGuard GUI.

+Display colour options will be lost and most data +displayed on the map may default to black. This is due to the above changes to +how colours are managed. Changing back to the colours of your choice is +relatively simple through the PAMGuard GUI.

 

@@ -2350,10 +2358,9 @@ happens when the user selects save as new configuration. This has been fixed.

6.       -Bug 315. code searched for file in working folder, which is the -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 been fixed.

+Bug 315. code searched for file in working folder, which is the 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 been fixed.

7.      

Other Changes

-

The installer has been updated to handle -both 64 bit and 32 bit installations. PAMGuard psf files are now registered in -the Windows Registry, so double-clicking on a psf file should run PAMGuard in +

The installer has been updated to handle both +64 bit and 32 bit installations. PAMGuard psf files are now registered in the +Windows Registry, so double-clicking on a psf file should run PAMGuard in normal mode (as opposed to Viewer or Mixed modes). Note that the Windows Registry can only hold a single executable reference for psf files; therefore, for users with multiple installations of PAMGuard, double-clicking on a psf @@ -2691,11 +2698,11 @@ planned file format changes and that this is purely a future proofing exercise.<

7.        -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 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 -instead. This has been Fixed.

+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 +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 instead. This has been Fixed.

8.        @@ -3250,10 +3257,11 @@ sonobuoys. See online help for details. 

MEAL Localiser (Localisation Group)

This module, developed by Jamie Macaulay of St Andrews -University estimates the 3D localisation of clicks using a variety of 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 output from -the click detector, we hope eventually to extend its use to whistles as well.

+University estimates the 3D localisation of clicks using a variety of +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 +output from the click detector, we hope eventually to extend its use to +whistles as well.

Accelerometer Readout (Sensors group)

@@ -3395,8 +3403,8 @@ whistle.

  • Airgun display. If this was included in the PAMGuard model before the GPS module it would hang PAMGuard. This has been rectified.
  • -
  • Fixed occasional exceptions in - the sound output modules when playing back from files.
  • +
  • Fixed occasional exceptions in the + sound output modules when playing back from files.
  • Fixed exceptions in spectrogram user interface.
  • Fixed National Instruments sound @@ -3436,9 +3444,9 @@ whistle.

    New Modules

    -

    Clip Generator: Saves and displays -short waveform clips around detections. Can work with any detector (or indeed -any other data stream within PAMGuard).  

    +

    Clip Generator: Saves and +displays short waveform clips around detections. Can work with any detector (or +indeed any other data stream within PAMGuard).  

    Local time display: displays the computers local time on the main display panel.

    @@ -3478,8 +3486,8 @@ other data sources for the PAMGuard viewer.

    storage to the database offline for any module having both binary and database storage.

    -

    Can create a blank MS Access -database (2007 and later *.accdb formats only).

    +

    Can create a blank MS Access database +(2007 and later *.accdb formats only).

    Can open MS Access from within PAMGuard to make it easier to view database content.

    @@ -3514,9 +3522,9 @@ information correctly in the binary files.

    Logger Forms

    -

    A substantial amount of work has been -carried out on Logger forms, funded by the South West fisheries Science Center. -

    +

    A substantial amount of work has +been carried out on Logger forms, funded by the South West fisheries Science +Center.

    Click Detector

    @@ -3798,10 +3806,10 @@ source, even if that data source is loaded after the FFT module is created.

    1. Binary storage module.

    -

    Performs a parallel role to the PAMGAURD database but uses -binary files in a proprietary format which is considerably more efficient for -data of unknown length such as whistle contours or small clips of click -waveform. This feature is currently implemented in the following modules:

    +

    Performs a parallel role to the PAMGAURD database but uses binary +files in a proprietary format which is considerably more efficient for data of +unknown length such as whistle contours or small clips of click waveform. This +feature is currently implemented in the following modules:

    '         @@ -3967,9 +3975,9 @@ more displays are set up for offline data viewing in future releases.

    Viewer data map

    -

    When using the PAMGUARD viewer an additional panel will be displayed -showing an overview of data quantity (per hour) from the various database -tables connected to PAMGUARD.

    +

    When using the PAMGUARD viewer an additional panel will be +displayed showing an overview of data quantity (per hour) from the various +database tables connected to PAMGUARD.

    Spectrogram Display overlays

    @@ -4010,8 +4018,8 @@ column was setting to zero. This is now fixed

    Ishmael Detectors

    -

    Better rendering of detection boxes on spectrogram display -and more meaningful names in spectrogram display menu.

    +

    Better rendering of detection boxes on spectrogram display and +more meaningful names in spectrogram display menu.

    Sound acquisition

    @@ -4179,9 +4187,9 @@ display correctly and amplitude scale updates after scale parameter changes.

    Speed improvement.

    -

    PAMGAURD FFT calculations now use the JTransforms FFT library -which gives a factor 2 speed improvement compared to previous FFT methods used -in PAMGUARD

    +

    PAMGAURD FFT calculations now use the JTransforms FFT +library which gives a factor 2 speed improvement compared to previous FFT +methods used in PAMGUARD

    New Modules

    @@ -4537,9 +4545,9 @@ localiser (affects stability of click train localiser and whistle localiser in <

    1.2.0 Beta December 2008

    -

    This release contains many bug fixes from the PAMGUARD industry -field trial which took place in the Gulf of Mexico on the RV New Venture in -November 2008.

    +

    This release contains many bug fixes from the PAMGUARD +industry field trial which took place in the Gulf of Mexico on the RV New +Venture in November 2008.

    Bug Fixes

    @@ -4644,8 +4652,8 @@ mouse is moved over the display. Choice of colour maps for display.

    '         Sound playback. Now supported in ASIO sound cards, so you can have sound -coming in through the ASIO card and back out through its headphone socket (after -passing through PAMGUARD filters and other modules) at the same time.

    +coming in through the ASIO card and back out through its headphone socket +(after passing through PAMGUARD filters and other modules) at the same time.

    '         @@ -4665,11 +4673,11 @@ Symbol'>' markedClicks) { + if (markedClicks == null) { + return; + } + for (PamDataUnit dataUnit : markedClicks) { + OfflineEventDataUnit anEvent = (OfflineEventDataUnit) dataUnit.getSuperDetection(OfflineEventDataUnit.class); + if (anEvent == null) { + continue; + } + anEvent.removeSubDetection(dataUnit); + if (anEvent.getSubDetectionsCount() == 0) { + deleteEvent(anEvent); + } + else { + anEvent.updateDataUnit(System.currentTimeMillis()); + } + } + + } /** * Reassign all the clicks on one event to a different event @@ -1199,7 +1225,7 @@ public class ClickControl extends PamControlledUnit implements PamSettings { } clickEvent.setComment(clickEvent.getComment() + " Clicks reassigned to event " + reassignEvent.getEventId()); offlineEventDataBlock.updatePamData(clickEvent, PamCalendar.getTimeInMillis()); - offlineEventDataBlock.remove(clickEvent); + offlineEventDataBlock.remove(clickEvent, true); reassignEvent.sortSubDetections(); offlineEventDataBlock.updatePamData(reassignEvent, now); if (ClickTrainDetection.class.isAssignableFrom(reassignEvent.getClass())) { diff --git a/src/clickDetector/offlineFuncs/ClicksOffline.java b/src/clickDetector/offlineFuncs/ClicksOffline.java index 4423c721..6b72da91 100644 --- a/src/clickDetector/offlineFuncs/ClicksOffline.java +++ b/src/clickDetector/offlineFuncs/ClicksOffline.java @@ -632,6 +632,7 @@ public class ClicksOffline { OfflineEventDataUnit newUnit = new OfflineEventDataUnit(null, getNextEventColourIndex(), null); newUnit = OfflineEventDialog.showDialog(win, clickControl, newUnit); if (newUnit != null) { + clickControl.removeFromEvents(markedClicks); newUnit.addSubDetections(markedClicks); offlineEventDataBlock.addPamData(newUnit); clickControl.setLatestOfflineEvent(newUnit); diff --git a/src/clickDetector/offlineFuncs/LabelClicksDialog.java b/src/clickDetector/offlineFuncs/LabelClicksDialog.java index 0e25b495..113f7864 100644 --- a/src/clickDetector/offlineFuncs/LabelClicksDialog.java +++ b/src/clickDetector/offlineFuncs/LabelClicksDialog.java @@ -146,6 +146,7 @@ public class LabelClicksDialog extends PamDialog { * @param thenClose option to close dialog */ private void addClicksToEvent(OfflineEventDataUnit event, boolean thenClose) { + removeFromOldEvent(markedClicks); event.addSubDetections(markedClicks); offlineEventListPanel.tableDataChanged(); clickControl.setLatestOfflineEvent(event); @@ -154,6 +155,15 @@ public class LabelClicksDialog extends PamDialog { } } + /** + * clicks may have already been part of an event, so need to remove them from that + * event first, and if there is nothing left in that event, delete the event. + * @param markedClicks2 + */ + private void removeFromOldEvent(List markedClicks) { + clickControl.removeFromEvents(markedClicks); + } + @Override public void restoreDefaultSettings() { // TODO Auto-generated method stub diff --git a/src/clickDetector/offlineFuncs/OfflineClickLogging.java b/src/clickDetector/offlineFuncs/OfflineClickLogging.java index 4b4360dc..43a73fea 100644 --- a/src/clickDetector/offlineFuncs/OfflineClickLogging.java +++ b/src/clickDetector/offlineFuncs/OfflineClickLogging.java @@ -51,7 +51,7 @@ public class OfflineClickLogging extends SQLLogging { tableDef.addTableItem(clickNumber = new PamTableItem("ClickNo", Types.INTEGER)); tableDef.addTableItem(amplitude = new PamTableItem("Amplitude", Types.DOUBLE)); tableDef.addTableItem(channelNumbers = new PamTableItem("Channels", Types.INTEGER)); - tableDef.setUseCheatIndexing(true); + tableDef.setUseCheatIndexing(false); setTableDefinition(tableDef); } diff --git a/src/generalDatabase/PamSubtableDefinition.java b/src/generalDatabase/PamSubtableDefinition.java index 0aa20215..ec3780b0 100644 --- a/src/generalDatabase/PamSubtableDefinition.java +++ b/src/generalDatabase/PamSubtableDefinition.java @@ -51,6 +51,7 @@ public class PamSubtableDefinition extends PamTableDefinition { addTableItem(parentUID = new PamTableItem(PARENTUIDNAME, Types.BIGINT)); addTableItem(longName = new PamTableItem(LONGDATANAME, Types.CHAR, DATANAME_LENGTH)); addTableItem(binaryFilename = new PamTableItem(BINARYFILE, Types.CHAR, BINARY_FILE_NAME_LENGTH)); + setUseCheatIndexing(false); } public PamTableItem getParentID() {