mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2025-05-07 07:07:23 +00:00
Squashed commit of the following:
commit514b398a10
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Mar 17 17:27:14 2025 +0000 Help updates Small updates to Tethys and arraysensor helps commitbbc47c595e
Merge:6a8c9aff
3dbbdfbe
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Mar 14 14:21:58 2025 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard commit6a8c9affbc
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Mar 14 14:21:51 2025 +0000 Add export option to Calibrations table commit3dbbdfbe8f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Mar 14 13:52:37 2025 +0000 Add notify command Add notify command to try to debug notification handling. Send udp command notify with a single integer parameter, e.g. notify 16 commitdfadf25b5e
Merge:6b63f14d
84d75dfa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Mar 14 13:17:48 2025 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard commit6b63f14d5d
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Mar 14 13:17:45 2025 +0000 Update batch tasks for bearings update batch offline tasks so that they support the bearing localiser commit84d75dfa57
Author: Jamie Mac <macster110@gmail.com> Date: Wed Mar 12 11:42:06 2025 -0700 Update readme.md commitccc59c7b79
Merge:c33ad180
78da90e2
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Mar 12 12:59:40 2025 +0000 Merge branch 'main' of https://github.com/PAMGuard/PAMGuard commitc33ad18067
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Mar 12 12:55:54 2025 +0000 Update FileMapMakingdialog.java update map making dialog to always fully dispose dialog commit78da90e23e
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Mar 10 17:38:42 2025 +0000 Update README.html commit38ec369a46
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Mar 10 17:09:52 2025 +0000 Update whistleClassifier_Overview.html updated wsl classifier help with link to new model download page commit545e2b010a
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Mar 10 13:47:21 2025 +0000 Clip Display for DL Added a clip display for the deep learning classifier. Could do with more decoration. commit0941b3ab7f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Mar 9 18:55:38 2025 +0000 Rocca graphics Added Rocca overlay graphics to RoccaLoggingDataBlock commitf88be0ca3c
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sat Mar 8 17:55:51 2025 +0000 Species map choice species map choices for Detection Grouper based on content of Logger Form annotation. commit624024709a
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Mar 7 18:27:58 2025 +0000 Species manager on logger forms Nearly working. Needs a bit of tweaking commite69520a0b5
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Mar 7 10:44:11 2025 +0000 Tethys funcs in ROCCA commit6bd7131255
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Mar 6 12:37:01 2025 +0000 Revamp of Whistle Classifier Add Tethys output Mod data units so they show the start time and duration of classified whistle groups Add frequency output Refactor code to better separate graphics from functionality commit11bb7d5fe1
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Mar 5 17:58:45 2025 +0000 Fix array manager Fix so that it's possible to load a VERY old psf file that didn't have a lot of the new array managmeent features. commit2bf023ffed
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Mar 5 17:40:05 2025 +0000 Tethys updates Started adding Tethys functions for click train detector and GPL detector commitd3907ac8f5
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Mar 5 16:19:21 2025 +0000 Tethys improvements Better species sel panel in export dialog updated / corrected help Sorted 'final' button in export wizard. commitcb9b41719f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Mar 4 17:35:12 2025 +0000 Tethys updates adding localisation info to TM annotation Change granularity for group detections to gouped Added call type selection for all Detections exports. Added super detection into commitc92be153fa
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Mar 4 11:35:47 2025 +0000 update filter design dialog and help pages Include impulse response plot for IIR Filters commitcadf61d218
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Mon Mar 3 00:57:54 2025 +0000 Impulse response plot for IIF filters Optional IIF filter impulse response plot. commit7b6466b06f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Feb 28 23:40:29 2025 +0000 TEthys output of groups detector commit0365ebef36
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Thu Feb 20 17:03:33 2025 +0000 15f. DAQ SUD Bug fix commitd6dc3839ac
Author: Jamie Mac <macster110@gmail.com> Date: Thu Feb 20 16:41:59 2025 +0000 Fixes to Sound Acquisition module (#197) * Sound Acquisition fix Fix issue with subfolder check box not being using when loading data. Made sub folder default Added listener to sub folder button to redo file list. * Update .gitignore * Squashed commit of the following: commit68ade16b39
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Feb 19 16:26:44 2025 +0000 Update MulticastController.java Small update to ignore a test message to Multicast controller which will probably never be sent anyway. commitf7a6138774
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Feb 18 16:31:08 2025 +0000 buffer io of serialised datamaps commit50154d99e7
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Feb 16 13:38:19 2025 +0000 V 2.02.15e Approaching a final release for PAMGuard Tethys workshop commitfce60115f0
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Feb 14 15:46:11 2025 +0000 update to 2.02.15d Building 2.02.15d in prep for next major release commit300570712b
Merge:f476a56b
e3b90946
Author: Jamie Mac <macster110@gmail.com> Date: Fri Feb 14 15:17:14 2025 +0000 Merge pull request #196 from macster110/main Minor fixes to deep leanring module commitf476a56bda
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Feb 14 14:38:14 2025 +0000 Small fixes Added a 20 minute range to scrollers (common in some duty cycled data) Fixed issue 194 of Source dialog crashing in Noise Monitor due to null pointer before first selection of a datablock. Fixed issue 195: resetting of scrollers when datamap changes commit68ade16b39
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Feb 19 16:26:44 2025 +0000 Update MulticastController.java Small update to ignore a test message to Multicast controller which will probably never be sent anyway. commitf7a6138774
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Feb 18 16:31:08 2025 +0000 buffer io of serialised datamaps commit50154d99e7
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Sun Feb 16 13:38:19 2025 +0000 V 2.02.15e Approaching a final release for PAMGuard Tethys workshop commitfce60115f0
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Feb 14 15:46:11 2025 +0000 update to 2.02.15d Building 2.02.15d in prep for next major release commit300570712b
Merge:f476a56b
e3b90946
Author: Jamie Mac <macster110@gmail.com> Date: Fri Feb 14 15:17:14 2025 +0000 Merge pull request #196 from macster110/main Minor fixes to deep leanring module commitf476a56bda
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Fri Feb 14 14:38:14 2025 +0000 Small fixes Added a 20 minute range to scrollers (common in some duty cycled data) Fixed issue 194 of Source dialog crashing in Noise Monitor due to null pointer before first selection of a datablock. Fixed issue 195: resetting of scrollers when datamap changes
This commit is contained in:
parent
d4a2678871
commit
426c71848a
.gitignoreREADME.htmlreadme.md
repo/tethys/org/nilus/3.2
src
PamController/command
PamModel
annotation/userforms
bearinglocaliser
dataMap
generalDatabase
help
offlineProcessing
pamViewFX/fxNodes/pamScrollers/acousticScroller
pamguard
ravendata
tethys
1
.gitignore
vendored
1
.gitignore
vendored
@ -143,3 +143,4 @@ dependency-reduced-pom.xml
|
||||
.settings/org.eclipse.jdt.core.prefs
|
||||
.settings/org.eclipse.core.resources.prefs
|
||||
.classpath
|
||||
.settings/org.eclipse.jdt.core.prefs
|
||||
|
145
README.html
145
README.html
@ -438,25 +438,26 @@ name="_2.02.15_December_2014"></a><a name="_Version_2.02.16_February"></a>Versio
|
||||
|
||||
<h2>New Features</h2>
|
||||
|
||||
<p class=MsoNormal><b>Updates to Tethys</b></p>
|
||||
<p class=MsoNormal><b>Updates to Tethys Interface</b></p>
|
||||
|
||||
<p class=MsoNormal>Updates to compatibility with Tethys Server version 3.2 beta
|
||||
2 and Nilus 3.2. PAMGuard is no longer compatible with 3.1, the pre-release
|
||||
version. </p>
|
||||
2 and Nilus 3.2. PAMGuard is no longer compatible with Tethys 3.1, the
|
||||
pre-release version. </p>
|
||||
|
||||
<p class=MsoNormal>Added Tethys functionality for the following modules:
|
||||
Whistle Classifier, Detection Group Localiser, Rocca, Click Train Detector, GPL
|
||||
Detector. IF the Detection Group Localiser is used with Logger Form
|
||||
Detector. If the Detection Group Localiser is used with Logger Form
|
||||
annotations, species codes can be taken from the logger form. </p>
|
||||
|
||||
<p class=MsoNormal>Made export of data (Calibrations, Deployments, Detections,
|
||||
and Localisations) available as ‘offline tasks’. This is not useful when
|
||||
running Tethys on a single dataset, since all tasks can be easily performed
|
||||
using ‘Export’ buttons on the main Tethys interface. However, this change means
|
||||
that these export tasks become available to the batch processor (Version 2.0 or
|
||||
above) which can be used to export data from multiple similar datasets without
|
||||
having to personally go into each one individually. See Tethys online help
|
||||
pages and help pages for the Batch processor for details.</p>
|
||||
that these export tasks become available to the <a
|
||||
href="https://www.pamguard.org/plugins/batchprocessor.html">batch processor</a>
|
||||
(Version 2.0 or above) which can be used to export data from multiple similar
|
||||
datasets without having to personally go into each one individually. See Tethys
|
||||
online help pages and help pages for the Batch processor for details.</p>
|
||||
|
||||
<p class=MsoNormal><b>Other</b></p>
|
||||
|
||||
@ -995,12 +996,11 @@ font-family:"Times New Roman",serif'> </span></p>
|
||||
<p class=MsoNormal><b><span lang=EN-US>Localisation Modules</span></b><span
|
||||
lang=EN-US> </span></p>
|
||||
|
||||
<p class=MsoNormal>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 <a
|
||||
href="http://www.PAMGuard.org/downloads.php?cat_id=3">here</a>.</p>
|
||||
<p class=MsoNormal>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 <a 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
|
||||
lang=EN-US> </span></p>
|
||||
@ -1111,8 +1111,8 @@ lang=EN-US> </span>new CPOD features </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>15. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
lang=EN-US> </span>Better interpolation of data by the Decimator when
|
||||
decimating/upsampling by a non-integer amount </p>
|
||||
lang=EN-US> </span>Better interpolation of data by the Decimator when decimating/upsampling
|
||||
by a non-integer amount </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span lang=EN-US>16. </span><span
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
@ -1239,8 +1239,9 @@ lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> &nb
|
||||
Added ability to receive NMEA over UDP multicast in addition to UDP broadcast </p>
|
||||
|
||||
<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>
|
||||
Added logger form annotation to Spectrogram Annotation module. </p>
|
||||
lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'> </span><span
|
||||
lang=EN-US> </span>Added logger form annotation to Spectrogram Annotation
|
||||
module. </p>
|
||||
|
||||
<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><span
|
||||
@ -2152,10 +2153,10 @@ including expanding to work with whistles.</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
|
||||
lang=EN-US> </span>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.</p>
|
||||
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.</p>
|
||||
|
||||
<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><span
|
||||
@ -2407,12 +2408,12 @@ compatible with older versions of PAMGuard. If you open older data sets with
|
||||
the PAMGuard Viewer the older data will be converted to the new format (see
|
||||
below for details).</span></p>
|
||||
|
||||
<p class=MsoNormal><span lang=EN-US>The most significant change in the binary
|
||||
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
|
||||
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.
|
||||
UID's are also added to PAMGuard database tables. </span></p>
|
||||
<p class=MsoNormal><span lang=EN-US>The most significant change in the binary 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 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. UID's are
|
||||
also added to PAMGuard database tables. </span></p>
|
||||
|
||||
<h4><span lang=EN-US>Converting Old Data</span></h4>
|
||||
|
||||
@ -2529,14 +2530,14 @@ switches/parameters to be included in *.ini files.</p>
|
||||
|
||||
<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><span lang=EN-US>Bug 308. Map Overlay Control. </span>Storage of data
|
||||
saying what get's plotted on each map and for how long became corrupted and the
|
||||
list grew to a ridiculous size. Code has been put in place to a) stop it
|
||||
happening again and b) to repair any configuration files which are corrupted.
|
||||
Corrupted files will be slow to load, slow to save and will be > several
|
||||
megabytes in size. It may be necessary to delete the PAMGuardSettings table in
|
||||
any databases since these too may have become oversized which will slow down
|
||||
viewer mode PAMGuard start-up.</p>
|
||||
</span><span lang=EN-US>Bug 308. Map Overlay Control. </span>Storage of data saying
|
||||
what get's plotted on each map and for how long became corrupted and the list
|
||||
grew to a ridiculous size. Code has been put in place to a) stop it happening
|
||||
again and b) to repair any configuration files which are corrupted. Corrupted
|
||||
files will be slow to load, slow to save and will be > several megabytes in
|
||||
size. It may be necessary to delete the PAMGuardSettings table in any databases
|
||||
since these too may have become oversized which will slow down viewer mode
|
||||
PAMGuard start-up.</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'>
|
||||
@ -2782,10 +2783,10 @@ the online help. Users of the Click Detector will notice the following changes:<
|
||||
|
||||
<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><span lang=EN-US>There is now a choice of least squares and Simplex
|
||||
based algorithms for real-time animal tracking. The improved algorithms also
|
||||
provide better error information both for display on the map and for storage in
|
||||
the database. </span></p>
|
||||
</span><span lang=EN-US>There is now a choice of least squares and Simplex based
|
||||
algorithms for real-time animal tracking. The improved algorithms also provide
|
||||
better error information both for display on the map and for storage in the
|
||||
database. </span></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'>
|
||||
@ -2826,9 +2827,9 @@ the future. </span></p>
|
||||
|
||||
<p class=MsoNormal><i>Logger Form Design</i></p>
|
||||
|
||||
<p class=MsoNormal>A GUI driven system for designing Logger forms has been released.
|
||||
Currently, this feature has no online help, but is reasonably intuitive
|
||||
compared to the old method of typing directly into the database. </p>
|
||||
<p class=MsoNormal>A GUI driven system for designing Logger forms has been
|
||||
released. Currently, this feature has no online help, but is reasonably
|
||||
intuitive compared to the old method of typing directly into the database. </p>
|
||||
|
||||
<p class=MsoNormal><i><span lang=EN-US>Improved Number handling</span></i></p>
|
||||
|
||||
@ -3066,9 +3067,9 @@ will no longer crash but issue a clear warning and carry onto the next table.</p
|
||||
name="_Toc312065299"></a><a name="_Toc312063944"></a><a name="_Toc312065300"></a><a
|
||||
name="_Toc312063945"></a>Version 1.14.00 Beta, September 2015</h1>
|
||||
|
||||
<p class=MsoNormal>The format of configuration files has changed for version
|
||||
1.14.00. Older configurations will load with this new version, but
|
||||
configurations saved with 1.14.00 may not open correctly with earlier versions.</p>
|
||||
<p class=MsoNormal>The format of configuration files has changed for version 1.14.00.
|
||||
Older configurations will load with this new version, but configurations 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.
|
||||
PAMGuard will continue to work with Java 7, but support for Java 7 will be
|
||||
@ -3313,9 +3314,9 @@ crash when analyzing click event containing unclassified clicks</span></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:47.25pt;text-indent:-29.25pt'><span
|
||||
lang=EN-US>8.</span><span lang=EN-US style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span><span lang=EN-US>Bug 230. Click Bearing Display. With a two hydrophone
|
||||
system, clicks calculated to have a bearing of exactly 180 degrees would be
|
||||
displayed at 0 degrees on the bearing time display.</span></p>
|
||||
</span><span lang=EN-US>Bug 230. Click Bearing Display. With a two hydrophone system,
|
||||
clicks calculated to have a bearing of exactly 180 degrees would be displayed
|
||||
at 0 degrees on the bearing time display.</span></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:36.75pt;text-indent:-18.75pt'><span
|
||||
lang=EN-US> </span></p>
|
||||
@ -3408,9 +3409,8 @@ to read on a time. Fixed</p>
|
||||
|
||||
<p class=MsoNormal><i>Menu Layout</i></p>
|
||||
|
||||
<p class=MsoNormal>The PAMGuard menus have been rearranged into a more
|
||||
intuitive grouping which we believe will help users find functionality more
|
||||
easily. </p>
|
||||
<p class=MsoNormal>The PAMGuard menus have been rearranged into a more intuitive
|
||||
grouping which we believe will help users find functionality more easily. </p>
|
||||
|
||||
<p class=MsoNormal>'Detection' menu has been renamed to 'Settings' since many
|
||||
menu items within this menu were not directly to do with 'Detection'.</p>
|
||||
@ -3547,9 +3547,9 @@ module. </p>
|
||||
|
||||
<p class=MsoNormal><i>Sound Recorder Module</i></p>
|
||||
|
||||
<p class=MsoNormal>Now supports writing 8 and 24 bit as well as 16 bit files.
|
||||
Also writes data to dated sub folders, starting a new folder each day (UTC).
|
||||
Also provides additional information on disk space on the main display panel.
|
||||
<p class=MsoNormal>Now supports writing 8 and 24 bit as well as 16 bit files. Also
|
||||
writes data to dated sub folders, starting a new folder each day (UTC). Also
|
||||
provides additional information on disk space on the main display panel.
|
||||
Millisecond time is also now included in the output file names. </p>
|
||||
|
||||
<p class=MsoNormal><i>Datagram Options</i></p>
|
||||
@ -3586,9 +3586,8 @@ shaped Finite Impulse Response filters (see online help for details). </p>
|
||||
|
||||
<p class=MsoNormal><i>Radar Display</i></p>
|
||||
|
||||
<p class=MsoNormal>Can now show bearings relative to true North OR the vessel
|
||||
heading. Also has the option of only showing certain types of click and
|
||||
whistle.</p>
|
||||
<p class=MsoNormal>Can now show bearings relative to true North OR the vessel heading.
|
||||
Also has the option of only showing certain types of click and whistle.</p>
|
||||
|
||||
<p class=MsoNormal><b>Bug Fixes</b></p>
|
||||
|
||||
@ -3670,9 +3669,9 @@ survey software package.</p>
|
||||
<p class=MsoNormal style='margin-left:36.0pt'>New storage options have been
|
||||
implemented which give the user greater control of where data are stored. </p>
|
||||
|
||||
<p class=MsoNormal style='margin-left:36.0pt'>Modules have been arranged into
|
||||
different groups in the configuration menus and tool tip texts have been added
|
||||
to these menus to provide additional information to users. </p>
|
||||
<p class=MsoNormal style='margin-left:36.0pt'>Modules have been arranged into different
|
||||
groups in the configuration menus and tool tip texts have been added to these
|
||||
menus to provide additional information to users. </p>
|
||||
|
||||
<p class=MsoNormal style='margin-left:36.0pt'><i>Radar Display</i></p>
|
||||
|
||||
@ -3778,8 +3777,8 @@ margin-left:36.0pt'> </p>
|
||||
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-18.0pt'><i>Ishmael
|
||||
Detection Modules</i></p>
|
||||
|
||||
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-18.0pt'>We have
|
||||
implemented database storage for output of these modules. </p>
|
||||
<p class=MsoListParagraph style='margin-left:54.0pt;text-indent:-18.0pt'>We
|
||||
have implemented database storage for output of these modules. </p>
|
||||
|
||||
<p class=MsoNormal><b>Bug fixes</b></p>
|
||||
|
||||
@ -3961,9 +3960,9 @@ length. </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>The filter module can now also generate finite Impulse Response (FIR) filters.
|
||||
Note however, that FIR filters may require considerably more execution time
|
||||
than IIR filters. </p>
|
||||
</span>The filter module can now also generate finite Impulse Response (FIR)
|
||||
filters. Note however, that FIR filters may require considerably more execution
|
||||
time than IIR filters. </p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
@ -4226,8 +4225,8 @@ column was setting to zero. This is now fixed</p>
|
||||
|
||||
<p class=MsoNormal>Ishmael Detectors</p>
|
||||
|
||||
<p class=MsoNormal>Better rendering of detection boxes on spectrogram display and
|
||||
more meaningful names in spectrogram display menu.</p>
|
||||
<p class=MsoNormal>Better rendering of detection boxes on spectrogram display
|
||||
and more meaningful names in spectrogram display menu.</p>
|
||||
|
||||
<p class=MsoNormal>Sound acquisition</p>
|
||||
|
||||
@ -4300,9 +4299,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:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>False buffer overflows at low sample rates stopped (size of data in individual
|
||||
data blocks had been increased at low sample rates, but when this exceeded 3s a
|
||||
false buffer overflow would occur).</p>
|
||||
</span>False buffer overflows at low sample rates stopped (size of data in
|
||||
individual data blocks had been increased at low sample rates, but when this
|
||||
exceeded 3s a false buffer overflow would occur).</p>
|
||||
|
||||
<p class=MsoNormal> </p>
|
||||
|
||||
@ -4476,8 +4475,8 @@ them before proceeding with installation.</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
Symbol'>'</span><span style='font-size:7.0pt;font-family:"Times New Roman",serif'>
|
||||
</span>Installer now setting permissions on some of the default settings files so
|
||||
that under Vista they can still be written to without needed to be an
|
||||
</span>Installer now setting permissions on some of the default settings files
|
||||
so that under Vista they can still be written to without needed to be an
|
||||
Administrator</p>
|
||||
|
||||
<p class=MsoListParagraph style='text-indent:-18.0pt'><span style='font-family:
|
||||
|
@ -16,7 +16,7 @@ PAMGuard fulfils two main requirements within marine bioacoustics
|
||||
2) **Processing and visualisation of large datasets**: Off-the-shelf autonomous PAM devices, large scale surveys involving drifters, towed arrays, gliders, bottom mounted devices and real time continuous monitoring system all generate huge volumes of data which requires automated analysis approaches. PAMGuard allows the processing of very large passive acoustic datasets using automated algorithms and crucially provides comprehensive visualisation tools for a manual analyst to check the results.
|
||||
|
||||
## Installation
|
||||
PAMGuard is available on Windows and can be downloaded from the [PAMGuard website](https://pamguard.org). Note that we are considering MacOS and Linux installers but they are not available at this time.
|
||||
PAMGuard is available on Windows and MacOS and can be downloaded from the [PAMGuard website](https://pamguard.org). Note that we are considering a Linux installer but it is not available at this time.
|
||||
|
||||
## Quick start tutorial
|
||||
PAMGuard is a modular program with two modes; real-time and viewer. Typically a user will start with real-time model, either in the field collecting data or post processing sound files from a recorder. Once data are processed, users move on to viewer mode where data can be explored and further processed.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||
#Sat Feb 15 15:13:56 GMT 2025
|
||||
#Fri Mar 14 18:57:04 GMT 2025
|
||||
nilus-3.2.jar>=
|
||||
nilus-3.2.pom>=
|
||||
|
@ -30,6 +30,7 @@ public abstract class CommandManager extends PamControlledUnit {
|
||||
commandsList.add(new StartCommand());
|
||||
commandsList.add(new StopCommand());
|
||||
commandsList.add(new PingCommand());
|
||||
commandsList.add(new NotifyCommand());
|
||||
commandsList.add(new StatusCommand());
|
||||
commandsList.add(new SummaryCommand());
|
||||
commandsList.add(new SummaryPeekCommand());
|
||||
|
47
src/PamController/command/NotifyCommand.java
Normal file
47
src/PamController/command/NotifyCommand.java
Normal file
@ -0,0 +1,47 @@
|
||||
package PamController.command;
|
||||
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import PamController.PamController;
|
||||
|
||||
public class NotifyCommand extends ExtCommand {
|
||||
|
||||
public NotifyCommand() {
|
||||
super("notify", false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String getHint() {
|
||||
return "Send an integer notification method to PamController";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String execute(String command) {
|
||||
String[] commandWords = CommandManager.splitCommandLine(command);
|
||||
if (commandWords.length < 2) {
|
||||
return "Notify command requires one parameter";
|
||||
}
|
||||
String pStr = commandWords[1];
|
||||
int pInt = 0;
|
||||
try {
|
||||
pInt = Integer.valueOf(pStr);
|
||||
}
|
||||
catch (NumberFormatException e) {
|
||||
return String.format("Command \"%s\" is not a valid parameter for the notiry command", pStr);
|
||||
}
|
||||
final int pInt2 = pInt;
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
PamController.getInstance().notifyModelChanged(pInt2);
|
||||
}
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -491,14 +491,14 @@ final public class PamModel implements PamSettings {
|
||||
mi.setHelpPoint("utilities/tethys/docs/tethys_overview.html");
|
||||
mi.setAllowedModes(PamPluginInterface.VIEWERONLY);
|
||||
|
||||
if (isViewer) {
|
||||
// if (isViewer) {
|
||||
mi = PamModuleInfo.registerControlledUnit(RavenControl.class.getName(), RavenControl.defaultName);
|
||||
mi.setToolTipText("Import data from Raven selection tables");
|
||||
mi.setModulesMenuGroup(utilitiesGroup);
|
||||
mi.setHidden(!SMRUEnable.isEnable());
|
||||
mi.setAllowedModes(PamPluginInterface.VIEWERONLY);
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
/*
|
||||
* ************* End Utilities Group *******************
|
||||
|
@ -241,7 +241,7 @@ public class UserFormAnnotationType extends DataAnnotationType<UserFormAnnotatio
|
||||
// TODO Auto-generated method stub
|
||||
return new SQLXMLWriter<>(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DataBlockSpeciesManager getDataBlockSpeciesManager() {
|
||||
if (formsAnnotationSpeciesManager == null) {
|
||||
|
@ -13,13 +13,16 @@ import javax.swing.JMenuItem;
|
||||
|
||||
import Localiser.LocalisationAlgorithm;
|
||||
import Localiser.LocalisationAlgorithmInfo;
|
||||
import PamController.PamConfiguration;
|
||||
import PamController.PamControlledUnit;
|
||||
import PamController.PamControlledUnitSettings;
|
||||
import PamController.PamController;
|
||||
import PamController.PamControllerInterface;
|
||||
import PamController.PamSettingManager;
|
||||
import PamController.PamSettings;
|
||||
import PamDetection.LocContents;
|
||||
import PamUtils.SimpleObservable;
|
||||
import PamguardMVC.PamDataBlock;
|
||||
import PamguardMVC.PamDataUnit;
|
||||
import bearinglocaliser.algorithms.BearingAlgorithm;
|
||||
import bearinglocaliser.algorithms.BearingAlgorithmProvider;
|
||||
@ -56,8 +59,12 @@ public class BearingLocaliserControl extends PamControlledUnit implements PamSet
|
||||
private SimpleObservable<PamDataUnit> configObservable = new SimpleObservable<>();
|
||||
|
||||
private OLProcessDialog olProcessDialog;
|
||||
|
||||
private OfflineTaskGroup bearingTaskGroup;
|
||||
|
||||
private BLOfflineTask bearingOfflineTask;
|
||||
|
||||
public BearingLocaliserControl(String unitName) {
|
||||
public BearingLocaliserControl(PamConfiguration pamConfiguration, String unitName) {
|
||||
super(unitType, unitName);
|
||||
|
||||
detectionMonitor = new DetectionMonitor(this);
|
||||
@ -74,6 +81,11 @@ public class BearingLocaliserControl extends PamControlledUnit implements PamSet
|
||||
UserDisplayControl.addUserDisplayProvider(bearingDisplayProvider);
|
||||
|
||||
PamSettingManager.getInstance().registerSettings(this);
|
||||
|
||||
boolean secondConfig = pamConfiguration != PamController.getInstance().getPamConfiguration();
|
||||
if (isViewer() || secondConfig) {
|
||||
getOfflineTasks();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -114,13 +126,21 @@ public class BearingLocaliserControl extends PamControlledUnit implements PamSet
|
||||
return menu;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create single instance of offline tasks so that it can be created in
|
||||
* constructor and get's registered for offline batch processing.
|
||||
* @return
|
||||
*/
|
||||
private OfflineTaskGroup getOfflineTasks() {
|
||||
bearingTaskGroup = new OfflineTaskGroup(this, this.getUnitName());
|
||||
bearingTaskGroup.addTask(bearingOfflineTask = new BLOfflineTask(this));
|
||||
return bearingTaskGroup;
|
||||
}
|
||||
|
||||
protected void showOfflineDialog(Frame parentFrame) {
|
||||
// if (olProcessDialog == null) {
|
||||
OfflineTaskGroup otg = new OfflineTaskGroup(this, this.getUnitName());
|
||||
otg.addTask(new BLOfflineTask(this));
|
||||
otg.setPrimaryDataBlock(detectionMonitor.getParentDataBlock());
|
||||
olProcessDialog = new OLProcessDialog(parentFrame, otg, getUnitName());
|
||||
// }
|
||||
OfflineTaskGroup otg = getOfflineTasks();
|
||||
bearingTaskGroup.setPrimaryDataBlock(detectionMonitor.getParentDataBlock());
|
||||
olProcessDialog = new OLProcessDialog(parentFrame, otg, getUnitName());
|
||||
olProcessDialog.setVisible(true);
|
||||
}
|
||||
|
||||
@ -288,4 +308,14 @@ public class BearingLocaliserControl extends PamControlledUnit implements PamSet
|
||||
public LocalizationOptionsPanel getLocalizationOptionsPanel(Window parent, LocalizationBuilder locBuilder) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setParentDataBlock(PamDataBlock sourceDataBlock) {
|
||||
PamDataBlock parentblock = detectionMonitor.getParentDataBlock();
|
||||
if (bearingTaskGroup != null) {
|
||||
bearingTaskGroup.setPrimaryDataBlock(detectionMonitor.getParentDataBlock());
|
||||
}
|
||||
if (bearingOfflineTask != null) {
|
||||
bearingOfflineTask.checkDataBlocks();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -75,8 +75,10 @@ public class BearingProcess extends PamInstantProcess {
|
||||
private void setSourceDataBlock() {
|
||||
|
||||
BearingLocaliserParams params = bearingLocaliserControl.getBearingLocaliserParams();
|
||||
sourceDataBlock = PamController.getInstance().getDataBlockByLongName(params.getDataSource());
|
||||
sourceDataBlock = bearingLocaliserControl.getPamConfiguration().getDataBlockByLongName(params.getDataSource());
|
||||
setParentDataBlock(sourceDataBlock);
|
||||
// need to tell offlinetasks in the controller that this has happened.
|
||||
bearingLocaliserControl.setParentDataBlock(sourceDataBlock);
|
||||
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class DetectionMonitor extends PamInstantProcess {
|
||||
if (params.detectionSource == null) {
|
||||
return;
|
||||
}
|
||||
PamDataBlock sourceData = PamController.getInstance().getDataBlockByLongName(params.detectionSource);
|
||||
PamDataBlock sourceData = bearingLocaliserControl.getPamConfiguration().getDataBlockByLongName(params.detectionSource);
|
||||
setParentDataBlock(sourceData);
|
||||
if (sourceData != null) {
|
||||
/*
|
||||
|
@ -17,16 +17,26 @@ public class BLOfflineTask extends OfflineTask {
|
||||
private PamDataBlock detectionBlock, rawOrFFTBlock;
|
||||
|
||||
public BLOfflineTask(BearingLocaliserControl bearingLocaliserControl) {
|
||||
super(bearingLocaliserControl.getDetectionMonitor().getParentDataBlock());
|
||||
detectionBlock = bearingLocaliserControl.getDetectionMonitor().getParentDataBlock();
|
||||
super(bearingLocaliserControl, bearingLocaliserControl.getDetectionMonitor().getParentDataBlock());
|
||||
this.bearingLocaliserControl = bearingLocaliserControl;
|
||||
bearingProcess = bearingLocaliserControl.getBearingProcess();
|
||||
this.addRequiredDataBlock(rawOrFFTBlock = bearingProcess.getParentDataBlock());
|
||||
addAffectedDataBlock(detectionBlock);
|
||||
checkDataBlocks();
|
||||
// PamDataBlock detectionSource = bearingLocaliserControl.getDetectionMonitor().getParentDataBlock();
|
||||
// this.setParentDataBlock(detectionSource);
|
||||
// setParentDataBlock(bearingProcess.getParentDataBlock());
|
||||
}
|
||||
|
||||
/**
|
||||
* do checks on the datablocks. Needed when this is running as an offline task since
|
||||
* if was probably impossible to set these when it was constructed.
|
||||
*/
|
||||
public void checkDataBlocks() {
|
||||
detectionBlock = bearingLocaliserControl.getDetectionMonitor().getParentDataBlock();
|
||||
this.addRequiredDataBlock(rawOrFFTBlock = bearingProcess.getParentDataBlock());
|
||||
setParentDataBlock(detectionBlock);
|
||||
addAffectedDataBlock(detectionBlock);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
@ -103,4 +113,11 @@ public class BLOfflineTask extends OfflineTask {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRun() {
|
||||
// TODO Auto-generated method stub
|
||||
super.canRun();
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ public class DataMapControl extends PamControlledUnit implements PamSettings {
|
||||
getDataMapGUI().createDataGraphs();
|
||||
dataMapPanel.repaintAll();
|
||||
}
|
||||
break;
|
||||
// break;
|
||||
case PamControllerInterface.OFFLINE_DATA_LOADED:
|
||||
dataMapPanel.repaintAll();
|
||||
}
|
||||
|
@ -23,6 +23,8 @@ public class FileMapMakingdialog extends PamDialog {
|
||||
private static FileMapMakingdialog singleInstance;
|
||||
|
||||
private OfflineFileServer offlineFileServer;
|
||||
|
||||
private static Object synchObject = new Object();
|
||||
|
||||
private FileMapMakingdialog(Window parentFrame) {
|
||||
super(parentFrame, "Map raw sound files", false);
|
||||
@ -42,19 +44,35 @@ public class FileMapMakingdialog extends PamDialog {
|
||||
getCancelButton().setVisible(false);
|
||||
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
|
||||
setModalityType(Dialog.ModalityType.MODELESS);
|
||||
|
||||
}
|
||||
|
||||
public static FileMapMakingdialog showDialog(Window parent, OfflineFileServer fileServer) {
|
||||
if (singleInstance == null || singleInstance.getOwner() != parent) {
|
||||
singleInstance = new FileMapMakingdialog(parent);
|
||||
// copy the reference, just in case it's deleted in a call to setVisible(false)
|
||||
FileMapMakingdialog anInstance = singleInstance;
|
||||
synchronized (synchObject) {
|
||||
if (singleInstance == null || singleInstance.getOwner() != parent) {
|
||||
anInstance = singleInstance = new FileMapMakingdialog(parent);
|
||||
}
|
||||
}
|
||||
singleInstance.offlineFileServer = fileServer;
|
||||
singleInstance.progress.setIndeterminate(true);
|
||||
singleInstance.fileName.setText(" ");
|
||||
singleInstance.setVisible(true);
|
||||
return singleInstance;
|
||||
anInstance.offlineFileServer = fileServer;
|
||||
anInstance.progress.setIndeterminate(true);
|
||||
anInstance.fileName.setText(" ");
|
||||
anInstance.setVisible(true);
|
||||
return anInstance;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visible) {
|
||||
super.setVisible(visible);
|
||||
if (visible == false) {
|
||||
synchronized(synchObject) {
|
||||
super.dispose();
|
||||
singleInstance = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setProgress(FileMapProgress mapProgress) {
|
||||
switch (mapProgress.countingState) {
|
||||
case FileMapProgress.STATE_LOADINGMAP:
|
||||
|
@ -20,6 +20,8 @@ public class PamConnection {
|
||||
private Connection connection;
|
||||
|
||||
private SQLTypes sqlTypes;
|
||||
|
||||
private String databaseName;
|
||||
|
||||
/**
|
||||
* Constructor needs a connection object and an sqlTypes object.
|
||||
@ -61,4 +63,12 @@ public class PamConnection {
|
||||
}
|
||||
}
|
||||
|
||||
public String getDatabaseName() {
|
||||
return databaseName;
|
||||
}
|
||||
|
||||
public void setDatabaseName(String databaseName) {
|
||||
this.databaseName = databaseName;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -270,7 +270,9 @@ public class SqliteSystem extends DBSystem implements PamSettings {
|
||||
return null;
|
||||
}
|
||||
// System.out.println("------------------------------- OpenedSQLite database " + dbName + " handle " + con);
|
||||
return new PamConnection(this, con, sqlTypes);
|
||||
PamConnection connection = new PamConnection(this, con, sqlTypes);
|
||||
connection.setDatabaseName(dbName);
|
||||
return connection;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -211,6 +211,8 @@
|
||||
|
||||
<tocitem text="Detections and Localizations " target="utilities.tethys.docs.detect_localize" image="topic"/>
|
||||
|
||||
<tocitem text="Granularity " target="utilities.tethys.docs.tethys_granularity" image="topic"/>
|
||||
|
||||
<tocitem text="ITIS Species Codes " target="utilities.tethys.docs.tethys_speciescodes" image="topic"/>
|
||||
|
||||
<tocitem text="PAMGuard Mapping " target="utilities.tethys.docs.tethys_mappings" image="topic"/>
|
||||
|
@ -9,19 +9,60 @@
|
||||
<body>
|
||||
|
||||
<h1>Analog Array Sensors</h1>
|
||||
|
||||
<h2>Displays</h2>
|
||||
<p>Three different displays can be used to display array sensor
|
||||
data.</p>
|
||||
|
||||
<h3>Table Display</h3>
|
||||
<p>
|
||||
A table of values is available which can be added to any <a
|
||||
href="../../../displays/userDisplayHelp/docs/userDisplayPanel.html">PAMGuard
|
||||
user display</a> from the <em>User Display / New Analog Array Sensors table</em> menu item.
|
||||
</p>
|
||||
<p>This will show the configuration and the latest value read from
|
||||
each sensor channel in both it's raw and calibrated forms.</p>
|
||||
<br>
|
||||
<img alt="Accelerometer side panel" src="images/analogarraydisplay.png" />
|
||||
<br>
|
||||
<p>Hover the mouse over any item for additional information.</p>
|
||||
<br>
|
||||
|
||||
<h3>Display Graphic</h3>
|
||||
<p>
|
||||
A geometry diagram can be added to any <a
|
||||
href="../../../displays/userDisplayHelp/docs/userDisplayPanel.html">PAMGuard
|
||||
user display</a> from the <em>User Display / New Analog Array Sensor graphic</em> menu item.
|
||||
</p>
|
||||
<p>This will show the configuration and the latest value read from
|
||||
each sensor channel in both it's raw and calibrated forms.</p>
|
||||
<br>
|
||||
<img alt="Accelerometer side panel" src="images/arraydiagram.png" />
|
||||
<br>
|
||||
<p>This will show a moving graphic of the pitch and roll of the array, with the array heading at the top of the display, and
|
||||
depth on the right.</p>
|
||||
|
||||
<h3>Side Panel</h3>
|
||||
<p>
|
||||
A side panel can also be added to the main PAMGuard displa by adding an additional
|
||||
Array Orientation module from the <em>Display / Array Orientation</em> menu item.
|
||||
This shows similar information to the other displays in numerical and graphical format.
|
||||
|
||||
</p>
|
||||
<p>This will show the configuration and the latest value read from
|
||||
each sensor channel in both it's raw and calibrated forms.</p>
|
||||
<br>
|
||||
<img alt="Accelerometer side panel" src="images/arraysidepanel2.png" height="200"/>
|
||||
 
|
||||
<img alt="Accelerometer side panel" src="images/arraysidepanel.png" height="200"/>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>For diagnostic purposes, a simple display is available which can be added to any
|
||||
<a href="../../../displays/userDisplayHelp/docs/userDisplayPanel.html">PAMGuard user display</a>.</p>
|
||||
<p>This will show the configuration and the latest value read from each sensor channel.</p>
|
||||
|
||||
<br>
|
||||
<img alt="Accelerometer side panel" src="images/analogarraydisplay.png" />
|
||||
<br>
|
||||
<p>Hover the mouse over any item for additional information.</p>
|
||||
<br>
|
||||
|
||||
<p CLASS="prevLink"><a href="analogarraycalibration.html">Previous: Calibration</a></p>
|
||||
<p CLASS="prevLink">
|
||||
<a href="analogarraycalibration.html">Previous: Calibration</a>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
BIN
src/help/sensors/analogarray/docs/images/arraydiagram.png
Normal file
BIN
src/help/sensors/analogarray/docs/images/arraydiagram.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 16 KiB |
BIN
src/help/sensors/analogarray/docs/images/arraysidepanel.png
Normal file
BIN
src/help/sensors/analogarray/docs/images/arraysidepanel.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 6.0 KiB |
BIN
src/help/sensors/analogarray/docs/images/arraysidepanel2.png
Normal file
BIN
src/help/sensors/analogarray/docs/images/arraysidepanel2.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 4.1 KiB |
@ -31,9 +31,8 @@ img {
|
||||
</div>
|
||||
<br>
|
||||
<p>
|
||||
PAMGuard is compatible
|
||||
with <a href="https://doi.org/10.5281/zenodo.13626338">Tethys 3.2 beta 2</a> or
|
||||
later available for download from <a href="https://doi.org/10.5281/zenodo.13626338">Zenodo.</a>
|
||||
PAMGuard is compatible with Tethys 3.2 beta 2 or
|
||||
later available for download from <a href="https://tethys.sdsu.edu/install/">https://tethys.sdsu.edu/install/.</a>
|
||||
</p>
|
||||
<p>
|
||||
|
||||
|
@ -287,6 +287,9 @@ public abstract class OfflineTask<T extends PamDataUnit> {
|
||||
* @param dataBlockInfo required data block with pre and post load times.
|
||||
*/
|
||||
public void addRequiredDataBlock(RequiredDataBlockInfo dataBlockInfo) {
|
||||
if (dataBlockInfo == null || dataBlockInfo.getPamDataBlock() == null) {
|
||||
return;
|
||||
}
|
||||
if (requiredDatablocks == null) {
|
||||
requiredDatablocks = new ArrayList<RequiredDataBlockInfo>();
|
||||
}
|
||||
@ -346,6 +349,9 @@ public abstract class OfflineTask<T extends PamDataUnit> {
|
||||
* @param dataBlock affected data block.
|
||||
*/
|
||||
public void addAffectedDataBlock(PamDataBlock dataBlock) {
|
||||
if (dataBlock == null) {
|
||||
return;
|
||||
}
|
||||
if (affectedDataBlocks == null) {
|
||||
affectedDataBlocks = new ArrayList<PamDataBlock>();
|
||||
}
|
||||
@ -381,7 +387,11 @@ public abstract class OfflineTask<T extends PamDataUnit> {
|
||||
if (affectedDataBlocks == null || affectedDataBlocks.size() == 0) {
|
||||
return null;
|
||||
}
|
||||
String blocks = affectedDataBlocks.get(0).getDataName();
|
||||
PamDataBlock block0 = affectedDataBlocks.get(0);
|
||||
if (block0 == null) {
|
||||
return null;
|
||||
}
|
||||
String blocks = block0.getDataName();
|
||||
for (int i = 1; i < affectedDataBlocks.size(); i++) {
|
||||
blocks += "; " + affectedDataBlocks.get(i).getDataName();
|
||||
}
|
||||
@ -469,9 +479,43 @@ public abstract class OfflineTask<T extends PamDataUnit> {
|
||||
}
|
||||
|
||||
for (PamDataBlock aBlock:affectedDataBlocks) {
|
||||
if (isInputBlock(aBlock)) {
|
||||
System.out.printf("Task %s: Don't delete data from \"%s\" since it input to this task",
|
||||
this.getName(), aBlock.getLongDataName());
|
||||
continue;
|
||||
}
|
||||
deleteOldData(aBlock, taskGroupParams);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* See if the input to the task is the same as the output of
|
||||
* the task. If this is the case, then FFS don't delete the input data.
|
||||
* @return
|
||||
*/
|
||||
private boolean isInputBlock(PamDataBlock aDataBlock) {
|
||||
if (parentDataBlock == aDataBlock) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* See if the data block is one of the required datablocks.
|
||||
* @param aDataBlock
|
||||
* @return
|
||||
*/
|
||||
private boolean isRequiredBlock(PamDataBlock aDataBlock) {
|
||||
if (requiredDatablocks != null) {
|
||||
for (int i = 0; i < requiredDatablocks.size(); i++) {
|
||||
RequiredDataBlockInfo blockInf = requiredDatablocks.get(i);
|
||||
if (blockInf != null && blockInf.getPamDataBlock() == aDataBlock) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the old data before re-analysis. Any sub detections are removed from the
|
||||
|
@ -871,6 +871,9 @@ public class OfflineTaskGroup implements PamSettings {
|
||||
for (int i = 0; i < requiredDataBlocks.size(); i++) {
|
||||
RequiredDataBlockInfo blockInfo = requiredDataBlocks.get(i);
|
||||
PamDataBlock aDataBlock = blockInfo.getPamDataBlock();
|
||||
if (aDataBlock == null) {
|
||||
continue;
|
||||
}
|
||||
long reqStart = procDataStart - blockInfo.getPreLoadTime();
|
||||
long reqEnd = procDataEnd + blockInfo.getPostLoadTime();
|
||||
// if (aDataBlock.getCurrentViewDataStart() > reqStart ||
|
||||
|
@ -271,13 +271,15 @@ public class OfflineTaskManager implements TaskMonitor {
|
||||
groupParams.deleteOld = true;
|
||||
groupParams.taskNote = "Batch process at " + PamCalendar.formatDBDateTime(System.currentTimeMillis());
|
||||
int nT = taskGroup.getNTasks();
|
||||
boolean sameIO = false;
|
||||
for (int i = 0; i < nT; i++) {
|
||||
OfflineTask task = taskGroup.getTask(i);
|
||||
String taskName = task.getLongName();
|
||||
boolean enable = commandLineTasks.contains(taskName);
|
||||
groupParams.setTaskSelection(i, enable);
|
||||
System.out.printf("Set task eneable state for %s : %s in %s\n", taskName, enable, taskGroup.getUnitType());
|
||||
System.out.printf("Set task enable state for %s : %s in %s\n", taskName, enable, taskGroup.getUnitType());
|
||||
}
|
||||
|
||||
System.out.println("Tasks in group is now " + taskGroup.getNTasks());
|
||||
}
|
||||
/*
|
||||
|
@ -413,26 +413,31 @@ public class AcousticScrollerFX extends AbstractPamScrollerFX {
|
||||
//removing the sync lock here was reallt helpful in preventing lock ups - especially because the datagram does not
|
||||
//load wghen the scroller moves.
|
||||
//synchronized (acousticScrollerGraphics.getDataBlock().getSynchLock()) {
|
||||
while (it.hasNext()) {
|
||||
while (it.hasNext()) {
|
||||
|
||||
// if (count%500==0){
|
||||
// AcousticDataGramGraphics acousticDataGramGraphics=(AcousticDataGramGraphics) acousticScrollerGraphics;
|
||||
// System.out.println("Hello datagram load: " + count+ " "+ acousticScrollerGraphics.getDataBlock().getUnitsCount() +
|
||||
// " "+acousticDataGramGraphics.getDataGramStore().currentIndex);
|
||||
// }
|
||||
// count++;
|
||||
currentCount++;
|
||||
// if (count%500==0){
|
||||
// AcousticDataGramGraphics acousticDataGramGraphics=(AcousticDataGramGraphics) acousticScrollerGraphics;
|
||||
// System.out.println("Hello datagram load: " + count+ " "+ acousticScrollerGraphics.getDataBlock().getUnitsCount() +
|
||||
// " "+acousticDataGramGraphics.getDataGramStore().currentIndex);
|
||||
// }
|
||||
// count++;
|
||||
currentCount++;
|
||||
|
||||
try {
|
||||
acousticScrollerGraphics.addNewData(it.next());
|
||||
|
||||
if (this.isCancelled()){
|
||||
return;
|
||||
}
|
||||
|
||||
Platform.runLater(()->{
|
||||
repaint(30);
|
||||
});
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.err.println("Error in AcousticScrollerFX: " + e.getMessage());
|
||||
}
|
||||
|
||||
if (this.isCancelled()){
|
||||
return;
|
||||
}
|
||||
|
||||
Platform.runLater(()->{
|
||||
repaint(30);
|
||||
});
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
|
@ -135,7 +135,6 @@ public class Pamguard {
|
||||
String InputPsf = "NULL";
|
||||
|
||||
|
||||
|
||||
// set up the system to output to both a log file and the console window. Also
|
||||
// set up a monitor to check for the size of the folder every hour - if it gets
|
||||
// too big, just stop logging the messages
|
||||
|
@ -8,12 +8,15 @@ import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import PamController.PamConfiguration;
|
||||
import PamController.PamControlledUnit;
|
||||
import PamController.PamControlledUnitSettings;
|
||||
import PamController.PamController;
|
||||
import PamController.PamSettingManager;
|
||||
import PamController.PamSettings;
|
||||
import generalDatabase.DBControlUnit;
|
||||
import ravendata.swing.RavenImportDialog;
|
||||
|
||||
/**
|
||||
@ -81,6 +84,18 @@ public class RavenControl extends PamControlledUnit implements PamSettings {
|
||||
if (ravenData != null) {
|
||||
ravenProcess.createPAMGuardData(fileReader, ravenData);
|
||||
}
|
||||
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PamController.getInstance().notifyModelChanged(PamController.EXTERNAL_DATA_IMPORTED);
|
||||
}
|
||||
});
|
||||
DBControlUnit dbControl = DBControlUnit.findDatabaseControl();
|
||||
if (dbControl != null) {
|
||||
dbControl.commitChanges();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -90,6 +90,7 @@ public class RavenProcess extends PamProcess {
|
||||
/**
|
||||
* Had to add an offset for some messed up Raven data. May or may not have to include
|
||||
* this as an option in future releases.
|
||||
* Offset of 2843100 needed for mn23_055a tag data.
|
||||
*/
|
||||
long offsetMillis = 0;//2843100;
|
||||
|
||||
|
@ -118,8 +118,17 @@ public class CalibrationsTable extends TethysGUIPanel {
|
||||
showCalibration(doc);
|
||||
}
|
||||
});
|
||||
popMenu.add(menuItem);
|
||||
menuItem = new JMenuItem("Export document " + doc.getDocumentName());
|
||||
menuItem.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
exportCalibration(doc);
|
||||
}
|
||||
});
|
||||
popMenu.add(menuItem);
|
||||
}
|
||||
|
||||
popMenu.addSeparator();
|
||||
if (n > 1) {
|
||||
menuItem = new JMenuItem("Delete selected documents");
|
||||
@ -168,6 +177,11 @@ public class CalibrationsTable extends TethysGUIPanel {
|
||||
}
|
||||
|
||||
|
||||
protected void exportCalibration(DocumentNilusObject<Calibration> doc) {
|
||||
tethysControl.exportDocument(Collection.Calibrations.toString(), doc.getDocumentName());
|
||||
}
|
||||
|
||||
|
||||
protected void deleteCalibrations(int[] rows) {
|
||||
String msg = String.format("Are you sure you want to delete %d calibrations documents ?", rows.length);
|
||||
int ans = WarnOnce.showNamedWarning("Deletemanycalibrations", PamController.getMainFrame(), "Delete multiple documents", msg, WarnOnce.OK_CANCEL_OPTION);
|
||||
|
@ -258,6 +258,7 @@ public class TethysConnectionPanel extends TethysGUIPanel {
|
||||
TethysExportParams newParams = SelectServerdDialog.showDialog(getTethysControl(), getTethysControl().getGuiFrame(), getTethysControl().getTethysExportParams());
|
||||
if (newParams != null) {
|
||||
getTethysControl().checkServer();// sendStateUpdate(new TethysState(TethysState.StateType.UPDATESERVER));
|
||||
fillServerControl();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user