mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2025-01-14 09:02:27 +00:00
Small changes to support batch process module
A couple of small changes to add functionality for batch processor
This commit is contained in:
parent
42efd2b765
commit
543779bbf1
100
README.html
100
README.html
@ -499,6 +499,9 @@ to first available input source. </p>
|
||||
<p class=MsoNormal>Fixed units on spectrogram displays for air based
|
||||
measurements.</p>
|
||||
|
||||
<p class=MsoNormal>Fixed bug in whistle and moan detector graphics that caused
|
||||
whistles with branches to not draw.</p>
|
||||
|
||||
<h1>Version 2.02.14 October 2024</h1>
|
||||
|
||||
<h2>New Features</h2>
|
||||
@ -571,14 +574,14 @@ Visualiser, Audacity etc.)</p>
|
||||
<h2>Tethys Database</h2>
|
||||
|
||||
<p class=MsoNormal>Many users will be aware that we’re integrating an interface
|
||||
to the <a href="https://tethys.sdsu.edu/">Tethys Database</a> into PAMGuard. Some
|
||||
basic features are available for testing. If interested, please contact the
|
||||
PAMGuard support team. </p>
|
||||
to the <a href="https://tethys.sdsu.edu/">Tethys Database</a> into PAMGuard.
|
||||
Some basic features are available for testing. If interested, please contact
|
||||
the PAMGuard support team. </p>
|
||||
|
||||
<h2>Bug Fixes</h2>
|
||||
|
||||
<p class=MsoNormal>Linking clicks to offline clicks table. We had a database that
|
||||
had become corrupted so added code to relink offline clicks to their
|
||||
<p class=MsoNormal>Linking clicks to offline clicks table. We had a database
|
||||
that had become corrupted so added code to relink offline clicks to their
|
||||
corresponding clicks from binary data. </p>
|
||||
|
||||
<p class=MsoNormal>Drawing non-acoustic data: Data that were not associated
|
||||
@ -677,8 +680,8 @@ do it here.</span></p>
|
||||
Bug crashing the module with null pointer errors fixed.</span></p>
|
||||
|
||||
<p class=MsoNormal><b><span lang=EN-US>Whistle Detector</span></b><span
|
||||
lang=EN-US>: Fixed bug which caused the detector to slow to almost zero speed when
|
||||
large complex sounds with many branches were detected. </span></p>
|
||||
lang=EN-US>: Fixed bug which caused the detector to slow to almost zero speed
|
||||
when large complex sounds with many branches were detected. </span></p>
|
||||
|
||||
<p class=MsoNormal><b><span lang=EN-US>Click Detector Offline Event Marking</span></b><span
|
||||
lang=EN-US>: Fixed problem of events not being correctly deleted and also of
|
||||
@ -1223,8 +1226,9 @@ August 2020</span></h1>
|
||||
|
||||
<p class=MsoNormal><b>If you are upgrading from a PAMGuard core release
|
||||
(1.15.xx), PAMGuard Version 2 contains major updates. You should read and
|
||||
understand the notes listed for <a href="#_Latest_Beta_Version_2.00.10">Beta Version
|
||||
2.00.10</a> before proceeding with installation and use of this version.</b></p>
|
||||
understand the notes listed for <a href="#_Latest_Beta_Version_2.00.10">Beta
|
||||
Version 2.00.10</a> before proceeding with installation and use of this
|
||||
version.</b></p>
|
||||
|
||||
<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)
|
||||
@ -1340,10 +1344,10 @@ 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
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
lang=EN-US> </span>Add user-facing option to adjust the startup delay for the
|
||||
time-correction (Global Time module). This provides a workaround to speed up analysis
|
||||
of thousands of wav files (i.e. by setting startup delay to 0 instead of
|
||||
default value of 2000 ms). </p>
|
||||
lang=EN-US> </span>Add user-facing option to adjust the startup delay for the time-correction
|
||||
(Global Time module). This provides a workaround to speed up analysis of
|
||||
thousands of wav files (i.e. by setting startup delay to 0 instead of default
|
||||
value of 2000 ms). </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
@ -1515,8 +1519,8 @@ classify clicks. </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>2. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
lang=EN-US> </span>Added option in Sound Acquisition settings dialog to
|
||||
override filename time stamp and use PC local time instead. </p>
|
||||
lang=EN-US> </span>Added option in Sound Acquisition settings dialog to override
|
||||
filename time stamp and use PC local time instead. </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>3. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
@ -1751,8 +1755,8 @@ lang=EN-US> </span>Send Email option added to Alarm module.</p>
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
lang=EN-US> </span>Added ability to scale the PAMGuard display (go to <em><span
|
||||
style='font-family:"Calibri",sans-serif'>Help > Set Display Scaling Factor</span></em>
|
||||
to adjust the scale). This, in conjunction with the built-in Windows Display
|
||||
Scaling feature, will hopefully help with issues sometimes found when using
|
||||
to adjust the scale). This, in conjunction with the built-in Windows Display Scaling
|
||||
feature, will hopefully help with issues sometimes found when using
|
||||
4k/UHD/high-DPI displays. At the moment this does not fix the JavaFX
|
||||
components, but we're working on that.</p>
|
||||
|
||||
@ -2430,8 +2434,8 @@ the new version. However please note the following:</span></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-36.0pt'><span
|
||||
lang=EN-US>1.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span><span lang=EN-US>New classes will be added to the configuration files, so
|
||||
they will no longer work with older PAMGuard versions.</span></p>
|
||||
</span><span lang=EN-US>New classes will be added to the configuration files,
|
||||
so they will no longer work with older PAMGuard versions.</span></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-36.0pt'><span
|
||||
lang=EN-US>2.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
@ -2554,19 +2558,19 @@ milliseconds. However, getDuration actually returns the number of samples.
|
||||
|
||||
<p class=MsoNormal><b><span lang=EN-US>Plug-Ins</span></b></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>A major change in this version of PAMGuard is
|
||||
how plug-ins are managed. PAMGuard now has the ability to dynamically load
|
||||
<p class=MsoNormal><span lang=EN-US>A major change in this version of PAMGuard
|
||||
is how plug-ins are managed. PAMGuard now has the ability to dynamically load
|
||||
plug-in modules (saved as jar files) at runtime. This will greatly simplify the
|
||||
process of testing and distributing newly developed modules, since only a small
|
||||
jar file will be required rather than a new bespoke PAMGuard installation.</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>Module code development remains largely
|
||||
unchanged, in most cases simply requiring the addition of an interface class.
|
||||
<p class=MsoNormal><span lang=EN-US>Module code development remains largely unchanged,
|
||||
in most cases simply requiring the addition of an interface class.
|
||||
Instructions for the development of new modules utilizing the plug-in
|
||||
system can be found <a href="http://www.PAMGuard.org/16_HowtomakePlug-Ins.html"
|
||||
scheme can be found>here</a>. Plug-in modules can be downloaded from the PAMGuard
|
||||
website here, but developers are encouraged to host and maintain their own
|
||||
modules.</span></p>
|
||||
scheme can be found>here</a>. Plug-in modules can be downloaded from the
|
||||
PAMGuard website here, but developers are encouraged to host and maintain their
|
||||
own modules.</span></p>
|
||||
|
||||
<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,
|
||||
@ -2887,9 +2891,9 @@ easy to understand options have been developed in a new options dialog.</p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>9.<span
|
||||
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>Bug 281. Click classification dialog has grown too big to fit on the screen.
|
||||
The options have now been split across three tabbed panes which solves the
|
||||
problem.</p>
|
||||
</span>Bug 281. Click classification dialog has grown too big to fit on the
|
||||
screen. The options have now been split across three tabbed panes which solves
|
||||
the problem.</p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:38.25pt;text-indent:-20.25pt'>10.<span
|
||||
style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
@ -3193,10 +3197,10 @@ href="https://sourceforge.net/p/PAMGuard/bugs">https://sourceforge.net/p/PAMGuar
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
||||
lang=EN-US>1.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>Spectrogram annotation marks. A simple system for marking spectrograms
|
||||
during real time analysis has been incorporated. To use it, add the module, in
|
||||
the spectrogram settings, select the annotation marks in the 'Mark Observers'
|
||||
tab of the spectrogram configuration dialog, and also right click on the
|
||||
</span>Spectrogram annotation marks. A simple system for marking spectrograms during
|
||||
real time analysis has been incorporated. To use it, add the module, in the
|
||||
spectrogram settings, select the annotation marks in the 'Mark Observers' tab
|
||||
of the spectrogram configuration dialog, and also right click on the
|
||||
spectrogram and select to display the annotations. Annotations are saved to the
|
||||
database so you will also need a database module in your configuration. </p>
|
||||
|
||||
@ -3466,9 +3470,9 @@ of third octave noise bands. See online help for details. </p>
|
||||
|
||||
<p class=MsoNormal><i>Filtered Noise Measurement</i> (Sound Processing Group)</p>
|
||||
|
||||
<p class=MsoNormal>This module, developed by Douglas Gillespie, measures noise levels
|
||||
in a single frequency band using a variety of filter functions. See online help
|
||||
for details. </p>
|
||||
<p class=MsoNormal>This module, developed by Douglas Gillespie, measures noise
|
||||
levels in a single frequency band using a variety of filter functions. See
|
||||
online help for details. </p>
|
||||
|
||||
<p class=MsoNormal><i>Envelope Tracing</i> (Beta Only, Sound Processing Group)</p>
|
||||
|
||||
@ -3998,11 +4002,11 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
|
||||
|
||||
<p class=MsoNormal>2. Improved offline viewer functionality. </p>
|
||||
|
||||
<p class=MsoNormal>The offline viewer is much improved with better data scrolling
|
||||
and the ability to view data either stored in the database or the binary
|
||||
storage system. Work has stated on functions which read and use data stored in
|
||||
audio files. This is currently limited to re-calculating and displaying
|
||||
displaying spectrogram data during viewer mode operation. </p>
|
||||
<p class=MsoNormal>The offline viewer is much improved with better data
|
||||
scrolling and the ability to view data either stored in the database or the
|
||||
binary storage system. Work has stated on functions which read and use data
|
||||
stored in audio files. This is currently limited to re-calculating and
|
||||
displaying displaying spectrogram data during viewer mode operation. </p>
|
||||
|
||||
<p class=MsoNormal>3. Heading sensor readout</p>
|
||||
|
||||
@ -4103,8 +4107,8 @@ channels 0 and 1. Similarly if you switched sound cards, you may have to
|
||||
reconfigure every detector and several of the displays to handle the changes in
|
||||
channel numbering. </p>
|
||||
|
||||
<p class=MsoNormal>I have spent a considerable amount of time trying to work out
|
||||
a better system for handling channel numbering in PAMGuard and have decided
|
||||
<p class=MsoNormal>I have spent a considerable amount of time trying to work
|
||||
out a better system for handling channel numbering in PAMGuard and have decided
|
||||
that the only practical thing to do is to force all software channel numbering
|
||||
back to a zero indexed system. i.e. even if you read out hardware channels
|
||||
3,4,5 and 6, within PAMGuard, everywhere apart from the Sound acquisition
|
||||
@ -4692,9 +4696,9 @@ a serial port </p>
|
||||
|
||||
<p class=MsoNormal>New Likelihood detector. </p>
|
||||
|
||||
<p class=MsoNormal>The likelihood detector module is an implementation of a likelihood
|
||||
ratio test with flexible algorithms and configuration to estimate likelihood.
|
||||
It is </p>
|
||||
<p class=MsoNormal>The likelihood detector module is an implementation of a
|
||||
likelihood ratio test with flexible algorithms and configuration to estimate
|
||||
likelihood. It is </p>
|
||||
|
||||
<p class=MsoNormal>suitable for detecting both short duration Odontocete clicks
|
||||
(Sperm, Beaked, etc.) as well as moderate duration Mysticete calls (Humpback,
|
||||
@ -5020,8 +5024,8 @@ Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif
|
||||
<p class=MsoNormal> </p>
|
||||
|
||||
<p class=MsoNormal><a name="_Toc312065304"></a><a name="_Toc312063949"></a><span
|
||||
class=Heading2Char><span style='font-size:13.0pt'>1.0Beta 22 Jan 2008 -
|
||||
PAMGuard starts two releases, core and beta release</span></span>, </p>
|
||||
class=Heading2Char><span style='font-size:13.0pt'>1.0Beta 22 Jan 2008 - PAMGuard
|
||||
starts two releases, core and beta release</span></span>, </p>
|
||||
|
||||
<p class=MsoNormal>this is the beta release</p>
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package PamController;
|
||||
|
||||
import java.awt.Window;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.EOFException;
|
||||
@ -10,7 +11,11 @@ import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.swing.JFileChooser;
|
||||
|
||||
import PamUtils.PamCalendar;
|
||||
import PamUtils.PamFileChooser;
|
||||
import PamUtils.PamFileFilter;
|
||||
import PamView.dialog.warn.WarnOnce;
|
||||
import binaryFileStorage.BinaryFooter;
|
||||
import binaryFileStorage.BinaryHeader;
|
||||
@ -81,15 +86,32 @@ public class PSFXReadWriter {
|
||||
* Initially write to a temp file, then rename the temp file.
|
||||
* @param fileName the name to use for the save file (full name, including path)
|
||||
* @param timeStamp time stamp in milliseconds
|
||||
* @return
|
||||
* @return true on success
|
||||
*/
|
||||
public synchronized boolean writePSFX(String fileName, long timeStamp) {
|
||||
|
||||
// get an object containing everything we'll need to know.
|
||||
PamSettingsGroup psg = PamSettingManager.getInstance().getCurrentSettingsGroup();
|
||||
|
||||
// force the time stamp to be that given - might need to be exact !
|
||||
psg.setSettingsTime(timeStamp);
|
||||
|
||||
|
||||
return writePSFX(fileName, psg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Write settings to the given file<br>
|
||||
* Initially write to a temp file, then rename the temp file.
|
||||
* @param fileName the name to use for the save file (full name, including path)
|
||||
* @param psg PAMGuard settings group
|
||||
* @return true on success
|
||||
*/
|
||||
public synchronized boolean writePSFX(String fileName, PamSettingsGroup psg) {
|
||||
|
||||
BinaryHeader header = new BinaryHeader(SETTINGSSTORE, SETTINGSSTORE, SETTINGSSTORE, 0);
|
||||
|
||||
long timeStamp = psg.getSettingsTime();
|
||||
header.setAnalysisDate(timeStamp);
|
||||
header.setDataDate(timeStamp);
|
||||
|
||||
@ -133,6 +155,33 @@ public class PSFXReadWriter {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select a psfx file.
|
||||
* @param toRead if true, only selects existing files with the open dialog.
|
||||
* @return File or null.
|
||||
*/
|
||||
public File selectSettingsFile(Window frame, boolean toRead) {
|
||||
File start = new File(PamFolders.getDefaultProjectFolder());
|
||||
JFileChooser jFileChooser = new PamFileChooser(start);
|
||||
// jFileChooser.setFileFilter(new SettingsFileFilter());
|
||||
jFileChooser.setApproveButtonText("Select");
|
||||
PamFileFilter fileFilter = new PamFileFilter("PAMGUARD Settings files", PamSettingManager.getCurrentSettingsFileEnd());
|
||||
jFileChooser.setFileFilter(fileFilter);
|
||||
jFileChooser.setAcceptAllFileFilterUsed(false);
|
||||
// jFileChooser.setFileFilter(new FileNameExtensionFilter("PAMGUARD Settings files", defaultFile));
|
||||
int state = 0;
|
||||
if (toRead) {
|
||||
jFileChooser.showOpenDialog(frame);
|
||||
}
|
||||
else {
|
||||
jFileChooser.showSaveDialog(frame);
|
||||
}
|
||||
if (state != JFileChooser.APPROVE_OPTION) return null;
|
||||
File newFile = jFileChooser.getSelectedFile();
|
||||
newFile = PamFileFilter.checkFileEnd(newFile, PamSettingManager.getCurrentSettingsFileEnd(), true);
|
||||
return newFile;
|
||||
}
|
||||
|
||||
private boolean writeData(DataOutputStream dos, int objectId, byte[] data) {
|
||||
int totalLen = data.length + 16;
|
||||
int dataLen = data.length;
|
||||
|
@ -244,7 +244,7 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
if (dataUnitCopy == null) {
|
||||
return null;
|
||||
}
|
||||
return dataUnitCopy.get(tableRow);
|
||||
return dataUnitCopy.get(rowIndex);
|
||||
// return pamDataBlock.getDataUnit(rowIndex, PamDataBlock.REFERENCE_CURRENT);
|
||||
}
|
||||
}
|
||||
@ -286,6 +286,9 @@ public abstract class DataBlockTableView<T extends PamDataUnit> {
|
||||
* @return
|
||||
*/
|
||||
public int getDataIndexForRow(int tableRow) {
|
||||
if (tableRow == -1) {
|
||||
return -1;
|
||||
}
|
||||
if (dataUnitCopy == null) {
|
||||
return tableRow;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user