diff --git a/src/pamguard/Pamguard.java b/src/pamguard/Pamguard.java index b041127e..8afc10e0 100644 --- a/src/pamguard/Pamguard.java +++ b/src/pamguard/Pamguard.java @@ -73,6 +73,12 @@ public class Pamguard { * and new results written to the database, but other data, such as GPS data, are read from * the database synchronised in time to the audio data to correctly reconstruct * tracks, etc. + * PAMGuard generally needs more memory than allocated by default and you'll need to tell it where + * various library files are for access to Windows i/o devices. You will therefore need the following + * two commands to the jre, which if you're running from Eclipse are entered into the + * Arguments / VM arguments section of the run configuration: + * -Xmx6g + * -Djava.library.path=lib64 * * @param args */ diff --git a/target/classes/JSSHTerminal/fontP0.png b/target/classes/JSSHTerminal/fontP0.png new file mode 100644 index 00000000..d3e9ff84 Binary files /dev/null and b/target/classes/JSSHTerminal/fontP0.png differ diff --git a/target/classes/JSSHTerminal/fontPA.png b/target/classes/JSSHTerminal/fontPA.png new file mode 100644 index 00000000..e6704417 Binary files /dev/null and b/target/classes/JSSHTerminal/fontPA.png differ diff --git a/target/classes/JSSHTerminal/fontPB.png b/target/classes/JSSHTerminal/fontPB.png new file mode 100644 index 00000000..3931920e Binary files /dev/null and b/target/classes/JSSHTerminal/fontPB.png differ diff --git a/target/classes/PamView/Thumbs.db b/target/classes/PamView/Thumbs.db new file mode 100644 index 00000000..a7d4ab0f Binary files /dev/null and b/target/classes/PamView/Thumbs.db differ diff --git a/target/classes/PamView/pamguard.ico b/target/classes/PamView/pamguard.ico new file mode 100644 index 00000000..9b256f31 Binary files /dev/null and b/target/classes/PamView/pamguard.ico differ diff --git a/target/classes/Resources/Add_Icon.png b/target/classes/Resources/Add_Icon.png new file mode 100644 index 00000000..62c1804a Binary files /dev/null and b/target/classes/Resources/Add_Icon.png differ diff --git a/target/classes/Resources/BeamformIcon20.png b/target/classes/Resources/BeamformIcon20.png new file mode 100644 index 00000000..b15a8fde Binary files /dev/null and b/target/classes/Resources/BeamformIcon20.png differ diff --git a/target/classes/Resources/Bulbgraph.png b/target/classes/Resources/Bulbgraph.png new file mode 100644 index 00000000..cad18854 Binary files /dev/null and b/target/classes/Resources/Bulbgraph.png differ diff --git a/target/classes/Resources/Fonts/fontawesome-webfont.ttf b/target/classes/Resources/Fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..d7994e13 Binary files /dev/null and b/target/classes/Resources/Fonts/fontawesome-webfont.ttf differ diff --git a/target/classes/Resources/MeasureWithMouse.png b/target/classes/Resources/MeasureWithMouse.png new file mode 100644 index 00000000..89b68742 Binary files /dev/null and b/target/classes/Resources/MeasureWithMouse.png differ diff --git a/target/classes/Resources/MenuButton.png b/target/classes/Resources/MenuButton.png new file mode 100644 index 00000000..8a43bd33 Binary files /dev/null and b/target/classes/Resources/MenuButton.png differ diff --git a/target/classes/Resources/New Picture.bmp b/target/classes/Resources/New Picture.bmp new file mode 100644 index 00000000..f44940e0 Binary files /dev/null and b/target/classes/Resources/New Picture.bmp differ diff --git a/target/classes/Resources/NewFile.xml b/target/classes/Resources/NewFile.xml new file mode 100644 index 00000000..d380c666 --- /dev/null +++ b/target/classes/Resources/NewFile.xml @@ -0,0 +1,3 @@ + + +tns:contolledUnits diff --git a/target/classes/Resources/PamPanZoomCentreOnShip.png b/target/classes/Resources/PamPanZoomCentreOnShip.png new file mode 100644 index 00000000..e0735c79 Binary files /dev/null and b/target/classes/Resources/PamPanZoomCentreOnShip.png differ diff --git a/target/classes/Resources/PamPanZoomDown.png b/target/classes/Resources/PamPanZoomDown.png new file mode 100644 index 00000000..eda5ade3 Binary files /dev/null and b/target/classes/Resources/PamPanZoomDown.png differ diff --git a/target/classes/Resources/PamPanZoomDownLeft.png b/target/classes/Resources/PamPanZoomDownLeft.png new file mode 100644 index 00000000..63baf20b Binary files /dev/null and b/target/classes/Resources/PamPanZoomDownLeft.png differ diff --git a/target/classes/Resources/PamPanZoomDownRight.png b/target/classes/Resources/PamPanZoomDownRight.png new file mode 100644 index 00000000..4933e2a7 Binary files /dev/null and b/target/classes/Resources/PamPanZoomDownRight.png differ diff --git a/target/classes/Resources/PamPanZoomHeadUp.png b/target/classes/Resources/PamPanZoomHeadUp.png new file mode 100644 index 00000000..44fb7c88 Binary files /dev/null and b/target/classes/Resources/PamPanZoomHeadUp.png differ diff --git a/target/classes/Resources/PamPanZoomLeft.png b/target/classes/Resources/PamPanZoomLeft.png new file mode 100644 index 00000000..4ef64b0b Binary files /dev/null and b/target/classes/Resources/PamPanZoomLeft.png differ diff --git a/target/classes/Resources/PamPanZoomNorthUp.png b/target/classes/Resources/PamPanZoomNorthUp.png new file mode 100644 index 00000000..3aaef5c0 Binary files /dev/null and b/target/classes/Resources/PamPanZoomNorthUp.png differ diff --git a/target/classes/Resources/PamPanZoomRight.png b/target/classes/Resources/PamPanZoomRight.png new file mode 100644 index 00000000..338befcb Binary files /dev/null and b/target/classes/Resources/PamPanZoomRight.png differ diff --git a/target/classes/Resources/PamPanZoomRotateAnticlockwise.png b/target/classes/Resources/PamPanZoomRotateAnticlockwise.png new file mode 100644 index 00000000..f8d4ba30 Binary files /dev/null and b/target/classes/Resources/PamPanZoomRotateAnticlockwise.png differ diff --git a/target/classes/Resources/PamPanZoomRotateClockwise.png b/target/classes/Resources/PamPanZoomRotateClockwise.png new file mode 100644 index 00000000..ad884d8d Binary files /dev/null and b/target/classes/Resources/PamPanZoomRotateClockwise.png differ diff --git a/target/classes/Resources/PamPanZoomUp.png b/target/classes/Resources/PamPanZoomUp.png new file mode 100644 index 00000000..e5f30c18 Binary files /dev/null and b/target/classes/Resources/PamPanZoomUp.png differ diff --git a/target/classes/Resources/PamPanZoomUpLeft.png b/target/classes/Resources/PamPanZoomUpLeft.png new file mode 100644 index 00000000..17ffab28 Binary files /dev/null and b/target/classes/Resources/PamPanZoomUpLeft.png differ diff --git a/target/classes/Resources/PamPanZoomUpRight.png b/target/classes/Resources/PamPanZoomUpRight.png new file mode 100644 index 00000000..4a2250a9 Binary files /dev/null and b/target/classes/Resources/PamPanZoomUpRight.png differ diff --git a/target/classes/Resources/PamPanZoomZoomIn.png b/target/classes/Resources/PamPanZoomZoomIn.png new file mode 100644 index 00000000..78f632ef Binary files /dev/null and b/target/classes/Resources/PamPanZoomZoomIn.png differ diff --git a/target/classes/Resources/PamPanZoomZoomOut.png b/target/classes/Resources/PamPanZoomZoomOut.png new file mode 100644 index 00000000..5f12ac1f Binary files /dev/null and b/target/classes/Resources/PamPanZoomZoomOut.png differ diff --git a/target/classes/Resources/Pamguard.ico b/target/classes/Resources/Pamguard.ico new file mode 100644 index 00000000..3f4ef819 Binary files /dev/null and b/target/classes/Resources/Pamguard.ico differ diff --git a/target/classes/Resources/PanWithMouse.png b/target/classes/Resources/PanWithMouse.png new file mode 100644 index 00000000..c9139fe5 Binary files /dev/null and b/target/classes/Resources/PanWithMouse.png differ diff --git a/target/classes/Resources/RemoveButtonSmall.png b/target/classes/Resources/RemoveButtonSmall.png new file mode 100644 index 00000000..c6d12878 Binary files /dev/null and b/target/classes/Resources/RemoveButtonSmall.png differ diff --git a/target/classes/Resources/Remove_Icon.png b/target/classes/Resources/Remove_Icon.png new file mode 100644 index 00000000..83f4d14c Binary files /dev/null and b/target/classes/Resources/Remove_Icon.png differ diff --git a/target/classes/Resources/SettingsButtonMediumGrey.png b/target/classes/Resources/SettingsButtonMediumGrey.png new file mode 100644 index 00000000..b42ca7f0 Binary files /dev/null and b/target/classes/Resources/SettingsButtonMediumGrey.png differ diff --git a/target/classes/Resources/SettingsButtonSmall2.png b/target/classes/Resources/SettingsButtonSmall2.png new file mode 100644 index 00000000..b91ab544 Binary files /dev/null and b/target/classes/Resources/SettingsButtonSmall2.png differ diff --git a/target/classes/Resources/SettingsButtonSmallWhite.png b/target/classes/Resources/SettingsButtonSmallWhite.png new file mode 100644 index 00000000..fa45c26d Binary files /dev/null and b/target/classes/Resources/SettingsButtonSmallWhite.png differ diff --git a/target/classes/Resources/SettingsButtonSmallWhiteLong.png b/target/classes/Resources/SettingsButtonSmallWhiteLong.png new file mode 100644 index 00000000..ebb3b5d0 Binary files /dev/null and b/target/classes/Resources/SettingsButtonSmallWhiteLong.png differ diff --git a/target/classes/Resources/SidePanelDown2.png b/target/classes/Resources/SidePanelDown2.png new file mode 100644 index 00000000..da71feb0 Binary files /dev/null and b/target/classes/Resources/SidePanelDown2.png differ diff --git a/target/classes/Resources/SidePanelDown2.xcf b/target/classes/Resources/SidePanelDown2.xcf new file mode 100644 index 00000000..330ccd83 Binary files /dev/null and b/target/classes/Resources/SidePanelDown2.xcf differ diff --git a/target/classes/Resources/SidePanelHide.png b/target/classes/Resources/SidePanelHide.png new file mode 100644 index 00000000..1c2fd21a Binary files /dev/null and b/target/classes/Resources/SidePanelHide.png differ diff --git a/target/classes/Resources/SidePanelHide2.png b/target/classes/Resources/SidePanelHide2.png new file mode 100644 index 00000000..8f5f3fc8 Binary files /dev/null and b/target/classes/Resources/SidePanelHide2.png differ diff --git a/target/classes/Resources/SidePanelHide2Grey.png b/target/classes/Resources/SidePanelHide2Grey.png new file mode 100644 index 00000000..5f7708c1 Binary files /dev/null and b/target/classes/Resources/SidePanelHide2Grey.png differ diff --git a/target/classes/Resources/SidePanelHideH.png b/target/classes/Resources/SidePanelHideH.png new file mode 100644 index 00000000..f22612c4 Binary files /dev/null and b/target/classes/Resources/SidePanelHideH.png differ diff --git a/target/classes/Resources/SidePanelShow.png b/target/classes/Resources/SidePanelShow.png new file mode 100644 index 00000000..822983f1 Binary files /dev/null and b/target/classes/Resources/SidePanelShow.png differ diff --git a/target/classes/Resources/SidePanelShow2.png b/target/classes/Resources/SidePanelShow2.png new file mode 100644 index 00000000..41a15f4d Binary files /dev/null and b/target/classes/Resources/SidePanelShow2.png differ diff --git a/target/classes/Resources/SidePanelShow2Grey.png b/target/classes/Resources/SidePanelShow2Grey.png new file mode 100644 index 00000000..64154c4c Binary files /dev/null and b/target/classes/Resources/SidePanelShow2Grey.png differ diff --git a/target/classes/Resources/SidePanelShowH.png b/target/classes/Resources/SidePanelShowH.png new file mode 100644 index 00000000..52ec0b41 Binary files /dev/null and b/target/classes/Resources/SidePanelShowH.png differ diff --git a/target/classes/Resources/SidePanelUp2.png b/target/classes/Resources/SidePanelUp2.png new file mode 100644 index 00000000..0667b145 Binary files /dev/null and b/target/classes/Resources/SidePanelUp2.png differ diff --git a/target/classes/Resources/Thumbs.db b/target/classes/Resources/Thumbs.db new file mode 100644 index 00000000..ef116b74 Binary files /dev/null and b/target/classes/Resources/Thumbs.db differ diff --git a/target/classes/Resources/VRCursor.bmp b/target/classes/Resources/VRCursor.bmp new file mode 100644 index 00000000..adf6927f Binary files /dev/null and b/target/classes/Resources/VRCursor.bmp differ diff --git a/target/classes/Resources/Weka (software) logo.png b/target/classes/Resources/Weka (software) logo.png new file mode 100644 index 00000000..37a1188a Binary files /dev/null and b/target/classes/Resources/Weka (software) logo.png differ diff --git a/target/classes/Resources/ZoomOutxcf.png b/target/classes/Resources/ZoomOutxcf.png new file mode 100644 index 00000000..7961da88 Binary files /dev/null and b/target/classes/Resources/ZoomOutxcf.png differ diff --git a/target/classes/Resources/Zoominxcf.png b/target/classes/Resources/Zoominxcf.png new file mode 100644 index 00000000..7c801f7a Binary files /dev/null and b/target/classes/Resources/Zoominxcf.png differ diff --git a/target/classes/Resources/axis_vert.png b/target/classes/Resources/axis_vert.png new file mode 100644 index 00000000..8403ccc1 Binary files /dev/null and b/target/classes/Resources/axis_vert.png differ diff --git a/target/classes/Resources/boat.png b/target/classes/Resources/boat.png new file mode 100644 index 00000000..54f5d974 Binary files /dev/null and b/target/classes/Resources/boat.png differ diff --git a/target/classes/Resources/clickPlayStart.png b/target/classes/Resources/clickPlayStart.png new file mode 100644 index 00000000..8eff78a3 Binary files /dev/null and b/target/classes/Resources/clickPlayStart.png differ diff --git a/target/classes/Resources/css/pamCSS.css b/target/classes/Resources/css/pamCSS.css new file mode 100644 index 00000000..0f8a0b11 --- /dev/null +++ b/target/classes/Resources/css/pamCSS.css @@ -0,0 +1,641 @@ +/* General CSS for PAMGUARD. Deals mainly with custom controls but some general background colours are also defined here. +* +* Author: Jamie Macaulay; +**/ +/******************************************************************************* + * + * Declare colour variables * + * * + ******************************************************************************/ +{ + -fx-pambackground: rgba(238,238,238); + + /*The colours of the settings CSS style*/ + -fx-highlight: white; + -fx-highlight_settings: rgba(0,204,204,.75); + -fx-highlight_border_settings: rgba(0,204,204,1); + -fx_border_col: rgba(190,190,190,1); + -fx-darkbackground: rgba(70,70,70,1); + -fx-tabbackground: rgba(190,190,190,1); + -fx-icon_col: grey; + + /*colours for the plot panes in PAMGuard- might change to dark if at night*/ + -fx-plotbackground: white; +} + +.root{ + -fx-font-size: 9pt; + -fx-background-color: -fx-pambackground; + -fx-font-family: "Ubuntu"; + -icons-color: -fx-icon_col; +} + + +/******************************************************************************* + * * + * Panes * + * * + ******************************************************************************/ + +.pane { + -fx-background-color: -fx-pambackground; +} + +.pane-opaque { + -fx-background-color: -fx-pambackground; +} + +/*for plot panes*/ +.pane-plot { + -fx-background-color: -fx-plotbackground; +} + +.border{ + -fx-background-color: -fx-pambackground; +} + +.grid { + -fx-background-color: -fx-pambackground; +} + +.hBox { + -fx-background-color: -fx-pambackground; +} + +/******************************************************************************* + * * + * Top Toolbar * + * * + ******************************************************************************/ + + +.button{ + -fx-background-color: transparent; + -fx-background-radius: 5 5 5 5; + -fx-border-color: transparent; + -fx-border-radius: 5 5 5 5; +} + +.transparent-button-square{ + -fx-background-color: transparent; + -fx-background-radius: 0 0 0 0; + -fx-border-color: transparent; + -fx-border-radius: 0 0 0 0; +} + + +.button:hover { + -fx-border-color: transparent; + -fx-background-color: -fx-highlight; +} + +.transparent-button-square:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: transparent; +} + + + +.opaque-button-square{ + -fx-background-color: -fx-pambackground; + -fx-background-radius: 0 0 0 0; + -fx-border-color: transparent; + -fx-border-radius: 0 0 0 0; +} + +.opaque-button-square:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: transparent; +} + +/******************************************************************************* + * * + * Label * + * * + ******************************************************************************/ + + + +#label-title1 { + -fx-font: bold 16pt -fx-font-family; +} + +#label-title2 { + -fx-font: bold 13pt -fx-font-family; +} + +/******************************************************************************* + * * + * Dialog Pane * + * * + ******************************************************************************/ + +.dialog-pane-dark { + -fx-background-color: -fx-darkbackground; +} + +.dialog-button-dark { + -fx-text-fill: white; + -fx-border-color: white; + -fx-border-radius: 5; + -fx-background-radius:6; + -fx-padding: 3 6 6 6; +} + +.dialog-button-dark:hover{ + -fx-background-color: -fx-highlight_settings; + -fx-border-color: -fx-highlight_border_settings; +} + +/******************************************************************************* + * * + * Hiding Tab * + * * + ******************************************************************************/ + + #hide-tab { + -fx-background-color: transparent; + -fx-border-radius: 5 5 0 0; + -fx-background-radius: 5 5 0 0; + -fx-border-color: -fx-border_col; +} + + #show-tab { + -fx-background-color: transparent; + -fx-border-radius: 5 5 0 0; + -fx-background-radius: 5 5 0 0; + -fx-border-color: -fx-border_col; +} + + #hide-tab-highlight { + -fx-background-color: -fx-highlight; + -fx-border-radius: 5 5 0 0; + -fx-background-radius: 5 5 0 0; + -fx-border-color: -fx-highlight_border; +} + + + + +/******************************************************************************* + * * + * Hiding Tab * + * * + ******************************************************************************/ + +.menu-button { + -fx-mark-color: transparent; +} + +.menu-button .arrow { + -fx-background-color: transparent; +} + +.menu-button > .arrow-button { + -fx-padding: 0; +} + +.menu-button > .arrow-button > .arrow { + -fx-padding: 0; +} + +/******************************************************************************* + * * + * Hiding Pane * + * * + ******************************************************************************/ + + +/** + * Button for closing a hiding panel. Right indicates bottoms points towards the right, closing a hiding panel + * on the right hand side of the screen. These buttons have a transparent background and rounded corners. + */ + /** top-left, top-right, bottom-right, and bottom-left corners, in that order. */ +.close-button-right{ + -fx-background-color: transparent; + -fx-background-radius: 0 10 10 0; + -fx-border-radius: 0 10 10 0; +} + +.close-button-right:hover { + -fx-background-color: -fx-highlight; +} + + +.close-button-left{ + -fx-background-color: transparent; + -fx-background-radius: 10 0 0 10; + -fx-border-radius: 10 0 0 10; +} + +.close-button-left:hover { + -fx-background-color: -fx-highlight; +} + + +.close-button-top{ + -fx-background-color: transparent; + -fx-background-radius: 10 10 0 0; + -fx-border-radius: 10 10 0 0; +} + + +.close-button-bottom { + -fx-background-color: transparent; + -fx-background-radius: 0 0 10 10; + -fx-border-radius: 0 0 10 10; +} + +.close-button-bottom:hover { + -fx-background-color: -fx-highlight; +} + + +.close-button-bottom-grey{ +-fx-border-color: transparent; + -fx-background-radius: 0 0 10 10; + -fx-border-radius: 0 0 10 10; +} + +.close-button-left-trans{ + -fx-border-color: transparent; + -fx-background-color: transparent; + -fx-background-radius: 10 0 0 10; + -fx-border-radius: 10 0 0 10; +} + +.close-button-right-trans{ + -fx-border-color: transparent; + -fx-background-color: transparent; + -fx-background-radius: 0 10 10 0; + -fx-border-radius: 0 10 10 0; +} + +.menu-square-button { +-fx-border-color: -fx_border_col; + -fx-background-color: transparent; + -fx-background-radius: 0 0 0 0; + -fx-border-radius: 0 0 0 0; +} + +/******************************************************************************* + * * + * Tab Panes are ugly in Modena! * + * * + ******************************************************************************/ + +.tab-pane .tab-header-area .tab-header-background { + -fx-effect: null; + -fx-background-color: -fx-darkbackground; +} +.tab-pane +{ + -fx-tab-min-width:90px; +} + +.tab{ + -fx-background-insets: 0 1 0 1,0,0; +} +.tab-pane .tab +{ + -fx-background-color: -fx-tabbackground; + -fx-focus-color: transparent; + -fx-faint-focus-color: transparent; + +} + +.tab-pane .tab:selected +{ + /*-fx-background-color:-fx-highlight;*/ + -fx-background-color: -fx-pambackground; + -fx-focus-color: transparent; + -fx-border-color: transparent; + -fx-faint-focus-color: transparent; + -fx-effect: null; +} + +.tab-pane .tab:focused +{ + -fx-focus-color: transparent; + -fx-border-color: transparent; + -fx-faint-focus-color: transparent; + -fx-effect: null; + +} + +.tab .tab-label { + -fx-alignment: CENTER; + /*-fx-font-weight: bold;*/ +} + +.tab:selected .tab-label { + -fx-alignment: CENTER; +} + +.tab-button { + -fx-background-color: -fx-pambackground; +} + +.tab-button:hover { + -fx-background-color: -fx-highlight +} + + + +/******************************************************************************* + * * + * Pam Internal Pane * + * * + ******************************************************************************/ + +.circle-internal { + -fx-fill: -fx-highlight_settings; + -fx-stroke: -fx-highlight_border_settings; + -fx-stroke-width: 2; +} + +.line-internal { + -fx-fill: -fx-highlight_border_settings; + -fx-stroke: -fx-highlight_border_settings; + -fx-stroke-width: 3; + -fx-stroke-dash-array: 3.0 7.0 3.0 7.0; +} + +.button-internal { + -fx-background-color: -fx-highlight_settings; + -fx-border-color: -fx-highlight_border_settings; + -fx-background-radius: 10; + -fx-border-radius: 10; +} + +.button-internal:hover { + -fx-background-color: -fx-highlight_border_settings; +} + + +/******************************************************************************* + * * + * ToggleSwitch * + * * + ******************************************************************************/ +.toggle-switch{ + -thumb-move-animation-time: 200; +} + +.toggle-switch .text { + -fx-font-size: 1em; + -fx-text-fill: -fx-text-base-color; +} + +.toggle-switch .thumb { + -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -20%), derive(-fx-text-box-border, -30%)), + -fx-inner-border, + -fx-body-color; + -fx-background-insets: 0, 1, 2; + -fx-background-radius: 1.0em; /* large value to make sure this remains circular */ + -fx-padding: 0.75em; + -fx-alignment: CENTER; + -fx-content-display: LEFT; +} + +.toggle-switch .thumb-area{ + -fx-background-radius: 1em; + -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -20%), derive(-fx-text-box-border, -30%)), #f5f5f5; + -fx-background-insets: 0, 1; +} + +.toggle-switch:hover .thumb{ + -fx-color: -fx-hover-base +} + +.toggle-switch:selected .thumb-area{ + -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -20%), derive(-fx-text-box-border, -30%)), + linear-gradient(to bottom, derive(#0b99c9, 30%), #0b99c9); + -fx-background-insets: 0, 1; + +} + +.toggle-switch .thumb-area +{ + -fx-padding: 0.75em 1.333333em 0.75em 1.333333em; /* 7 16 7 16 */ +} + +.toggle-switch:disabled +{ + -fx-opacity: 0.4; +} + + +/******************************************************************************* + * * + * ToggleSwitch * + * * + ******************************************************************************/ + + +.text_field_trans { + -fx-background-color: rgba(255,255,255,0.3);; + -fx-background-radius: 0; + -fx-background-radius: 0; + -fx-border-radius: 0; + -fx-border-color: -fx_border_col; + + +} + +.text-text_field_trans:focused { + -fx-background-color: rgba(255,255,255,0.3);; + -fx-background-radius: 0; + -fx-background-radius: 0; + -fx-border-radius: 0; + -fx-border-color: -fx_border_col; + +} + +/******************************************************************************* + * * + * Split pane * + * * + ******************************************************************************/ + +.split-pane *.split-pane-divider { + -fx-padding: 0 1 0 1; +} + +/******************************************************************************* + * * + * Combo Box * + * * + ******************************************************************************/ +.combo-box-base { + -fx-background-color: transparent; + -fx-background-insets: 0 0 -1 0, 0, 1, 2; + -fx-background-radius: 3px, 3px, 2px, 1px; + -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */ + -fx-text-fill: -fx-text-base-color; + -fx-alignment: CENTER; + -fx-content-display: LEFT; + -fx-border-color: -fx_border_col; + -fx-border-radius: 5,5,5,5; +} + +.combo-box-base:hover { + -fx-background-color: -fx-highlight; + -fx-border-radius: 5,5,5,5; +} + + +/**************************************************************** + + Spinner + +****************************************************************/ + +.spinner { + -fx-background: -fx-pambackground; + -fx-background-color: -fx-pambackground; + -fx-background-radius: 5; + -fx-border-radius: 5; + -fx-border-color: none; +} + +.spinner .text-field { + -fx-background: -fx-pambackground; + -fx-background-color: -fx-pambackground; + -fx-border-radius: 0 0 0 0; + -fx-padding: 5 0 5 0; + -fx-border-color: rgba(190,190,190,1);; +} + +.spinner .increment-arrow-button { + -fx-background: rgba(210,210,210); + -fx-background-color: rgba(210,210,210); + -fx-border-color: rgba(190,190,190,1);; + -fx-border-radius: 5 5 0 0; + -fx-padding: 5 0 5 0; +} + + +.spinner .increment-arrow-button:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: white; + -fx-background-radius: 5 5 0 0; + -fx-border-radius: 5 5 0 0; +} + +.spinner .decrement-arrow-button { + -fx-background: rgba(210,210,210,1); + -fx-background-color: rgba(210,210,210,1); + -fx-border-color: rgba(190,190,190,1);; + -fx-border-radius: 0 0 5 5 +} + + +.spinner .decrement-arrow-button:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: white; + -fx-background-radius: 0 0 5 5; + -fx-border-radius: 0 0 5 5; +} + +/*Arrows are horizontal either side of text box*/ +.spinner.split-arrows-horizontal .increment-arrow-button { + -fx-background-color: rgba(210,210,210,1); + -fx-border-color: rgba(190,190,190,1); + -fx-background-radius: 0 5 5 0; + -fx-border-radius: 0 5 5 0; +} + + +.spinner.split-arrows-horizontal .decrement-arrow-button { + -fx-background-color: rgba(210,210,210,1); + -fx-border-color: rgba(190,190,190,1); + -fx-background-radius: 5 0 0 5; + -fx-border-radius: 5 0 0 5; + + } + +.spinner.split-arrows-horizontal .increment-arrow-button:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: white; + -fx-background-radius: 0 5 5 0; + -fx-border-radius: 0 5 5 0; +} + + +.spinner.split-arrows-horizontal .decrement-arrow-button:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: white; + -fx-background-radius: 5 0 0 5; + -fx-border-radius: 5 0 0 5; + } + +.spinner.split-arrows-horizontal .text-field { + -fx-background: -fx-pambackground; + -fx-background-color: -fx-pambackground; + -fx-border-radius: 0 0 0 0; + -fx-padding: 5 0 5 0; + -fx-border-color: rgba(190,190,190,1); + -fx-alignment:center; +} + + +/******************************************************************************* + * * + * Titled Pane * + * * + ******************************************************************************/ + + .titled-pane +{ +/*-fx-text-fill: -fx-text;*/ +} + +.titled-pane:focused +{ +/*-fx-text-fill: -fx-text;*/ +} + + + .titled-pane .title +{ +-fx-background-color: -fx-pambackground; +-fx-background-insets: 0, 1, 2; +-fx-background-radius: 0 0 0 0, 0 0 0 0, 0 0 0 0; +-fx-padding: 0.166667em 0.833333em 0.25em 0.833333em; /* 2 10 3 10 */ +} + + .titled-pane .title:hover +{ +-fx-background-color: -fx-highlight; +-fx-background-insets: 0, 1, 2; +-fx-background-radius: 0 0 0 0, 0 0 0 0, 0 0 0 0; +-fx-padding: 0.166667em 0.833333em 0.25em 0.833333em; /* 2 10 3 10 */ +} + + + +.titled-pane > *.content +{ +-fx-background-color: -fx-pambackground; +-fx-box-border: -fx-pambackground; +-fx-background-insets: 10, 0 1 1 1; +-fx-padding: 0.167em; + } + + +/******************************************************************************* + * * + * ikonli icons * + * * + ******************************************************************************/ + +.ikonli-font-icon { + -fx-text-fill: -fx-icon_col; + -fx-fill: -fx-icon_col; +} + + +#module-pane .ikonli-font-icon { + -fx-icon-color: black; +} \ No newline at end of file diff --git a/target/classes/Resources/css/pamDefaultDialogCSS.css b/target/classes/Resources/css/pamDefaultDialogCSS.css new file mode 100644 index 00000000..bc43fa64 --- /dev/null +++ b/target/classes/Resources/css/pamDefaultDialogCSS.css @@ -0,0 +1,563 @@ +/* + * Much of this has been taken from the AeroFX project: http://www.aerofx.org/ + * I've removed references to the jar file because I didn't want to include yet + * another file in the library, and tweaked some of the colors to more closely + * match Pamguard's Swing dialogs. + * + * This is the copyright notice from the original file: + * + * + * Copyright (c) 2014, Matthias Meidinger + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those + * of the authors and should not be interpreted as representing official policies, + * either expressed or implied, of the FreeBSD Project. + */ + +.root{ + -fx-text-base-color: black; + -fx-text-fill: -fx-text-base-color; + + /* This is the default Windows-font */ +/* -fx-font-family: "Segoe UI Semibold"; */ + -fx-font-family: "Segoe UI"; + -fx-font-size: 9; + -fx-icon_col: grey; + -icons-color: -fx-icon_col; + + /* For debugging purposes*/ + -fx-background-color: rgb(240,240,240); + + -fx-disabled-opacity: 0.6; +} + +.text{ + -fx-font-smoothing-type: lcd; +} + + +/* disabled controls */ +.button:disabled, +.toggle-button:disabled, +.radio-button:disabled, +.check-box:disabled, +.hyperlink:disabled, +.menu-button:disabled, +.split-menu-button:disabled, +.slider:disabled, +.scroll-pane:disabled, +.progress-bar:disabled, +.progress-indicator:disabled, +.text-input:disabled, +.choice-box:disabled, +.combo-box-base:disabled, +.list-view:disabled, +.tree-view:disabled, +.table-view:disabled, +.tree-table-view:disabled, +.tab-pane:disabled, +.tab-pane > .tab-header-area > .headers-region > .tab:disabled { + -fx-opacity: -fx-disabled-opacity; +} + +/* mnemonics */ +.button:show-mnemonics > .mnemonic-underline, +.toggle-button:show-mnemonics > .mnemonic-underline, +.radio-button:show-mnemonics > .mnemonic-underline, +.check-box:show-mnemonics > .mnemonic-underline, +.hyperlink:show-mnemonics > .mnemonic-underline, +.split-menu-button:show-mnemonics > .mnemonic-underline, +.menu-button:show-mnemonics > .mnemonic-underline { + -fx-stroke: -fx-text-base-color; +} + +.mnemonic-underline{ + -fx-stroke: transparent; +} + + +#label-title1 { + -fx-font: bold 16pt -fx-font-family; +} + +#label-title2 { + -fx-font: bold 10pt -fx-font-family; +} + +/******************************************** +* * +* Button & Default-Button * +* * +*********************************************/ +.button-focus-border{ + -fx-stroke: black; + -fx-stroke-dash-array: 1; + -fx-stroke-width: 1px; + -fx-stroke-line-cap: butt; + -fx-stroke-type: inside; +} + +.button, .toggle-button{ + -fx-alignment: center; + -fx-background-color: + rgb(112,112,112), + linear-gradient(rgb(252,252,252), rgb(252,252,252)), + linear-gradient(rgb(242,242,242) 0%, rgb(235,235,235) 49%, rgb(221,221,221) 50%, rgb(207,207,207) 100%); + -fx-background-insets: 0,1,2; + -fx-background-radius: 3,2,1; + -fx-padding: 4 4 3 3; + -fx-text-fill: -fx-text-base-color; +} + +.button:hover{ + -fx-background-color: + rgb(60,127,177), + linear-gradient(rgb(250,253,254),rgb(250,253,254)), + linear-gradient(rgb(234, 246, 253) 0%, rgb(217, 240, 252) 49%, rgb(190, 230, 253) 50%, rgb(167, 217, 245) 100%); +} + +.button:default{ + -fx-background-color: + rgb(60,127,177), + linear-gradient(rgb(47,212,255), rgb(47,212,255)), + linear-gradient(rgb(234,246,252) 0%, rgb(228,243,252) 49%, rgb(202,233,250) 50%, rgb(182,222,245) 100%); +} + +.button:armed, .toggle-button:armed{ + -fx-background-color: + rgb(44,98,139), + linear-gradient(rgb(158,176,186), rgb(158,176,186)), + linear-gradient(rgb(229,244,252) 0%, rgb(196,229,246) 49%, rgb(152,209,239) 50%, rgb(104,179,219) 100%); +} + + +/******************************************** +* * +* TextField * +* * +*********************************************/ +.text-field{ + /* If four values are used, the sides are top, right, bottom, left. */ +/* -fx-border-color: rgb(170,170,178) rgb(218,220,230) rgb(226,231.0,239) rgb(226,224,234); */ + -fx-border-color: rgb(172,173,179); + -fx-background-color: rgb(255,255,255); + -fx-padding: 0.0em 0.0em 0.0em 0.15em; + -fx-cursor: text; + -fx-effect: null; + -fx-pref-height: 20px; + -fx-background-insets: 0 0 0 0; +} +/* +.text-field:focused{ + -fx-border-color: rgb(61,123,173) rgb(164,201,227) rgb(183,217,237) rgb(181,207,231); + /* Remove the blue glow on focus */ + -fx-background-insets: 0, 0, 0, 0; + -fx-effect: null; +*/ +} + +.tooltip { + -fx-background: rgba(0,0,0); + -fx-text-fill: black; + -fx-background-color: rgba(255,255,202); + -fx-background-radius: 1px; + -fx-background-insets: 2, 2, 1, 1; + -fx-padding: 0.15em 0.5em 0.15em 0.5em; /* 10px */ + /*-fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.5) , 0, 0.0 , 0 , 0 );*/ + -fx-effect: null; + -fx-font-size: 1.0em; +} + +/******************************************** +* * +* CheckBox * +* * +*********************************************/ +.check-box-focus-border{ + -fx-stroke: black; + -fx-stroke-dash-array: 1; + -fx-stroke-width: 1px; + -fx-stroke-line-cap: butt; + -fx-stroke-type: inside; +} +/* TODO: Style the mark by using a fx-shape */ +.check-box{ +/* -fx-skin:"org.aerofx.controls.skin.AeroCheckBoxSkin"; */ + -fx-label-padding: 0.0em 0.0em 0.0em 0.05em; +} + +.check-box > .box{ + -fx-background-insets: 0, 2, 4; + -fx-border-color: rgb(140.0, 141.0, 141.0); + -fx-background-color: + rgb(244,244,244), + linear-gradient(to bottom right, rgb(174,179,185), rgb(233,233,234)), + linear-gradient(to bottom right, rgb(203,207,213), rgb(246,246,246)); + -fx-scale-x: 0.8; + -fx-scale-y: 0.8; +} + +.check-box:hover > .box { + -fx-border-color: rgb(85,134,163); + -fx-background-color: + rgb(222,249,250), + linear-gradient(to bottom right, rgb(121,198,249), rgb(207,236,253)), + linear-gradient(to bottom right, rgb(177,223,253), rgb(231,247,254)); +} + +.check-box:pressed > .box{ + -fx-border-color: rgb(44,98,139); + -fx-background-color: + rgb(194,228,246), + linear-gradient(to bottom right, rgb(94,182,247), rgb(194,228,246)), + linear-gradient(to bottom right, rgb(157,213,252), rgb(224,244,254)); +} + +.check-box:disabled > .box{ + -fx-background-color: + linear-gradient(rgb(239.0, 239.0, 239.0), rgb(250.0, 250.0, 250.0)); +} + +.check-box:selected > .box{ + -fx-padding: -0.208333em 0 0.208333em 0.23em; + -fx-padding: -0.208333em 0.083333em 0.208333em 0.23em; + -fx-padding: 0.166667em 0.166667em 0.25em 0.25em; +} + +.check-box:selected > .box > .mark{ + -fx-padding: 0.416667em 0.416667em 0.5em 0.5em; + -fx-shape: "M 5.1806931,9.0173267 7.5232674,12.170792 11.307426,4.4673266 10.091089,3.9717821 7.2980199,9.6029703 6.1267328,7.9361386 z"; + -fx-background-color: rgb(76,97,152); +} + +.check-box:selected:hover > .box > .mark{ + -fx-background-color: rgb(4,34,113); +} + +.check-box:selected:pressed > .box > .mark{ + -fx-background-color: rgb(44,83,148); +} + + +/******************************************** +* * +* RadioButton * +* * +*********************************************/ +.radio-button-focus-border{ + -fx-stroke: black; + -fx-stroke-dash-array: 1; + -fx-stroke-width: 1px; + -fx-stroke-line-cap: butt; + -fx-stroke-type: inside; +} + +.radio-button{ +/* -fx-skin:"org.aerofx.controls.skin.AeroRadioButtonSkin"; */ + -fx-label-padding: 0.0em 0.0em 0.0em 0.35em; +} + +.radio-button > .text{ + -fx-translate-y: 1px; +} + +.radio-button > .radio{ + -fx-pref-height: 12px; + -fx-pref-width: 12px; + -fx-background-color: + rgb(147,148,148), + rgb(239,239,239), + linear-gradient(to bottom right, rgb(179,184,189), rgb(235,235,235)), + linear-gradient(to bottom right, rgb(203,207,213), rgb(241,241,241)); + -fx-background-insets: 0,1,2,3; + -fx-background-radius: 1em; + -fx-padding: 0.333333em; +} + +.radio-button:hover > .radio{ + -fx-background-color: + rgb(93,140,167), + rgb(216,244,246), + linear-gradient(to bottom right, rgb(128,202,249), rgb(210,238,253)), + linear-gradient(to bottom right, rgb(177,223,253), rgb(223,243,254)); + -fx-background-insets: 0,1,2,3; +} + +.radio-button:pressed > .radio{ + -fx-background-color: + rgb(58,103,135), + rgb(198,239,241), + linear-gradient(to bottom right, rgb(90,179,246), rgb(190,230,252)), + linear-gradient(to bottom right, rgb(147,208,252), rgb(208,237,253)); + -fx-background-insets: 0,1,2,3; + -fx-background-radius: 1.0em; + -fx-padding: 0.333333em; +} + +.radio-button:selected > .radio > .dot{ + -fx-padding: 0.333333em; + -fx-pref-height: 4px; + -fx-pref-width: 4px; + -fx-background-color: + rgb(20,47,68), + rgb(11,130,199), + linear-gradient(to bottom right, rgb(255,255,255) 20%, rgb(11,130,199) 60%); + -fx-background-insets: 0,1,2; + -fx-background-radius: 1.0em; +} + +.radio-button:selected:hover > .radio > .dot{ + -fx-background-color: + rgb(20,47,68), + rgb(11,130,199), + linear-gradient(to bottom right, rgb(255,255,255) 20%, rgb(13,160,243) 60%); +} + +.radio-button:selected:pressed > .radio > .dot{ + -fx-background-color: + rgb(20,47,68), + rgb(11,130,199), + linear-gradient(to bottom right, rgb(255,255,255) 20%, rgb(7,84,131) 60%); +} + +.radio-button:show-mnemonics .mnemonic-underline{ + -fx-stroke: -fx-text-base-color; +} + +/******************************************** +* * +* TabPane * +* * +*********************************************/ +.tab-pane{ + -fx-tab-min-height: 1.8333em; /* 22 */ + -fx-tab-max-height: 1.8333em; /* 22 */ +} + +.tab-pane:top > .tab-content-area { +/* -fx-background-color: rgb(255,255,255); */ + -fx-background-color: rgb(240,240,240); + -fx-border-color: transparent rgb(137,140,149) rgb(137,140,149) rgb(137,140,149); +} + +.tab-pane:top > .tab-header-area { + -fx-padding: 0.416667em 0.166667em 0.0em 0.416667em; /* 5 2 0 5 */ +/* -fx-padding: 0.416667em 5 0.0em 0.416667em; */ /* 5 2 0 5 */ + -fx-padding: 0.05em 5 0.0em 0.416667em; /* 5 2 0 5 */ +} + +.tab-pane > *.tab-header-area > .headers-region { + -fx-translate-x: -5px; +} + +.tab-pane > *.tab-header-area > *.tab-header-background{ + -fx-background-color: rgb(240,240,240); + -fx-border-color: transparent transparent rgb(137,140,149) transparent ; +} + +.tab-pane > .tab-header-area > .headers-region > .tab{ + -fx-padding: 0.083333em 0.5em 0.083333em 0.5em; + -fx-border-color: rgb(137,140,149); + -fx-background-color: + rgb(255,255,255), + linear-gradient(to bottom, rgb(242,242,242) 0%, rgb(235,235,235) 49%, rgb(221,221,221) 50%, rgb(207,207,207) 100%); + -fx-background-insets: 0,2 2 0 2; +} + +.tab-pane > .tab-header-area > .headers-region > .tab:top{ + -fx-border-color: rgb(244,0,0), rgb(137,140,149), rgb(137,140,149), rgb(137,140,149); + -fx-border-width: 1 1 1 1; + -fx-pref-height: 2.2em; +} + +.tab-pane > .tab-header-area > .headers-region > .tab:hover{ + -fx-border-color: rgb(60,127,177); + -fx-background-color: + rgb(255,255,255), + linear-gradient(to bottom, rgb(234,246,253) 0%, rgb(217,240,252) 49%, rgb(190,230,253) 50%, rgb(167,217,245) 100%); + -fx-background-insets: 0,2 2 0 2; +} + +.tab-pane > .tab-header-area > .headers-region > .tab:selected{ + -fx-border-color: rgb(137,140,149); + -fx-border-width: 1 1 0 1; + -fx-background-color: rgb(255,255,255); + -fx-pref-height: 2.5em; +} + +.tab-pane > .tab-header-area > .headers-region > .tab:selected .focus-indicator{ + -fx-border-width: 0; + -fx-border-color: transparent; +} + +.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label { + -fx-alignment: CENTER; + -fx-text-fill: -fx-text-base-color; +} + +.tab-pane.floating > .tab-content-area { + -fx-background-color: -fx-outer-border, -fx-background; + -fx-background-insets: 0, 1; + -fx-background-radius: 3, 2; + -fx-padding: 2; +} + +/******************************************** +* * +* Hyperlink * +* * +*********************************************/ +.hyperlink{ + -fx-text-fill: rgb(0,102,204); +} + +.hyperlink:focused{ + -fx-border-color: black; + -fx-border-style: dotted; +} + + +/******************************************** +* * +* TableView * +* * +*********************************************/ +.table-view{ + -fx-border-color: rgb(130,135,144); + -fx-background-color: white; +} + +.table-view > column-header-background > nested-column-header > .arrow{ + -fx-shape:null; +} + +.table-view > .column-header-background > .nested-column-header > .column-header{ + -fx-pref-height: 23px; + -fx-border-color: rgb(213,213,213); + -fx-border-width: 0 1 1 0; + -fx-background-color: + linear-gradient(to bottom, rgb(255,255,255) 0%, rgb(255,255,255) 40%, rgb(247,248,250) 41%, rgb(241,242,244) 100%); +} + +.table-view > .column-header-background > .nested-column-header > .column-header:hover{ + -fx-border-color: transparent rgb(136,203,235) rgb(147,201,227) rgb(105,187,227); + -fx-border-width: 0 1 1 1; + -fx-background-color: + linear-gradient(to bottom, rgb(227,247,255) 0%, rgb(227,247,255) 40%, rgb(189,237,255) 41%, rgb(183,231,251) 100%); +} + +.table-view > .column-header-background > .nested-column-header > .column-header:pressed{ + -fx-translate-x: 1px; + -fx-translate-y: 1px; + -fx-border-color: rgb(134,163,178) rgb(79,144,174) rgb(147,201,227) rgb(80,145,175); + -fx-border-width: 1; + -fx-background-color: + linear-gradient(to bottom, rgb(188,228,249) 0%, rgb(188,228,249) 40%, rgb(141,214,247) 41%, rgb(138,209,245) 100%); +} + +.table-view > .column-header-background > .nested-column-header > .column-header > .label{ + -fx-translate-x: 4px; + -fx-alignment: center-left; +} + + +/******************************************** +* * +* Separator * +* * +*********************************************/ +.separator:horizontal{ + -fx-border-color:rgb(160,160,160); + -fx-border-width: 0.5; +} + + +/******************************************** +* * +* Titled Border * +* * +*********************************************/ +.bordered-titled-title { + -fx-background-color: rgb(240, 240, 240); + -fx-translate-y: -10; +} + +.bordered-titled-border { + -fx-content-display: top; + -fx-border-insets: 12 4 4 4; + -fx-background-color: rgb(240, 240, 240); + -fx-border-color: rgb(213, 223, 229), rgb(255, 255, 255); + -fx-border-radius: 3, 2; + -fx-border-width: 1; +} + +.bordered-titled-content { + -fx-padding: 10 10 10 10; +} + + +/******************************************** +* * +* Choice Box * +* * +*********************************************/ +.choice-box{ + -fx-background-insets: 0,1,2; + -fx-background-radius: 3,2,1; + +} +.choice-box:hover{ + -fx-background-color: + rgb(171,173,179), + rgb(250,253,254), + linear-gradient(rgb(234, 246, 253) 0%, rgb(217, 240, 252) 49%, rgb(190, 230, 253) 50%, rgb(167, 217, 245) 100%); +} + +.choice-box:focused, .choice-box:selected{ + -fx-background-color: + rgb(171,173,179), + rgb(250,253,254), + linear-gradient(rgb(234, 246, 253) 0%, rgb(217, 240, 252) 49%, rgb(190, 230, 253) 50%, rgb(102, 175, 215) 100%); +} +.choice-box > .context-menu{ +-fx-background-color: red; + -fx-translate-y: 20px; +} + + +/******************************************** +* * +* ikonli icons * +* * +*********************************************/ + +.ikonli-font-icon{ + -fx-text-fill: -fx-icon_col; + -fx-fill: -fx-icon_col; +} + +#module-icon .ikonli-font-icon { + -fx-icon-color: black; +} + diff --git a/target/classes/Resources/css/pamSettingsCSS.css b/target/classes/Resources/css/pamSettingsCSS.css new file mode 100644 index 00000000..605da31c --- /dev/null +++ b/target/classes/Resources/css/pamSettingsCSS.css @@ -0,0 +1,980 @@ +/** +* CSS for PAMGUARD settings panels. These are dark with clean white buttons and a cyan highlight them. +* +* Author: Jamie Macaulay; +**/ +/******************************************************************************* + * * + * Declare colour variables * + * * + ******************************************************************************/ +{ + -fx-pambackground: rgba(238,238,238); + -fx-darkbackground: rgba(70,70,70,1); + -fx-darkbackground2: rgba(80,80,80,1); /*A light background to highlight controls*/ + -fx-darkbackground-trans: rgba(70,70,70,0.85); + -fx-highlight: rgba(0,204,204,.75); + -fx-highlight_border: rgba(0,204,204,1); + -fx-text: white; + -fx-border_col: white; + -fx-icon_col: white; +} + + +/******************************************************************************* + * * + * Panes * + * * + ******************************************************************************/ + +.root { + /*-fx-background-color: -fx-darkbackground;*/ + /*-fx-padding: 10;*/ + -fx-background-color: -fx-darkbackground2; + -fx-font-size: 9pt; + -fx-font-color: -fx-text; + -fx-font-family: "Ubuntu"; + + -fx-border-radius: 5 5 5 5; + -fx-background-radius: 5 5 5 5; + + -icons-color: -fx-icon_col; +} + +.pane { + -fx-background-color: -fx-darkbackground2; +} + +.pane-trans{ + -fx-background-color: -fx-darkbackground-trans; +} + +/*.border{ + -fx-background-color: -fx-darkbackground; +} + +.grid { + -fx-background-color: -fx-darkbackground; +} + +.hBox { + -fx-background-color: -fx-darkbackground; +}*/ + + +/******************************************************************************* + * * + * Hiding Tab * + * * + ******************************************************************************/ + #hide-tab { + -fx-background-color: transparent; + -fx-border-radius: 5 5 0 0; + -fx-background-radius: 5 5 0 0; + -fx-border-color: -fx-border_col; +} + + #show-tab { + -fx-background-color: transparent; + -fx-border-radius: 5 5 0 0; + -fx-background-radius: 5 5 0 0; + -fx-border-color: -fx-border_col; +} + + #hide-tab-highlight { + -fx-background-color: -fx-highlight; + -fx-border-radius: 5 5 0 0; + -fx-background-radius: 5 5 0 0; + -fx-border-color: -fx-highlight_border; +} + +/******************************************************************************* + * * + * Label * + * * + ******************************************************************************/ + +.label{ + -fx-text-fill: -fx-text; +} + +#label-title1 { + -fx-font: bold 16pt -fx-font-family; + -fx-text-fill: -fx-text; +} + +#label-title2 { + -fx-font: bold 13pt -fx-font-family; + -fx-text-fill: -fx-text; +} + +/******************************************************************************* + * * + * Slider * + * * + ******************************************************************************/ + + + .slider .axis { + -fx-fill: -fx-text; + -fx-stroke: -fx-text; + -fx-tick-label-fill: -fx-text; + -fx-text-fill: -fx-text; + -fx-tick-mark-stroke: -fx-text; +} + +/******************************************************************************* + * * + * Dialog Pane * + * * + ******************************************************************************/ + +/* .dialog-pane { + -fx-background-color: -fx-darkbackground; +} +*/ +/******************************************************************************* + * * + * Button * + * * + ******************************************************************************/ + +.button{ + -fx-text-fill: white; + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-border-radius: 5; + -fx-background-radius:6; + -fx-padding: 3 6 6 6; +} + +.button:hover{ + -fx-background-color: -fx-highlight; + -fx-border-color: -fx-highlight_border; +} + +.button:selected{ + -fx-border-color: -fx-highlight; +} + +/** + * Button for closing a hiding panel. Right indicates bottoms points towards the right, closing a hiding panel + * on the right hand side of the screen. These buttons have a transparent background and rounded corners. + */ + /** top-left, top-right, bottom-right, and bottom-left corners, in that order. */ +.close-button-right{ + -fx-background-color: transparent; + -fx-background-radius: 0 10 10 0; + -fx-border-color: transparent; + -fx-border-radius: 0 10 10 0; +} + + +.close-button-left{ + -fx-background-color: transparent; + -fx-background-radius: 10 0 0 10; + -fx-border-color: transparent; + -fx-border-radius: 10 0 0 10; +} + + +.close-button-top{ + -fx-background-color: transparent; + -fx-background-radius: 10 10 0 0; + -fx-border-color: transparent; + -fx-border-radius: 10 10 0 0; +} + + +.close-button-bottom{ + -fx-background-color: transparent; + -fx-background-radius: 0 0 10 10; + -fx-border-color: transparent; + -fx-border-radius: 0 0 10 10; +} + + +.close-button-bottom-trans{ + -fx-border-color: transparent; + -fx-background-color: transparent; + -fx-background-radius: 0 0 10 10; + -fx-border-radius: 0 0 10 10; +} + +.close-button-left-trans{ + -fx-border-color: transparent; + -fx-background-color: transparent; + -fx-background-radius: 10 0 0 10; + -fx-border-radius: 10 0 0 10; +} + +.close-button-right-trans{ + -fx-border-color: transparent; + -fx-background-color: transparent; + -fx-background-radius: 0 10 10 0; + -fx-border-radius: 0 10 10 0; +} + +.square-button{ + -fx-background-radius: 0 0 0 0; + -fx-border-radius: 0 0 0 0; +} + +.square-button-trans{ + -fx-background-color: transparent; + -fx-border-color: transparent; + -fx-background-radius: 0 0 0 0; + -fx-border-radius: 0 0 0 0; +} + +.module-hide-top{ + -fx-border-color: transparent; + -fx-background-radius: 5 5 0 0; + -fx-border-radius: 5 5 0 0; +} + +.module-hide-bottom{ + -fx-border-color: transparent; + -fx-background-radius: 0 0 5 5; + -fx-border-radius: 0 0 5 5; +} + +.delete-button:hover{ + -fx-background-color: rgba(1,0,0,0.7); +} + + +/******************************************************************************* + * * + * Toggle Button * + * * + ******************************************************************************/ + + .toggle-button{ + -fx-text-fill: white; + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-border-radius: 5; + -fx-background-radius:6; + -fx-padding: 3 6 6 6; +} + +.toggle-button:hover{ + -fx-background-color: -fx-highlight; + -fx-border-color: -fx-highlight_border; +} + +.toggle-button:selected { + -fx-border-color: -fx-highlight; + -fx-background-color: -fx-highlight; +} + +.toggle-button:selected:focused { + -fx-border-color: -fx-highlight; + -fx-background-color: -fx-highlight; +} + + + +/******************************************************************************* + * * + * TextField * + * * + ******************************************************************************/ + +.text-field { + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-border-radius: 5; + -fx-text-fill: -fx-text; +} + +.text-field:selected{ + -fx-border-color: -fx-highlight; +} + +.text-field:focused{ + -fx-border-color: -fx-highlight; +} + + +/******************************************************************************* + * * + * MenuButton * + * * + ******************************************************************************/ + +.menu-button{ + -fx-text-fill: -fx-text; + -fx-background-color: -fx-darkbackground; + -fx-border-color: transparent; + -fx-border-radius: 0; + -fx-padding: 3 6 6 6; +} + +.menu-button:hover { + -fx-background-color: -fx-highlight; + } + + +/******************************************************************************* + * * + * SplitMenuButton * + * * + ******************************************************************************/ + +.split-menu-button{ + -fx-text-fill: -fx-text; + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-border-radius: 5; +} + + +.split-menu-button:hover{ + -fx-border-color: -fx-highlight_border; +} + + +.split-menu-button .label { + -fx-text-fill: white; + -fx-background-color: -fx-darkbackground; + -fx-border-radius: 5; +} + + +.split-menu-button .label:hover { + -fx-background-color: -fx-highlight; +} + + +.split-menu-button .arrow-button { + -fx-text-fill: -fx-text; + -fx-background-color: -fx-darkbackground; + -fx-border-radius: 5; +} + + +.split-menu-button .arrow-button:hover { + -fx-background-color: -fx-highlight; +} + + +/******************************************************************************* + * * + * Radio Button * + * * + ******************************************************************************/ +.radio-button { + /* -fx-text-fill: rgb(255, 255, 255, 0.4);*/ + -fx-text-fill: -fx-text; + /* -fx-effect: dropshadow(one-pass-box , rgba(0, 0, 0, 0.6), 0, 0.0 , 0 , 1 );*/ + -fx-border-width: 0px; +} + +/******************************************************************************* + * * + * Check Box * + * * + ******************************************************************************/ + + .check-box { + /* -fx-text-fill: rgb(255, 255, 255, 0.4);*/ + -fx-text-fill: -fx-text; + /* -fx-effect: dropshadow(one-pass-box , rgba(0, 0, 0, 0.6), 0, 0.0 , 0 , 1 );*/ + -fx-border-width: 0px; +} + +/******************************************************************************* + * * + * ComboBox * + * * + ******************************************************************************/ + + +.combo-box .list-cell +{ + -fx-background: -fx-darkbackground; + -fx-background-color: transparent; + -fx-text-fill: -fx-text; +} + +.combo-box-popup .list-view +{ + -fx-background-color: -fx-darkbackground, -fx-darkbackground; + -fx-background-insets: 0, 1; +} + +.combo-box-popup .list-view .list-cell +{ + + /*No alternate highlighting*/ + -fx-background-color: -fx-darkbackground; +} + +.combo-box-popup .list-view .list-cell:filled:selected, .combo-box-popup .list-view .list-cell:filled:selected:hover +{ + -fx-background: -fx-highlight; + -fx-background-color: -fx-highlight; + -fx-text-fill: -fx-text; +} + +.combo-box-popup .list-view .list-cell:filled:hover +{ + -fx-background-color: -fx-highlight; + -fx-text-fill: -fx-text; +} + +.combo-box-base +{ + -fx-border-color: -fx-border_col; + -fx-border-radius: 5; + -fx-background-color: -fx-darkbackground, -fx-darkbackground, -fx-darkbackground, -fx-darkbackground; +} + +.combo-box-base:hover +{ + -fx-color: -fx-highlight; + -fx-background-color: -fx-highlight; +} + +.combo-box-base:showing +{ + -fx-color: -fx-highlight; + -fx-background-color: -fx-highlight; + +} + + +.combo-box-base:disabled { + -fx-opacity: .4; +} + + +/******************************************************************************* + * * + * ChoiceBox * + * * + ******************************************************************************/ + + +.choice-box{ + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-border-radius: 5; + -fx-padding: 3 6 6 6; +} + + +/******************************************************************************* + * * + * MenuItem * + * * + ******************************************************************************/ + + +.menu-item .label { + -fx-text-fill: -fx-text; + /*Must be transpernt so that semi transparent colour is not added to smei transparent*/ + -fx-background-color: transparent; +} + + +.menu-item:focused { + -fx-background-color: -fx-highlight; +} + +.menu-item:focused .label { + -fx-text-fill: -fx-text; +/*Weird fix-must make transparent for correct colour to show*/ + -fx-background-color: rgba(0,204,204,0); +} + +.context-menu { + /*-fx-skin: "com.sun.javafx.scene.control.skin.ContextMenuSkin";*/ + -fx-background-color: -fx-darkbackground; + -fx-background-insets: 0, 1, 2; + -fx-background-radius: 0 6 6 6, 0 5 5 5, 0 4 4 4; +/* -fx-padding: 0.666667em 0.083333em 0.666667em 0.083333em; 8 1 8 1 */ + -fx-padding: 0.333333em 0.083333em 0.666667em 0.083333em; /* 4 1 8 1 */ +} + +/**************************************************************** + + ScrollPane + +****************************************************************/ +.scroll-pane { + -fx-background: transparent; + -fx-background-color: transparent; +} + +.scroll-pane > .viewport { + -fx-background-color: transparent; +} + +.scroll-pane-dark{ + -fx-background: -fx-darkbackground; + -fx-background-color: -fx-darkbackground; +} + + +/**************************************************************** + + ScrollBar + +****************************************************************/ +.scroll-bar { + -fx-background-color: rgb(96,96,96); + -fx-background-radius: 2em; +} +.scroll-bar:horizontal .track, +.scroll-bar:vertical .track { + -fx-background-color: transparent; + -fx-border-color:transparent; + -fx-background-radius: 2em; +} +.scroll-bar:vertical .track-background, +.scroll-bar:horizontal .track-background { + -fx-background-color: transparent; + -fx-background-insets: 0; + -fx-background-radius: 2em; +} +.scroll-bar:horizontal .thumb { + -fx-background-color: rgb(211,211,211); + -fx-background-insets: 4 0 4 0; + -fx-background-radius: 2em; +} +.scroll-bar:vertical .thumb { + -fx-background-color: rgb(211,211,211); + -fx-background-insets: 0 4 0 4; + -fx-background-radius: 2em; +} +.scroll-bar:horizontal .thumb:hover, +.scroll-bar:vertical .thumb:hover { + -fx-background-color: rgb(231,231,231); +} +.scroll-bar:horizontal .thumb:pressed, +.scroll-bar:vertical .thumb:pressed { + -fx-background-color: rgb(255,255,255); +} +.scroll-bar:vertical .increment-button, .scroll-bar:vertical .decrement-button { + -fx-background-color:transparent; + -fx-background-radius: 2em; + -fx-padding: 5; +} +.scroll-bar:horizontal .increment-button, .scroll-bar:horizontal .decrement-button { + -fx-background-color:transparent; + -fx-background-radius: 2em; + -fx-padding: 5; +} +.scroll-bar:horizontal .increment-arrow { + -fx-shape: "M 0 0 L 4 8 L 8 0 Z"; + -fx-background-color: rgb(211,211,211); + -fx-padding: 0.25em; + -fx-rotate: -90; +} +.scroll-bar:vertical .increment-arrow { + -fx-background-color: rgb(211,211,211); + -fx-shape: "M 0 0 L 4 8 L 8 0 Z"; + -fx-padding: 0.25em; + -fx-rotate: 0; +} +.scroll-bar:horizontal .decrement-arrow { + -fx-background-color: rgb(211,211,211); + -fx-shape: "M 0 0 L 4 8 L 8 0 Z"; + -fx-padding: 0.25em; + -fx-rotate: 90; +} +.scroll-bar:vertical .decrement-arrow { + -fx-background-color: rgb(211,211,211); + -fx-shape: "M 0 0 L 4 8 L 8 0 Z"; + -fx-padding: 0.25em; + -fx-rotate: -180; +} +.scroll-bar:vertical:focused, +.scroll-bar:horizontal:focused { + -fx-background-color: transparent,rgb(96,96,96),rgb(96,96,96); +} + +/**************************************************************** + + Spinner + +****************************************************************/ + +.spinner { + -fx-background: -fx-darkbackground; + -fx-background-color: -fx-darkbackground; + -fx-background-radius: 5; + -fx-border-radius: 5; + -fx-border-color: transparent; +} + +.spinner .text-field { + -fx-background: -fx-darkbackground; + -fx-background-color: -fx-darkbackground; + -fx-border-radius: 0 0 0 0; + -fx-padding: 7 0 7 0; + -fx-border-color: transparent; +} + +.spinner .increment-arrow-button { + -fx-text-fill: white; + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-background-radius: 6 6 0 0; + -fx-border-radius: 6 6 0 0; + -fx-padding: 7 0 7 0; +} + +.spinner .increment-arrow { + -fx-background-color: white; +} + +.spinner .increment-arrow-button:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: -fx-highlight_border; + -fx-background-radius: 6 6 0 0; + -fx-border-radius: 6 6 0 0; +} + +.spinner .decrement-arrow-button { + -fx-text-fill: white; + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-background-radius: 0 0 6 6; + -fx-border-radius: 0 0 6 6 +} + +.spinner .decrement-arrow { + -fx-background-color: white; +} + +.spinner .decrement-arrow-button:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: -fx-highlight_border; + -fx-background-radius: 0 0 6 6; + -fx-border-radius: 0 0 6 6; +} + +/*Arrows are horizontal either side of text box*/ +.spinner.split-arrows-horizontal .increment-arrow-button { + -fx-text-fill: white; + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-border-radius: 0 6 6 0 +} + + +.spinner.split-arrows-horizontal .decrement-arrow-button { + -fx-text-fill: white; + -fx-background-color: -fx-darkbackground; + -fx-border-color: -fx-border_col; + -fx-border-radius: 6 0 0 6 + } + + .spinner.split-arrows-horizontal .increment-arrow-button:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: -fx-highlight_border; + -fx-background-radius: 0 6 6 0; + -fx-border-radius: 0 6 6 0; +} + + +.spinner.split-arrows-horizontal .decrement-arrow-button:hover { + -fx-background-color: -fx-highlight; + -fx-border-color: -fx-highlight_border; + -fx-background-radius: 6 0 0 6; + -fx-border-radius: 6 0 0 6; + } + +.spinner.split-arrows-horizontal .text-field { + -fx-border-color: -fx-border_col; + -fx-background: -fx-darkbackground; + -fx-background-color: -fx-darkbackground; + -fx-text-alignment: center; + -fx-alignment: center; +} + + +/******************************************************************************* + * * + * Tab Panes are usgly in Modena! * + * * + ******************************************************************************/ + +.tab-pane .tab-header-area .tab-header-background { + -fx-effect: null; + -fx-background-color: transparent; + /*Hack to make a line under the tab pane which goes the length ofg the header. */ + -fx-border-color: transparent transparent -fx-border_col transparent; +} + +.tab-pane .tab-header-area { + -fx-background-insets: 0, 0 0 0 0; + /* -fx-padding: 0.416667em 0.166667em 0.0em 0.833em; /* 5 2 0 10 */ + -fx-padding: 0em 0em 0.0em 0.0em; /* overriden as 5 2 0 0 */ +} + +.tab-pane +{ + -fx-tab-min-width:60px; +} + +.tab{ + -fx-background-insets: 0 1 0 1,0,0; +} + +.tab-pane .tab +{ + -fx-background-color: -fx-darkbackground-trans; + -fx-border-color: transparent transparent -fx-border_col transparent; /*Hack*/ + -fx-background-radius: 6 6 0 0; + -fx-border-radius: 6 6 0 0; +} + +.tab-pane .tab:selected +{ +/* -fx-background-color: -fx-darkbackground-trans; */ + -fx-background-color: grey; + -fx-border-color: white; + -fx-focus-color: transparent; + -fx-effect: null; +} + +.tab-pane .tab:focused +{ + -fx-focus-color: transparent; + -fx-border-color: white; + -fx-background-color: transparent; + -fx-effect: null; + +} + +.tab-pane .tab:hover +{ + -fx-focus-color: -fx-highlight_border; + -fx-border-color: -fx-highlight; + -fx-background-color: -fx-highlight; + -fx-effect: null; +} + +.tab .tab-label { + -fx-alignment: CENTER; + -fx-text-fill: white; + /*-fx-font-weight: bold;*/ +} + +.tab:selected .tab-label { + -fx-alignment: CENTER; +} + +.tab-square +{ + -fx-background-color: -fx-darkbackground-trans; + -fx-border-color: transparent transparent -fx-border_col transparent; /*Hack*/ + -fx-background-radius: 0 0 0 0; + -fx-border-radius: 0 0 0 0; +} + +.tab-square:selected +{ + -fx-background-color: -fx-darkbackground-trans; + -fx-border-color: white; + -fx-focus-color: transparent; + -fx-effect: null; +} + +.tab-square:focused +{ + -fx-focus-color: transparent; + -fx-border-color: white; + -fx-background-color: transparent; + -fx-effect: null; + +} + + + +/******************************************************************************* + * * + * Titled Pane * + * * + ******************************************************************************/ + + .titled-pane +{ +-fx-text-fill: -fx-text; +} + +.titled-pane:focused +{ +-fx-text-fill: -fx-text; +} + + .titled-pane .title +{ +-fx-background-color: -fx-darkbackground; +-fx-background-insets: 0, 1, 2; +/*-fx-background-radius: 5 5 0 0, 4 4 0 0, 3 3 0 0;*/ +-fx-background-radius: 0 0 0 0; +-fx-padding: 0.166667em 0.833333em 0.25em 0.833333em; /* 2 10 3 10 */ +} + +.titled-pane > .title > .arrow-button +{ +-fx-background-color: null; +-fx-background-insets: 0; +-fx-background-radius: 0; +-fx-padding: 0.0em 0.25em 0.0em 0.0em; /* 0 3 0 0 */ +} + +.titled-pane > .title > .arrow-button .arrow +{ +-fx-background-color: -fx-text; +-fx-background-insets: 1 0 -1 0, 0; +-fx-padding: 0.25em 0.3125em 0.25em 0.3125em; /* 3 3.75 3 3.75 */ +-fx-shape: "M 0 0 h 7 l -3.5 4 z"; +} + +.titled-pane:collapsed > .title > .arrow-button .arrow +{ +-fx-rotate: -90; +} + +.titled-pane > *.content +{ +-fx-background-color: transparent; +-fx-box-border: transparent; +-fx-background-insets: 0, 0 1 1 1; +-fx-padding: 0.167em; + } + +.titled-pane:focused > .title > .arrow-button .arrow +{ +-fx-background-color: -fx-text; +} + +/******************************************************************************* + * * + * Chart * + * * + ******************************************************************************/ + +.chart-plot-background { + -fx-background-color: -fx-darkbackground; +} + +.chart-vertical-grid-lines { + -fx-stroke: -fx-text; +} +.chart-horizontal-grid-lines { + -fx-stroke: -fx-text; +} + +.axis { + -fx-font-size: 1em; + -fx-tick-label-fill: -fx-text; +} + +.axis-label { + -fx-text-fill: -fx-text; +} + +.thin-chart .chart-series-line { +-fx-stroke-width: 2px; +} + +/******************************************************************************* + * * + * Table View * + * * + ******************************************************************************/ + .table-view { + -fx-base: -fx-darkbackground; + -fx-control-inner-background: -fx-darkbackground; + -fx-background-color: -fx-darkbackground; + -fx-table-cell-border-color: transparent; + -fx-table-header-border-color: transparent; + -fx-padding: 5; +} + +/******************************************************************************* + * * + * Text area * + * * + ******************************************************************************/ +.text-area *.content { + -fx-background-color: transparent; +} + +.text-area .scroll-pane .content{ + -fx-background-color: transparent; +} + +/******************************************************************************* + * * + * Tool tip * + * * + ******************************************************************************/ +.tooltip { + -fx-background: rgba(30,30,30); + -fx-text-fill: white; + -fx-background-color: rgba(30,30,30,0.8); + -fx-background-radius: 6px; + -fx-background-insets: 0; + -fx-padding: 0.667em 0.75em 0.667em 0.75em; /* 10px */ + -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.5) , 10, 0.0 , 0 , 3 ); + -fx-font-size: 1.5em; +} + +/******************************************************************************* + * * + * Pop over * + * * + ******************************************************************************/ + +.popover { + -fx-background-color: -fx-darkbackground2; + -fx-background-radius: 5; + -fx-border-radius: 5; +} + +.popover > .content { + -fx-background-color: -fx-darkbackground2; + -fx-background-radius: 5; + -fx-border-radius: 5; +} + +.popover > .arrow { + -fx-background-color: -fx-darkbackground2; + -fx-background-radius: 5; + -fx-border-radius: 5; +} + +/*weird way to do it but need this to colour the arrow*/ +.popover > .border { + /*-fx-stroke: linear-gradient(to bottom, rgba(0,0,0, .3), rgba(0, 0, 0, .7)) ;*/ + -fx-stroke-width: 0.5; + -fx-fill: -fx-darkbackground; /* instead -fx-background-color */ +} + +/******************************************************************************* + * * + * ikonli icons * + * * + ******************************************************************************/ + +.ikonli-font-icon { + /*-fx-text-fill: -fx-icon_col;*/ + -fx-icon-color: -fx-icon_col; + -fx-icon-size: 17; +} + + +#module-pane .ikonli-font-icon { + -fx-icon-color: black; +} + + diff --git a/target/classes/Resources/d3sensordefs.csv b/target/classes/Resources/d3sensordefs.csv new file mode 100644 index 00000000..05fa8e05 --- /dev/null +++ b/target/classes/Resources/d3sensordefs.csv @@ -0,0 +1,60 @@ +"number","name","cal","qualifier1","qualifier2","description","comment" +4353,"MAG_HMC1043_MUX_Xp","mag","x","p","multiplexed magnetometer X axis +ve", +4354,"MAG_HMC1043_MUX_Yp","mag","y","p","multiplexed magnetometer Y axis +ve", +4355,"MAG_HMC1043_MUX_Zp","mag","z","p","multiplexed magnetometer Z axis +ve", +4369,"MAG_HMC1043_MUX_Xm","mag","x","m","multiplexed magnetometer X axis -ve", +4370,"MAG_HMC1043_MUX_Ym","mag","y","m","multiplexed magnetometer Y axis -ve", +4371,"MAG_HMC1043_MUX_Zm","mag","z","m","multiplexed magnetometer Z axis -ve", +4609,"ACC_KXSC7_1050_X","acc","x",,"sensor/audio board accelerometer X axis", +4610,"ACC_KXSC7_1050_Y","acc","y",,"sensor/audio board accelerometer Y axis", +4611,"ACC_KXSC7_1050_Z","acc","z",,"sensor/audio board accelerometer Z axis", +4865,"PRES_K1_10B_INA333","press",,,"pressure sensor 10 bar", +4866,"PRES_K1_20B_INA333","press",,,"pressure sensor 20 bar", +4867,"PRES_K1_50B_INA333","press",,,"pressure sensor 50 bar", +4868,"PRES_K1_100B_INA333","press",,,"pressure sensor 100 bar", +4869,"PRES_K1_200B_INA333","press",,,"pressure sensor 200 bar", +8705,"GACC_KXSC7_1050_X","gacc","x","g","gyro board accelerometer X axis", +8706,"GACC_KXSC7_1050_Y","gacc","y","g","gyro board accelerometer Y axis", +8707,"GACC_KXSC7_1050_Z","gacc","z","g","gyro board accelerometer Z axis", +9217,"GYRO_IDG500_X","gyro","x",,"gyroscope X axis", +9218,"GYRO_IDG500_Y","gyro","y",,"gyroscope Y axis", +9219,"GYRO_IDG500_Z","gyro","z",,"gyroscope Z axis", +5121,"NTC_B573V2_22k","tempr","ntc",,"negative temperature coefficient thermistor 22k", +5377,"ECG_DG120_CH1","ecg",1,,"differential ECG sensor gain of 120"," ch. 1" +5378,"ECG_DG120_CH2","ecg",2,,"differential ECG sensor gain of 120"," ch. 2" +5633,"PBRI_K1p_DIV2","press.bridge","p","div2","pressure sensor +ve bridge voltage divided-by-2", +5634,"PBRI_K1m_150","press.bridge","m",150,"pressure sensor -ve bridge voltage 150 ohms sensing resistor", +5635,"PBRI_K1m_200","press.bridge","m",200,"pressure sensor -ve bridge voltage 200 ohms sensing resistor", +5636,"PBRI_K1m_120","press.bridge","m",120,"pressure sensor -ve bridge voltage 120 ohms sensing resistor", +5889,"MBRI_HMC1043p_DIV2","mag.bridge","p","div2","magnetometer +ve bridge voltage divided-by-2", +5890,"MBRI_HMC1043m_15","mag.bridge","m",15,"magnetometer -ve bridge voltage 15 ohms sensing resistor", +5891,"MBRI_HMC1043m_20","mag.bridge","m",20,"magnetometer -ve bridge voltage 20 ohms sensing resistor", +6145,"MAG_TST_0mV","mag.gain",0,,"multiplexed magnetometer preamp 0V input", +6146,"MAG_TST_5mV","mag.gain",0.01,,"multiplexed magnetometer preamp 5mV input", +6147,"MAG_TST_3mV","mag.gain",0,,"multiplexed magnetometer preamp 3mV input", +6401,"CAL_AD5621_50Hz","cal",,,"calibration signal DAC"," 50 Hz LPF" +6657,"VBS_DIV2","batt","div2",,"battery voltage measurement divided-by-2", +6658,"EXT_BUFF_CH1","ext",1,,"buffered external input ch. 1", +6659,"EXT_BUFF_CH2","ext",2,,"buffered external input ch. 2", +9729,"GREF_IDG500_XY","gyro.ref","g","xy","gyroscope reference voltage X-Y axis", +9731,"GREF_IDG500_Z","gyro.ref","g","z","gyroscope reference voltage Z axis", +10241,"GTH_IDG500_XY","gyro.tempr","g","xy","gyroscope thermistor X-Y axis", +10243,"GTH_IDG500_Z","gyro.tempr","g","z","gyroscope thermistor Z axis", +10753,"GVBS_DIV2","batt","div2","g","gyroscope board battery voltage measurement divided-by-2", +12801,"EXT_ACC_KXSC7_1050_X","xacc","x","ext","external accelerometer"," x axis" +12802,"EXT_ACC_KXSC7_1050_Y","xacc","y","ext","external accelerometer"," y axis" +12803,"EXT_ACC_KXSC7_1050_Z","xacc","z","ext","external accelerometer"," z axis" +37377,"D2_AX","acc","x","d2","DTAG2 accelerometer X axis", +37378,"D2_AY","acc","y","d2","DTAG2 accelerometer Y axis", +37379,"D2_AZ","acc","z","d2","DTAG2 accelerometer Z axis", +37121,"D2_MX","mag","x","d2","DTAG2 magnetometer X axis", +37122,"D2_MY","mag","y","d2","DTAG2 magnetometer Y axis", +37123,"D2_MZ","mag","z","d2","DTAG2 magnetometer Z axis", +37633,"D2_PRESS","press","d2",,"DTAG2 pressure sensor Keller TAB1", +37889,"D2_TEMP","tempr","ntc","d2","DTAG2 NTC temperature sensor", +39428,"D2_SWS","sws","d2",,"DTAG2 salt water switch", +39425,"D2_VB","batt","d2",,"DTAG2 battery voltage", +38657,"D2_MB","mag.bridge","d2",,"DTAG2 magnetometer bridge voltage", +38401,"D2_PB","press.bridge","d2",,"DTAG2 pressure bridge voltage", +39321,"DM_PRES_K1_200B","press",,,"Legacy pressure sensor", +39322,"DM_TEMPR_LTC2499_3","tempr",,,"Legacy temperature sensor", diff --git a/target/classes/Resources/delete.png b/target/classes/Resources/delete.png new file mode 100644 index 00000000..9d61fb8e Binary files /dev/null and b/target/classes/Resources/delete.png differ diff --git a/target/classes/Resources/deletewhite.png b/target/classes/Resources/deletewhite.png new file mode 100644 index 00000000..d98a280d Binary files /dev/null and b/target/classes/Resources/deletewhite.png differ diff --git a/target/classes/Resources/desktop.ini b/target/classes/Resources/desktop.ini new file mode 100644 index 00000000..d957fd18 --- /dev/null +++ b/target/classes/Resources/desktop.ini @@ -0,0 +1,4 @@ +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/target/classes/Resources/doubleBackArrow.png b/target/classes/Resources/doubleBackArrow.png new file mode 100644 index 00000000..2ca8506c Binary files /dev/null and b/target/classes/Resources/doubleBackArrow.png differ diff --git a/target/classes/Resources/doubleForwardArrow.png b/target/classes/Resources/doubleForwardArrow.png new file mode 100644 index 00000000..b67a23c9 Binary files /dev/null and b/target/classes/Resources/doubleForwardArrow.png differ diff --git a/target/classes/Resources/downArrow.png b/target/classes/Resources/downArrow.png new file mode 100644 index 00000000..3498536b Binary files /dev/null and b/target/classes/Resources/downArrow.png differ diff --git a/target/classes/Resources/downLeftArrow.png b/target/classes/Resources/downLeftArrow.png new file mode 100644 index 00000000..a174a0e8 Binary files /dev/null and b/target/classes/Resources/downLeftArrow.png differ diff --git a/target/classes/Resources/downRightArrow.png b/target/classes/Resources/downRightArrow.png new file mode 100644 index 00000000..dbc3357c Binary files /dev/null and b/target/classes/Resources/downRightArrow.png differ diff --git a/target/classes/Resources/exampleSounds/DUB_20200623_000152_885.wav b/target/classes/Resources/exampleSounds/DUB_20200623_000152_885.wav new file mode 100644 index 00000000..4631ec08 Binary files /dev/null and b/target/classes/Resources/exampleSounds/DUB_20200623_000152_885.wav differ diff --git a/target/classes/Resources/exampleSounds/southern_right_whale_clip1.wav b/target/classes/Resources/exampleSounds/southern_right_whale_clip1.wav new file mode 100644 index 00000000..888a3bb1 Binary files /dev/null and b/target/classes/Resources/exampleSounds/southern_right_whale_clip1.wav differ diff --git a/target/classes/Resources/exampleSounds/southern_right_whale_clip2.wav b/target/classes/Resources/exampleSounds/southern_right_whale_clip2.wav new file mode 100644 index 00000000..fac2458f Binary files /dev/null and b/target/classes/Resources/exampleSounds/southern_right_whale_clip2.wav differ diff --git a/target/classes/Resources/forwardArrow.png b/target/classes/Resources/forwardArrow.png new file mode 100644 index 00000000..65c27848 Binary files /dev/null and b/target/classes/Resources/forwardArrow.png differ diff --git a/target/classes/Resources/gplicon.png b/target/classes/Resources/gplicon.png new file mode 100644 index 00000000..4247b4c9 Binary files /dev/null and b/target/classes/Resources/gplicon.png differ diff --git a/target/classes/Resources/helpIcon.png b/target/classes/Resources/helpIcon.png new file mode 100644 index 00000000..dc7b7710 Binary files /dev/null and b/target/classes/Resources/helpIcon.png differ diff --git a/target/classes/Resources/ledOff.png b/target/classes/Resources/ledOff.png new file mode 100644 index 00000000..eb17bfa7 Binary files /dev/null and b/target/classes/Resources/ledOff.png differ diff --git a/target/classes/Resources/ledOn.png b/target/classes/Resources/ledOn.png new file mode 100644 index 00000000..187ce98b Binary files /dev/null and b/target/classes/Resources/ledOn.png differ diff --git a/target/classes/Resources/ledblue.png b/target/classes/Resources/ledblue.png new file mode 100644 index 00000000..18b2eb52 Binary files /dev/null and b/target/classes/Resources/ledblue.png differ diff --git a/target/classes/Resources/ledgreen.png b/target/classes/Resources/ledgreen.png new file mode 100644 index 00000000..e8846d45 Binary files /dev/null and b/target/classes/Resources/ledgreen.png differ diff --git a/target/classes/Resources/ledmagenta.png b/target/classes/Resources/ledmagenta.png new file mode 100644 index 00000000..987aed06 Binary files /dev/null and b/target/classes/Resources/ledmagenta.png differ diff --git a/target/classes/Resources/ledorange.png b/target/classes/Resources/ledorange.png new file mode 100644 index 00000000..d75902b9 Binary files /dev/null and b/target/classes/Resources/ledorange.png differ diff --git a/target/classes/Resources/ledviolet.png b/target/classes/Resources/ledviolet.png new file mode 100644 index 00000000..97b4a2bc Binary files /dev/null and b/target/classes/Resources/ledviolet.png differ diff --git a/target/classes/Resources/ledwhite.png b/target/classes/Resources/ledwhite.png new file mode 100644 index 00000000..592f4ba5 Binary files /dev/null and b/target/classes/Resources/ledwhite.png differ diff --git a/target/classes/Resources/ledyellow.png b/target/classes/Resources/ledyellow.png new file mode 100644 index 00000000..e92ebbc5 Binary files /dev/null and b/target/classes/Resources/ledyellow.png differ diff --git a/target/classes/Resources/leftArrow.png b/target/classes/Resources/leftArrow.png new file mode 100644 index 00000000..2198ee51 Binary files /dev/null and b/target/classes/Resources/leftArrow.png differ diff --git a/target/classes/Resources/matlab_icon.svg b/target/classes/Resources/matlab_icon.svg new file mode 100644 index 00000000..3a47c3db --- /dev/null +++ b/target/classes/Resources/matlab_icon.svg @@ -0,0 +1,7 @@ + + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + \ No newline at end of file diff --git a/target/classes/Resources/matlab_icon2.svg b/target/classes/Resources/matlab_icon2.svg new file mode 100644 index 00000000..c84e59c4 --- /dev/null +++ b/target/classes/Resources/matlab_icon2.svg @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/target/classes/Resources/modules/Thumbs.db b/target/classes/Resources/modules/Thumbs.db new file mode 100644 index 00000000..a0395e8f Binary files /dev/null and b/target/classes/Resources/modules/Thumbs.db differ diff --git a/target/classes/Resources/modules/aquisition.png b/target/classes/Resources/modules/aquisition.png new file mode 100644 index 00000000..382f6cbb Binary files /dev/null and b/target/classes/Resources/modules/aquisition.png differ diff --git a/target/classes/Resources/modules/aquisition.xcf b/target/classes/Resources/modules/aquisition.xcf new file mode 100644 index 00000000..7e23d776 Binary files /dev/null and b/target/classes/Resources/modules/aquisition.xcf differ diff --git a/target/classes/Resources/modules/array_manager.png b/target/classes/Resources/modules/array_manager.png new file mode 100644 index 00000000..bd1aae92 Binary files /dev/null and b/target/classes/Resources/modules/array_manager.png differ diff --git a/target/classes/Resources/modules/array_manager.xcf b/target/classes/Resources/modules/array_manager.xcf new file mode 100644 index 00000000..7d1af53d Binary files /dev/null and b/target/classes/Resources/modules/array_manager.xcf differ diff --git a/target/classes/Resources/modules/binaryFiles.png b/target/classes/Resources/modules/binaryFiles.png new file mode 100644 index 00000000..4ca7a889 Binary files /dev/null and b/target/classes/Resources/modules/binaryFiles.png differ diff --git a/target/classes/Resources/modules/binaryFiles.xcf b/target/classes/Resources/modules/binaryFiles.xcf new file mode 100644 index 00000000..5b2dd247 Binary files /dev/null and b/target/classes/Resources/modules/binaryFiles.xcf differ diff --git a/target/classes/Resources/modules/click.png b/target/classes/Resources/modules/click.png new file mode 100644 index 00000000..91cf7f49 Binary files /dev/null and b/target/classes/Resources/modules/click.png differ diff --git a/target/classes/Resources/modules/click.xcf b/target/classes/Resources/modules/click.xcf new file mode 100644 index 00000000..d80f7b2a Binary files /dev/null and b/target/classes/Resources/modules/click.xcf differ diff --git a/target/classes/Resources/modules/clicktrain.png b/target/classes/Resources/modules/clicktrain.png new file mode 100644 index 00000000..9560bf1e Binary files /dev/null and b/target/classes/Resources/modules/clicktrain.png differ diff --git a/target/classes/Resources/modules/clicktrain.xcf b/target/classes/Resources/modules/clicktrain.xcf new file mode 100644 index 00000000..a56495e8 Binary files /dev/null and b/target/classes/Resources/modules/clicktrain.xcf differ diff --git a/target/classes/Resources/modules/dataMap.png b/target/classes/Resources/modules/dataMap.png new file mode 100644 index 00000000..3d1c1817 Binary files /dev/null and b/target/classes/Resources/modules/dataMap.png differ diff --git a/target/classes/Resources/modules/dataMap.xcf b/target/classes/Resources/modules/dataMap.xcf new file mode 100644 index 00000000..40e2abbb Binary files /dev/null and b/target/classes/Resources/modules/dataMap.xcf differ diff --git a/target/classes/Resources/modules/database.png b/target/classes/Resources/modules/database.png new file mode 100644 index 00000000..eb857474 Binary files /dev/null and b/target/classes/Resources/modules/database.png differ diff --git a/target/classes/Resources/modules/database.xcf b/target/classes/Resources/modules/database.xcf new file mode 100644 index 00000000..6daf866f Binary files /dev/null and b/target/classes/Resources/modules/database.xcf differ diff --git a/target/classes/Resources/modules/detectionDisplay.png b/target/classes/Resources/modules/detectionDisplay.png new file mode 100644 index 00000000..3594749c Binary files /dev/null and b/target/classes/Resources/modules/detectionDisplay.png differ diff --git a/target/classes/Resources/modules/detectionDisplay.xcf b/target/classes/Resources/modules/detectionDisplay.xcf new file mode 100644 index 00000000..fe7968f3 Binary files /dev/null and b/target/classes/Resources/modules/detectionDisplay.xcf differ diff --git a/target/classes/Resources/modules/fft.png b/target/classes/Resources/modules/fft.png new file mode 100644 index 00000000..141429eb Binary files /dev/null and b/target/classes/Resources/modules/fft.png differ diff --git a/target/classes/Resources/modules/fft.xcf b/target/classes/Resources/modules/fft.xcf new file mode 100644 index 00000000..68bf43fc Binary files /dev/null and b/target/classes/Resources/modules/fft.xcf differ diff --git a/target/classes/Resources/modules/filterdNoiseMeasurement.png b/target/classes/Resources/modules/filterdNoiseMeasurement.png new file mode 100644 index 00000000..601e7392 Binary files /dev/null and b/target/classes/Resources/modules/filterdNoiseMeasurement.png differ diff --git a/target/classes/Resources/modules/filterdNoiseMeasurement.xcf b/target/classes/Resources/modules/filterdNoiseMeasurement.xcf new file mode 100644 index 00000000..1cb8c604 Binary files /dev/null and b/target/classes/Resources/modules/filterdNoiseMeasurement.xcf differ diff --git a/target/classes/Resources/modules/filterdNoiseMeasurementBank.png b/target/classes/Resources/modules/filterdNoiseMeasurementBank.png new file mode 100644 index 00000000..53797b03 Binary files /dev/null and b/target/classes/Resources/modules/filterdNoiseMeasurementBank.png differ diff --git a/target/classes/Resources/modules/filterdNoiseMeasurementBank.xcf b/target/classes/Resources/modules/filterdNoiseMeasurementBank.xcf new file mode 100644 index 00000000..5c48c607 Binary files /dev/null and b/target/classes/Resources/modules/filterdNoiseMeasurementBank.xcf differ diff --git a/target/classes/Resources/modules/filters.png b/target/classes/Resources/modules/filters.png new file mode 100644 index 00000000..fb6bcfd9 Binary files /dev/null and b/target/classes/Resources/modules/filters.png differ diff --git a/target/classes/Resources/modules/filters.xcf b/target/classes/Resources/modules/filters.xcf new file mode 100644 index 00000000..4914187e Binary files /dev/null and b/target/classes/Resources/modules/filters.xcf differ diff --git a/target/classes/Resources/modules/mapGlobe.png b/target/classes/Resources/modules/mapGlobe.png new file mode 100644 index 00000000..5407b7aa Binary files /dev/null and b/target/classes/Resources/modules/mapGlobe.png differ diff --git a/target/classes/Resources/modules/mapGlobe.xcf b/target/classes/Resources/modules/mapGlobe.xcf new file mode 100644 index 00000000..49e4cb99 Binary files /dev/null and b/target/classes/Resources/modules/mapGlobe.xcf differ diff --git a/target/classes/Resources/modules/noun_Deep Learning_2486374.svg b/target/classes/Resources/modules/noun_Deep Learning_2486374.svg new file mode 100644 index 00000000..04aa7c6b --- /dev/null +++ b/target/classes/Resources/modules/noun_Deep Learning_2486374.svg @@ -0,0 +1 @@ +Created by Becrisfrom the Noun Project \ No newline at end of file diff --git a/target/classes/Resources/modules/noun_Soundwave_1786340.svg b/target/classes/Resources/modules/noun_Soundwave_1786340.svg new file mode 100644 index 00000000..ddbfbfde --- /dev/null +++ b/target/classes/Resources/modules/noun_Soundwave_1786340.svg @@ -0,0 +1 @@ +Created by Maxim Kulikovfrom the Noun Project \ No newline at end of file diff --git a/target/classes/Resources/modules/playback.png b/target/classes/Resources/modules/playback.png new file mode 100644 index 00000000..0f5e71b7 Binary files /dev/null and b/target/classes/Resources/modules/playback.png differ diff --git a/target/classes/Resources/modules/playback.xcf b/target/classes/Resources/modules/playback.xcf new file mode 100644 index 00000000..79af24df Binary files /dev/null and b/target/classes/Resources/modules/playback.xcf differ diff --git a/target/classes/Resources/modules/recorder.png b/target/classes/Resources/modules/recorder.png new file mode 100644 index 00000000..f4a087ae Binary files /dev/null and b/target/classes/Resources/modules/recorder.png differ diff --git a/target/classes/Resources/modules/recorder.xcf b/target/classes/Resources/modules/recorder.xcf new file mode 100644 index 00000000..b0a1b7e2 Binary files /dev/null and b/target/classes/Resources/modules/recorder.xcf differ diff --git a/target/classes/Resources/modules/timeDisplay.png b/target/classes/Resources/modules/timeDisplay.png new file mode 100644 index 00000000..811b7eec Binary files /dev/null and b/target/classes/Resources/modules/timeDisplay.png differ diff --git a/target/classes/Resources/modules/timeDisplay.xcf b/target/classes/Resources/modules/timeDisplay.xcf new file mode 100644 index 00000000..72888763 Binary files /dev/null and b/target/classes/Resources/modules/timeDisplay.xcf differ diff --git a/target/classes/Resources/modules/whistles.png b/target/classes/Resources/modules/whistles.png new file mode 100644 index 00000000..1b5bb5a5 Binary files /dev/null and b/target/classes/Resources/modules/whistles.png differ diff --git a/target/classes/Resources/modules/whistles.xcf b/target/classes/Resources/modules/whistles.xcf new file mode 100644 index 00000000..b722bcde Binary files /dev/null and b/target/classes/Resources/modules/whistles.xcf differ diff --git a/target/classes/Resources/modules/whostles.xcf b/target/classes/Resources/modules/whostles.xcf new file mode 100644 index 00000000..69c5c537 Binary files /dev/null and b/target/classes/Resources/modules/whostles.xcf differ diff --git a/target/classes/Resources/next.png b/target/classes/Resources/next.png new file mode 100644 index 00000000..5288770a Binary files /dev/null and b/target/classes/Resources/next.png differ diff --git a/target/classes/Resources/open.png b/target/classes/Resources/open.png new file mode 100644 index 00000000..8c071f1f Binary files /dev/null and b/target/classes/Resources/open.png differ diff --git a/target/classes/Resources/pamHelpStylesheet.css b/target/classes/Resources/pamHelpStylesheet.css new file mode 100644 index 00000000..2e857bbd --- /dev/null +++ b/target/classes/Resources/pamHelpStylesheet.css @@ -0,0 +1,34 @@ +BODY { + BACKGROUND-COLOR: FFFFFF +} +H1 { + FONT-FAMILY: Arial; + FONT-SIZE: 21; + COLOR: #6698FE; + BACKGROUND-COLOR: #DCFEEC; + margin-bottom: 0 +} +H2 { + FONT-FAMILY: Arial; + FONT-SIZE: 17; + COLOR: #6698FE; + BACKGROUND-COLOR: #CBDAEB; + margin-top: 0; +} +H3 { + FONT-FAMILY: Arial; + FONT-SIZE: 15; +} + +H4 { + FONT-FAMILY: Arial; + FONT-SIZE: 14; +} + +p { + FONT-FAMILY: Arial; + FONT-SIZE: 14; + margin-top: 10; + margin-left: 0; + margin-bottom: 0 +} diff --git a/target/classes/Resources/pamguardIcon.bmp b/target/classes/Resources/pamguardIcon.bmp new file mode 100644 index 00000000..0dd1f6ff Binary files /dev/null and b/target/classes/Resources/pamguardIcon.bmp differ diff --git a/target/classes/Resources/pamguardIcon.png b/target/classes/Resources/pamguardIcon.png new file mode 100644 index 00000000..024c4988 Binary files /dev/null and b/target/classes/Resources/pamguardIcon.png differ diff --git a/target/classes/Resources/pamguardIconM.png b/target/classes/Resources/pamguardIconM.png new file mode 100644 index 00000000..024c4988 Binary files /dev/null and b/target/classes/Resources/pamguardIconM.png differ diff --git a/target/classes/Resources/pamguardIconNR.png b/target/classes/Resources/pamguardIconNR.png new file mode 100644 index 00000000..57c45093 Binary files /dev/null and b/target/classes/Resources/pamguardIconNR.png differ diff --git a/target/classes/Resources/pamguardIconV.png b/target/classes/Resources/pamguardIconV.png new file mode 100644 index 00000000..024c4988 Binary files /dev/null and b/target/classes/Resources/pamguardIconV.png differ diff --git a/target/classes/Resources/pamguardModelIcon.png b/target/classes/Resources/pamguardModelIcon.png new file mode 100644 index 00000000..5fab703a Binary files /dev/null and b/target/classes/Resources/pamguardModelIcon.png differ diff --git a/target/classes/Resources/pamguardSplash.png b/target/classes/Resources/pamguardSplash.png new file mode 100644 index 00000000..465666d7 Binary files /dev/null and b/target/classes/Resources/pamguardSplash.png differ diff --git a/target/classes/Resources/pamguardSplash05Beta.png b/target/classes/Resources/pamguardSplash05Beta.png new file mode 100644 index 00000000..15a5c8ce Binary files /dev/null and b/target/classes/Resources/pamguardSplash05Beta.png differ diff --git a/target/classes/Resources/pamguardSplash10Beta.png b/target/classes/Resources/pamguardSplash10Beta.png new file mode 100644 index 00000000..f7322798 Binary files /dev/null and b/target/classes/Resources/pamguardSplash10Beta.png differ diff --git a/target/classes/Resources/pamguardSplash11Beta.PNG b/target/classes/Resources/pamguardSplash11Beta.PNG new file mode 100644 index 00000000..3e3cf1af Binary files /dev/null and b/target/classes/Resources/pamguardSplash11Beta.PNG differ diff --git a/target/classes/Resources/pgBlankSplashOld.png b/target/classes/Resources/pgBlankSplashOld.png new file mode 100644 index 00000000..0baa2fe3 Binary files /dev/null and b/target/classes/Resources/pgBlankSplashOld.png differ diff --git a/target/classes/Resources/pgSplash.png b/target/classes/Resources/pgSplash.png new file mode 100644 index 00000000..e1b89fb8 Binary files /dev/null and b/target/classes/Resources/pgSplash.png differ diff --git a/target/classes/Resources/pgSplash0.4Beta.png b/target/classes/Resources/pgSplash0.4Beta.png new file mode 100644 index 00000000..8bba92bf Binary files /dev/null and b/target/classes/Resources/pgSplash0.4Beta.png differ diff --git a/target/classes/Resources/pinbutton.png b/target/classes/Resources/pinbutton.png new file mode 100644 index 00000000..ebe42bbd Binary files /dev/null and b/target/classes/Resources/pinbutton.png differ diff --git a/target/classes/Resources/pinbuttonwhite.png b/target/classes/Resources/pinbuttonwhite.png new file mode 100644 index 00000000..a53cff8b Binary files /dev/null and b/target/classes/Resources/pinbuttonwhite.png differ diff --git a/target/classes/Resources/playPause.png b/target/classes/Resources/playPause.png new file mode 100644 index 00000000..822d78db Binary files /dev/null and b/target/classes/Resources/playPause.png differ diff --git a/target/classes/Resources/playStart.png b/target/classes/Resources/playStart.png new file mode 100644 index 00000000..01e81bf1 Binary files /dev/null and b/target/classes/Resources/playStart.png differ diff --git a/target/classes/Resources/playbackStop.png b/target/classes/Resources/playbackStop.png new file mode 100644 index 00000000..0712757d Binary files /dev/null and b/target/classes/Resources/playbackStop.png differ diff --git a/target/classes/Resources/plugin.xml b/target/classes/Resources/plugin.xml new file mode 100644 index 00000000..dc33373e --- /dev/null +++ b/target/classes/Resources/plugin.xml @@ -0,0 +1,13 @@ + + + + Some Unit + + Doug Gillespie + 1.0 + + ClickDetection + 0 + 0 + + diff --git a/target/classes/Resources/plugin.xsd b/target/classes/Resources/plugin.xsd new file mode 100644 index 00000000..0d0d84f1 --- /dev/null +++ b/target/classes/Resources/plugin.xsd @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/Resources/previous.png b/target/classes/Resources/previous.png new file mode 100644 index 00000000..4a4e514e Binary files /dev/null and b/target/classes/Resources/previous.png differ diff --git a/target/classes/Resources/prog_R_white.png b/target/classes/Resources/prog_R_white.png new file mode 100644 index 00000000..0aeebfd6 Binary files /dev/null and b/target/classes/Resources/prog_R_white.png differ diff --git a/target/classes/Resources/prog_matlab.png b/target/classes/Resources/prog_matlab.png new file mode 100644 index 00000000..d439603b Binary files /dev/null and b/target/classes/Resources/prog_matlab.png differ diff --git a/target/classes/Resources/prog_matlab_white.png b/target/classes/Resources/prog_matlab_white.png new file mode 100644 index 00000000..1c78d00c Binary files /dev/null and b/target/classes/Resources/prog_matlab_white.png differ diff --git a/target/classes/Resources/r-project.svg b/target/classes/Resources/r-project.svg new file mode 100644 index 00000000..c053ac1a --- /dev/null +++ b/target/classes/Resources/r-project.svg @@ -0,0 +1,13 @@ + + + + + + + diff --git a/target/classes/Resources/reanalyseClicks.png b/target/classes/Resources/reanalyseClicks.png new file mode 100644 index 00000000..4e52672c Binary files /dev/null and b/target/classes/Resources/reanalyseClicks.png differ diff --git a/target/classes/Resources/recordStart.png b/target/classes/Resources/recordStart.png new file mode 100644 index 00000000..7d07b790 Binary files /dev/null and b/target/classes/Resources/recordStart.png differ diff --git a/target/classes/Resources/redHelpIcon.png b/target/classes/Resources/redHelpIcon.png new file mode 100644 index 00000000..b1f12b1a Binary files /dev/null and b/target/classes/Resources/redHelpIcon.png differ diff --git a/target/classes/Resources/rightArrow.png b/target/classes/Resources/rightArrow.png new file mode 100644 index 00000000..64798d83 Binary files /dev/null and b/target/classes/Resources/rightArrow.png differ diff --git a/target/classes/Resources/rotate_white.png b/target/classes/Resources/rotate_white.png new file mode 100644 index 00000000..1b13009c Binary files /dev/null and b/target/classes/Resources/rotate_white.png differ diff --git a/target/classes/Resources/save.png b/target/classes/Resources/save.png new file mode 100644 index 00000000..46e5e207 Binary files /dev/null and b/target/classes/Resources/save.png differ diff --git a/target/classes/Resources/searchIcon.png b/target/classes/Resources/searchIcon.png new file mode 100644 index 00000000..6c036ec4 Binary files /dev/null and b/target/classes/Resources/searchIcon.png differ diff --git a/target/classes/Resources/selectIcon.png b/target/classes/Resources/selectIcon.png new file mode 100644 index 00000000..a11c3531 Binary files /dev/null and b/target/classes/Resources/selectIcon.png differ diff --git a/target/classes/Resources/simMotionRewind.png b/target/classes/Resources/simMotionRewind.png new file mode 100644 index 00000000..044eff52 Binary files /dev/null and b/target/classes/Resources/simMotionRewind.png differ diff --git a/target/classes/Resources/simMotionStart.png b/target/classes/Resources/simMotionStart.png new file mode 100644 index 00000000..d7492737 Binary files /dev/null and b/target/classes/Resources/simMotionStart.png differ diff --git a/target/classes/Resources/simMotionStop.png b/target/classes/Resources/simMotionStop.png new file mode 100644 index 00000000..fe7d3285 Binary files /dev/null and b/target/classes/Resources/simMotionStop.png differ diff --git a/target/classes/Resources/simulatorSoundOff.png b/target/classes/Resources/simulatorSoundOff.png new file mode 100644 index 00000000..24947f40 Binary files /dev/null and b/target/classes/Resources/simulatorSoundOff.png differ diff --git a/target/classes/Resources/simulatorSoundOn.png b/target/classes/Resources/simulatorSoundOn.png new file mode 100644 index 00000000..68585a90 Binary files /dev/null and b/target/classes/Resources/simulatorSoundOn.png differ diff --git a/target/classes/Resources/singleDownArrow.png b/target/classes/Resources/singleDownArrow.png new file mode 100644 index 00000000..7a990cfb Binary files /dev/null and b/target/classes/Resources/singleDownArrow.png differ diff --git a/target/classes/Resources/splash1.gif b/target/classes/Resources/splash1.gif new file mode 100644 index 00000000..48bf3b8f Binary files /dev/null and b/target/classes/Resources/splash1.gif differ diff --git a/target/classes/Resources/tdSpectrogramIcon.png b/target/classes/Resources/tdSpectrogramIcon.png new file mode 100644 index 00000000..1f406bc9 Binary files /dev/null and b/target/classes/Resources/tdSpectrogramIcon.png differ diff --git a/target/classes/Resources/terminal.png b/target/classes/Resources/terminal.png new file mode 100644 index 00000000..f9fd40c8 Binary files /dev/null and b/target/classes/Resources/terminal.png differ diff --git a/target/classes/Resources/topic.gif b/target/classes/Resources/topic.gif new file mode 100644 index 00000000..ffce84c1 Binary files /dev/null and b/target/classes/Resources/topic.gif differ diff --git a/target/classes/Resources/upArrow.png b/target/classes/Resources/upArrow.png new file mode 100644 index 00000000..5165cafc Binary files /dev/null and b/target/classes/Resources/upArrow.png differ diff --git a/target/classes/Resources/upLeftArrow.png b/target/classes/Resources/upLeftArrow.png new file mode 100644 index 00000000..27c0b9a8 Binary files /dev/null and b/target/classes/Resources/upLeftArrow.png differ diff --git a/target/classes/Resources/upRightArrow.png b/target/classes/Resources/upRightArrow.png new file mode 100644 index 00000000..0431618e Binary files /dev/null and b/target/classes/Resources/upRightArrow.png differ diff --git a/target/classes/Resources/whistles.png b/target/classes/Resources/whistles.png new file mode 100644 index 00000000..346642ce Binary files /dev/null and b/target/classes/Resources/whistles.png differ diff --git a/target/classes/Resources/zoomIn.png b/target/classes/Resources/zoomIn.png new file mode 100644 index 00000000..70fce61a Binary files /dev/null and b/target/classes/Resources/zoomIn.png differ diff --git a/target/classes/Resources/zoomOut.png b/target/classes/Resources/zoomOut.png new file mode 100644 index 00000000..768b1157 Binary files /dev/null and b/target/classes/Resources/zoomOut.png differ diff --git a/target/classes/Spectrogram/Thumbs.db b/target/classes/Spectrogram/Thumbs.db new file mode 100644 index 00000000..273d170e Binary files /dev/null and b/target/classes/Spectrogram/Thumbs.db differ diff --git a/target/classes/Spectrogram/spectrogram.ico b/target/classes/Spectrogram/spectrogram.ico new file mode 100644 index 00000000..9b256f31 Binary files /dev/null and b/target/classes/Spectrogram/spectrogram.ico differ diff --git a/target/classes/alfa/help/doc/ALFAOnePageHelp.html b/target/classes/alfa/help/doc/ALFAOnePageHelp.html new file mode 100644 index 00000000..7724d739 --- /dev/null +++ b/target/classes/alfa/help/doc/ALFAOnePageHelp.html @@ -0,0 +1,11 @@ + + + + +ALFA Help Page + + +

this is a page of help text

+ + + \ No newline at end of file diff --git a/target/classes/books/BinaryFileStructure.html b/target/classes/books/BinaryFileStructure.html new file mode 100644 index 00000000..e77abb42 --- /dev/null +++ b/target/classes/books/BinaryFileStructure.html @@ -0,0 +1,1679 @@ + + + + + +Binary file structure for PAMGUARD detector output + + + + + + +
+ +

Binary file structure for PAMGUARD detector +output.

+ +

Douglas Gillespie, 2010

+ +

1        +Introduction

+ +

The primary storage site for PAMGUARD +output data is a relational database (currently either MS Access or MySQL +although other types may be added in the future).

+ +

Pre 2010, the only other storage +solutions comes from the click detector which writes binary files in the +RainbowClick (*.clk) file format since click data is often additionally +processed using RainbowClick offline. Over the next year or so, this offline +nalysis functionality will be added to PAMGUARD, making RainbowClick redundant. +Long term support for the .clk format is therefore not required.

+ +

Current annoyances are

+ +

1.     +The database is not suitable for storage of +variable record length data (e.g. a snip of click waveform as used by +RainbowClick or the time/amplitude/frequency contour of a whistle)

+ +

2.     +The RainbowClick file binary format is awful +works OK from C, but is a nightmare in Java and is not practical to evolve.

+ +

3.     +The click files need to be written with a random +access file writer which is more complicated than a simple data stream output +(most Java output types)

+ +

4.     +Databases often have limited size

+ +

Therefore:

+ +

1.     +We need a replacement for the .clk file format.

+ +

2.     +We need something similar for other PAMGUARD +output tasks.

+ +

Therefore we +need some new binary format storage solution which can be used by many +different PAMGUARD modules for storing detector (and other) data.

+ +

2        +Binary storage options

+ +

Java serialisation: Fast and easy to +write out Java objects but cannot open these files with anything but Java (e.g. +could not write a Matlab function to access the data).

+ +

Pure binary storage (like .clk files) : +Need to translate data from each stored object from its Java form into a byte +array prior to storage and convert back the other way afterwards. However, data +would be readable in Matlab or any other program so long as you knew the format +of each object.

+ +

3        +solution:

+ +

A common file format for All PAMGUARD +module output, pgdf for PAMGUARD Data File.

+ +

Output (from PAMGUARD) will assume one +way output and input streams rather than random access, although other programs +could of course open the files in any way they wish. This means that the files +will know their start time, which will be encoded in both the file name and the +header, but the end time will only be accessible as the last object in the file + which may take time to read.

+ +

Smaller index files (.pgdx) will be +written to accompany each pgdf file which contain just the start header and end +footer of each file, so that PAMGUARD can rapidly query a file repository to +see whats in it.

+ +

Files will have a common structure, which +PAMGUARD will always be able to understand, although specific objects within +the file will require information specific to a particular module.

+ +

For a specific PAMGUARD configuration, +all output files will be stored in the same master directory, although its possible +that this may contain multiple sub folders, e.g. one sub folder per day.

+ +

There will be a 1:1 correspondence +between PAMGUARD data blocks and binary data streams (i.e. all objects in a +given file should be of the same type).

+ +

Output will be a series of binary +objects. Every object will start with an int32 (long) integer giving the size +of that object in bytes. This number includes itself in the size calculation. +So it will always be possible to skip through the file using the following +pseudocode:

+ +

While +not eof

+ +

objectSize += ReadLong()

+ +

SkipForwardBytes(objectSize-4)

+ +

Next

+ +

The objects for the header and footer +will be rigidly defined. However the data objects can be in any format (it +being the responsibility of individual module developers to ensure backwards +compatibility should anything change).

+ +

Following the standard PAMGUARD header, +is an optional control structure or module header. For example, a detector may +which to write out its detection parameters at this point, probably as a Java +serialised object, although anything is allowed, it being the stream that +writes the datas responsibility to read it back in in a sensible way.

+ +

Format for main files:

+ +

All numbers +(short, int, long, float, double) are written using Big Endians, i.e. big byte +first. This is the standard for the platform independent Java DataOutputStream +class and the C default for Linux and Mac. Matlab can read these files by +setting the file format, e.g. f = fopen(fileName, 'r', 'ieee-be.l64');

+ +

Windows C +programmes processing the files would need to re-order bytes.

+ +
+
+ +

 

+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

 

+
+

 

+
+

Format

+
+

Notes

+
+

File Header

+
+

Length of file + header in bytes

+
+

Int32

+
+

Every object + will start with this number.

+
+

Object + Identifier

+
+

Int32

+
+

-1

+
+

Header / + general file Format

+
+

Int32

+
+

Hope this + changes very very rarely

+
+

PAMGUARDDATA

+
+

Char(12)

+
+

Just so its + obvious that this really is a P file

+
+

PAMGUARD + Version

+
+

CharUTF*

+
+

e.g. 1.8.00

+
+

PAMGUARD + Branch

+
+

CharUTF*

+
+

e.g. Core, + Beta, etc.

+
+

Data Date

+
+

Long (int64)

+
+

Data time at + start of file in Java millis

+
+

Analysis Date

+
+

Long (int64)

+
+

Time at which + analysis started (same as data time for real time)

+
+

File Start + Sample

+
+

Long (int64)

+
+

Current sample + number for this data stream

+
+

Module type

+
+

CharUTF*

+
+

Module type

+
+

Module Name

+
+

CharUTF*

+
+

Module name

+
+

Stream Name

+
+

CharUTF*

+
+

Data stream + name

+
+

Extra info + length

+
+

Int32

+
+

Length of + additional data

+
+

Extra info

+
+

byte[]

+
+

Additional + data

+
+

Module specific Control Structure

+
+

Length in File

+
+

Int32

+
+

Length of this + object = 16 + object binary length

+
+

Object + Identifier

+
+

Int32

+
+

-3

+
+

Module version + Info

+
+

Int32

+
+

Version info + specific to the pamguard module writing data to this stream.

+
+

Object binary + Length

+
+

Int32

+
+

= Length in + File 16 (a bit of redundancy) ! Can be zero if there is no additional data

+
+

Object Data

+
+

Byte[]

+
+

Length = + Object binary Length

+
+

Object 1

+
+

Length in File

+
+

Int32

+
+

Length of this + object

+
+

Object + Identifier

+
+

Int32

+
+

class + identifier which must be unique to this data stream, not across PAMGUARD

+
+

Time milliseconds

+
+

Int32

+
+

Timestamp in + milliseconds relative to start of file Data Date

+
+

Object binary + Length

+
+

Int32

+
+

= Length in + File 12 (a bit of redundancy) !

+
+

Object Data

+
+

Byte[]

+
+

Length = + Object binary Length

+
+

Object 2

+
+

Length in File

+
+

Int32

+
+

Length of this + object

+
+

Object + Identifier

+
+

Int32

+
+

class + identifier which must be unique to this data stream, not across PAMGUARD

+
+

Time + milliseconds

+
+

Int32

+
+

Timestamp in + milliseconds relative to start of file Data Date

+
+

Object binary + Length

+
+

Int32

+
+

= Length in + File 12 (a bit of redundancy) !

+
+

Object Data

+
+

Byte[]

+
+

Length = + Object binary Length. Need not be same as Object 1.

+
+

Etc

+
+

 

+
+

 

+
+

 

+
+

Module footer

+
+

Length in File

+
+

Int32

+
+

Length of this + object = 16 + object binary length

+
+

Object + Identifier

+
+

Int32

+
+

-3

+
+

Object binary + Length

+
+

Int32

+
+

= Length in + File 16 (a bit of redundancy) ! Can be zero if there is no additional data

+
+

Object Data

+
+

Byte[]

+
+

Length = + Object binary Length

+
+

File Footer

+
+

Length of + footer in bytes

+
+

Int32

+
+

 

+
+

Object + identifier

+
+

Int32

+
+

-2

+
+

Total number + of objects in file

+
+

Int32

+
+

Not counting + header, control struct and footer (i.e. can be = 0)

+
+

Data Date

+
+

Long (int64)

+
+

Data time at end + of file in Java millis

+
+

Analysis Date

+
+

Long (int64)

+
+

Time at which + analysis ended (same as data time for real time)

+
+

File End + Sample

+
+

Long (int64)

+
+

Sample number + at end of file

+
+

File length

+
+

Long (int64)

+
+

Total length + of the file (will be more use when this is repeated in an index file)

+
+

File End + Reason

+
+

Int32

+
+

Reason file + ended

+
+

EOF

+
+

 

+
+

 

+
+

 

+
+ +

*Strings are +often written with the DataOutputStream.writeUTF() function. For standard ASCII +characters, this will simply be a two bytes (written as a short) giving the +length of the string followed by one byte per character. Unicode characters are +also supported in this format for details see the JAVA Help and Wikipedia.

+ +

Smaller indexing files (.pgdx) will +contain the header, control structures and footer from the pgdf files, but none +of the objects.

+ +

Object identifiers

+ +

Object identifiers used by the file +management system are negative

+ +

-1 = Header;

+ +

-2 = Footer;

+ +

-3 = Module header

+ +

-4 = Module footer

+ +

Individual modules can use any positive +number and these numbers need only be unique within the module reading and +writing the data.

+ +

Example data formats for specific modules

+ +

Click Detector Version 0

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

 

+
+

Time millis

+
+

Int64

+
+

 

+
+

 

+
+

Start sample

+
+

Int64

+
+

 

+
+

 

+
+

Channel map

+
+

Int32

+
+

 

+
+

 

+
+

Triggered channels

+
+

Int32

+
+

 

+
+

 

+
+

Num delay measurements

+
+

Int16

+
+

 

+
+

 

+
+

Delay measurements

+
+

Float[]

+
+

Usually nChan*(nChan-1)/2

+
+

 

+
+

Num angle measurements

+
+

Int16

+
+

(0, 1 or 2)

+
+

 

+
+

Angle measurements

+
+

Float[]

+
+

 

+
+

 

+
+

Duration (samples)

+
+

Int16

+
+

 

+
+

 

+
+

WaveData

+
+

Int16[][]

+
+

 

+
+ +

 

+ +

Click Detector Version 1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

 

+
+

Time millis

+
+

Int64

+
+

 

+
+

 

+
+

Start sample

+
+

Int64

+
+

 

+
+

 

+
+

Channel map

+
+

Int32

+
+

 

+
+

 

+
+

Triggered channels

+
+

Int32

+
+

 

+
+

 

+
+

Click Type

+
+

Int16

+
+

 

+
+

 

+
+

Num delay measurements

+
+

Int16

+
+

Usually nChan*(nChan-1)/2

+
+

 

+
+

Delay measurements

+
+

Float[]

+
+

 

+
+

 

+
+

Num angle measurements

+
+

Int16

+
+

(0, 1 or 2)

+
+

 

+
+

Angle measurements

+
+

Float[]

+
+

 

+
+

 

+
+

Duration (samples)

+
+

Int16

+
+

 

+
+

 

+
+

Wave Max Amplitude

+
+

float

+
+

Max amplitude of wave data.

+
+

 

+
+

WaveData

+
+

Int8[][]

+
+

Wavedata scaled by 127/max amplitude so + if uses full dynamic range of 8 bit data

+
+ +

 

+ +

 

+ +

4        +Binary Storage Manager

+ +

Binary Storage Manager (BSM) is a plugin +module in the utilities group (next to database, since the two things perform +similar function). Only one BSM module will be allowed

+ +

BSM will control:

+ +

1.     +The folder data are stored in.

+ +

2.     +Opening new files at program start and closing +them at program end. Will set file names based on the data stream name and the +time.

+ +

3.     +Reopening files on the hour (or at some other +set time interval, e.g. when analysing wav file data offline, it may make a new +file every time a file starts)

+ +

4.     +Reloading data for the PAMGUARD viewer.

+ +

5.     +Rewriting data files changed during offline +analysis

+ +

 

+ +

5        +PAMGUARD Modules output data

+ +

For data streams modify PamDataBlock, +and also make possibility of other objects sending data to BSM

+ +

Need to:

+ +

1.     +register with BSM

+ +

2.     +hand BSM settings data, which will be requested +each time a new file is created (see format above).

+ +

3.     +send BSM references to all new data units

+ +

4.     +know how to recreate data units from data that +have been read back in with PAMGUARD viewer.

+ +

PAMGUARD Data Units

+ +

1.     +Need functions to return their binary data +object (which may just be a serialised version of themselves

+ +

2.     +Need to be able to identify themselves in +agreement with a central registry

+ +

 

+ +

PAMGUARD Settings

+ +

PAMGUARD Settings are written to the +binary store whenever PAMGUARD starts from the Start menu or from the Network +controller. They are not written when PAMGUARD restarts due to a buffer +overflow in acquisition. Settings are written to .psfx files. These encapsulate +the current psf format used for more general settings, but individual +serialised Java objects are wrapped up in a similar way to other binary data so +that other programmes (e.g. Matlab) can at least read a list of modules.

+ +
+ + + + diff --git a/target/classes/books/HowToAddPlugins.html b/target/classes/books/HowToAddPlugins.html new file mode 100644 index 00000000..7c8b2fc7 --- /dev/null +++ b/target/classes/books/HowToAddPlugins.html @@ -0,0 +1,77 @@ + + + +PamGuard + + + + +

Writing PAMGUARD Plug-ins

+

Adding plug-ins to the PAMGUARD model


+ +

+To make a PAMGUARD plug-in available to PAMGUARD users it is necessary to edit +the java file pammodel/PamModel.java.
+

+First you register the module with PAMGUARD using

+

PamModuleInfo myModule = PamModuleInfo.registerControlledUnit(String className, String description);
+where className is the class name of the class PamControlledUnit and description is the descriptive name +of the module. +

+For example +

PamModuleInfo myModule = PamModuleInfo.registerControlledUnit("GPS.GPSControl", "GPS Processing");
+adds the GPS module. +

+The module will now be listed in the PAMGUARD File/Add Modules menu from where the user can create instances of the module. +

The PAMGUARD settings manager will be aware of the new module and will automatically create the module +the next time PAMGUARD is run.

+
+

Add the module to a menu group

+Due to the large number of PAMGUARD modules now in existence, you will want to have your module listed in one +of the sub menus of the File/Add Modules menu. You can add your module to one of the existing groups or you can +create a new group of your own. For example, the following code adds the GPS module to the Map menu group +
myModule.setModulesMenuGroup(mapsGroup);
+ +

Set module data dependencies

+It is likely that your module will be dependent on data from some other PAMGUARD module. +For example, the click detector requires raw data from an acquisition module, the whistle detector +required raw data from a FFT module and the GPS module requires data from an NMEA data source. +

+You can set module dependencies using +

+PamModuleInfo.addDependency(PamDependency dependancy)
+
+for example +
+myModule.addDependency(new PamDependency(NMEADataUnit.class, "NMEA.NMEAControl"));
+
+tells PAMGUARD that myModule is dependent on some source of NMEADataUnit and that a possible +source of this type of data is the NMEA.NMEAControl module. +

+Note that some types of data may be produced by many different modules, so here you should specify the +most common source of the data your module will use. +

+

Setting the minimum and maximum numbers of module instances

+You can use functions +
+PamModuleInfo.setMinNumber(int minNumber)
+and
+PamModuleInfo.setMaxNumber(int maxNumber)
+
+to set the minimum and maximum numbers of a given module type. +

+If these are not set (which is generally the case), then the minimum number defaults to zero and there is no +maximum number. +

+If you set a minimum number, then PAMGUARD will automatically create that number of modules at start up. +

+If you set a maximum number then PAMGUARD will prevent you from creating more than that number of modules. + + + +

+ +

+ + + diff --git a/target/classes/books/HowToMakeOverlays.html b/target/classes/books/HowToMakeOverlays.html new file mode 100644 index 00000000..c18d96cc --- /dev/null +++ b/target/classes/books/HowToMakeOverlays.html @@ -0,0 +1,133 @@ + + + +PAMGUARD + + + + +

Writing Graphic Overlays

+

Overview


+PAMGUARD uses a system of graphic overlays to display information on the +map and other displays. +

+Graphic overlays all make use of sub classes of the +Pamview.GeneralProjector which +provides functions to convert units such as Latitude, Longitude, Frequency, Time, etc. +into screen coordinates. +

+The programmer wishing to overlay information must implement the +Pamview.PanelOverlayDraw +interface and attach that implementation to a +PamDataBlock +using the command +setOverlayDraw. +

+Each display that implements graphic overlays will check which +PamDataBlocks are +capable of drawing with their +Projector. This is +done using the +canDraw +command in +PanelOverlayDraw. +

+Generally, this decision is made based on the axis types for the +Projector. +

+For example, the following code is taken from the whistle detector which +is capable of overlaying graphics on spectrogram displays having time and +frequency as their axis. +

+	public boolean canDraw(GeneralProjector projector) {
+		if (projector.getParmeterType(0) == ParameterType.TIME
+				&& projector.getParmeterType(1) == ParameterType.FREQUENCY)
+			return true;
+		return false;
+	}
+
+

+Each display should also have implemented a menu or dialog box which will allow +the user to set which graphics to overlay on a particular display. +

+The contents of +this menu or dialog box will have been populated by examining all +PamDataBlocks +and including all those that returned true to +canDraw +for the given +projector. +
+The display will then subscribe to +PamDataBlocks +that it wishes to use as graphic overlays. + +

Order of events

+ +When a new +PamDataUnit +is added to a +PamDataBlock +the following events occur. +

+

    +
  1. All subscribers to the +PamDataBlock +receive notification that there is a new +PamDataUnit
  2. +
  3. A display receiving this notification will then call the +PamDataBlock +function +drawDataUnit.
  4. +
  5. If PanelOverlayDraw +has been set for the +PamDataBlock +, the concrete implementation of +drawDataUnit +will be called.
  6. +
  7. Code in drawDataUnit +will draw additional graphics layers on top of any existing graphics using the +projector to convert data to screen coordinates.
  8. + +
+

+
+ +

Drawing on multiple types of display

+

+It is possible for data from a single data block to be drawn on several different types +of display, for example maps and spectrograms. +

If data are to be drawn on multiple +display types, then the +canDraw +function should return true for all of those display types. +

+At the top of the +drawDataUnit +function, check the types of coordinates being used by the projector to determine the +display type and then call appropriate drawing routines depending on the axis. +

+For example, the following code can be found in +WhistleGraphics which +allows drawing on both the map and spectrogram displays. +

+

	public Rectangle drawDataUnit(Graphics g, PamDataUnit pamDataUnit,
+			GeneralProjector projector) {
+		if (projector.getParmeterType(0) == ParameterType.LONGITUDE
+				&& projector.getParmeterType(1) == ParameterType.LATITUDE) {
+			return drawWhistleOnMap(g, pamDataUnit, projector);
+		} else if (projector.getParmeterType(0) == ParameterType.TIME
+				&& projector.getParmeterType(1) == ParameterType.FREQUENCY) {
+			return drawWhistleShape(g, pamDataUnit, projector);
+		}
+		return null;
+	}
+
+	Rectangle drawWhistleOnMap(Graphics g, PamDataUnit pamDataUnit,
+			GeneralProjector projector) {
+			...
+			etc.
+
+ + + diff --git a/target/classes/books/HowToMakePluginDisplays.html b/target/classes/books/HowToMakePluginDisplays.html new file mode 100644 index 00000000..cbbb3e67 --- /dev/null +++ b/target/classes/books/HowToMakePluginDisplays.html @@ -0,0 +1,30 @@ + + + +PamGuard + + + + +

Writing plug-in displays

+

Overview


+Plug in displays are designed to sit in the bottom of scrolling spectrogram +windows and display time series data which are not suitable for overlaying over +the spectrogram display itself. +

+plug in displays take their time axis directly from the spectrogram display +so that whatever is displayed is time aligned with the spectrogram data. +

+To create plug in displays, the developer must create two separate classes +

    +
  1. DisplayPanelProviders +are used within PAMGUARD to make a list of possible display +panels that may be incorporated into other displays.
  2. +
  3. DisplayPanels +provide a graphics panel +that is incorporated into the display, taking it's time information from +the display. +
+ + + diff --git a/target/classes/books/HowToMakePlugins.html b/target/classes/books/HowToMakePlugins.html new file mode 100644 index 00000000..03f71482 --- /dev/null +++ b/target/classes/books/HowToMakePlugins.html @@ -0,0 +1,210 @@ + + + +PamGuard + + + + +

Writing PAMGUARD Plug-ins

+

Overview


+Most of the functionality of PAMGUARD is implemented in a series of plug-ins which +either process data in some way and / or provide a display and / or provide +graphic overlays for other built in displays. +

+All PAMGUARD plug-ins are subclasses of PamControlledUnit +
+To make a plug in, first create a subclass of PamControlledUnit, +adding to the subclass the various components described below. Then add your new plug-in the the PAMGUARD +data model. See How to add plug-ins to learn how to do this. +

+Available components of a PAMGUARD plug-in are +

    +
  1. A Process that modifies data in some way
  2. +
  3. A Tab panel display
  4. +
  5. A Side panel display
  6. +
  7. A Display Menu
  8. +
  9. A Detection menu
  10. +
  11. A File menu
  12. +
  13. Graphic Overlays
  14. +
  15. Plug in display panels
  16. +
+ +All components of a PAMGUARD plug-in are optional. The table shows existing plug-ins (end 2006)
+Table of Pamguard plug-ins

+ +

The Constructor

+

+Although the default constructor for PamControlledUnit is +

+public PamControlledUnit(String unitType, String unitName)
+
+you must provide a constructor in your sub class that takes just the unitName, e.g. +
+public class MyDetectorController extends PamControlledUnit {
+  public MyDetectorController(String unitName) {
+    super("My detector", unitName);
+	  etc...
+
+Pamguard will search for and use this single parameter constructor when creating modules and adding them to the Pamguard data model. + +

Pamguard Processes

+

+Pamguard Processes are subclasses of PamProcess. +A PamProcess will subscribe to one or more PamDataBlock(s). +A PamProcess will generally also create one or more new + PamDataBlock(s). + +When new data arrive from the PamDataBlock, the process will manipulate those data in some way and create information +that is added to the output data blocks. +

+Each Pamguard plug-in may have any number of processes, for example, most displays do not have a process at all. The whistle +detector, on the other hand, has separate processes for peak detection and whistle linking. +

+To add a process to a plug in, use the addPamProcess +function in PamControlledUnitUnit. +

+
+ +

PAMGUARD Tab Panels

+

+PAMGUARD Tab panels are added as separate tabs on the main PAMGUARD GUI display. +A tab panel may contain graphics or tables to display information of any type. +

+Each PAMGUARD plug-in may currently only have a single tab panel per plug in. +however, since the developer can put anything they like into that one tab panel, +it is of course possible to place a tab panel in that one tab panel and for the inner +tab panel to contain multiple tabs ! +

+To add a tab panel to a plug in, use the setTabPanel +function in PamControlledUnit. +

+
+ +

Detection Menu

+A process that requires a detection menu should override the function +createDetectionMenu +function in PamControlledUnit. +

+Note that a new detection menu may be created multiple times as modules are added and removed from +the PAMGUARD system. Therefore the implementation of +createDetectionMenu +should contain only a minimum amount of code required to make the actual menu and should avoid +calling constructors for additional objects. +

+Detection menus will automatically be incorporated as sub-menus in PAMGUARD's main detection menu. +They will also be shown as separate menu items in the main menu bar when the tab panel (if one exists) for the +plug-in is selected. + +

+
+ +

Display Menu

+A process that requires a display menu should override the function +createDisplayMenu +function in PamControlledUnit. +

+Note that a new display menu may be created multiple times as modules are added and removed from +the PAMGUARD system. Therefore the implementation of +createDisplayMenu +should contain only a minimum amount of code required to make the actual menu and should avoid +calling constructors for additional objects. +

+Display menus will automatically be incorporated as sub-menus in PAMGUARD's main display menu. +They will also be shown as separate menu items in the main menu bar when the tab panel (if one exists) for the +plug-in is selected. +

+
+ +

File Menu

+A process that requires a display menu should override the function +createFileMenu +function in PamControlledUnit. +

+Note that a new display menu may be created multiple times as modules are added and removed from +the PAMGUARD system. Therefore the implementation of +createFileMenu +should contain only a minimum amount of code required to make the actual menu and should avoid +calling constructors for additional objects. +

+File menus will automatically be incorporated as sub-menus in PAMGUARD's main file menu. +

+
+ +

PAMGUARD Side Panels

+Sets the side panel for the PamControlledUnit +Side panels are shown down the left hand side of +the main PAMGUARD GUI and are always visible, irrespective +of which tab is being viewed on the main tabbed display. +

+Side panels are generally used to display summary information +for the PamControlledUnit or to provide quick access controls. +

+To add a side panel to a plug in, use the setSidePanel +function in PamControlledUnit. +

+
+ +

Output Data Blocks

+Most Pam Processes will produce now data in one form or another. Data are stored +as PamDataUnits in +PamDataBlock(s). +

+In general, the +PamDataBlock(s) +are created +at the same time as the PamProcess. +PamDataUnits +are then added to the +PamDataBlock(s) as and when they +become available. +

+For some processes, such as the FFT Engine, +PamDataUnits will be added to the output +PamDataBlock at regular intervals. +For other processes, such as the +Click Detector +new +PamDataUnits will be only be added if +and when detections are made. +

+
+ +

Graphic Overlays

+As well as creating their own tab panel and side panels, PamProcess output can be +overlaid on pre-existing PAMGUARD displays. +

+Displays that currently support graphic overlays are (as of December 2006) +

    +
  1. The Map
  2. +
  3. Spectrograms
  4. +
  5. Radar Displays
  6. +
+For details of how to make graphic overlays in PAMGUARD see +How to make graphic overlays +

+
+ +

Plug-in Display Panels

+Sound data are often viewed on a scrolling +Spectrogram Display. +
+PAMGUARD plug-ins can provide additional scrolling display panels which can be +added to the bottom of the spectrogram display in order to show data that are not +suitable for display in a graphic overlay. +

+Scroll speed of plug-in panels is controlled by the spectrogram display so that +the plug-in panel data remain in line with the spectrogram data. +

+For details on how to make plug in display panels see +How to make plug in display panels + +

+
+ + +


+ + + + diff --git a/target/classes/books/images/plugintable.png b/target/classes/books/images/plugintable.png new file mode 100644 index 00000000..f6b00e46 Binary files /dev/null and b/target/classes/books/images/plugintable.png differ diff --git a/target/classes/books/pamHelpStylesheet.css b/target/classes/books/pamHelpStylesheet.css new file mode 100644 index 00000000..2e857bbd --- /dev/null +++ b/target/classes/books/pamHelpStylesheet.css @@ -0,0 +1,34 @@ +BODY { + BACKGROUND-COLOR: FFFFFF +} +H1 { + FONT-FAMILY: Arial; + FONT-SIZE: 21; + COLOR: #6698FE; + BACKGROUND-COLOR: #DCFEEC; + margin-bottom: 0 +} +H2 { + FONT-FAMILY: Arial; + FONT-SIZE: 17; + COLOR: #6698FE; + BACKGROUND-COLOR: #CBDAEB; + margin-top: 0; +} +H3 { + FONT-FAMILY: Arial; + FONT-SIZE: 15; +} + +H4 { + FONT-FAMILY: Arial; + FONT-SIZE: 14; +} + +p { + FONT-FAMILY: Arial; + FONT-SIZE: 14; + margin-top: 10; + margin-left: 0; + margin-bottom: 0 +} diff --git a/target/classes/doc/books/HowToAddPlugins.html b/target/classes/doc/books/HowToAddPlugins.html new file mode 100644 index 00000000..9a9dc220 --- /dev/null +++ b/target/classes/doc/books/HowToAddPlugins.html @@ -0,0 +1,77 @@ + + + +PamGuard + + + + +

Writing Pamguard Plugins

+

Adding plugins to the Pamguard model


+ +

+To make a Pamguard plug-in avialable to Pamguard users it is necessary to edit +the java file pammodel/PamModel.java.
+

+First you register the module with Pamguard using

+

PamModuleInfo myModule = PamModuleInfo.registerControlledUnit(String className, String description);
+where className is the class name of the class PamControlledUnit and description is the descriptive name +of the module. +

+For example +

PamModuleInfo myModule = PamModuleInfo.registerControlledUnit("GPS.GPSControl", "GPS Processing");
+adds the GPS module. +

+The module will now be listed in the Pamguard File/Add Modules menu from where the user can create instances of the module. +

The Pamguard settings manager will be aware of the new module and will automatically create the module +the next time Pamguard is run.

+
+

Add the module to a menu group

+Due to the large number of Pamguard modules now in existance, you will want to have your module listed in one +of the sub menus of the File/Add Modules menu. You can add your module to one of the existing groups or you can +create a new group of your own. For example, the following code adds the GPS module to the Map menu group +
myModule.setModulesMenuGroup(mapsGroup);
+ +

Set module data dependencies

+It is likely that your module will be dependent on data from some other Pamgaurd module. +For example, the click detector requires raw data from an acquisition module, the whistle detector +required raw data from a FFT module and the GPS module requires data from an NMEA data source. +

+You can set module dependencies using +

+PamModuleInfo.addDependency(PamDependency dependancy)
+
+for example +
+myModule.addDependency(new PamDependency(NMEADataUnit.class, "NMEA.NMEAControl"));
+
+tells Pamguard that myModule is dependent on soume source of NMEADataUnit and that a possible +source of this type of data is the NMEA.NMEAControl module. +

+Note that some types of data may be produced by many different modules, so here you should specify the +most common source of the data your module will use. +

+

Setting the minimum and maximum numbers of module instances

+You can use functions +
+PamModuleInfo.setMinNumber(int minNumber)
+and
+PamModuleInfo.setMaxNumber(int maxNumber)
+
+to set the minimum and maximum numbers of a given module type. +

+If these are not set (which is generally the case), then the minimum number defaults to zero and there is no +maximum number. +

+If you set a minimum number, then Pamgaurd will automatically create that number of modules at start up. +

+If you set a maximum number then Pamgaurd will prevent you from creating more than that number of modules. + + + +

+ +

+ + + diff --git a/target/classes/doc/books/HowToMakeOverlays.html b/target/classes/doc/books/HowToMakeOverlays.html new file mode 100644 index 00000000..cf393c13 --- /dev/null +++ b/target/classes/doc/books/HowToMakeOverlays.html @@ -0,0 +1,133 @@ + + + +Pamguard + + + + +

Writing Graphic Overlays

+

Overview


+Pamguard uses a system of graphic overlays to display information on the +map and other displays. +

+Graphic overlays all make use of sub classes of the +Pamview.GeneralProjector which +provides functions to convert units such as Latitude, Longitude, Frequency, Time, etc. +into screen coordinates. +

+The programmer wishing to overlay information must implement the +Pamview.PanelOverlayDraw +interface and attach that implementation to a +PamDataBlock +using the command +setOverlayDraw. +

+Each display that implements graphic overlays will check which +PamDataBlocks are +capable of drawing with their +Projector. This is +done using the +canDraw +command in +PanelOverlayDraw. +

+Generally, this decision is made based on the axis types for the +Projector. +

+For example, the following code is taken from the whsitle detector which +is capable of overlaying graphics on spectrogram displays having time and +frequency as their axis. +

+	public boolean canDraw(GeneralProjector projector) {
+		if (projector.getParmeterType(0) == ParameterType.TIME
+				&& projector.getParmeterType(1) == ParameterType.FREQUENCY)
+			return true;
+		return false;
+	}
+
+

+Each display should also have implemented a menu or dialog box which will allow +the user to set which graphics to overlay on a particular display. +

+The contents of +this menu or dialog box will have been populated by examining all +PamDataBlocks +and including all those that returned true to +canDraw +for the given +projector. +
+The display will then subscribe to +PamDataBlocks +that it wishes to use as graphic overlays. + +

Order of events

+ +When a new +PamDataUnit +is added to a +PamDataBlock +the following events occurr. +

+

    +
  1. All subscribers to the +PamDataBlock +receive notification that there is a new +PamDataUnit
  2. +
  3. A display receiving this notification will then call the +PamDataBlock +function +drawDataUnit.
  4. +
  5. If PanelOverlayDraw +has been set for the +PamDataBlock +, the concrete implementation of +drawDataUnit +will be called.
  6. +
  7. Code in drawDataUnit +will draw additional graphics layers on top of any existing graphics using the +projector to convert data to screen coordinates.
  8. + +
+

+
+ +

Drawing on multiple types of display

+

+It is possible for data from a single data block to be drawn on several different types +of display, for example maps and spectrograms. +

If data are to be drawn on multiple +display types, then the +canDraw +function should return true for all of those display types. +

+At the top of the +drawDataUnit +function, check the types of coordinates being used by the projector to determine the +dipslay type and then call appropriate drawing routines depending on the axis. +

+For example, the following code can be found in +WhistleGraphics which +alows drawing on both the map and spectrogram displays. +

+

	public Rectangle drawDataUnit(Graphics g, PamDataUnit pamDataUnit,
+			GeneralProjector projector) {
+		if (projector.getParmeterType(0) == ParameterType.LONGITUDE
+				&& projector.getParmeterType(1) == ParameterType.LATITUDE) {
+			return drawWhistleOnMap(g, pamDataUnit, projector);
+		} else if (projector.getParmeterType(0) == ParameterType.TIME
+				&& projector.getParmeterType(1) == ParameterType.FREQUENCY) {
+			return drawWhistleShape(g, pamDataUnit, projector);
+		}
+		return null;
+	}
+
+	Rectangle drawWhistleOnMap(Graphics g, PamDataUnit pamDataUnit,
+			GeneralProjector projector) {
+			...
+			etc.
+
+ + + diff --git a/target/classes/doc/books/HowToMakePluginDisplays.html b/target/classes/doc/books/HowToMakePluginDisplays.html new file mode 100644 index 00000000..9e350775 --- /dev/null +++ b/target/classes/doc/books/HowToMakePluginDisplays.html @@ -0,0 +1,30 @@ + + + +PamGuard + + + + +

Writing plug-in displays

+

Overview


+Plug in displays are designed to sit in the bottom of scrolling spectrogram +windows and display time series data which are not suitable fo roverlaying over +the spectrgram display itself. +

+plug in diplays take their time axis directly fromt he spectrogram display +so that whatever is displayed is time aligned with the spectrogram data. +

+To create plug in displays, the developer must create two separate classes +

    +
  1. DisplayPanelProviders +are used within Pamguard to make a list of possible display +panels that may be incorporated into other displays.
  2. +
  3. DisplayPanels +provide a graphics panel +that is incorporated into the display, taking it's time information from +the display. +
+ + + diff --git a/target/classes/doc/books/HowToMakePlugins.html b/target/classes/doc/books/HowToMakePlugins.html new file mode 100644 index 00000000..01dd5c81 --- /dev/null +++ b/target/classes/doc/books/HowToMakePlugins.html @@ -0,0 +1,210 @@ + + + +PamGuard + + + + +

Writing Pamguard Plugins

+

Overview


+Most of the functinality of Pamguard is writting in a seris of plug-ins which +either process data in some way and / or provide a display and / or provide +graphic overlays for other built in displays. +

+All Pamguard plug-ins are subclasses of PamControlledUnit +
+To make a plug in, first create a subclass of PamControlledUnit, +adding to the subclass the various components described below. Then add your new plug-in the the Pamguard +data model. See How to add plug-ins to learn how to do this. +

+Available components of a Pamguard plug-in are +

    +
  1. A Process that modifies data in some way
  2. +
  3. A Tab panel display
  4. +
  5. A Side panel display
  6. +
  7. A Display Menu
  8. +
  9. A Detection menu
  10. +
  11. A File menu
  12. +
  13. Graphic Overlays
  14. +
  15. Plug in display panels
  16. +
+ +All components of a Pamguard plug-in are optional. The table shows existing plug-ins (end 2006)
+Table of Pamguard plug-ins

+ +

The Constructor

+

+Although the default constructor for PamControlledUnit is +

+public PamControlledUnit(String unitType, String unitName)
+
+you must provide a constructor in your sub class that takes just the unitName, e.g. +
+public class MyDetectorController extends PamControlledUnit {
+  public MyDetectorController(String unitName) {
+    super("My detector", unitName);
+	  etc...
+
+Pamguard will search for and use this single parameter constructor when creating modules and adding them to the Pamguard data model. + +

Pamguard Processes

+

+Pamguard Processes are subclasses of PamProcess. +A PamProcess will subscribe to one or more PamDataBlock(s). +A PamProcess will generally also create one or more new + PamDataBlock(s). + +When new data arrive from the PamDataBlock, the process will manipulate those data in some way and create information +that is added to the output data blocks. +

+Each Pamguard plug-in may have any number of processes, for example, most displays do not have a process at all. The whistle +detector, on the other hand, has separate processes for peak detection and whistle linking. +

+To add a process to a plug in, use the addPamProcess +function in PamControlledUnitUnit. +

+
+ +

Pamguard Tab Panels

+

+Pamguard Tab panels are added as separate tabs on the main Pamguard GUI display. +A tab panel may contain graphics or tables to display information of any type. +

+Each Pamguard plug-in may currently only have a single tab panel per plug in. +however, since the developer can put anything they like into that one tab panel, +it is of course possible to place a tab panel in that one tab panel and for the innter +tab panel to contain multiple tabs ! +

+To add a tab panel to a plug in, use the setTabPanel +function in PamControlledUnit. +

+
+ +

Detection Menu

+A process that requires a detection menu should override the function +createDetectionMenu +function in PamControlledUnit. +

+Note that a new detection menu may be created multiple times as modules are added and removed from +the Pamguard system. Therefore the implementation of +createDetectionMenu +should contain only a mimimum amount of code required to make the actual menu and should avoid +calling constructors for additional objects. +

+Detection menus will automatically be incorporated as sub-menus in Pamguards main detection menu. +They will also be shown as separate menu items in the main menu bar when the tab panel (if one exists) for the +plug-in is selected. + +

+
+ +

Display Menu

+A process that requires a display menu should override the function +createDisplayMenu +function in PamControlledUnit. +

+Note that a new display menu may be created multiple times as modules are added and removed from +the Pamguard system. Therefore the implementation of +createDisplayMenu +should contain only a mimimum amount of code required to make the actual menu and should avoid +calling constructors for additional objects. +

+Display menus will automatically be incorporated as sub-menus in Pamguards main display menu. +They will also be shown as separate menu items in the main menu bar when the tab panel (if one exists) for the +plug-in is selected. +

+
+ +

File Menu

+A process that requires a display menu should override the function +createFileMenu +function in PamControlledUnit. +

+Note that a new display menu may be created multiple times as modules are added and removed from +the Pamguard system. Therefore the implementation of +createFileMenu +should contain only a mimimum amount of code required to make the actual menu and should avoid +calling constructors for additional objects. +

+File menus will automatically be incorporated as sub-menus in Pamguards main file menu. +

+
+ +

Pamguard Side Panels

+Sets the side panel for the PamControlledUnit +Side panels are shown down the left hand side of +the main Pamguard GUI and are always visible, irrespective +of which tab is being viewed on the main tabbed display. +

+Side panels are generally used to display summary information +for the PamControlledUnit or to provide quick access controls. +

+To add a side panel to a plug in, use the setSidePanel +function in PamControlledUnit. +

+
+ +

Output Data Blocks

+Most Pam Processes will produce now data in one form or another. Data are stored +as PamDataUnits in +PamDataBlock(s). +

+In general, the +PamDataBlock(s) +are created +at the same time as the PamProcess. +PamDataUnits +are then added to the +PamDataBlock(s) as and when they +become available. +

+For some processes, such as the FFT Engine, +PamDataUnits will be added to the output +PamDataBlock at regular intervals. +For other processes, such as the +Click Detector +new +PamDataUnits will be only be added if +and when detections are made. +

+
+ +

Graphic Overlays

+As well as creating their own tab panel and side panels, PamProcess output can be +overlaid on pre-existing Pamguard displays. +

+Displays that currently support graphic overlays are (as of December 2006) +

    +
  1. The Map
  2. +
  3. Spectrograms
  4. +
  5. Radar Displays
  6. +
+For details of how to make graphic overlays in Pamguard see +How to make graphic overlays +

+
+ +

Plug-in Display Panels

+Sound data are often viewed on a scrolling +Spectrogram Display. +
+Pamguard plug-ins can provide additional scrolling display panels which can be +added to the bottom of the spectrogam display in order to show data that are not +suitable for display in a graphic overlay. +

+Scroll speed of plug-in panels is contrlled by the spectrogram display so that +the plugin panel data remain in line with the specgtrgram data. +

+For details on how to make plug in display panels see +How to make plug in display panels + +

+
+ + +


+ + + + diff --git a/target/classes/doc/books/images/plugintable.png b/target/classes/doc/books/images/plugintable.png new file mode 100644 index 00000000..f6b00e46 Binary files /dev/null and b/target/classes/doc/books/images/plugintable.png differ diff --git a/target/classes/doc/books/pamHelpStylesheet.css b/target/classes/doc/books/pamHelpStylesheet.css new file mode 100644 index 00000000..b8403246 --- /dev/null +++ b/target/classes/doc/books/pamHelpStylesheet.css @@ -0,0 +1,34 @@ +BODY { + BACKGROUND-COLOR: FFFFFF +} +H1 { + FONT-FAMILY: Arial; + FONT-SIZE: 21; + COLOR: #6698FE; + BACKGROUND-COLOR: #DCFEEC; + margin-bottom: 0 +} +H2 { + FONT-FAMILY: Arial; + FONT-SIZE: 17; + COLOR: #6698FE; + BACKGROUND-COLOR: #CBDAEB; + margin-top: 0; +} +H3 { + FONT-FAMILY: Arial; + FONT-SIZE: 15; +} + +H4 { + FONT-FAMILY: Arial; + FONT-SIZE: 13; +} + +p { + FONT-FAMILY: Arial; + FONT-SIZE: 13; + margin-top: 10; + margin-left: 0; + margin-bottom: 0 +} \ No newline at end of file diff --git a/target/classes/help/JavaHelpSearch/DOCS b/target/classes/help/JavaHelpSearch/DOCS new file mode 100644 index 00000000..be8310ab Binary files /dev/null and b/target/classes/help/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/JavaHelpSearch/DOCS.TAB b/target/classes/help/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..2ce4d447 Binary files /dev/null and b/target/classes/help/JavaHelpSearch/DOCS.TAB differ diff --git a/target/classes/help/JavaHelpSearch/OFFSETS b/target/classes/help/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..b4adef98 Binary files /dev/null and b/target/classes/help/JavaHelpSearch/OFFSETS differ diff --git a/target/classes/help/JavaHelpSearch/POSITIONS b/target/classes/help/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..709830a2 Binary files /dev/null and b/target/classes/help/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/JavaHelpSearch/SCHEMA b/target/classes/help/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..44f1bb2d --- /dev/null +++ b/target/classes/help/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=6559 id2=1 diff --git a/target/classes/help/JavaHelpSearch/TMAP b/target/classes/help/JavaHelpSearch/TMAP new file mode 100644 index 00000000..db83ebc0 Binary files /dev/null and b/target/classes/help/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/JavaHelpSearch/compacted b/target/classes/help/JavaHelpSearch/compacted new file mode 100644 index 00000000..b08bc956 Binary files /dev/null and b/target/classes/help/JavaHelpSearch/compacted differ diff --git a/target/classes/help/Map.jhm b/target/classes/help/Map.jhm new file mode 100644 index 00000000..3ba894b0 --- /dev/null +++ b/target/classes/help/Map.jhm @@ -0,0 +1,863 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/PAMGUARD.hs b/target/classes/help/PAMGUARD.hs new file mode 100644 index 00000000..b7d5a8e9 --- /dev/null +++ b/target/classes/help/PAMGUARD.hs @@ -0,0 +1,413 @@ + + + + + + + + + + + + + + + + + + + Help + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +top + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +TOC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +javax.help.TOCView + + + + + + + + + + + + + + + + + +PAMGUARDTOC.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +javax.help.IndexView + + + + + + + + + + + + + + + + + +PAMGUARDIndex.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Search + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +javax.help.SearchView + + + + + + + + + + + + + + + + + +JavaHelpSearch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/help/PAMGUARDHelpProject.xml b/target/classes/help/PAMGUARDHelpProject.xml new file mode 100644 index 00000000..73253cd8 --- /dev/null +++ b/target/classes/help/PAMGUARDHelpProject.xml @@ -0,0 +1,30 @@ + + + + + + +PAMGUARD + + C:\PamguardCode2021\PamGuard NOAA2\src\help + +index.html + + +../Resources/topic.gif + + + + +Help + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/PAMGUARDIndex.out.xml b/target/classes/help/PAMGUARDIndex.out.xml new file mode 100644 index 00000000..e69de29b diff --git a/target/classes/help/PAMGUARDIndex.xml b/target/classes/help/PAMGUARDIndex.xml new file mode 100644 index 00000000..733f36c4 --- /dev/null +++ b/target/classes/help/PAMGUARDIndex.xml @@ -0,0 +1,969 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/PAMGUARDTOC.xml b/target/classes/help/PAMGUARDTOC.xml new file mode 100644 index 00000000..a404aa2f --- /dev/null +++ b/target/classes/help/PAMGUARDTOC.xml @@ -0,0 +1,643 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/Thumbs.db b/target/classes/help/Thumbs.db new file mode 100644 index 00000000..bbcb3a7a Binary files /dev/null and b/target/classes/help/Thumbs.db differ diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_animalspot_1.png b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_animalspot_1.png new file mode 100644 index 00000000..8aa822e3 Binary files /dev/null and b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_animalspot_1.png differ diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_generic_1.png b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_generic_1.png new file mode 100644 index 00000000..c70cbffb Binary files /dev/null and b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_generic_1.png differ diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_generic_2.png b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_generic_2.png new file mode 100644 index 00000000..70abc303 Binary files /dev/null and b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/advanced_settings_generic_2.png differ diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/bat_time_base_display.png b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/bat_time_base_display.png new file mode 100644 index 00000000..f7020609 Binary files /dev/null and b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/bat_time_base_display.png differ diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/deep_leanring_module_help.png b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/deep_leanring_module_help.png new file mode 100644 index 00000000..250486bc Binary files /dev/null and b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/deep_leanring_module_help.png differ diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/deep_learning_module_process.png b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/deep_learning_module_process.png new file mode 100644 index 00000000..c058edd9 Binary files /dev/null and b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/deep_learning_module_process.png differ diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/right_whale_detection_MATLAB.png b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/right_whale_detection_MATLAB.png new file mode 100644 index 00000000..e6165eb6 Binary files /dev/null and b/target/classes/help/classifiers/rawDeepLearningHelp/docs/images/right_whale_detection_MATLAB.png differ diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning.html b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning.html new file mode 100644 index 00000000..0a00df30 --- /dev/null +++ b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning.html @@ -0,0 +1,410 @@ + + + + +PAMGuard Deep Learning Module - Overview + + + +

PAMGuard's Deep + Learning Module

+

Overview

+ +

PAMGuard's deep learning module allows users to deploy a + large variety of deep learning models natively in PAMGuard. It is core + module, fully integrated into PAMGuard's display and data + management system and can be used in real time or for post processing + data. It can therefore be used as a classifier for almost any acoustic + signal and can integrate into multiple types of acoustic analysis + workflows, for example post analysis of recorder data or used as part + of real time localisation workflow.

+ +
+

How it works

+

The deep learning module accepts raw data from different types + of data sources, e.g. from the Sound Acquisition module, clicks and + clips. It segments data into equal sized chunks with a specified + overlap. Each chunk is passed through a set of transforms which + convert the data into a format which is accepted by the specified deep + learning model. These transforms are either manually set up by the + user or, if a specific type of framework has been used to train a deep + learning model, then can be automatically set up by PAMGuard. + Currently there are three implemented frameworks

+

+ +

+ +

+ A diagram of how the deep learning module works in PAMGuard. + An input waveform is segmented into chunks. A series of transforms + are applied to each chunk creating the input for the deep learning + model. The transformed chunks are sent to the model. The results from + the model are saved and can be viewed in real time (e.g. mitigation) + or in post processing (e.g. data from SoundTraps). +

+
+

Generic Model

+

+ A generic model allows a user to load any model compatible with the djl (PyTorch (JIT), Tenserflow, ONXX) + library and then manually set up a series of transforms using + PAMGuard's transform library. It is recommended that users use an + existing framework instead of a generic model as these models will + automatically generate the required transforms. +

+
+

AnimalSpot

+

+ ANIMAL-SPOT + is a deep learning based framework which was initially designed for killer + whale sound detection) in noise heavy underwater recordings (see Bergler + et al. (2019)). It has now been expanded to a be species independent + framework for training acoustic deep learning models using PyTorch and Python. Imported + AnimalSpot models will automatically set up their own data transforms + and output classes. +

+
+

Ketos

+

+ Ketos is an + acoustic deep learning framework based on Tensorflow and developed by + MERIDIAN. It has excellent + resources and tutorials and Python libraries can be installed easily + via pip. Imported Ketos model will automatically set up their own data + transforms and output classes. +

+

Creating an instance + of the module

+

+ The module can be added from the File> Add modules > + Classifier > Raw deep learning classifier menu or by right + clicking in the data model. More than one instance of the module can + be added if multiple deep learning models are required. +

+

Module settings

+

+ The module settings are opened by selecting the Settings > + Raw deep learning classifier menu. The main settings pane is shown + below and is split into three sections, Raw Sound Data, Segmentation + and Deep Learning Model +

+

+ +

+ +

+ The main settings pane for the deep learning module with + descriptions +

+

Raw Sound Data

+

The deep learning module accepts any raw data source i.e., any + data source that contains raw waveform data.

+

If the data is continuous, e.g. from the Sound Acquisition + module then deep learning detections are saved to PAMGuard's data + management system if they pass a user defined prediction threshold. + The raw waveform data for segments which pass prediction threshold is + saved and the detection is annotated with the deep prediction results. +

+

If the data source is an existing detection data stream, e.g. + clicks or clips, then the deep learning results are saved as an + annotation attached each detection. The data is segmented in exactly + the same way as continuous data and thus, depending on the length of + raw data within the detection, there can be more than one prediction + per detection.

+

Channel grouping controls are used to arrange channels into + groups. Channels in the same group are saved together for downstream + processes. So, for example if channels 0 and 2 are in a group, then + the raw waveform data from both channel 0 and 2 will be saved and can + be used in downstream processes, e.g., for localisation.

+

Segmentation

+

+ The segmentation section defines how the raw data is segmented. Some + deep learning models require a specific segment size and others can be + run with different segment sizes. The Window Length is the + size of the segment in samples. The Hop Length is the overlap + (from the start of the segment) in samples. A Hop Length + which is the same as the segment length means no overlap. If a + prediction passes threshold, then the raw data from segments is saved + to PAMGuard binary files. If concurrent segments pass a prediction + threshold, then they are saved as one data unit. The Max. + re-merge is the maximum number of segments that can form a single + data unit before a new data unit is automatically created. +

+

Deep Learning Model

+

The deep learning model section is used to select the deep + learning model. The drop down menu is used to select the framework the + model is from e.g. Generic model. Note that each model type has a + unique user interface which appears just below the drop down menu - + currently these all look fairly similar.

+

All frameworks require a model file to be selected using the + browse button (File icon). A wait icon will appear and the model will + be loaded. If the deep learning model loading is successful then the + filename of the model will appear (e.g. saved_model.pb)

+

+ Note: when a model is first loaded, the computer must be + connected to the internet as PAMGuard will download the correct + libraries for the computer to open the specific model. On Windows + machine these libraries are found in a hidden folder called ai.djl. + in the user account folder. +

+

Once the model has loaded there some unique options depending on + the currently selected framework.

+

Generic Model

+

+ A generic model must be set up via the Advanced menu button. +

+

+ +

+ +

+ Before a sound segment can be classified it must be converted + into a format suitable for the deep learning model. This is achieved + by a list of transforms which convert a raw sound data into + an appropriate format. Usually this involves converting to a + spectrogram image and then performing a series of noise reductions + and interpolation step. For the generic model users either have to + manually add transforms and input the correct settings for each, or + load a transforms *.pgtr setting file + +

+

+ The Model Transforms tab in the advanced menu pane allows a + user to set up a set of transforms. The Add transfrom + + button adds a transforms and these can be dragged in order using the + drag handles on the left of each transform. Each transform has + it's own settings pane which can be expanded to show transform + specific settings. The bottom of the advanced settings pane shows a + preview of the data that will be input into the deep learning model, + including the shape of the input data e.g. a 100x50 image. +

+

+ +

+ +

+ The Model Settings tab allows the model inputs and outputs to + be defined +

+

+ The Model Settings tab allows the model input shape and + output shape/classes to be defined. Most models will have metadata on + the input and output data and these can be set by selecting the Use + default model shape and Use default model out switches + respectively. Otherwise, the input and output shape and the output + classes must be defined manually +

+

The import and export buttons on the bottom of the advanced + settings pane can be used to export and import settings for the + generic model. This means that users do not have to manually set up + transforms and input and output data whenever settings up a new + PAMGuard data model and allow easier sharing of classifiers amongst + researchers.

+

AnimalSpot and Ketos models

+

+ If using an AnimalSpot or Ketos model then all transforms are + automatically set up. The transforms can be viewed and altered via the + Advanced menu button but in the majority of cases these settings + should not be used. It is advisable to select "Use default + segment length" to change the Window length to the + default for the selected model. Note that this is often necessary for + Ketos models but usually not a requirement for AnimalSpot models. +

+

+ +

+ +

+ An AnimalSpot or Ketos model will automatically create a list + of transforms with the appropriate settings. These is no need to use + the advanced pane but it is there in case users wish to change + transform settings for some reason +

+

Running

+

Real time

+

In real time, the deep learning model runs automatically when + processing starts. A warning will appear if there are issues with the + model and/or it cannot cope with real time speeds.

+

Viewer Mode

+

+ The deep learning module can be re-run on detector data (e.g. + click or clip detections) in PAMGuard viewer mode. Detections + can be reclassified by selecting the Settings > Raw Deep + Learning Classifier > Reclassify detections. Select the data range + in the reprocessing dialog e.g. Loaded Data and select Start. + Detections without a deep learning annotation will have one added and + detections with an existing annotation will have it overwritten. +

+

Viewing and exporting + results

+

Output from the deep learning module can be viewed in PAMGuard + viewer mode, or extracted from binary files using MATLAB or R.

+

PAMGuard viewer mode

+

Detections form continuous raw data are shown in the datagram in + the same way as all data streams in PAMGuard.

+

The Time base display FX is best way to view detailed data + outputs from the deep learning algorithm. The time base display can + display almost all data types in PAMGuard on a large variety of + different data axis. For example, click detections can be displayed on + an amplitude, bearing, ICI, waveform and/or frequency axis. Deep + learning detections (i.e. data units which have been saved from raw + data using the deep learning detector) can be displayed on the time + base display in the same way as many other detections and in addition, + there is a symbol manager options which allows the deep learning + detections or other detections which have been classified by the deep + learning module to be coloured by prediction class. This means that a + manual analyst can quickly navigate to detections with high prediction + values for a certain class. Hovering over or right clicking on a data + unit in the time display and selecting the information button, will + show the data unit’s metadata, including the prediction values for all + output classes from the deep learning model.

+

+ +

+ +

+ An example click detection module output coloured by deep + learning annotations. Click detections are annotated with the results + from the deep learning module. The symbol manager in the time base + display can be used to colour the clicks by the prediction for a + selected class +

+

Other displays also show outputs from the deep learning module. + Hovering over data units in the click display will, for example, show + deep learning prediction values. The spectrogram will also show deep + learning detections as translucent blue boxes (these must be selected + in the right click menu).

+

MATLAB

+

The easiest way to export to MATLAB is to select the desired + units in the time base display, right click and select the MATLAB + icon. Data units will be exported to a .mat file as list of structures + which is then saved to the clipboard. This file can be saved and then + dragged into MATLAB to open.

+

+ Where it is necessary to further analyse large datasets produced by + PAMGuard, there is a MATLAB-PAMGuard library which can directly import + the binary files which store PAMGaurd detection data. The library is + simple to use with the primary function being + loadPAMGuardBinaryFile.m. + This will load any binary file type (e.g. clicks, whistles, deep + learning detections) and return a list of data structures with the + detection data. The structures include annotations where deep learning + predictions are stored. +

+

Here is a simple example loading up all the deep learning + detections for a right whale classifier.

+
+		% the folder containing PAMGuard binary files
+folder = '/Users/me/right_whale_project_1/PAMBinary/'; 
+
+ %load all the detections in the folder
+dldetections = loadPamguardBinaryFolder(folder, 'Deep_Learning_Classifier_Raw_Deep_Learning_Classifier_DL_detection_*.pgdf')
+
+	
+

The predicitons for each class (in this case the classes are + noise and right whale) are easily accessed in the structure via;

+
+		
+			%% access the prediciton form the first detection 
+predicitons = dldetections(1).annotations.dlclassification(j).predictions;
+
+	
+

The loaded detections can then be plotted by accessing the + waveform data in each structure;

+
+		
+% plot all the spectrograms.
+clf
+tiledlayout(5,5)
+for i=1:length(dldetections)
+
+    nexttile
+
+    % generate the data for a spectrgram
+    [s, w, t] = spectrogram(dldetections(i).wave,512, 384,[],sR,'yaxis');
+
+    % create the time and frequency matrices required to plot a surface 
+    [X, Y] = meshgrid(t,w);
+    % plot the surface (divide and multiply by 1000 to show milliseconds and kHz respectively)
+    surf(X*1000, Y/1000, 20*log10(abs(s))-140, 'EdgeColor', 'None')
+    view([0,90])
+
+    caxis([70, 140]-140)  
+    ylim([0,0.5]); 
+    xlabel('')
+    ylabel('')
+
+    if (mod(i,5)==0)
+       c = colorbar;  
+       c.Label.String = 'Amplitude (dB)'; 
+    end
+
+    %x axis only on bottom plots
+    if (i>=20)
+       xlabel('Time (ms)') 
+    end
+
+    %y axis only on left most plots
+    if (mod(i-1,5)==0)
+       ylabel('Frequency (kHz)') 
+    end
+
+	
+

+ +

+ +

+ Right whale detections from a deep learning model imported + and then plotted in MATLAB +

+

R

+

In the same way as MATLAB export, the PAMGuard time base display + and export selected data units directly to an R struct which can be + imported easily into R..

+

+ R also has a well supported PAMGuard library with like for like + functions compared to the MATLAB library. The PAMBinaries R library + can be found here. +

+

Common bugs and mistakes

+

You should always have deep learning models in their own folder. + Do not have any additional jar files or other programming related + things (like .dll files) in the same or sub folders. This has been + known to cause issues with loading models which we have not got to the + bottom of yet.

+

Pytorch models must be saved using jit to be compatible with + PAMGuard.

+

Tensorflow models must be saved as .pb files to be opened in + PAMGuard.

+ + \ No newline at end of file diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Bugs.html b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Bugs.html new file mode 100644 index 00000000..2139a1b1 --- /dev/null +++ b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Bugs.html @@ -0,0 +1,32 @@ + + + + +PAMGuard Deep Learning Module - Mistakes + + + +

PAMGuard's Deep + Learning Module

+

Common Bugs and Mistakes

+
+

You should always have deep learning models in their own folder. + Do not have any additional jar files or other programming related + things (like .dll files) in the same or sub folders. This has been + known to cause issues with loading models which we have not got to the + bottom of yet.

+

Pytorch models must be saved using jit to be compatible with + PAMGuard.

+

Tensorflow models must be saved as .pb files to be opened in + PAMGuard.

+
+
+
+ +
+
+
+ + \ No newline at end of file diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_CreateAndConfig.html b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_CreateAndConfig.html new file mode 100644 index 00000000..d9394ad4 --- /dev/null +++ b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_CreateAndConfig.html @@ -0,0 +1,182 @@ + + + + +PAMGuard Deep Learning Module - Create and Configure + + + +

PAMGuard Deep + Learning Module

+

Creation and Configuration

+
+

Creating an instance + of the module

+

+ The module can be added from the File> Add modules > + Classifier > Raw deep learning classifier menu or by right + clicking in the data model. More than one instance of the module can + be added if multiple deep learning models are required. +

+
+

Module settings

+

+ The module settings are opened by selecting the Settings > + Raw deep learning classifier menu. The main settings pane is shown + below and is split into three sections, Raw Sound Data, Segmentation + and Deep Learning Model +

+

+ +

+ +

+ The main settings pane for the deep learning module with + descriptions +

+
+

Raw Sound Data

+

The deep learning module accepts any raw data source i.e., any + data source that contains raw waveform data.

+

If the data is continuous, e.g. from the Sound Acquisition + module then deep learning detections are saved to PAMGuard's data + management system if they pass a user defined prediction threshold. + The raw waveform data for segments which pass prediction threshold is + saved and the detection is annotated with the deep prediction results. +

+

If the data source is an existing detection data stream, e.g. + clicks or clips, then the deep learning results are saved as an + annotation attached each detection. The data is segmented in exactly + the same way as continuous data and thus, depending on the length of + raw data within the detection, there can be more than one prediction + per detection.

+

Channel grouping controls are used to arrange channels into + groups. Channels in the same group are saved together for downstream + processes. So, for example if channels 0 and 2 are in a group, then + the raw waveform data from both channel 0 and 2 will be saved and can + be used in downstream processes, e.g., for localisation.

+
+

Segmentation

+

+ The segmentation section defines how the raw data is segmented. Some + deep learning models require a specific segment size and others can be + run with different segment sizes. The Window Length is the + size of the segment in samples. The Hop Length is the overlap + (from the start of the segment) in samples. A Hop Length + which is the same as the segment length means no overlap. If a + prediction passes threshold, then the raw data from segments is saved + to PAMGuard binary files. If concurrent segments pass a prediction + threshold, then they are saved as one data unit. The Max. + re-merge is the maximum number of segments that can form a single + data unit before a new data unit is automatically created. +

+
+

Deep Learning Model

+

The deep learning model section is used to select the deep + learning model. The drop down menu is used to select the framework the + model is from e.g. Generic model. Note that each model type has a + unique user interface which appears just below the drop down menu - + currently these all look fairly similar.

+

All frameworks require a model file to be selected using the + browse button (File icon). A wait icon will appear and the model will + be loaded. If the deep learning model loading is successful then the + filename of the model will appear (e.g. saved_model.pb)

+

+ Note: when a model is first loaded, the computer must be + connected to the internet as PAMGuard will download the correct + libraries for the computer to open the specific model. On Windows + machine these libraries are found in a hidden folder called ai.djl. + in the user account folder. +

+

Once the model has loaded there some unique options depending on + the currently selected framework.

+
+

Generic Model

+

+ A generic model must be set up via the Advanced menu button. +

+

+ +

+ +

+ Before a sound segment can be classified it must be converted + into a format suitable for the deep learning model. This is achieved + by a list of transforms which convert a raw sound data into + an appropriate format. Usually this involves converting to a + spectrogram image and then performing a series of noise reductions + and interpolation step. For the generic model users either have to + manually add transforms and input the correct settings for each, or + load a transforms *.pgtr setting file + +

+

+ The Model Transforms tab in the advanced menu pane allows a + user to set up a set of transforms. The Add transfrom + + button adds a transforms and these can be dragged in order using the + drag handles on the left of each transform. Each transform has + it's own settings pane which can be expanded to show transform + specific settings. The bottom of the advanced settings pane shows a + preview of the data that will be input into the deep learning model, + including the shape of the input data e.g. a 100x50 image. +

+

+ +

+ +

+ The Model Settings tab allows the model inputs and outputs to + be defined +

+

+ The Model Settings tab allows the model input shape and + output shape/classes to be defined. Most models will have metadata on + the input and output data and these can be set by selecting the Use + default model shape and Use default model out switches + respectively. Otherwise, the input and output shape and the output + classes must be defined manually +

+

The import and export buttons on the bottom of the advanced + settings pane can be used to export and import settings for the + generic model. This means that users do not have to manually set up + transforms and input and output data whenever settings up a new + PAMGuard data model and allow easier sharing of classifiers amongst + researchers.

+
+

AnimalSpot and Ketos models

+

+ If using an AnimalSpot or Ketos model then all transforms are + automatically set up. The transforms can be viewed and altered via the + Advanced menu button but in the majority of cases these settings + should not be used. It is advisable to select "Use default + segment length" to change the Window length to the + default for the selected model. Note that this is often necessary for + Ketos models but usually not a requirement for AnimalSpot models. +

+

+ +

+ +

+ An AnimalSpot or Ketos model will automatically create a list + of transforms with the appropriate settings. These is no need to use + the advanced pane but it is there in case users wish to change + transform settings for some reason +

+
+
+
+ + +
+
+
+ + \ No newline at end of file diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Results.html b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Results.html new file mode 100644 index 00000000..c02e5cd2 --- /dev/null +++ b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Results.html @@ -0,0 +1,179 @@ + + + + +PAMGuard Deep Learning Module - Results + + + +

PAMGuard's Deep + Learning Module

+

Viewing and exporting + results

+
+

Output from the deep learning module can be viewed in PAMGuard + viewer mode, or extracted from binary files using MATLAB or R.

+
+

PAMGuard viewer mode

+

Detections form continuous raw data are shown in the datagram in + the same way as all data streams in PAMGuard.

+

The Time base display FX is best way to view detailed data + outputs from the deep learning algorithm. The time base display can + display almost all data types in PAMGuard on a large variety of + different data axis. For example, click detections can be displayed on + an amplitude, bearing, ICI, waveform and/or frequency axis. Deep + learning detections (i.e. data units which have been saved from raw + data using the deep learning detector) can be displayed on the time + base display in the same way as many other detections and in addition, + there is a symbol manager options which allows the deep learning + detections or other detections which have been classified by the deep + learning module to be coloured by prediction class. This means that a + manual analyst can quickly navigate to detections with high prediction + values for a certain class. Hovering over or right clicking on a data + unit in the time display and selecting the information button, will + show the data unit's metadata, including the prediction values for all + output classes from the deep learning model.

+

+ +

+ +

+ An example click detection module output coloured by deep + learning annotations. Click detections are annotated with the results + from the deep learning module. The symbol manager in the time base + display can be used to colour the clicks by the prediction for a + selected class +

+

Other displays also show outputs from the deep learning module. + Hovering over data units in the click display will, for example, show + deep learning prediction values. The spectrogram will also show deep + learning detections as translucent blue boxes (these must be selected + in the right click menu).

+
+

MATLAB

+

The easiest way to export to MATLAB is to select the desired + units in the time base display, right click and select the MATLAB + icon. Data units will be exported to a .mat file as list of structures + which is then saved to the clipboard. This file can be saved and then + dragged into MATLAB to open.

+

+ Where it is necessary to further analyse large datasets produced by + PAMGuard, there is a MATLAB-PAMGuard library which can directly import + the binary files which store PAMGaurd detection data. The library is + simple to use with the primary function being + loadPAMGuardBinaryFile.m. + This will load any binary file type (e.g. clicks, whistles, deep + learning detections) and return a list of data structures with the + detection data. The structures include annotations where deep learning + predictions are stored. +

+

Here is a simple example loading up all the deep learning + detections for a right whale classifier.

+
+		% the folder containing PAMGuard binary files
+folder = '/Users/me/right_whale_project_1/PAMBinary/'; 
+
+ %load all the detections in the folder
+dldetections = loadPamguardBinaryFolder(folder, 'Deep_Learning_Classifier_Raw_Deep_Learning_Classifier_DL_detection_*.pgdf')
+
+	
+

The predicitons for each class (in this case the classes are + noise and right whale) are easily accessed in the structure via;

+
+		
+			%% access the prediciton form the first detection 
+predicitons = dldetections(1).annotations.dlclassification(j).predictions;
+
+	
+

The loaded detections can then be plotted by accessing the + waveform data in each structure;

+
+		
+% plot all the spectrograms.
+clf
+tiledlayout(5,5)
+for i=1:length(dldetections)
+
+    nexttile
+
+    % generate the data for a spectrgram
+    [s, w, t] = spectrogram(dldetections(i).wave,512, 384,[],sR,'yaxis');
+
+    % create the time and frequency matrices required to plot a surface 
+    [X, Y] = meshgrid(t,w);
+    % plot the surface (divide and multiply by 1000 to show milliseconds and kHz respectively)
+    surf(X*1000, Y/1000, 20*log10(abs(s))-140, 'EdgeColor', 'None')
+    view([0,90])
+
+    caxis([70, 140]-140)  
+    ylim([0,0.5]); 
+    xlabel('')
+    ylabel('')
+
+    if (mod(i,5)==0)
+       c = colorbar;  
+       c.Label.String = 'Amplitude (dB)'; 
+    end
+
+    %x axis only on bottom plots
+    if (i>=20)
+       xlabel('Time (ms)') 
+    end
+
+    %y axis only on left most plots
+    if (mod(i-1,5)==0)
+       ylabel('Frequency (kHz)') 
+    end
+
+	
+

+ +

+ +

+ Right whale detections from a deep learning model imported + and then plotted in MATLAB +

+
+

R

+

In the same way as MATLAB export, the PAMGuard time base display + and export selected data units directly to an R struct which can be + imported easily into R..

+

+ R also has a well supported PAMGuard library with like for like + functions compared to the MATLAB library. The PAMBinaries R library + can be found here. +

+
+
+
+ + +
+
+
+ + \ No newline at end of file diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Running.html b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Running.html new file mode 100644 index 00000000..5181a525 --- /dev/null +++ b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_Running.html @@ -0,0 +1,41 @@ + + + + +PAMGuard Deep Learning Module - Running + + + +

PAMGuard's Deep + Learning Module

+

Running

+
+

Real time

+

In real time, the deep learning model runs automatically when + processing starts. A warning will appear if there are issues with the + model and/or it cannot cope with real time speeds.

+
+

Viewer Mode

+

+ The deep learning module can be re-run on detector data (e.g. + click or clip detections) in PAMGuard viewer mode. Detections + can be reclassified by selecting the Settings > Raw Deep + Learning Classifier > Reclassify detections. Select the data range + in the reprocessing dialog e.g. Loaded Data and select Start. + Detections without a deep learning annotation will have one added and + detections with an existing annotation will have it overwritten. +

+
+
+
+ + +
+
+
+ + + \ No newline at end of file diff --git a/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_overview.html b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_overview.html new file mode 100644 index 00000000..d1b350d9 --- /dev/null +++ b/target/classes/help/classifiers/rawDeepLearningHelp/docs/rawDeepLearning_overview.html @@ -0,0 +1,90 @@ + + + + +PAMGuard Deep Learning Module - Overview + + + +

PAMGuard Deep + Learning Module

+

Overview

+ +

PAMGuard's deep learning module allows users to deploy a + large variety of deep learning models natively in PAMGuard. It is core + module, fully integrated into PAMGuard's display and data + management system and can be used in real time or for post processing + data. It can therefore be used as a classifier for almost any acoustic + signal and can integrate into multiple types of acoustic analysis + workflows, for example post analysis of recorder data or used as part + of real time localisation workflow.

+ +
+

How it works

+

The deep learning module accepts raw data from different types + of data sources, e.g. from the Sound Acquisition module, clicks and + clips. It segments data into equal sized chunks with a specified + overlap. Each chunk is passed through a set of transforms which + convert the data into a format which is accepted by the specified deep + learning model. These transforms are either manually set up by the + user or, if a specific type of framework has been used to train a deep + learning model, then can be automatically set up by PAMGuard. + Currently there are three implemented frameworks

+

+ +

+ +

+ A diagram of how the deep learning module works in PAMGuard. + An input waveform is segmented into chunks. A series of transforms + are applied to each chunk creating the input for the deep learning + model. The transformed chunks are sent to the model. The results from + the model are saved and can be viewed in real time (e.g. mitigation) + or in post processing (e.g. data from SoundTraps). +

+
+

Generic Model

+

+ A generic model allows a user to load any model compatible with the djl (PyTorch (JIT), Tenserflow, ONXX) + library and then manually set up a series of transforms using + PAMGuard's transform library. It is recommended that users use an + existing framework instead of a generic model as these models will + automatically generate the required transforms. +

+
+

AnimalSpot

+

+ ANIMAL-SPOT + is a deep learning based framework which was initially designed for killer + whale sound detection) in noise heavy underwater recordings (see Bergler + et al. (2019)). It has now been expanded to a be species independent + framework for training acoustic deep learning models using PyTorch and Python. Imported + AnimalSpot models will automatically set up their own data transforms + and output classes. +

+
+

Ketos

+

+ Ketos is an + acoustic deep learning framework based on Tensorflow and developed by + MERIDIAN. It has excellent + resources and tutorials and Python libraries can be installed easily + via pip. Imported Ketos model will automatically set up their own data + transforms and output classes. +

+
+
+
+ +
+
+
+ + \ No newline at end of file diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/Thumbs.db b/target/classes/help/classifiers/roccaHelp/docs/images/Thumbs.db new file mode 100644 index 00000000..83897aff Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/Thumbs.db differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/contour_points.png b/target/classes/help/classifiers/roccaHelp/docs/images/contour_points.png new file mode 100644 index 00000000..b61e1893 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/contour_points.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/contour_points_selected.png b/target/classes/help/classifiers/roccaHelp/docs/images/contour_points_selected.png new file mode 100644 index 00000000..6b69a4b8 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/contour_points_selected.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/noise_sens.png b/target/classes/help/classifiers/roccaHelp/docs/images/noise_sens.png new file mode 100644 index 00000000..b5d4729c Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/noise_sens.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/popup2.png b/target/classes/help/classifiers/roccaHelp/docs/images/popup2.png new file mode 100644 index 00000000..fb8460e3 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/popup2.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/popup3.png b/target/classes/help/classifiers/roccaHelp/docs/images/popup3.png new file mode 100644 index 00000000..4e7cb5f6 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/popup3.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_classifier.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_classifier.png new file mode 100644 index 00000000..c39d08ba Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_classifier.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier.png new file mode 100644 index 00000000..2249067e Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier2.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier2.png new file mode 100644 index 00000000..c9ead03f Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier2.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier3.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier3.png new file mode 100644 index 00000000..0fa5e111 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier3.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier4.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier4.png new file mode 100644 index 00000000..79630285 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier4.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier5.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier5.png new file mode 100644 index 00000000..f022cdae Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour-classifier5.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour.png new file mode 100644 index 00000000..a321ce0d Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_contour.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename.png new file mode 100644 index 00000000..b4830365 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename2.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename2.png new file mode 100644 index 00000000..bdb58a6f Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename2.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename3.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename3.png new file mode 100644 index 00000000..8eb12282 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_filename3.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_notes.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_notes.png new file mode 100644 index 00000000..400510f6 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_notes.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_notes2.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_notes2.png new file mode 100644 index 00000000..84bcdbd1 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_notes2.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output.png new file mode 100644 index 00000000..44274a87 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output2.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output2.png new file mode 100644 index 00000000..e8e97602 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output2.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output3.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output3.png new file mode 100644 index 00000000..3dcded1c Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_output3.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_source2.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_source2.png new file mode 100644 index 00000000..5eac0219 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_params_source2.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/rocca_sidebar.png b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_sidebar.png new file mode 100644 index 00000000..ee37d861 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/rocca_sidebar.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/selected_whistle.png b/target/classes/help/classifiers/roccaHelp/docs/images/selected_whistle.png new file mode 100644 index 00000000..1d3de131 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/selected_whistle.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/sidebar.png b/target/classes/help/classifiers/roccaHelp/docs/images/sidebar.png new file mode 100644 index 00000000..b8ebc975 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/sidebar.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/sidebar2.png b/target/classes/help/classifiers/roccaHelp/docs/images/sidebar2.png new file mode 100644 index 00000000..66018bcf Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/sidebar2.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/sidebar3.png b/target/classes/help/classifiers/roccaHelp/docs/images/sidebar3.png new file mode 100644 index 00000000..49fd8116 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/sidebar3.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/images/spect_popup.png b/target/classes/help/classifiers/roccaHelp/docs/images/spect_popup.png new file mode 100644 index 00000000..45bf3571 Binary files /dev/null and b/target/classes/help/classifiers/roccaHelp/docs/images/spect_popup.png differ diff --git a/target/classes/help/classifiers/roccaHelp/docs/rocca_Configure.html b/target/classes/help/classifiers/roccaHelp/docs/rocca_Configure.html new file mode 100644 index 00000000..0ef4b2de --- /dev/null +++ b/target/classes/help/classifiers/roccaHelp/docs/rocca_Configure.html @@ -0,0 +1,382 @@ + + +Rocca Configuration + + + +

ROCCA

+

Creation and Configuration

+
+

Creating a ROCCA module

+

From the File > Add Modules +> Detectors menu, select "ROCCA". +Enter a descriptive name for the new module and press OK.

+

ROCCA requires an FFT +engine module +to operate. If no FFT engine module has been loaded, PAMGuard will warn +the user and automatically load one.

+

When the ROCCA module is created, it will automatically try to +load a classifier model. +ROCCA will also check to see if an Enounter +Stats file exists. If it does, the user is given the +option to load the contents of the file into memory.

+

Note: the Encounter Stats file +is +continually overwritten while ROCCA is running. If, upon startup, the +user +does not load the data into memory, the information in the file will be +lost. Thus if the user does not wish to load the data but +still desires to keep it, the file should be renamed before continuing +with Pamguard.

+
+
+

Configuring a +ROCCA module

+

Note: the Sound +Acquisition and FFT +Engine modules must be configured before configuring ROCCA.

+

From the Detection menu, select "ROCCA Parameters". A new +dialog should appear containing five tabs: Source Data, Contours/Classifier, +Output, Filename Template, +and Notes.

+
+
+
+

Source Data tab

+ +
+
    +
  1. +

    Data Source: where ROCCA should get it's input data from. +Options include an FFT module (select this if using the manual +classifier), a Click +Detector, and a Whistle +and Moan Detector. Multiple sources can be selected. The +whistle and moan detector and/or click detector should be selected if +using the automated classifier.

    +
  2. +
  3. +

    FFT Data source: the fft data source to be used. The +channels listed are those currently selected in the FFT +Parameters dialog. ROCCA will save a wav file clip of each +manually selected whistle contour whenever it is classified and added +to the current encounter. Check the channel boxes corresponding to the +channels you wish to save to this clip wav file. Note that this is +different than the channels displayed in the spectrogram window, which +are set in the display +options dialog. Whistles can be selected and contours +extracted from any channel displayed, but the saved whistle clips will +only contain data from the channels selected in the FFT data source +box. So it is possible (though not recommended) to extract and classify +a whistle from Channel 0, but only save the data from Channels 1 and 2.

    +
  4. +
  5. +

    Click Detector source: the Click Detector to be used. Both +the click source and the noise source must be specified, along with the +appropriate channels. There are two options for the click source: Clicks +and Tracked Clicks. Selecting Clicks +sends all auto-detected +clicks to the ROCCA module. Selecting Tracked +Clicks sends only those clicks which are assigned to click +trains (see Click +Train Identification and Click +Detector displays +for more details) to ROCCA.  The 'Select Click Types' button +allows the +user to select which types of clicks (as classified by the Click +Detector module based on user-supplied settings) to send from the Click +Detector to ROCCA for analysis.

    +

    Noise Data +Samples should be selected for the Click Detector Noise +Source. These noise data samples are automatically collected by the +Click Detector module at intervals which can be set by the user in the +Click Detector Settings dialog window. The noise samples are used to +calculate the RMSNOISE and SNR click variables

    +

    Note: +a Click +Detector Module must first be configured and at least one +Click Classifier defined, for appropriate options to be displayed in +the Click Detector Data Source frame. See the PAMGuard help files for +full details on creating and configuring the Click Detector module.

    +
  6. +
  7. +

    Whistle +and Moan source: the Whistle & Moan Detector to be used. This +drop-down box will list all currently configured Whistle & Moan +Detector modules.  After +performing its own analysis, the Whistle +& Moan Detector will +send all detected whistles to the ROCCA module. ROCCA will then measure +contour +variables, classify the whistles, add the results to the sidebar and +save the results to output +files, +but no popup Spectrogram window will appear.

    +

    Note: a Whistle +& Moan Detector Module must first be added and +configured for appropriate options to be displayed in the Whistle +& Moan Data Source frame. See the PAMGuard help files for full +details on creating and configuring the Whistle & Moan Detector +module.

    +
  8. +
  9. +

    GPS Source: the source for GPS signals. Some encounter +classifiers use latitude and longitude +as classification variables.

    +
  10. +
+
+
+

Contour/Classifier +tab

+ 
+
    +
  1. +

    Whistle +Classifier: select the classifier to be used for whistles. +The available classifier models were created based on the Weka +Random Forest model. A classifier model uses the file extension .model. +To select a classifier model, click the Select Whistle Classifier +button. To not classify whistles at all, click the Clear Whistle Classifier +button.  At +the moment the ability to create new classifiers within Pamguard is not +available.

    +
  2. +
  3. +

    Click +Classifier: select the classifier to be used for clicks. +The available classifier models were created based on the Weka +Random Forest model. A classifier model uses the file extension .model. +To select a classifier model, click the Select Click Classifier +button. To not classify clicks at all, click the Clear Click Classifier +button.  At +the moment the ability to create new classifiers within Pamguard is not +available.

    +
  4. +
  5. +

    Encounter +Classifier: select the classifier to be used for acoustic +encounters. +Classifier models are created based on the Weka +Random Forest model. A classifier model uses the file extension .model. +To select a classifier model, click the Select Encounter Classifier +button. To not classify encounters at all, click the Clear Encounter Classifier +button.  At +the moment the ability to create new classifiers within Pamguard is not +available.

    +
  6. +
  7. +

    Whistle/Click Threshold: the threshold value to use when classifying +individual whistles or clicks. If the percent of trees voting +for the +predicted species in the random forest falls below this threshold, the +whistle or click is considered non-classifiable and is labelled as +‘ambiguous’.

    +
  8. +
  9. +

    Encounter Threshold: the threshold value to use when classifying +encounters. If the percent of trees voting for the predicted +species in the random forest falls below this threshold, the encounter +is considered non-classifiable and is labelled as ‘ambiguous’.

    +
  10. +
  11. +

    Noise Sensitivity: specify the global noise sensitivity +parameter to use when extracting a +whistle +contour.

    +
  12. +
  13. +

    Energy Bin Calc Size: specify the size of the frequency +bin used to calculate the energy around each peak frequency.

    +
  14. +
  15. +

    Calculate +Whistle Encounter Stats:select whether or not to calculate ancillary +variables for the detected whistles, for use by the Encounter +Classifier. Calculations may cause memory issues when there are many +(>1000) whistles. 

    +
  16. +
  17. +

    Calculate Click School Stats:select whether or not to +calculate ancillary variables for the detected clicks, for use by the +Encounter Classifier. Calculations may cause memory issues when there +are many (>1000) clicks. +

    +
  18. +
+

Note that the Whistle, Click and Encounter classifiers +selected +by the +user should all have been trained with the same species list in order +to be compatible with each other.

+

Note also +that if either whistle or click encounter stats are not calculated, the +encounter +classification will be based on whistle or click classification results +only. The number of +trees that voted +for each species will be tallied over all whistles and clicks in the +encounter +and the encounter will be classified as the species with +the highest +number of random forest tree votes. Even if an encounter +classifier has been loaded, it will be ignored.

+
+

Output tab

+ +
+
    +
  1. +

    Output Directory: +specify which directory clip wav files, whistle contour points and +whistle contour variable measurements are saved +to. +Note that, with Microsoft Windows operating systems, it is a good idea +to select a directory that does not require administrator privileges to +save to.

    +
  2. +
  3. +

    Contour +Stats Save File: +specify the name of the file that classified whistle contour variables +are saved to. The file will be saved to the output directory, specified +above. Each classified whistle is appended to the end of the file when +one of the Save buttons in the Spectrogram Popup window is clicked.

    +
  4. +
  5. +

    Encounter Stats Save File: +specify the name of the file that encounter classifications are saved +to. The file will be saved to the output directory, specified above. +Note that in order to use the latest encounter numbers, this file is +overwritten during each save. While this is not a problem as long as +PAMGuard is run continuously, if this file exists when PAMGuard is +first loaded the contents will be lost. If the file exists during start +up, the user is warned and given a chance to load/rename/backup the +existing file.

    +
  6. +
+
+
+

Filename Template +tab

+ +

In addition to the Contour Stats and Encounter Stats save +files, +ROCCA +also saves a whistle clip (wav format) and a list of the contour points +(time and frequency, csv format). These files will be named according +to the template given in the text box on this tab. As part of the name, +the user is able to use any of the following symbols. When the files +are saved, ROCCA will substitute the actual values for the symbol names.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SymbolMeaning SymbolMeaning
fname of source Hhour, 24-hour clock
ndetection number hhour, 12-hour clock
Xdetection tally/count aam or pm
tchannel/track number mminute
Yyear, 4 digits ssecond
yyear, 2 digits Ssecond of the day, 5 digits
Mmonth dtenths of a second
Dday of the month chundredths of a second
Jday of the year, 3 digits ithousandths of a second
+

+

Note that all date/time values are GMT.

+
+
+

Notes tab

+ +

This tab provides the user an opportunity to save additional +information about the data. Any number of text boxes can be +used. The information contained in the text boxes will be saved on +every row of the Contour +Parameters +file. In addition, a text file containing standard notes can be loaded. +The contents of the text file will then be available in a drop-down +list for each text box. The format of the text file is one note per +line.

+

Note: commas cannot be used in the text boxes or the standard +notes text file.

+
+
+

ROCCA Mark Observers

+

ROCCA must be added to the Mark +Observers +list in the spectrogram in order to receive captured data. To do so, +right click on the spectrogram and select Settings. Select the Mark +Observers tab and check the box beside ROCCA. If ROCCA is not listed as +a possible mark observer, it has not been added as a module.

+
+
+
+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/classifiers/roccaHelp/docs/rocca_ContourExtractionManipulation.html b/target/classes/help/classifiers/roccaHelp/docs/rocca_ContourExtractionManipulation.html new file mode 100644 index 00000000..9e827281 --- /dev/null +++ b/target/classes/help/classifiers/roccaHelp/docs/rocca_ContourExtractionManipulation.html @@ -0,0 +1,101 @@ + + + +Rocca Contour Extraction and Manipulation + + +

ROCCA

+

Contour Extraction / Manipulation


+

The whistle contour is automatically extracted from the spectrogram +by stepping through the spectra one time slice at a time and measuring +the peak frequency for each slice within a specific frequency bin. The +upper and lower limits of the search bin are defined by the peak +frequency of the previous time slice +/- the noise sensitivity (as +defined in the Rocca Parameters window). The frequency bin of the first time slice is determined by the user-selected start frequency +/- the noise sensitivity.

+

+

Adjusting the Noise Sensitivity

+ +

If the contour does not match the underlying whistle, the first step should be to adjust the noise sensitivity.

+ + + + + + + +

A +button is provided in the top toolbar to quickly adjust noise +sensitivity. The spectrogram will automatically update with the +recalculated contour each time the sensitivity is changed.

+

+

Adjusting the highpass/lowpass filters

+

The highpass and lowpass filters limit the contour extraction +algorithm to only function within a specific frequency band. The +highpass filter defines the lower bound, and the lowpass filter defines +the upper bound. Specify a filter by typing in the desired frequency +and hitting <enter>, or hitting the <Set> button and +clicking on the desired frequency in the spectrogram. The filter is +displayed on the spectrogram as a red horizontal line. If the +extraction algorithm finds a peak frequency lower than the highpass +filter specified, the peak frequency will be set to the value of the +highpass filter. Similarly, if the extraction algorithm finds a peak +frequency higher than the lowpass filter specified, the peak frequency +will be set to the value of the lowpass filter.

+

The filters can be reset by clicking the <Reset Filters> button.

+

+

Adjusting the contour points manually

+ + + + + + + + + +

Individual +contour points can be dragged manually to new positions. In order to +view the points, move the mouse over the spectrogram and press the left +mouse button. Try to move the mouse to a position away from the current +whistle contour, to avoid accidentally dragging a contour point. +Contour points will be displayed as light green dots.

Contour +points can only be dragged vertically. That is, the frequency can be +changed but not the time slice. Once the contour point to be moved is +determined, position the mouse over top of the point and press and hold +the mouse button. The contour points will again be displayed as light +green dots, but the point closest to the cursor will have a red circle. +Move the mouse up or down to the desired frequency, and release the +mouse button.

+

Once a contour point has been moved, it will be locked in the +new position even if the contour is recalculated by adjusting the noise +sensitivity, modifying filters or clicking the <Recalc Contour> button. +In this way, if the contour extraction algorithm has followed noise +instead of the desired whistle, the user can move a point to the +correct position and get the extraction back on track. The contour +point can still be moved manually, and clicking the <Reset Contour> button will unlock all locked points.

+ + + +

+

+ + + +


+ \ No newline at end of file diff --git a/target/classes/help/classifiers/roccaHelp/docs/rocca_Overview.html b/target/classes/help/classifiers/roccaHelp/docs/rocca_Overview.html new file mode 100644 index 00000000..8dd923f9 --- /dev/null +++ b/target/classes/help/classifiers/roccaHelp/docs/rocca_Overview.html @@ -0,0 +1,123 @@ + + +ROCCA Classifier Overview + + + +

ROCCA

+

Overview

+

The ROCCA (Real-time Odontocete Call Classification Algorithm) +module is intended to provide a set of measured variables for detected +acoustic events. The variables differ depending on whether the acoustic +detection is a delphinid whistle or click. ROCCA uses these parameters +in conjunction with a user-selected random forest classification model +to classify the whistle or click to species. Three random forest models +are available; one for odontocete species in the northwest Atlantic, +one for species in the temperate Pacific and one for species in the +waters surrounding Hawaii.

+

Individual +whistle/click detections and classifications are grouped into +user-defined Encounter +Numbers. An encounter is defined as a set of +whistles and/or clicks that +can all be attributed to one school of odontocetes. Variables +describing the acoustic behavior of the encounter are +measured from the +whistle and click detections for that encounter. Each encounter is +classified based on information from detected whistles, clicks and +ancillary variables using the encounter classifier, or as the +species with the highest number of random forest tree votes if no event +classifier has been selected.

+
+

Delphinid Whistles

+

ROCCA classifies delphinid whistles based on spectrographic +measurements extracted from whistle contours. The contour extraction +algorithm measures +50 different variables for each contour. Whistles can be classified +based on measurements taken manually or based on measurements taken +automatically. Manual classifiers are available for species in the +tropical Pacific Ocean (TropPacWhist.model) and for species in the +northwest Atlantic +(NWAtlWhist.model). Automated whistle +classifiers are available for species in the northwest Atlantic +(NWAtlWhist_auto.model), +the temperate Pacific (TempPacWhist_auto.model) and the waters +surrounding Hawaii (HIWhist_auto.model).

+

The manual classifier requires seven main steps: +

+
    +
  1. +

    User selects a whistle from the spectrogram display by +drawing a box around it using the cursor

    +
  2. +
  3. +

    The whistle is captured by ROCCA and displayed in a new +spectrogram window +window

    +
  4. +
  5. +

    The whistle contour is traced either automatically by +ROCCA or +manually using the cursor. The user can manipulate the trace, if +desired

    +
  6. +
  7. +

    The time-frequency points are automatically extracted from +the contour

    +
  8. +
  9. +

    The contour parameters are automatically measured

    +
  10. +
  11. +

    The contour is classified using the currently-loaded +classifier model

    +
  12. +
  13. +

    The classified whistle statistics are added to the +specified Encounter in the GUI display and the saved +data files

    +
  14. +
+

ROCCA can also be used in conjunction with the Whistle +& Moan Detector module to measure and classify +whistles detected and extracted automatically.

+
+

Odontocete Clicks

+

ROCCA measures +17 variables from clicks passed to it by the Click +Detector module. Each click is classified to species based on +these variables and the currently loaded classifier model, and the +click statistics are added to the specified Encounter +in the GUI display and the saved data files.

+

Classifiers are available for species in the tropical Pacific +Ocean (TropPacClick.model), the northwest Atlantic +(NWAtlClick.model), the temperate Pacific (TempPacClick.model) and the +waters surrounding Hawaii (HIClick.model).

+
+

Encounters

+

ROCCA measures +17 variables from the whistles and clicks classified within each +encounter. The encounter is classified to species based on +these variables and the currently loaded classifier model, and the +results are passed to the GUI display and the saved data files. + Note that if no encounter classifier has been specified, the +encounter will be classified based on the species in the encounter with +the highest cumulative percentage of random forest tree votes.

+

Classifiers are available for encounters in the tropical Pacific +Ocean (TropPacEnc.model), the northwest Atlantic +(NWAtlEnc.model), the temperate Pacific (TempPacEnc.model) and the +waters surrounding Hawaii (HIEnc.model).

+
+
+

References

+

Oswald, J. N., Rankin, S., Barlow, J., and Lammers, M. O. (2007). +A tool for real-time acoustic species identification of delphinid whistles, +The Journal of the Acoustical Society of America, 122, 587.

+ +
+ +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/classifiers/roccaHelp/docs/rocca_SavedFiles.html b/target/classes/help/classifiers/roccaHelp/docs/rocca_SavedFiles.html new file mode 100644 index 00000000..ac819e29 --- /dev/null +++ b/target/classes/help/classifiers/roccaHelp/docs/rocca_SavedFiles.html @@ -0,0 +1,113 @@ + + +Rocca Saved File Details + + + +

ROCCA

+

Saved Files

+
+

ROCCA saves three different files during manual whistle contour +extraction and classification: whistle wav file clip, contour points +and contour variable measurements. During automated click or whistle +analysis, ROCCA only saves the measured variables to the contour +variables file. ROCCA will also saves school stats automatically every +five minutes, +as well as when the <Save Encounter> button is clicked.

+

If a database module is being used, ROCCA will also save the +data to two tables: Rocca_Whistle_Stats and Rocca_Encounter_Stats.

+
+
+

Whistle Clip

+

The whistle clip is saved with a wav format to the output directory. +The start and end points of the clip are defined by the start and end +points originally selected by the user in the spectrogram popup. The +channels saved to the clip file are specified in the ROCCA Parameters +window.

+

The filename is defined by the user in the ROCCA +Parameters window

+
+
+

Contour Points

+

The time/frequency pair for each contour point in the extracted whistle contour is saved in +CSV format in the output +directory. The duty cycle, the energy in a frequency bin +around the peak frequency (as defined in the ROCCA +Parameters window), and the RMS value of the amplitude are +also saved.

+

The filename is defined by the user in the ROCCA +Parameters window

+
+
+

Contour Variables

+

The variables measured from the current whistle contour/click, as +well as +the species classification (if a whistle), are saved in CSV format +in the output +directory. +The information from each whistle/click is appended to the end of the +file and the file is never overwritten. Thus, this file will continue +to collect classification information every time Pamguard/ROCCA is run.

+

Other saved information for each whistle includes the sound +source, +the analysis date and time, the encounter number, and any notes included in the ROCCA Parameters +Notes +tab. The end of each row lists the name of the random forest model, the +random forest tree votes for each species and a list of +the species included in the classifier. The species names were added to each row instead of +the header line because the header would be created based on +information from the very first whistle contour analyzed only. If the +classification model is changed for subsequent analysis, the species +list may be different and no longer match the header. By including the +species list in the row, the user is always able to verify which +species were included in the classification algorithm for that +particular whistle contour or click.

+

The filename is specified in the ROCCA +Parameters window.

+

If a database module is being used, the data will also be +saved to the Rocca_Whistle_Stats table.

+
+
+

Encounter Stats

+

All encounter numbers, with the species classification +break-down for each, are saved as a CSV file in the output directory. +Also included for each encounter number is the overall encounter +duration, the duration of the whistles only, the duration of the clicks +only, the number of whistles/clicks, the minimum/maximum/average time +between whistles/clicks, the number of +whistles/clicks per second, the whistle/click density (the sum of the +individual durations / encounter length), the whistle/clicks overlap +(the total number of seconds that two whistles/clicks overlap), the +cumulative random forest tree vote totals for each species, as well as +a species list and the overall encounter classification (based on the +species with the highest cumulative tree vote total).

+

Each time the encounter stats file is saved, either through the +auto-save function or by the user pressing the <Save +Encounter> button, the file is overwritten in order to +update any renamed encounter numbers. Since an encounter number can be +renamed but never deleted, no information will be lost when overwriting +an old file during a single Pamguard session. HOWEVER, if Pamguard is +closed and restarted the file will be overwritten with +blank data and all prior information will be lost. The +file is checked during Pamguard startup, and if it exists the user is +given the opportunity to rename it before it is lost, and/or load the +existing data back into the system.

+

Note that when examining a particular encounter number, the +user should refer to the species list at the end of the row instead of +the species listed in the header. The header information is taken from +the first encounter number listed; if subsequent encounter numbers use +a different classification model, the species may change and this +change would not be reflected in the header.

+

The filename is specified in the ROCCA +Parameters window.

+

If a database module is being used, the data will also be +saved to the Rocca_Encounter_Stats table.

+
+
+

+ +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/classifiers/roccaHelp/docs/rocca_SelectingWhistle.html b/target/classes/help/classifiers/roccaHelp/docs/rocca_SelectingWhistle.html new file mode 100644 index 00000000..27b5a062 --- /dev/null +++ b/target/classes/help/classifiers/roccaHelp/docs/rocca_SelectingWhistle.html @@ -0,0 +1,40 @@ + + +Rocca - Selecting a Whistle + + + +

ROCCA

+

Manually Selecting a Whistle

+
+

To manually classify a whistle using ROCCA, the user must +first select the whistle from the scrolling spectrogram display. Move +the cursor to one corner of the whistle, press and hold the mouse +button while dragging the cursor to the opposite corner, and release +the button. A red box will be drawn around the selection, and the time +and frequency of the starting point (upper left corner) and ending +point (lower right corner) of the box are displayed in the ROCCA +sidebar for reference.

+

+

a selected whistle in the scrolling spectrogram

+

When the mouse button is released, a new window will be opened +containing that portion of the spectrogram selected by the user. The +new window is minimized automatically to allow the user to continue +selecting whistles from the scrolling spectrogram. The user does NOT +need to classify the whistle immediately. The number of captured +whistles is only limited by the amount of memory available on the +computer.

+

If an Encounter +Number has not yet been specified, the user will be prompted +for one after the first whistle has been selected.

+
+
+
+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/classifiers/roccaHelp/docs/rocca_Sidebar.html b/target/classes/help/classifiers/roccaHelp/docs/rocca_Sidebar.html new file mode 100644 index 00000000..6bf6b525 --- /dev/null +++ b/target/classes/help/classifiers/roccaHelp/docs/rocca_Sidebar.html @@ -0,0 +1,111 @@ + + +Rocca Sidebar + + + +

ROCCA

+

ROCCA Sidebar

+
+

ROCCA assembles the results of individual whistle +classifications +into groups as defined by the user. Each group must be given a name, +the Encounter Number. In addition to +classifying individual +whistle, ROCCA will also classify the Encounter Number +to species. This is known as the Encounter Classification and is +determined by either using the encounter classifier model (if loaded), +or summing the percentage of tree votes for each species over all of +the whistles/clicks in that Encounter Number and selecting the species +with the highest total.

+
+Rocca sidebar +
+
    +
  1. +

    Encounter number: the current encounter number. This is +the encounter number used when a whistle is selected from the +spectrogram display.

    +
  2. +
  3. +

    Scroll buttons: scroll through the list of encounter +numbers.

    +
  4. +
  5. +

    Classification +results: the individual classification tally for the current encounter +number. The list of possible species is based on the classifier model +currently loaded. The number beside the species name indicates the +number of whistles/clicks that have been classified +as that species.

    +
  6. +
  7. +

    Encounter classification: the overall species classification +for the current encounter number.

    +
  8. +
  9. +

    Encounter ID: text box allowing user to add notes to +contour output file. This text box is identical to the box found in the +ROCCA +parameters configuration window.

    +
  10. +
  11. +

    Known Species: text box allowing user to add notes to +contour output file. This text box is identical to the box found in the +ROCCA +parameters configuration window.

    +
  12. +
  13. +

    Rename +Encounter: allows the user to rename the current encounter. Any output +files previously +saved that use the old encounter number in the filename will be renamed +with the new encounter number. Note that the information in +the whistle +contour stats save file +is NOT updated - the user must modify any references to the old +encounter number manually. Also note that the user will not be allowed +to duplicate encounter numbers

    +
  14. +
  15. +

    Classify Encounter: classifies the encounter one of two +ways.  If an Encounter Classifier model has been loaded +and both whistle and click encounter stats have been calculated, +a random forest classifier is used to classify the encounter based on +the output of the whistle and click classifiers. If an Encounter +Classifier model has not been loaded, or if either the whistle or click +encounter stats are not being calculated, the encounter is classified +as the species with the highest cumulative percentage of votes.

    +
  16. +
  17. +

    Save Encounter: +overwrites the current Encounter Stats file (as defined in the ROCCA +Parameters window) with the current list of encounters and +statistics. Encounter statistics are also automatically saved every 5 +minutes.

    +
  18. +
  19. +

    New Encounter: create a new encounter number

    +
  20. +
  21. +

    Whistle Start: lists the time and frequency of the first +user-selected point on the spectrogram

    +
  22. +
  23. +

    Whistle +End: lists the time and frequency of the second user-selected point on +the spectrogram. Note that once the second point is selected, the +portion of the spectrogram is captured in a new popup window.

    +
  24. +
+
+
+

+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/classifiers/roccaHelp/docs/rocca_Spectrogram.html b/target/classes/help/classifiers/roccaHelp/docs/rocca_Spectrogram.html new file mode 100644 index 00000000..871830df --- /dev/null +++ b/target/classes/help/classifiers/roccaHelp/docs/rocca_Spectrogram.html @@ -0,0 +1,162 @@ + + +Rocca Spectrogram PopUp Details + + + +

ROCCA

+

Spectrogram Popup Window

+
+

Once a whistle has been selected in the main spectrogram +window, a new window opens containing the portion of the spectrogram +selected by the user. The user must click on the starting point of the +whistle, and then the ending point (note that these can be reselected +later). Once the starting and ending points have been defined, ROCCA +will extract and display the whistle contour (shown in yellow).

+
+ +
    +
  1. +

    Window Title: displays the current detection tally. ROCCA +keeps track of how many whistles have been selected in the current +PAMGuard session and displays this information in the window title.

    +
  2. +
  3. +

    Zoom In/Out/Reset: changes the zoom level of the +spectrogram.

    +
  4. +
  5. +

    Increase/Decrease Brightness: modifies the brightness of +the spectrogram. Note that this only modifies the spectrogram display. + The underlying contour extraction algorithm is not affected.

    +
  6. +
  7. +

    Increase/Decrease Contrast: modifies the contrast of the +spectrogram. Note that this only modifies the spectrogram display. + The underlying contour extraction algorithm is not affected.

    +
  8. +
  9. +

    Noise Sensitivity spinner: modifies the noise sensitivity +parameter used for contour +extraction.  This parameter controls the width of +the frequency band that is used when searching for the peak frequency +in the next time slice (see ‘Adjusting noise sensitivity’). The contour +is automatically recalculated when this value is changed, and the +spectrogram display is updated. Note +that any contour points moved +manually will not be changed when +the noise sensitivity parameter is changed. Note also that the noise +sensitivity parameter does not change the global noise sensitivity +parameter as specified in the Rocca +Parameters window, only the noise sensitivity used in this +spectrogram popup window.

    +
  10. +
  11. +

    Spectrogram window: the current spectrogram.

    +
  12. +
  13. +

    Select Contour Start/Contour End: allows user to reselect +the starting or ending point of the whistle. Upon selection, the +contour will recalculated automatically.

    +
  14. +
  15. +

    Turn Contour Off: toggle the contour display on and off.

    +
  16. +
  17. +

    Pick Points: when clicked, erases existing contour trace +and enters 'Selection' Mode. In selection mode the user can manually +select points along the contour by clicking on the spectrogram itself. +The user can select any number of points, but only one frequency per +time bin is allowed. If multiple frequencies are selected within a time +bin, only the first is kept and the rest are ignored. The user can also +hold the mouse button down and drag the mouse along the contour to +quickly select multiple points. When the Pick Points button is pressed +a second time, Selection Mode ends. ROCCA will fill in any missing time +bins using linear interpolation, and then proceed to calculate the +contour variables.

    +
  18. +
  19. +

    Highpass/Lowpass/Reset +filters: limits the contour +extraction algorithmso that it functions only within a +specific +frequency band. Specify a filter by either typing in the desired +frequency and hitting <enter>, or hitting the +<Set> button and clicking on the desired frequency in the +spectrogram. The frequency filter is drawn as a horizontal red line on +the spectrogram. The contour is automatically recalculated when these +values are modified, and the spectrogram display is updated. Reset the +filters by clicking the <Reset Filters> button. Note that +any contour points manually +moved will not be changed. Note also that the spectrogram +display is not affected by the filters, only the contour extraction.

    +
  20. +
  21. +

    Undo Last Move: return the last contour point that was moved +manually to its previous location.

    +
  22. +
  23. +

    Recalc Contour: +recalculate the contour after manually +moving one or more contour points to new positions.

    +
  24. +
  25. +

    Reset Contour: +unlock all contour points that have been manually moved.

    +
  26. +
  27. +

    Classify/Reclassify: classify the currently-extracted +contour, or reclassify the contour after changes have been made. The +classification is displayed to the left of the button.

    +
  28. +
  29. +

    Save as encounter [...]: save the +whistle clip wav file, contour points, and measured contour variables +to the directory +specified in the Rocca +Parameters window using the encounter number that was active +when the whistle was captured in the spectrogram. The encounter number +is shown on the button for reference. The spectrogram popup window is +then closed and the focus returns to the main PAMGuard display. +Classification results will be added to the Rocca Sidebar.

    +
  30. +
  31. +

    Save as diff encounter: save the whistle clip wav file, +contour +points, and measured contour variables to the directory specified in +the Rocca +Parameters window, but first query the user as to which encounter number to use. +The spectrogram popup window is then closed and the focus returns to +the main PAMGuard display. Classification results will be +added to the Rocca Sidebar.

    +
  32. +
  33. +

    Save WAV only: save the whistle clip wav file to the +directory +specified in the Rocca +Parameters window using the current encounter number (shown +in the window title bar). This option is useful if the user wishes to +classify the whistle later.

    +
  34. +
  35. +

    Discard and Exit: discard the current whistle, close the +spectrogram popup window and return to the main Pamguard display +without saving anything.

    +
  36. +
  37. +

    Time/Frequency: displays the current time and frequency +location of the +cursor.

    +
  38. +
+
+
+
+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/classifiers/roccaHelp/docs/rocca_WhistleSchoolClassification.html b/target/classes/help/classifiers/roccaHelp/docs/rocca_WhistleSchoolClassification.html new file mode 100644 index 00000000..c462354b --- /dev/null +++ b/target/classes/help/classifiers/roccaHelp/docs/rocca_WhistleSchoolClassification.html @@ -0,0 +1,675 @@ + + + +Rocca Measurements and Classification + + + +

ROCCA

+

Measurements and Classification

+
+

Classification technique

+

ROCCA classifies whistles, clicks and encounters using Random +Forest classifiers. ROCCA currently uses a Random Forest classifier +model based on the open-source statistical software package Weka. +For more information on Random Forests and the WEKA package, the user +is encouraged to refer to the book Data +Mining: Practical Machine Learning Tools and Techniques

+
+

Whistle Contour Measurement and Classification

+

Table 1 lists the 50 variables +measured from each whistle +contour.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Variable Code +Variable NameUnitsExplanation
FREQBEGSWEEPBeginning SweepCategorical variableSlope of the beginning sweep (1=positive -1=negative, +0=zero)
FREQBEGUPPositive beginning sweepBinary variable1=beginning slope is positive, 0=beginning slope is +negative
FREQBEGDWNNegative beginning sweepBinary variable1=beginning slope is negative, 0=beginning slope is +positive
FREQENDSWEEPEnding sweepCategorical variableSlope of the beginning sweep (1=positive -1=negative, +0=zero)
FREQENDUPPositive ending sweepBinary variable1=ending slope is positive, 0=ending slope is +negative
FREQENDDWNNegative ending sweepBinary variable1=ending slope is negative, 0=ending slope is +positive
FREQBEGBeginning frequencyHzBeginning frequency
FREQENDEnding frequencyHzEnding frequency
FREQMINMinimum frequencyHzMinimu frequency
DURATIONDurationSecondsDuration of the whistle
FREQRANGEFrequency rangeHzMaximum frequency - minimum frequency
FREQMAXMaximum frequencyHzMaximum frequency
FREQMEANMean frequencyHzMean frequency
FREQMEDIANMedian frequencyHzMedian frequency
FREQSTDDEVStandard deviation of the frequencyHzStandard deviation of the frequency
FREQSPREADFrequency spreadHzDifference between the 75th and the 25th percentile of +the frequency
FREQQUARTER1First quarter frequencyHzFrequency at one-quarter of the duration
FREQQUARTER2Half frequencyHzFrequency at one-half of the duration
FREQQUARTER3Third quarter frequencyHzFrequency at three-quarters of the duration
FREQCENTERCenter frequencyHz(minimum frequency + (maximum frequency - minimum +frequency)) / 2
FREQRELBWRelative bandwidthHz(maximum frequency - minimum frequency)/center frequency
FREQMAXMINRATIOMaximum-minimum ratioNoneMaximum frequency / minimum frequency
FREQBEGENDRATIOBeginning-ending ratioNoneBeginning frequency / end frequency
FREQCOFMCoefficient of frequency modulationNoneTake 20 frequency measurements equally spaced in time, +then subtract each frequency value from the one before it. COFM is the +sum of the absolute values of these differences, all divided by 10,000
FREQNUMSTEPSNumber of stepsNone10 percent or greater increase or decrease in frequency +over two contour points
NUMINFLECTIONSNumber of inflection pointsNoneChanges from positive to negative or negative to +positive slope
INFLMAXDELTAMaximum deltaSecondsMaximum time between inflection points
INFLMINDELTAMinimum deltaSecondsMinimum time between inflection points
INFLMAXMINDELTAMaximum-minimum delta ratioNoneMaximum delta / minimum delta
INFLMEANDELTAMean deltaSecondsMean time between inflection points
INFLSTDDEVDELTAStandard deviation deltaSecondsStandard deviation of the time between inflection points
INFLMEDIANDELTAMedian deltaSecondsMedian of the time between inflection points
FREQSLOPEMEANMean slopeHz/secondOverall mean slope
FREQPOSSLOPEMEANPositive slopeHz/secondMean positive slope
FREQNEGSLOPEMEANNegative slopeHz/secondMean negative slope
FREQABSSLOPEMEANAbsolute slopeHz/secondMean absolute value of the slope
FRQESLOPERATIOPositive-negative slope ratioNoneMean positive slope / mean negative slope
FREQSWEEPUPPERCENTPercent positiveNonePercent of the whistle that has a positive slope
FREQSWEEPDWNPERCENTPercent negativeNonePercent of the whistle that has a negative slope
FREQSWEEPFLATPERCENTPercent flatNonePercent of the whistle that has a zero slope
NUMSWEEPSUPDWNPositive-negative slopeNoneNumber of inflection points that change from positive +slope to negative slope
NUMSWEEPSDWNUPNegative-positive slopeNoneNumber of inflection points that change from negative +slope to positive slope
NUMSWEEPSUPFLATPositive-flat slopeNoneNumber of times the slope changes from positive to zero
NUMSWEEPSDWNFLATNegative-flat slopeNoneNumber of times the slope changes from negative to zero
NUMSWEEPSFLATDWNFlat-negative slopeNoneNumber of times the slope changes from zero to negative
NUMSWEEPSFLATUPFlat-positive slopeNoneNumber of times the slope changes from zero to positive
FREQSTEPUPSteps upNoneNumber of steps that have increasing frequency
FREQSTEPDOWNSteps downNoneNumber of steps that have decreasing frequency
INFLDURInflection points / durationNoneNumber of inflection points / duration
STEPDURSteps/durationNoneNumber of steps / duration
+

+

To classify a whistle, the vector of variables measured from +that +whistle is analysed with the random forest model, which contains +hundreds of classification trees. Each tree in the forest classifies +the whistle and final classification is based on the species that the +greatest percentage of trees voted for. If the greatest percentage of +tree votes falls below the whistle threshold (as specified in the ROCCA +Parameters window) +, the whistle is classified as Ambiguous.

+
+
+

Click Classification

+

Table 2 lists the 17 variables measured from each click.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Variable Code +Variable NameUnitsExplanation
DURATIONDurationSecondsDuration of the click
FREQPEAKPeak frequencyHzfrequency with the highest amplitude
BW3DBLOW-3dB bandwidth lower limitHzFirst frequency lower than the peak frequency at which +the amplitude has dropped by 3dB
BW3DBHIGH-3dB bandwidth upper limitHzFirst frequency higher than the peak frequency at which +the amplitude has dropped by 3dB
BW3DB-3dB bandwidthHzBW3DBHIGH - BW3DBLOW
BW10DBLOW-10dB bandwidth lower limitHzFirst frequency lower than the peak frequency at which +the amplitude has dropped by 10dB
BW10DBHIGH-10dB bandwidth upper limitHzFirst frequency higher than the peak frequency at which +the amplitude has dropped by 10dB
BW10DB-10dB bandwidthHzBW10DBHIGH - BW10DBLOW
RMSSIGNALSignal RMSdBRoot-mean-square of the click amplitude
RMSNOISENoise RMSdBRoot-mean-square of the noise amplitude
SNRSignal-to-noise ratiodBRMSSIGNAL - RMSNOISE
NCROSSINGSNumber of zero crossingsNoneNumber of times the waveform crosses zero
SWEEPRATESweep ratekHz/mssweep rate of the zero crossings
MEANTIMEZC*Zero crossing mean timemsmean time between zero crossings
MEDIANTIMEZC*Zero crossing median timemsmedian time between zero crossings
VARIANCETIMEZCZero crossing variancems2variance of the time between zero crossings
ICIInter-click IntervalsecondsTime from the end of one click to the start of the next +click
+

*Mean and median zero crossing times +are not used in the current classifier, but still calculated by the +Rocca algorithms. Rocca will ignore these variables during +classification.

+

To classify a click, the vector of variables measured from +that click is analysed with the random forest model, which contains +hundreds of classification trees. Each tree in the forest classifies +the click and final classification is based on the species that the +greatest percentage of trees voted for. If the greatest percentage of +tree votes falls below the click threshold (as specified in the ROCCA +Parameters window) +, the click is classified as Ambiguous.

+
+
+

School +Classification

+

Table 3 lists the 17 variables calculated based on whistle and +click detections for each encounter (if +specified by the user in the ROCCA parameters +window):

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Variable Code +Variable NameUnitsExplanation
Encounter_Duration_sEncounter durationSecondsDuration from the start of the first whistle/click to +the end of the last whistle/click
Number_of_whistlesNumber of whistlesNoneNumber of whistles
Whistle_Duration_sWhistle durationSecondsDuration from the start of the first whistle to the end +of the last whistle
Min_Time_Between_Whistle_Detections_sMinimum time between whistlesSecondsMinimum time between whistles
Max_Time_Between_Whistle_Detections_sMaximum time between whistlesSecondsMaximum time between whistles
Ave_Time_Between_Whistle_Detections_sAverage time between whistlesSecondsAverage time between whistles
Whistle_Detections_per_SecondWhistles per secondCounts/sThe number of whistles / whistle duration
Whistle_DensityWhistle densityNoneSum of the whistle durations / the encounter duration
Ave_Whistle_OverlapAverage whistle overlapNoneTotal duration during which whistles overlap / +encounter duration
Number_of_ClicksNumber of clicksNoneNumber of clicks
Click_Duration_sClick durationSecondsDuration from start of first click to end of last click
Min_Time_Between_Click_DetectionsMinimum time between clicksSecondsMinimum time between clicks
Max_Time_Between_Click_DetectionsMaximum time between clicksSecondsMaximum time between clicks
Ave_Time_Between_Click_DetectionsAverage time between clicksSecondsAverage time between clicks
Click_Detections_per_SecondClicks per secondCounts/sSum of the click durations / encounter duration
Ave_Click_OverlapAverage click overlapNoneTotal duration during which clicks overlap / encounter +duration
Lat*LatitudeDegLatitude
Long*LongitudeDegLongitude
+

*Latitude and Longitude are not +measured from the whistle and click data, but taken from the GPS source +as specified in the +Rocca Parameters Window Source tab.

+

+

Each encounter +number holds a list of possible species based on the +whistle/click classifier models used. There are two values stored for +each species: the number of times a whistle/click has been classified +to that species (displayed), and a cumulative total of all the +percentage tree votes for the species (not displayed). When a new +whistle/click classification is saved to an encounter number, the count +of the classified species is increased by one and the percentage tree +votes for each species are added to the corresponding cumulative totals.

+

The encounter is classified in one of two ways:

+
    +
  1. +

    If an encounter classifier has been loaded, the vector of +encounter parameters and the random forest probabilities from the +whistle and click classifiers are analysed with the encounter random +forest and the encounter is classified as the species with the highest +percentage of tree votes.

    +
  2. +
  3. +

    2. If no encounter classifier has been selected by the +user, the encounter is classified as the species with the highest +cumulative percentage of tree votes. Note that this may be different +than the species most often classified - the value shown in the sidebar +species list. If the highest cumulative percentage of tree votes falls +below the school threshold (as specified in the ROCCA +Parameters window), the detection is classified as Ambiguous.

    +
  4. +
+
+
+

+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierAcquisition.png b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierAcquisition.png new file mode 100644 index 00000000..50a7d89b Binary files /dev/null and b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierAcquisition.png differ diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierDisplay.png b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierDisplay.png new file mode 100644 index 00000000..0ca513a6 Binary files /dev/null and b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierDisplay.png differ diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierRunning.png b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierRunning.png new file mode 100644 index 00000000..97fbbac1 Binary files /dev/null and b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/classifierRunning.png differ diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/images/collectTrainingData.png b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/collectTrainingData.png new file mode 100644 index 00000000..96d92092 Binary files /dev/null and b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/collectTrainingData.png differ diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/images/discriminantTraining.png b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/discriminantTraining.png new file mode 100644 index 00000000..da855b33 Binary files /dev/null and b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/discriminantTraining.png differ diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/images/folderOrganise.png b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/folderOrganise.png new file mode 100644 index 00000000..52c28e2e Binary files /dev/null and b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/folderOrganise.png differ diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/images/settingsTopBit.png b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/settingsTopBit.png new file mode 100644 index 00000000..f2b417db Binary files /dev/null and b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/settingsTopBit.png differ diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/images/whistleDetectorOutput.png b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/whistleDetectorOutput.png new file mode 100644 index 00000000..9dc231c2 Binary files /dev/null and b/target/classes/help/classifiers/whistleClassifierHelp/docs/images/whistleDetectorOutput.png differ diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_CollectTraining.html b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_CollectTraining.html new file mode 100644 index 00000000..361f5f96 --- /dev/null +++ b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_CollectTraining.html @@ -0,0 +1,79 @@ + + + +Whistle Classifier Overview + + + + +

Whistle Classifier

+

Collecting Training Data

+

+ From the Whistle Classifier Settings dialog, select "Collect Training Data" and the dialog + will change to show training data parameters in it's lower half. +

+ +
+
+
+

During the collection of training data, whistles will be extracted from raw audio data and +stored in a file, or set of files on your hard drive ready for +Discriminant Function Training at a later date

+ +

Data Organisation

+

Although in principle, the classifier can collect training data in real time (i.e. directly from a +sound card connected to a hydrophone in the water, it is far more likely that you will +be training your classifier based on a set of previously recorded sound files which you +have archived over a period of time.

+

Sound files should ideally all be recorded at the same sample rate and have the same number +of channels. If possible, organise your sound files so that you have one file folder +per species and all the species folders are sub folders of a master training data folder as shown below.

+
+
+
+

Organising your data in this way is not essential, but it does mean that processing of all files +can take place as a single operation (e.g. over the weekend)

+ +

Sound Acquisition

+

Set up your + +Sound Acquisition module to analyse data from file folders, set the file folder to be the +root directory containing your folders of files by species and check the option to include sub +folders. Do not check the option to merge contiguous files so that processing stops and starts +at the end of each file.

+
+
+
+ + +

Species Names

+

If your data have been organised into folders as described above, the classifier can use the +folder names as species names.

+

If your data are not organised in the way described above, then you will need to enter the species name +for the training set you are working on (which should of course now be just of a single species).

+ +

Storage Folder

+

Training data are stored in files with the ending .wctd (Whistle Classifier Training Data). +One wctd file will be created for each sound file analysed. Use the Browse button to select the folder you +want these files to be stored in.

+ +

Running

+

Run PAMGUARD. All the files in the directory structure of training data will be processed and .wctd files +created in your output folder. The main classifier display will show distributions of whistle fragment parameter +but will not be performing classification.

+

There are of course other ways of organising your training data. For instance, if you wish to add new data to +an already existing training set, it is not necessary to reprocess all the data.

+

Once you have created your .wctd files, you will need to run the +Discriminant Function Training + before you can use the +classifier on new data

+ +
+ + + +


+ + diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Configure.html b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Configure.html new file mode 100644 index 00000000..efb54a8b --- /dev/null +++ b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Configure.html @@ -0,0 +1,46 @@ + + + +Whistle Classifier Overview + + + + +

Whistle Classifier

+

Configuration

+

The Detection / Whistle Classifier menu +has two sub menus: Settings... +and Discriminant +Function Training...

+

+

Settings Menu

+

From the settings menu a dialog will appear, the top half of +which will contain a drop down list of data sources and buttons to +select the operation mode.

+ +
+
+
+

Data Source

+

Select the data source. This should be the connected regions +output from a Whistle +and Moan detector.

+ +

Operation Mode

+

Select either Run Classifier, in which case new detections from +the Whistle +and Moan detector will be fragmented and the fragments sent for +classification, or Collect +Training Data in which case the contours of detected whistles will be +stored for Discriminant Function Training

+ +
+ + +


+ + diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Output.html b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Output.html new file mode 100644 index 00000000..59ac96a0 --- /dev/null +++ b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Output.html @@ -0,0 +1,44 @@ + + + +Whistle Classifier Overview + + + + +

Whistle Classifier

+

Whistle Classifier Output

+

Graphical Output

+

Classifier output is shown graphically on a tab on the +main PAMGUARD display.

+ + +
+
+
+

Parameter Distributions

+

The top half of the display shows the distributions of parameters extracted from +each whistle fragment (Note that the negative and positive inflections are not currently +used).

+

Classifier History

+

The bottom half of the display shows the classification history.

+

Each time the parameter distributions build up enough data and the +classification runs, the classification probability for each possible species with a +probability > 1% (0.01) is displayed

+

The time axis of the display is logarithmic, so recent history (i.e. what's happened in the +last minute) gets as much space as the preceding 10 minutes or the 100 minutes before that. A +total of two hours of data are shown.

+ +

Database Output

+

If a +Database is being used, each classification result is also written to the +database.

+ + +
+ +


+ + diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Overview.html b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Overview.html new file mode 100644 index 00000000..6227784f --- /dev/null +++ b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Overview.html @@ -0,0 +1,75 @@ + + + +Whistle Classifier Overview + + + + +

Whistle Classifier

+

Overview

+

The Whistle Classifier takes detected whistles from the Whistle +and Moan detector and attempts to classify them to species.

+

The Whistle classifier does not attempt to classify individual +detected whistles. Instead it collects information on many whistles and +statistically analyses them as a group to determine species.

+

The classifier must be trained with a sample of whistles from each +species. While some standard training sets are available through the PAMGUARD +web site, it is highly likely that whistles of a given species will vary between +regions and sub species and may also evolve over time. The Whistle Classifier therefore +allows you to train it using your own samples of whistles from known species.

+ + +

Creating a Whistle Classifier

+

From the File>Add modules>Detectors +menu, or from the pop-up menu on the data model display, select "Whistle +Classifier". Enter a descriptive name for the new detector and press OK.

+ +

General Principle of Operation

+

A major problem in the detection of whistles is that of overlapping whistles, or +whistles which have been broken into parts during the detection process.

+
+
+
+

The two spectrograms in the picture show the same spectrogram data. +The lower panel is overlaid with the output of the Whistle and Moan detector. +Clearly some of the quieter whistles have been missed altogether, while +others have been broken into multiple parts.

+

The breaking up of whistles into parts can be very dependent on the local noise +conditions and would not therefore be consistent between encounters with a given species. +A classifier requiring complete whistles would therefore be expected to perform +very poorly.

+

The PAMGUARD Whistle Classifier therefore works by taking short fragments of whistles +and accumulates statistics over many fragments. Since the level of "natural" fragmentation due +to noise will vary, all detected whistles are first broken into fragments of the same +length prior to classification. While fragmenting whistles in this way is discarding +potentially useful information, it creates an overall improvement in classifier stability

+

For each whistle fragment, three parameters are measured:

+ +

Distributions of these three parameters are built up over time, then once sufficient +fragments have been accumulated, the mean, the standard deviation and the skew (lopsidedness) +of each distribution is measured, giving a total of nine parameters which are used +by the statistical classifier, i.e.

+ +
+

References

+

Gillespie, D., Caillat, M., Gordon, J., and White, P. (2013). Automatic detection and classification of odontocete whistles, +The Journal of the Acoustical Society of America, 134, 24272437.

+
+ +


+ + diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Running.html b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Running.html new file mode 100644 index 00000000..8d3430ca --- /dev/null +++ b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Running.html @@ -0,0 +1,56 @@ + + + +Whistle Classifier Overview + + + + +

Whistle Classifier

+

Running the Whistle Classifier

+

From the +Whistle Classification settings dialog, +select "Run classifier" as the operation mode and the dialog will look something +like the one below.

+ + +
+
+
+ +

When to Classify

+

The classifier will take whistles from the data source, break them +into fragments and accumulate fragments until there are the same +number of fragments as were used during training. It will then +classify the data based on the distributions of extracted parameters, +output the classification result, clear +the distributions and start over

+

Sometimes, even if there are no real whistles, a few false detections are occurring +from noise. These will gradually accumulate and cause false classifications. You can +set the Classifier to clear the distributions if the whistle rate drops too low using +the parameters in the "When to Classify" section of the dialog.

+ + +

Classifier Training Parameters

+

There are two ways of setting the classifier training parameters:

+

Either they will have been set when you ran the +Discriminant Function Training

+

Or you can load a set of training parameters from a Whistle Classifier Settings +(*.wcsd) file provided to you by someone else.

+

To load parameters from a .wcsd file, press the 'Select ...' button and navigate to the +file on your hard drive. the parameters will be loaded into your PAMGUARD configuration, +so you will only need to access the file once.

+

The remainder of the dialog shows information about how the training was set up (fragment +length, frequency range, etc.). Since these parameters must be identical when you run the classifier +to parameters used when training the classifier, you are unable to change any of these parameters.

+ + +
+ + +


+ + diff --git a/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Training.html b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Training.html new file mode 100644 index 00000000..adebd5fb --- /dev/null +++ b/target/classes/help/classifiers/whistleClassifierHelp/docs/whistleClassifier_Training.html @@ -0,0 +1,91 @@ + + + +Whistle Classifier Overview + + + + +

Whistle Classifier

+

Discriminant Function Training

+

Discriminant Function Training is controlled from the Detection +/ Whistle Classifier / Discriminant Function Training ... menu.

+


+

+
+
+

Training Data

+

Before running the training algorithms, you must process raw +audio files for each species to create a training data set as described +in the Collecting +Training Data section. Training data will be in the form of a number of +.wctd files containing extracted whistle contours from the Whistle +and Moan detector

+

Select the file folder containing your .wctd files. The files can +all be in the same folder or can be split into sub folders, in which case +you should check the "Select Sub folders" option.

+

Limit Frequency Search Range - The frequency range to use. +Contours outside this range will be discarded.
+This is useful if there is low or high frequency noise in the system which you wish +to exclude from the training process.

+

You can also require the classifier to only use whistle contours over a certain number of FFT bins long. Again, this can +be useful if there are short bits of noise in the training data sample.

+

species names

+

When the wctd files were created, the species name (either input +by the user of taken from the folder name of the source audio file) was +written into each file. Species names from the .wctd files are used by +default during the classifier training. However, it is possible to +override the species names in the .wctd files by organising you .wctd +files into sub folders with different names and selecting the "Use +folder names as species names" option.

+

This allows you to merge data sets which may have been given +slightly different names by different analyst (for instance, different +people may have labelled training data for Bottlenose dolphin as "BND", +"Bottlenose", "TT", "Tursiops", etc. It also allows you to merge species +into groups, for instance, you might have a new "Small dolphin" category +containing data for both common and striped dolphin.

+ +

Run Training

+

To run the training, set the following parameters:

+

Classifier Type - Two discriminant functions are available, + +Linear Discriminant Analysis +and a +Mahalanobis Distances Classifier.

+ +

Fragment Length - How long the fragments of whistle fed +into the classifier should be.

+

Section length - how many fragments to accumulate before +extracting parameters from the distribution and running a +classification.

+

Minimum probability threshold - sets a minimum probability threshold for classification. If the +classifier probability for the best class falls below this threshold, then the whistle section is marked as +unclassified.

+

Number of test bootstraps - The number of randomised +trials to run when testing classifier performance

+

Batch Testing of Multiple Values - This button will open an additional dialog which allows you to enter a +range of values for the fragment length, section length and probability threshold. The bootstrap is then carried +out for each set of parameters and the output dumped to a text file. Examination of the text file help to decide on +the optimum values for these parameters.

+ +

Press the "Start Training" button and wait while the classifier training process runs.

+

Progress will be indicated in the bar at the bottom of the window and also as text output in +the right hand display panel.

+ +

Training Output

+

The training process produces a number of matrices which will control the classification process. +These are automatically stored into the standard PAMGUARD settings file you are currently using.

+

You can also export the classifier settings to a Whistle Classifier Settings (*.wcsd) file +for archiving and easy sharing with other users so that they can set up the same classifier +without requiring access to the training data set.

+ +
+ + +


+ + diff --git a/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/DOCS b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..a7bd73e2 --- /dev/null +++ b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/DOCS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..a3abf64d --- /dev/null +++ b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +ej` \ No newline at end of file diff --git a/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/OFFSETS b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..2141b695 --- /dev/null +++ b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +@ \ No newline at end of file diff --git a/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/POSITIONS b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..0be692e0 Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/SCHEMA b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..2b5a6e0f --- /dev/null +++ b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=98 id2=1 diff --git a/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/TMAP b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..36c5c1dc Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/detectors/Pam3DHelp/docs/guiOverview.html b/target/classes/help/detectors/Pam3DHelp/docs/guiOverview.html new file mode 100644 index 00000000..8b88a4dd --- /dev/null +++ b/target/classes/help/detectors/Pam3DHelp/docs/guiOverview.html @@ -0,0 +1,133 @@ + + + +3D Localization + + + + +

3D Localization

+

Overview

+ +

+These instructions guide a user on how to configure the "3-D" module in PAMGUARD for estimating range and depth of a source using a long-aperture towed array. At the time of this writing the module has only been tested with synthetic WAV files and not real-time input, and only with a Static and Threading Hydrophone Locator. +

+ +

+ +

Preliminaries

+ +

At a minimum the 3D Towed Array module requires an upstream Data acquisition module +and a Click Detection module (labeled Sound in and Click Detector in Figure 1). At present the 3D +module is configured to only work with the Click Detector, and not any Ishmael detectors. +A typical array configuration is illustrated in the following figure, which appears under the Hydrophone display. +At present only two pairs of hydrophones (4 phones total) are used in the module.

+

Hydrophone Array Configuration

+ +

+

Preliminaries

+

This figure shows the configuration menu for the Audio Data Acquisition module (SoundIn in Figure 1) which +should be configured to select a synthetic wav file. The wav file has 4 channels, with the hydrophone closest +to the tow vessel being assigned the lowest channel number. +

+ +

+

The Click Detection module has many options, but only the following menu needs to be changed +from the default, as shown in the following figure.

+

Preliminaries

+

The "Source" tab arrangement shown here assigns the first two channels to Group 0 +(thus generating a forward subarray bearing) and the last two channels to Group 1, +(generating the rear subarray bearing).

+ + +

+

3-D Towed Array Settings

+

+The module assumes that the separation between the two pairs of hydrophones in the array is great enough +that an ambiguity may exist as to how to match a particular detection on the rear subarray with candidate +detections on the forward subarray. This ambiguity is more likely when multiple acoustically active animals are present. +In general, the module also assumes that the array elements are deep enough that surface-reflected paths from pulsive +sounds can be cleanly separated in time from the direct paths. The time delay between a direct and surface-reflected path +will be defined as an "echo time" for the rest of this discussion. The echo time of a detection, along with the acoustic +bearing of the detection, provide a set of features that permit identification of the signal between subarrays.

+ +
+

To match the appropriate signals the program builds a queue of detections for each subarray, and assigns an inter-click +interval (ICI) to each detected click. The ICI of a new detection is computed by searching the queue for a detection that +shares a similar bearing and "echo time" to the present detection. One the ICI is assigned, the program can build a +"linked ICI" list that provides the ICI of the N previous detections that share similar features to the current detection. +This ICI list can then be compared to lists on the forward array to locate the corresponding detection on the forward +array.

+ +

3-D Towed Array Settings

+

This figure shows the settings menu for the 3-D Towed Array module. The Detector source should be set to 'Clicks', +and all four channels selected. The selection parameters are as follows:.

+ +

Minimum ICI needed: This parameter N defines the number of ICI to incorporate into a list for cross-array comparison. +In general the larger the number the less likely a mistake will be made in assigning detections between forward and rear +subarrays.

+ +

Maximum multipath time: Surface-reflected multipath is flagged by the fact it must arrive only a short time after a +direct path. This number sets the maximum "echo time" that will be assigned by the system. Generally, this should be set +to twice the hydrophone depth divided by the sound speed.

+ +

Maximum Queue Time: Sets the amount of time a particular detection will be retained by the subarray queue, to be +available for ICI matching.

+ +

ICI estimation: percent angle error: The percent difference between the bearing of a new detection and a candidate +detection must be less than this number, in order to use the candidate detection to assign an ICI to the new detection.

+ +

ICI estimation: echo time error: Same as above, except the error percentage is computed for the echo time. If an echo +time is present, then the bearing and echo time are weighted equally in the decision to link two detections together. +If no echo time is present, then only the bearing error is used.

+ +

Use cross-correction to refine TOA: The echo times and relative arrival times between subarrays are computed form the +detection times provided by a Detection Data Unit. To achieve more precision the raw data between detections can be +cross-correlated to increase the precision of the estimate of the relative arrival time. At present only the direct-surface +TOA (echo time) feature is enabled.

+ +

Generate 3D positions: If not checked, no 2-D or 3-D positions are computed. This is a debug feature to permit the user +to set up all other modules before attempting to localize.

+ +

+

Tracking methods

+ +

A pull-down menu permits the user to select five different tracking combinations.

+ +

Cross bearings: The simplest tracking algorithm simply uses the ICI analysis to generate bearings from the forward and +rear subarray, and thus estimate slant range. This slant range is plotted as a horizontal range on the map.

+ +

TOA only, simple TOA estimate: If echo times are available on both subarrays, then a track can be computed without +having to rely on acoustic bearings. This "TOA only" method is advantageous for situations where the sources are +directly ahead or behind the tow vessel, and where the array cable inclination is not measured and cannot be estimated +accurately. The "simple TOA estimate" simply means that a detection on the rear subarray is matched to a detection on the +forward subarray by simply selecting the detections that have the smallest relative arrival times with respect to each other. +For a single animal the "simple TOA estimate" should work more quickly than a full ICI analysis.

+ +

TOA and rear bearing, simple TOA estimate: Same as previous, except that the rear subarray bearing, instead of the +forward subarray echo time, is used to compute position. Best used for sources off the beam of the vessel and situations +where the echo time is not available on the forward subarray. Typical situations where this happens include noise masking +from noisy vessels, and shallow hydrophones on the forward subarray.

+ +

TOA only: estimate TOA using ICI Same as TOA only option previously discussed, except that ICI patterns are used to +match detections on the subarrays. Should be used when multiple animals are present.

+ +

TOA and rear bearing, estimate TOA using ICI: Same as TOA and rear bearing option discussed above, except that that +ICI patterns are used to match detections on the subarrays. Should be used when multiple animals are present.

+ +

Tracking methods

+

Any 3-D tracking method (TOA option in the Tracking method pull-down menu) will generate a Map image similar to that +shown in this figure. The depth of the source is indicated by the size of the circle and by text printed next to the +circle.The "Cross bearing" output is demonstrated in the following figure.

+

Tracking methods

+ +

+

Tracking methods

+

This figure shows Spectrogram and radar plot of simulated 3-D sources on PAMGUARD.

+ +

+

Tracking methods

+

This figure simulated 3D tracking data for multiple animals as it appears in Click Detector view.

+ + + diff --git a/target/classes/help/detectors/Pam3DHelp/docs/images/3DlocalizerSettings.png b/target/classes/help/detectors/Pam3DHelp/docs/images/3DlocalizerSettings.png new file mode 100644 index 00000000..d013fb8d Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/docs/images/3DlocalizerSettings.png differ diff --git a/target/classes/help/detectors/Pam3DHelp/docs/images/400mOutput.png b/target/classes/help/detectors/Pam3DHelp/docs/images/400mOutput.png new file mode 100644 index 00000000..42eabace Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/docs/images/400mOutput.png differ diff --git a/target/classes/help/detectors/Pam3DHelp/docs/images/ClickDetectorView.png b/target/classes/help/detectors/Pam3DHelp/docs/images/ClickDetectorView.png new file mode 100644 index 00000000..8bab9fd1 Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/docs/images/ClickDetectorView.png differ diff --git a/target/classes/help/detectors/Pam3DHelp/docs/images/CrossBearingOutput.png b/target/classes/help/detectors/Pam3DHelp/docs/images/CrossBearingOutput.png new file mode 100644 index 00000000..fa6cb2c5 Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/docs/images/CrossBearingOutput.png differ diff --git a/target/classes/help/detectors/Pam3DHelp/docs/images/DetectionParametersSettings.png b/target/classes/help/detectors/Pam3DHelp/docs/images/DetectionParametersSettings.png new file mode 100644 index 00000000..1a34aff0 Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/docs/images/DetectionParametersSettings.png differ diff --git a/target/classes/help/detectors/Pam3DHelp/docs/images/HydrophoneArrayConfiguration.png b/target/classes/help/detectors/Pam3DHelp/docs/images/HydrophoneArrayConfiguration.png new file mode 100644 index 00000000..fa182657 Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/docs/images/HydrophoneArrayConfiguration.png differ diff --git a/target/classes/help/detectors/Pam3DHelp/docs/images/RadarPlot3D.png b/target/classes/help/detectors/Pam3DHelp/docs/images/RadarPlot3D.png new file mode 100644 index 00000000..dcdeafd0 Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/docs/images/RadarPlot3D.png differ diff --git a/target/classes/help/detectors/Pam3DHelp/docs/images/WAVdataSettings.png b/target/classes/help/detectors/Pam3DHelp/docs/images/WAVdataSettings.png new file mode 100644 index 00000000..4a2fc37f Binary files /dev/null and b/target/classes/help/detectors/Pam3DHelp/docs/images/WAVdataSettings.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/DOCS b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..1188f5d5 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..5c98d86b --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +eu_u몺0믻 ꪾ껫꫺꾫ꪪ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/OFFSETS b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..57e0ac87 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +b <͂`0Y5` \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/POSITIONS b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..b2555629 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/SCHEMA b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..01876f3b --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=455 id2=1 diff --git a/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/TMAP b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..12e8ce70 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_MapOptions.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_MapOptions.html new file mode 100644 index 00000000..88a7a7a4 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_MapOptions.html @@ -0,0 +1,43 @@ + + + +Click Detector Map Options + + + + +

Click Detector

+

Click Detector Map Options


+ +

Click Detector Map Options

+

Click detector map options are accessed from the Click Display>Map Options menu.

+ +

These apply only to automatically detected click trains.

+ +

Click trains may contain varying levels of information. +Short click trains will only have a bearing to the detected source. +Longer trains that alter bearing by more than a few degrees will also have a calculated range.

+ +

Sequences of sperm whale clicks from a single source are generally broken up into shorter trains by the click train detection algorithm.

+ +

Click trains with range information are always shown. The shorter and more numerous click trains that do not have range information can rapidly clutter the map.

+

By selecting the radio buttons the operator can choose to plot either:

+ +

If no range information is present, the bearing lines on the map are drawn at a fixed length. +

+
+ +ClickMapOptions (10K) + +

+ + + + + + diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_MapOverlays.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_MapOverlays.html new file mode 100644 index 00000000..b3b45519 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_MapOverlays.html @@ -0,0 +1,68 @@ + + +Click Detector Map Overlays + + + +

Click Detector

+

Graphic Overlays

+
+

Pamguard Map

+

Data can be overlaid on the PAMGuard +map at three different levels: Clicks, Tracked +Clicks and Tracked Events. +Overlaying all clicks will generally display too much data and can slow +PAMGuard down. However this can be useful if the map options are used +to only +display a few seconds of the most recent data. Tracked Clicks and +Tracked +events will be shown if click trains are manually or automatically +detected +(see Click +Train Identification). Event +localisations will start to +show as soon as two or more clicks are marked or sufficient clicks have +been +automatically assigned to a click train for target motion analysis. If +a +localisation has not been calculated, then just a bearing line to the +first +click in the train will be shown.

+

map showing click events

+
+
+
+

Spectrogram

+

Clicks can be shown as an overlay on +the spectrogram. +They will appear as small triangles at the top +and bottom of the +display.

+

spectrogram of click
+

+

The colour of the triangles can be +the colour of the species +id of a single click, the colour assigned to a click train or a mixture +of both +– using the click train colour if one is assigned, otherwise using the +individual click classification. To control the colours, go to Click +Display>Display Overlays and select the option you require.

+

click overlay options
+

+
+
+

Radar Display

+

Bearing and amplitude of single clicks or bearing and range of +localised click trains can be shown on the radar +display. As with the spectrogram, the colour of individual +clicks can be set from the Click Display > Overlays menu.

+

radar image of click
+

+

+
+ + + \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_basicClassification.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_basicClassification.html new file mode 100644 index 00000000..3e44e653 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_basicClassification.html @@ -0,0 +1,68 @@ + + + +Basic Click Classification + + + + +

Click Detector

+

Basic Click Classification

+
+ +

The Basic click +Classifier is the same as the click classifier in the IFAW RainbowClick +software. The basic classifier is generally adequate for the +classification of high frequency harbour porpoise clicks.


+ +
+ClickType (14K) +
+ +

Clicks are classified according to any or all of 4 different tests. +Each test has a check box to the left of its parameters which can +be used to enable or disable particular tests. All +enabled tests must be passed for a positive classification to result.

+ +

Test 1. Energy Band comparison
+The summed acoustic energy in two frequency bands (Test band and Control +band) is compared. The energy in each band must lie in the ranges +indicated and the ratio between the energy in the test band must exceed +that in the control band by the specified number of decibels.

+

Test 2. Peak Frequency position
+The peak frequency must lie within a certain range. The search for the +peak frequency need not cover the entire spectrum - for instance, if low +frequency noise is always present, it will make more sense to start the +search at a higher frequency as shown in the example, where the search +is between 20kHz and 250kHz, and the peak frequency must lie in the +range 100kHz to 150kHz.

+

Test 3. Peak frequency width
+Sets limits on the width of the spectral peak. The width is defined as +the minimum amount of spectrum required to sum up to the specified +percentage of the total click energy.

+

Test 4. Mean frequency
+Sets limits on the mean frequency of the click energy within the +specified frequency band.

+

Test 5. Click length
+Sets limits on the length of the click in milliseconds. The length is +defined as the minimum length of the data required to sum up to the +specified percentage of the total click energy.

+

Acoustic Alarm
+Allows user to select the alarm associated with this click type. The alarms shown in the drop-down list are the ones previously defined in the Acoustic Alarm Settings window. The user is also able to specify a maximum amount of elapsed time between detections, to minimize alarming on spurious clicks and focus on specific inter-click intervals. The alarm will not sound on a click detection if the elapsed time since the previous click detection is greater than this number.
+
+

Species Default settings

+

The 'Species Defaults' button allows the user to use stored +standard settings for beaked whale and harbour porpoise classifiers.

+
+ + + + +


+ + diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_betterClassification.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_betterClassification.html new file mode 100644 index 00000000..6b874861 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_betterClassification.html @@ -0,0 +1,200 @@ + + +Click Classification with Frequency Sweep + +

Click Detector

+

Click Classification With Frequency Sweep

+
+

Overview

+

The click classifier with frequency sweep was added to +PAMGUARD +in 2010 to provide a wider choice of species identification parameters, +particularly for the detection of beaked whales.

+

Operation is similar to that of the Basic click +Classifier in so much that a number of different tests can be +carried +out on each click and the click will have to satisfy all of those tests +in order to be classified.

+
+Click Type +
+
+

General options

+

In the general options section, enter the species name, a +unique +identification code and select the symbol to be used for this species +on +the click detector display.

+

Channel options

+

Click detection is generally conducted on more than one +channel. +If this is the case, then the click classifier can be set to either:

+
    +
  1. +

    Require positive identification on all channels +individually

    +
  2. +
  3. +

    Require positive identification on only one channel

    +
  4. +
  5. +

    Use mean parameter values over all channels

    +
  6. +
+

Restricting the click length

+

Click waveforms from the click detector are generally longer +than the click itself. This is partly due to the pre and post samples +added to the waveform but can also be caused by the click arriving at +different times on different channels. The addition +of extra waveform data before or after the click has little effect if +the click has a high signal to noise ratio, but for quiet clicks, the +additional data is a significant +source of noise for some parameter measurements. There is therefore an +option to restrict the +length of the data used in the parameter extractions. If this option is +used, then the peak of the waveform envelope is found (see Click Length +below) and an equal amount of wave data taken from each side of the +envelope maximum.

+

Generally the click length should be set to a power of 2 (e.g. +128, 256, 512, etc) since the FFT's used in many of the calculations +require data that is an exact power of 2 long. Other values can be +used, in which case +the shortened data will be padded with zeros prior to FFT calculations.

+

Waveform Options

+

The first tab "Waveform Options" controls classification +parameters relating to the click waveform

+

Pre Filtering

+

Select this option if you want to filter the click prior to +parameter extraction. Generally measurements such as +the click length will be more accurate if unnecessary noise is first +filtered from the click

+

Amplitude Range

+

This option can be used to exclude very quiet of loud clicks. +Quiet clicks in particular tend to cause false classification since +their properties are poorly defined so they tend to mis-classify at +random

+

Click Length

+

The click length is measured by first calculating the analytic +waveform (or signal envelope) of the click using the Hilbert +transform of the waveform data

+

This is then smoothed using a moving +average +filter defined by the user (smoothing parameter in dialog).

+

The maximum of the smoothed envelope is then found and the +click +length taken as the length of the data between points either side of +that maximum which remain above the maximum value minus the threshold +(Threshold parameter in dialog).

+

The test is passed if the click length lies within the range +set +by the user (Length range parameters in dialog).

+

Zero Crossings

+

Some species of whale produce frequency modulated clicks, i.e. +the click frequency +changes during the course of the click.

+

The power spectrum of a click is an +average of the spectral energy over the duration of the click and is +therefore unable +to show changes in frequency during the course of the click.

+

Although it is possible to extract more detailed frequency +information using a +Wigner-Ville transform of the waveform data. These are slow +to compute and therefore +not suitable for real time classification.

+

The classifier therefore extracts frequency information by +examining zero crossings of the waveform data.

+

A zero crossing is defined as the signal waveform going from a +positive to a negative value or vice-versa. The classifier searches the +waveform for zero crossings only within the region of the click between +the thresholded limits from the click length estimation described above.

+

Once zero crossings have been found, the frequency between +each zero crossing is calculated. If there are three or more zero +crossings +(permitting two or more estimates of frequency) the frequency sweep is +calculated by fitting +a linear model of frequency against time.

+

Two tests can then be applied to the data. The first is the +total number of zero crossings +which must lie within the range set in the dialog. The second is the +frequency sweep +estimated from the zero crossing data.

+

Spectrum Options

+

The second tab controls classification parameters extracted +from the clicks spectrum

+
+Click Type +
+

Energy Bands

+

The energy band test compares the acoustic energy in a test +band +with the energy in two control bands.

+

The user should enter the frequency ranges of each band and a +threshold value for each of the control bands. The test is passed if +the +test band energy exceeds each of the control band energies by more than +the threshold values.

+

If only one control band is required, set both frequency +limits +of the second control band to zero.

+

Peak and Mean Frequency

+

The peak and mean frequency are measured from the power +spectrum +of the click waveform.

+

Search and integration range

+

The peak search and the frequencies over which the mean +frequency is summed can be restricted using the search and integration +range parameters in the dialog.

+

The power +spectrum can also be smoothed using a moving +average +filter to remove noisy spikes from the spectral data.

+

Peak Frequency

+

If the peak frequency test is enabled, the peak frequency +(taken as the highest +point in the smoothed spectral data between the limits of the Search +and Integration +range) must lie between the limits entered in the dialog.

+

Peak Width

+

The width of the spectral peak is measured by first finding +the amplitude of the power spectrum at the peak frequency. The peak +width is taken as the frequency range +of the data either side of that peak which are at an amplitude above +the peak amplitude minus +the threshold (threshold parameter in dialog). The test is passed if +the width of the peak lies within the set range.

+

Mean Frequency

+

The mean frequency is calculated using
+
+where

+

i is the range of frequency bins within the +search and integration range

+

I is the intensity of the spectrum at each +frequency bin i

+

f is the frequency (Hz) at each frequency +bin i

+

The test is passed if the mean frequency lies within the set +range.

+

Other Options

+

The third tab controls other options

+
+Click Type +
+

Alarm

+

You can create an audible alarm by setting an alarm on the tab +and by enabling it on the more general classifiction +panel

+
+

Species Default settings

+

The 'Species Defaults' button allows the user to use stored +standard settings for beaked whale and harbour porpoise classifiers.

+
+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickAlarmOptions.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickAlarmOptions.html new file mode 100644 index 00000000..fbce55b1 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickAlarmOptions.html @@ -0,0 +1,34 @@ + + +Click Alarm Options + +

Click Detector

+

Click Alarm Options

+
+alarm_options (22K) +
+
+

Options Window

+

Alarms can be used to provide an audible signal when certain click types +are detected. The Alarm Options dialog allows the user to create, +modify and delete any number of alarms. The Alarm Options dialog can be +opened from the Click Detection>Audible +Alarm menu.

+

The alarm can be a predefined 'beep', or a user-selected wav +file.

+

Use the Rename button to rename the current alarm (the alarm +visible in the drop-down box). Use the Remove button to delete the +current alarm. Note that there must always be at least one alarm in the +list - in such a case, this button is not selectable. Use the Add +button to create a new alarm.

+

This dialog is only used to create a list of available alarms. +Associating a specific alarm with a specific +click type is done in the Individual +Click Classification dialog.

+


+

+ + + \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickClassification.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickClassification.html new file mode 100644 index 00000000..3cc504d8 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickClassification.html @@ -0,0 +1,86 @@ + + +Click Classification +

+Click Detector +

Click Classification

+
+

Overview

+

Individual clicks detected by the click detector can be +classified using one of two different click classifiers. The first, Basic click +Classifier is the same as the click classifier in the IFAW +RainbowClick +software. The basic classifier is generally adequate for the +classification of high frequency harbour porpoise clicks and is +primarily retained for backwards compatibility with the RainbowClick +classifier. The second Classifier +With Frequency Sweep uses additional classification +parameters and is +more suitable for the detection of lower frequency odontocete clicks, +particularly those of beaked whales.

+

The classifier is set up from the Click +Detection>Click Classification +menu.

+
+ClickTypes (10K) +
+
+

Click Classifier Selection

+

Select the type of click classifier you wish to use from the +drop +down list. This will either be the Basic click +Classifier or the Classifier +With Frequency Sweep.

+

You must also check the 'Run classification online' +box if you +want clicks to be processed as they are detected.

+

You should check the 'Discard unclassified clicks' +box if you +want clicks which do not pass any of the classification criteria to be +discarded. Use this feature with great caution and only +when you are confident that the classifiers are working well for the +clicks that you do want.

+

Click Types

+

The click classification dialog contains a list of defined +click +types.

+

If more than one type is defined, then each click is tested +against each type in sequence and the click is classified as belonging +to the first type with a matching set of classification criteria.

+

If the click does not match the criteria of any of the +classifiers, then it is unclassified.

+

Use the New, Edit and Delete buttons to add, modify and remove +items from the list.

+

If an audible alarm has been associated with this click type, +checking/unchecking the alarm column will enable/disable it. Alarms can +be associated with click types in the Individual Click Classification +dialog (press the Edit button to open the dialog).

+

Each click is checked against the different click types in +sequence. As soon as one set of criteria is matched, the classifier +will +stop searching other click types. It is therefore sometimes important +to +arrange the different types in a particular order. Use the Up and Down +buttons to move different click types up and down in the list.

+

Individual species classifiers can be enabled or disabled, for +example if you wish to temporarily stop checking for a particular click +type.

+

Classified clicks can also be discarded. For example, if there +was a particular noise source causing false triggers of the click +detector (e.g. a depth sounder), it may be possible to set up a +classifier for those detections and immediately discard them.

+

If either the New or the Edit button is pressed, the +Individual +Click Classification dialog will be displayed. The behaviour of this +dialog will +depend on the type of classifier selected.

+
+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickDetector.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickDetector.html new file mode 100644 index 00000000..c981b3e9 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickDetector.html @@ -0,0 +1,208 @@ + + + +Click Detector + + + + +

Click Detector

+

Overview

+

The click detector is used to detect transient signals, + primarily from odontocete species such as sperm whales, beaked whales + and harbour porpoises.

+
+

Creating an instance of the click detector

+ +

+ From the File>Add modules>Detectors menu, or + from the pop-up menu on the data model display, select 'Click + Detector'. Enter a descriptive name for the new detector (e.g. sperm + whale detector, beaked whale detector, etc) and press Ok. +

+
+ +

Configure the Data Source

+ +

+ Go to Click Detection>Detection Parameters + to configure the click detector. +

+
+ Data Source +
+
+

+ The click detector requires a source of raw data before it can + operate. This may come directly from a Sound + Acquisition module (e.g. a sound card or a National Instruments + board) or from processed data such as the output from a Decimator + or Filter. +

+

Select an appropriate input source from the drop down list on + the click detector Detection Parameters menu,

+

Channel Grouping

+

Use the channel grouping controls to arrange the data channels + into groups.

+

Channels in the same group are analysed together so that if one + channel in a group is triggered, all channels in that group are + read-out together to create a detected click.

+

The click detector works best if data are analysed in pairs of + channels. It can then use the time delay within each pair to calculate + a bearing. If multiple pairs of hydrophones are used, these bearings + can be crossed to estimate source locations.

+

(Click detector output .clk files can also be further analysed + with RainbowClick software if the channels are arranged in pairs).

+

If you only have a pair of hydrophones, then select either 'One + group' or 'User groups' and set the group numbers to be the same.

+

If you have multiple pairs of hydrophones, select 'User groups' + and arrange the group numbers so that each group contains two channels + as shown above.

+

If you select 'no grouping' each channel will be analysed + totally independently. There are currently no PAMGUARD functions which + can re-group these single channel clicks for source localisation.

+ +

Data flow and advanced configuration

+

The data flow through the click detector is shown below

+
+ DataFlow (3K) +
+
+ +

The filters and trigger decision parameters can all be adjusted + by the user to be optimal for a particular species; and for the + background noise conditions from a particular vessel and operating + area. Setting many of these parameters is an expert procedure and + requires both experience and a thorough understanding of the types of + sound being detected.

+
+ +

Filters

+

You will see in the figure above that two filters are used; a + digital prefilter and a digital trigger filter. Two filters are + required for the following reason. For optimal detection efficiency, + the trigger only receives data in the frequency band in which the + animal is making sound. However, classifiers that assign clicks to a + particular species will require data from more parts of the spectrum. + For instance, when detecting harbour porpoises which produce narrow + band clicks between 100 and 150kHz, the trigger filter is set to a + band pass filter covering only that frequency range. The pre-filter + however is set to a high pass filter at 20kHz. The clip data therefore + contains data in the spectrum between 20kHz and 250kHz, which is used + by the classifier to distinguish between narrow band porpoise clicks + and broad band clicks from other sources.

+

+ Both filters can be configured. Go to Click + Detection>Digital pre Filter... or Digital + trigger filter... respectively. Both filters configured using the Filter Design panel. +

+
+ + +

Trigger decision

+

The trigger automatically makes a measure of background noise + and then compares the signal level to the noise level. When the signal + level reaches a certain threshold above the noise level a click clip + is started. When the signal level falls to below the threshold for + more than a set number of bins, the click clip ends and the clip is + sent to the localisation and classification modules.

+ +

+ Trigger parameters are set in the Triggers tab of the Click + Detection>Detection Parameters menu: +

+
+ + DetectionParameters-trigger (9K) + +

Individual channels can be 'turned off' in the trigger by + un-checking the appropriate check boxes. Note however, that if a + deactivated channel is part of a group, that channel will still be + read if another channel in that group triggers. This feature can be + used to reduce false triggers if one channel develops a noise problem. +

+
+ + +

The maths behind it all

+

+ The noise level N at sample i is measured using +

+
+ + noiseLevelEquation (1K) + +

+ and the signal level S is measured using +

+
+ + signalLevelEquation (2K) + +

+ where αN is either the long filter + parameter when no click is active (i.e. the signal is below threshold) + or the Long Filter 2 parameter when the signal is above + threshold. αS is the Short filter + parameter. A click is started / stopped when the ratio S/N goes above + / below the Threshold parameter. +

+
+ +

Click Length

+ DetectionParameters-length (9K) +
+
+ +

The click only ends when all chosen channels have been below + threshold for the number of samples specified by "Min Click + Separation" .

+

The maximum length of a click is set such that click clips are + limited to a maximum number of samples.

+

When a clip is created, a number of extra samples are added to + the clip before the first and last samples to rise above threshold and + after the last sample to be above threshold (pre sample and post + sample in the dialog).

+
+ +

Delays

+ +

TEXT

+ detection_parameters_delays +
+
+ FFT_filtersettings + +

Echoes

+

TEXT

+ detection_parameters_echoes + + +

Noise

+

TEXT

+ detection_parameters_noise +
+
+ + + +
+
+ + diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickDetectorDisplays.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickDetectorDisplays.html new file mode 100644 index 00000000..77ee9726 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickDetectorDisplays.html @@ -0,0 +1,32 @@ + + + + +Click Detector Displays + + +

Click Detector

+

Click Detector Displays

+
+ +

Data display and an interactive Graphical User Interface are +fundamental to the workings of the click detector. Clicks from many +species are often quite indistinct, especially when detected in noise +and at the limits of detectability. Visually, it is often easy for an +operator to pick out click trains on the display which consist of lines +of regularly spaced clicks on consistent, slowly changing bearings.

+ +

The click detector has a bespoke display panel containing a number +of different displays for looking both at click trains and at +individual clicks. It also displays information in the PAMGuard side +panel and can overlay information on the map and other standard +displays.

+

 

+

 

+ + + +


+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickSidePanel.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickSidePanel.html new file mode 100644 index 00000000..d2565454 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickSidePanel.html @@ -0,0 +1,23 @@ + + +Click Detector Side Panel + +

Click Detector

+

Click Side Panel

+
+side panel +
+
+

+The side panel displays a running tally of the number of clicks and +click events that have occurred. Also displayed is the name of the +alarm that is currently sounding (or No Alarm Sounding, +as shown above, if there is no alarm at the moment).

+

Pressing the Test Alarm button will sound each of the +currently defined alarms, one at a time, with a short pause in between.

+

 

+ + + \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickStorageOptions.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickStorageOptions.html new file mode 100644 index 00000000..03b796e8 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickStorageOptions.html @@ -0,0 +1,50 @@ + + + +Click Storage Options + + +

Click Detector

+

Click Storage Options


+ +

Click Storage Options

+ +clickStorage (9K)

+

Database Storage

+

Individual clicks may be written to the PAMGUARD database.

+

Be warned though that writing to the database can be slow and can seriously +affect overall PAMGUARD performance

+

RainbowClick files

+

+The click detector also stores click data in a format compatible with +the IFAW RainbowClick software. This allows RainbowClick can be used +for offline data analysis. Offline analysis is currently not as well +developed in PAMGUARD as it is in Rainbowclick. +

+

+For the files to be compatible with RainbowClick, the click detector must be +configured to analyse pairs of channels. +If you have multiple pairs of hydrophones you should use RainbowClick version 4.06.0000 +or higher. +

+

To enable RainbowClick compatible file storage check the 'Create RainbowClick File(s)' check box. +

+

Use the browse button and edit box to set the output directory for your data. +

+

Use the File Initials text field to set a number of characters to be +used at the start of the file name. The remainder of the name is +constructed automatically with the date and time at the start of the +file. +

+

To avoid single files becoming too large, use the 'File Length' edit box to set a maximum length for each file. +

+

+ + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTabPanelDisplays.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTabPanelDisplays.html new file mode 100644 index 00000000..eaaa591a --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTabPanelDisplays.html @@ -0,0 +1,221 @@ + + +Click Detector Tab Panels + + + +

Click Detector

+

Click Detector Tab Panels

+
+

Click Detector Displays

+

The click detector display contains four main sub windows, +although it is possible to have more than one instance of the main +bearing / time display if desired. Two optional displays, IDI Histogram +and Wigner Plot, are also available by selecting Click +Display>Add Display in the toolbar +menu.

+

toolbar display selection

+

 

+

Right clicking on the bearing / time display brings up a +pop-up +menu from which you can configure the display.

+
+

Bearing Time Display

+RCDisplayWithSperm (29K) +
+
+

Each detected click is shown as a circle or ellipse on the +scrolling display. The display options, available by right clicking on +the display, can be used to select the parameter to display on the +vertical axis: bearing, amplitude or inter-click-interval. Note that +inter-click intervals will only be shown in the automatic click train +identifier is running.

+

The example shows 20s of data with three sperm whales +currently +slightly ahead of the hydrophone array.

+

The duration of the display may be adjusted using the right +hand +(vertical) slide bar.

+

The horizontal slide bar is disabled during data acquisition.

+

Manual tracking

+

Click trains identified by eye may be tracked manually.

+

To track manually, press the default mouse button anywhere on +the +display. While the mouse is held down, the display will stop scrolling +allowing you to position the mouse above a particular click. Release +the +mouse over a click and that click will be 'tracked'.

+

Tracked clicks may be overlaid on the map display and also on +radar type displays.

+

Manual tracking with least squares localisation

+

If the same operation is performed using the right mouse +button, +then a pop-up menu appears and the operator is asked to assign clicks +to +numbered groups. Clicks within the same tracking group are assumed to +be +from the same source. PAMGUARD then uses a least squares fit to +estimate +the position of the source based on the most likely crossing point of +the bearing lines for each tracked group.

+

If a location has been successfully calculated, it can be +displayed on the map and radar displays.

+

Automatic Tracking

+

If the automatic click train identifier is running, clicks +will +be coloured when they are assigned to a click train. As with manual +tracking, PAMGUARD will use a least squares fit to estimate the +position +of the source based on the most likely crossing point of the bearing +lines.

+

As with manual tracking, automatic click trains are displayed +on +the map, either as bering lines (when no position has been calculated) +or as a bearing line and point if a position has been calculated.

+
+

Click Waveform Display

+

The waveform of each click is displayed as it is detected.

+

Click Spectrum

+

The power spectrum of each click is displayed as it is +detected.

+

Trigger

+

The trigger window shows the amplitude of the signal on each +channel as a decaying histogram. The vertical red line represents the +trigger threshold set in the detection parameters dialog (cross +reference).

+

Level meters for each channel are also shown on the right hand +side of the trigger window.

+

Display Options

+

Display options for windows on the tab panel are accessed from +the Click Display>Display Settings +menu or by right clicking on the +display.

+
+ClickDisplayParameters1 (9K) +
+

The axis panel (shown above) shows the same basic three +options +for the vertical axis that can be selected from the pop-up menu. It +also +allows you to select limits for the vertical axis when ICI or Amplitude +are displayed. The number of horizontal grid lines may also be set +(note +that this is stored separately for the three types of vertical axis).

+
+ClickDisplayParameters2 (9K) +
+

The size at which each click is displayed can also be set. +Clicks +sizes will scale between the lower and upper bounds based on their +amplitude and duration.

+
+ClickDisplayParameters3 (9K) +
+

If the +click classifier is running it is possible to select which +types of +clicks get displayed.

+

 

+

IDI Histogram

+Inter-Detection Interval Histogram Display +

The IDI (Inter-Detection Interval) Histogram Display provides +a visual interpretation of the inter-detection interval on two +different scales. The display uses a horizontal split-pane to present +the data in both a high-resolution (left pane) and low-resolution +(right pane) format. The relative proportion of the panes can be +changed by dragging the center divider to the right or to the left. +

+

The vertical axis is the elapsed time since the acoustic data +collection was started, and is common to the two panes. The units are +minutes. Each row in a pane represents a histogram of data accumulated +over the course of a certain time period (the time bin), +as defined by the IDI Display parameters (see below). In the image +above, the time bin is 1 second. This means a histogram is generated +every second from the IDI data that has been compiled over the last +second, and displayed on the screen.

+

Each pane has it's own horizontal axis. Each column represents +a range of IDI values, where the size of the range is defined by the +IDI Display parameters (see below). In the image above, the IDI bin +size is 1 ms for the high-resolution pane and 5 ms for the +low-resolution pane. The highest value bin is 70 ms for the +high-resolution pane and 700 ms for the low-resolution pane. Taking the +low-resolution pane as an example, the first bin would count the number +of inter-dection invertvals that fall between 1 ms and 5 ms, the second +bin would count the number of inter-dection intervals that fall between +6 ms and 10 ms, etc.

+

Each row/column combination, therefore, is a cell that +represents the number of inter-detection intervals counted in a +specific IDI range over a specific time period. The color of each cell +represents the magnitude of that count, with black indicating 0 and red +indicating a maximum value as defined by the IDI Display parameters +(see below). In the image above, the maximum counts in the +high-resolution pane is 20 and the maximum counts in the low-resolution +pane is 50.

+

When a click is detected, the inter-detection interval is +calculated as the elapsed time since the previous click detection (in +milliseconds). The IDI bin with a range spanning that data point is +determined, and the count within that bin is incremented by one. When +the time bin has elapsed, the counts in each IDI bin are converted to a +color and displayed on the screen as a new row at the bottom of the +pane. Each previous row is moved up by 1 to make room. The row at the +top of the pane is discarded.

+

When repositioning/tiling the window or resizing the split +panes, the display may on occasion not update properly. In such a +circumstance, simply adjust the size of the window slightly in order to +force a redraw.

+

 

+

IDI Display Parameters Dialog

+

IDI Display Parameters Dialog

+

The IDI-Display Parameters Dialog can be accessed by +right-clicking on the display window and selecting Plot Options. 3 +parameters can be specified for both the high-resolution and +low-resolution histograms:

+ +

The two time parameters are:

+ +

The histogram data can also be captured in a csv file, the +name and location of which is specifed by the user. The first column in +each row is the time of the click detection. Each column thereafter +contains the counts found in a histogram bin - first the bins in the +high-resolution histogram, followed by the bins in the low-resolution +histogram. The values in the header row represent the upper limit of +the bins (ie. for bin 1-5ms the header displays a 5, for bin 6-10ms the +header displays a 10, etc).

+

The user should use caution when saving data, as the process +is processor-intensive and will slow down other program functions.

+

 

+

 

+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTrainIdentification.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTrainIdentification.html new file mode 100644 index 00000000..4ab3ad4f --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTrainIdentification.html @@ -0,0 +1,31 @@ + + + +Click Train Identification + + + + +

Click Detector

+

Tracking and Click Train Identification


+ +

Click Train Identification

+ +ClickTrainId (7K)

+ + +

To automatically detect click trains, check the Run Click Train Id.

+ +

Click trains are sequences of clicks on a consistent bearing with a consistent inter click interval. This system is currently optimised for sperm whale click train identification. +

+

If a click train reaches sufficient length and the bearing change is adequate, target motion analysis is used to automatically calculate a range and bearing to the sound source. +

+

Bearings and ranges to click trains can be overlaid on the PAMGuard map. +



+ + + + + + + diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTrainLocalization.html b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTrainLocalization.html new file mode 100644 index 00000000..a0a4a414 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/ClickDetector_clickTrainLocalization.html @@ -0,0 +1,99 @@ + + +Tracking and Click Train Identification + + + +

Click Detector

+

Tracking and Click Train Identification

+
+

Target Motion Analysis

+
+

A common method for tracking animals, particularly sperm +whales, is to use Target Motion Analysis + +or TMA. TMA works by measuring bearings to a sound source from multiple +locations along a track-line. The crossing points of the bearings +indicates the location of the tracked sound source. 

There are two ways of linking clicks together to form click trains when +using PAMGuard in ‘normal’ mode, i.e. analysing data in real time. On +the click detector bearing time display, clicks assigned to a train are +shown in colour, depending on the options selected from the displays +settings menu.

+

+

Manual Click Train Identification

+

The most effective method of click train identification is for +the operator to manually select clicks from the click detector bearing +time display which they believe come from the same animal. To track +clicks manually, right click anywhere on the bearing time display, +scrolling will then pause and you can then release the mouse over the +click you wish to mark. A small popup menu will appear with a single +option to create a New Click Train

marking first click 

Wait a while until the angle to that click train has changed and mark +another one in the same way. This time, the menu will have the options +of adding the click to the existing click train, or creating a new +click train.

marking click

If you ware tracking multiple animals, then start a New Click Train.

+

Automatic Click Train Identification

+

+PAMGuard can attempt to mark Click Trains automatically. To enable +automatic click train identification go to Click Detection > +Click Train Identification

click train ID options

+

Clicks are associated if there is a regular Inter Click +Interval (ICI) and the clicks are on a slowly and steadily changing +bearing. In the control section set the minimum number of clicks for a +train to be created, the minimum angle for Target Motion Analysis (TMA) +to be run and in the minimum interval between location and database +updates. This last parameter is important since the localisation +calculations can take 100’s of milliseconds, so repeating them every +time a click is added to a click train can cause PAMGuard to run too +slowly.

+

ICI changes controls the minimum and maximum allowable ICI and +the change ratio governs how much the ICI can change for a new click to +be added to an existing click train. For example, if the currently +measured ICI is 1.0s and the change ratio is 1.2, then the ICI to the +next click can be anything between 1/1.2 = 0.83s and 1.2s.

+

Angle changes is the maximum angular deviation allowed +for the next click. As a click train is starting, this is the angle +difference between clicks. Once a train has enough clicks for a +localisation, it’s the angle off from that localisation point.

+

Correcting Mistakes

+

If you make a mistake tracking manually or if you think the +automatic train identification has made a mistake, click on the click +that’s been assigned incorrectly and a slightly different menu appears +giving four options.

correcting a marked click
+

+

+
    +
  1. Remove the click from the train (the click will then not be +assigned to anything) 
  2. +
  3. Reassign ALL clicks in that train to a different +train 
  4. +
  5. Reassign that click as a new click train. 
  6. +
  7. Select the train the click should be assigned to (if other +clicks have been started) +
  8. +
+ +

It is very common for the automatic click train identification +algorithm to break up an obvious click train into many smaller ones. +This happened when there are pauses or changes in click rate. +Reassigning all clicks in a train is a handy way of correcting these +errors in order to generate long click trains which will yield accurate +localisations.

+

Database Output

+

Click train information is written to the PAMGuard database using +the same database tables used for offline data analysis. This means +that any event marking which took place in real time will be available +for further offline analysis. Two database tables are used: The “events +table” contains one record of information per click train, the second +“clicks table” contains a record for each click in each event. To +maintain compatibility with earlier versions, the two database tables +are called Click_Detector_OfflineEvents and +Click_Detector_OfflineClicks (the name Click_Detector_ in these table +names will change to whatever the name of the click detector created in +the PAMGuard configuration you are using and if you have multiple click +detectors, multiple tables with different names will be created.)

+
+
+ + + \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/AmplNotSet.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/AmplNotSet.png new file mode 100644 index 00000000..77096485 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/AmplNotSet.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/AmplitudeFilter.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/AmplitudeFilter.png new file mode 100644 index 00000000..7dca2832 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/AmplitudeFilter.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/BasicClickType.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/BasicClickType.png new file mode 100644 index 00000000..0feeff50 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/BasicClickType.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/BetterClickType.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/BetterClickType.png new file mode 100644 index 00000000..6be6f78a Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/BetterClickType.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Binary.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/Binary.png new file mode 100644 index 00000000..f7fe0314 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Binary.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/BinaryDataMapping.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/BinaryDataMapping.png new file mode 100644 index 00000000..53e91b38 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/BinaryDataMapping.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDelay.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDelay.png new file mode 100644 index 00000000..70875c16 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDelay.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters1.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters1.png new file mode 100644 index 00000000..458a4741 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters1.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters2.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters2.png new file mode 100644 index 00000000..09637cd1 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters2.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters3.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters3.png new file mode 100644 index 00000000..72288bb9 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickDisplayParameters3.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickMapOptions.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickMapOptions.png new file mode 100644 index 00000000..78231dc9 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickMapOptions.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickOnRadar.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickOnRadar.png new file mode 100644 index 00000000..bde8ca78 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickOnRadar.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickOverlayOptions.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickOverlayOptions.png new file mode 100644 index 00000000..f5e78735 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickOverlayOptions.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickProcessing.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickProcessing.png new file mode 100644 index 00000000..9295ca47 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickProcessing.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTrain.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTrain.png new file mode 100644 index 00000000..ac43839e Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTrain.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTrainId.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTrainId.png new file mode 100644 index 00000000..d173c2e9 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTrainId.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickType.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickType.png new file mode 100644 index 00000000..76ad9a93 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickType.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypeWithAlarm.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypeWithAlarm.png new file mode 100644 index 00000000..1b7e5b79 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypeWithAlarm.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypes.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypes.png new file mode 100644 index 00000000..d648a1ae Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypes.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypesWithAlarm.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypesWithAlarm.png new file mode 100644 index 00000000..9a3714a2 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClickTypesWithAlarm.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ClicksOnSpectrogram.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClicksOnSpectrogram.png new file mode 100644 index 00000000..3be75e21 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ClicksOnSpectrogram.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ConvertingRainbowClickFiles.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ConvertingRainbowClickFiles.png new file mode 100644 index 00000000..24c0bbde Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ConvertingRainbowClickFiles.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/CreateNewEvent.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/CreateNewEvent.png new file mode 100644 index 00000000..0034e614 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/CreateNewEvent.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/DataFlow.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/DataFlow.png new file mode 100644 index 00000000..6cd41bf1 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/DataFlow.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/DetectionParameters-length.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/DetectionParameters-length.png new file mode 100644 index 00000000..c009c758 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/DetectionParameters-length.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/DetectionParameters-trigger.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/DetectionParameters-trigger.png new file mode 100644 index 00000000..ed0d0f14 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/DetectionParameters-trigger.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/EchoDetection.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/EchoDetection.png new file mode 100644 index 00000000..9cf59442 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/EchoDetection.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/EventList.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/EventList.png new file mode 100644 index 00000000..00b9da85 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/EventList.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Events.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/Events.png new file mode 100644 index 00000000..e7e32c8f Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Events.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Events_1.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/Events_1.png new file mode 100644 index 00000000..80539e28 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Events_1.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/FFT_filtersettings.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/FFT_filtersettings.png new file mode 100644 index 00000000..bc227c0c Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/FFT_filtersettings.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/GPStable.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/GPStable.png new file mode 100644 index 00000000..77a52519 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/GPStable.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/IDI-Display.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/IDI-Display.png new file mode 100644 index 00000000..b899550b Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/IDI-Display.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/IDI_params.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/IDI_params.png new file mode 100644 index 00000000..2bfb66d1 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/IDI_params.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/LabelClick_1.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/LabelClick_1.png new file mode 100644 index 00000000..a7d06c3a Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/LabelClick_1.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/LabelMultipleClicks.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/LabelMultipleClicks.png new file mode 100644 index 00000000..27479117 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/LabelMultipleClicks.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/LocaliseanMap.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/LocaliseanMap.png new file mode 100644 index 00000000..97f4a45c Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/LocaliseanMap.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Lookup.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/Lookup.png new file mode 100644 index 00000000..af102074 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Lookup.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/MapClickEvents.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/MapClickEvents.png new file mode 100644 index 00000000..e9633646 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/MapClickEvents.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClick1.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClick1.png new file mode 100644 index 00000000..2ef81d54 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClick1.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClick2.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClick2.png new file mode 100644 index 00000000..29c2ceda Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClick2.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClickCorrect2.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClickCorrect2.png new file mode 100644 index 00000000..7e9e74a5 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkClickCorrect2.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkingAnEvent.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkingAnEvent.png new file mode 100644 index 00000000..37eaed7b Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkingAnEvent.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkingAnEvent_1.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkingAnEvent_1.png new file mode 100644 index 00000000..87c094c9 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/MarkingAnEvent_1.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/MeanFrequency.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/MeanFrequency.png new file mode 100644 index 00000000..2a9ba591 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/MeanFrequency.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/NoDatabaseMessage.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/NoDatabaseMessage.png new file mode 100644 index 00000000..0e3ad33b Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/NoDatabaseMessage.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/NoSettingsBegin.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/NoSettingsBegin.png new file mode 100644 index 00000000..6ff7e9b5 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/NoSettingsBegin.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplay.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplay.png new file mode 100644 index 00000000..ed15edce Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplay.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplayWithSperm.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplayWithSperm.png new file mode 100644 index 00000000..38b9b268 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplayWithSperm.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplayWithSperm2.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplayWithSperm2.png new file mode 100644 index 00000000..15dfc961 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/RCDisplayWithSperm2.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Reanalyse.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/Reanalyse.png new file mode 100644 index 00000000..680e2edc Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Reanalyse.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Settings Loaded.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/Settings Loaded.png new file mode 100644 index 00000000..8a742f24 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Settings Loaded.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowAmplitudeFilter.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowAmplitudeFilter.png new file mode 100644 index 00000000..248379f6 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowAmplitudeFilter.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowEvents.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowEvents.png new file mode 100644 index 00000000..be227da8 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowEvents.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowEvents2.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowEvents2.png new file mode 100644 index 00000000..8138ec0f Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/ShowEvents2.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Show_data_count.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/Show_data_count.png new file mode 100644 index 00000000..0de530bc Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Show_data_count.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Show_datagram.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/Show_datagram.png new file mode 100644 index 00000000..76e5d5d6 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Show_datagram.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/SquareSelectionTool.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/SquareSelectionTool.png new file mode 100644 index 00000000..5a6465a1 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/SquareSelectionTool.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifier2016.PNG b/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifier2016.PNG new file mode 100644 index 00000000..be0c568c Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifier2016.PNG differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab1.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab1.png new file mode 100644 index 00000000..3d518fe2 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab1.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab2.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab2.png new file mode 100644 index 00000000..23643df1 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab2.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab3.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab3.png new file mode 100644 index 00000000..9107a32f Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/SweepClassifierTab3.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/Thumbs.db b/target/classes/help/detectors/clickDetectorHelp/docs/images/Thumbs.db new file mode 100644 index 00000000..1cf8170b Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/Thumbs.db differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/alarm_options.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/alarm_options.png new file mode 100644 index 00000000..ae9969bc Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/alarm_options.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/clickStorage.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/clickStorage.png new file mode 100644 index 00000000..477e861e Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/clickStorage.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/database.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/database.png new file mode 100644 index 00000000..8ab371b2 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/database.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_delays.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_delays.png new file mode 100644 index 00000000..c4c18b73 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_delays.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_echoes.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_echoes.png new file mode 100644 index 00000000..6206730d Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_echoes.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_noise.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_noise.png new file mode 100644 index 00000000..0108bcb2 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_noise.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_source.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_source.png new file mode 100644 index 00000000..bb3243f1 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/detection_parameters_source.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/noiseLevelEquation.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/noiseLevelEquation.png new file mode 100644 index 00000000..1187404f Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/noiseLevelEquation.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/sendToRocca.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/sendToRocca.png new file mode 100644 index 00000000..ab377a69 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/sendToRocca.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/sidepanel_no_alarm.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/sidepanel_no_alarm.png new file mode 100644 index 00000000..2dc7c93e Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/sidepanel_no_alarm.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/signalLevelEquation.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/signalLevelEquation.png new file mode 100644 index 00000000..f52e9511 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/signalLevelEquation.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/images/toolbar_selection.png b/target/classes/help/detectors/clickDetectorHelp/docs/images/toolbar_selection.png new file mode 100644 index 00000000..777ae229 Binary files /dev/null and b/target/classes/help/detectors/clickDetectorHelp/docs/images/toolbar_selection.png differ diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/offline_AddingGPSData.html b/target/classes/help/detectors/clickDetectorHelp/docs/offline_AddingGPSData.html new file mode 100644 index 00000000..08e39c4e --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/offline_AddingGPSData.html @@ -0,0 +1,40 @@ + + + +Click Viewer Overview + +

Click Detector Viewer Function

+

Adding GPS offline

+ + + + +

+The gpsData table in PamGuard has a specific format which must be copied for offline analysis. +

+ +UTC
+UTCMilliseconds
+PCLocalTime
+GpsDate
+PCTime
+GPSTime
+Latitude
+Longitude
+SpeedType
+Heading
+HeadingType
+TrueHeading
+MagneticHeading
+MagneticVariation
+GPSError
+DataStatus


+ +GPStable

+ +

You have to add or imprt the gpsData table into your database for the offline analysis. If you followed the steps described in creating binaries offline, +you still need to add the GPS processing module File>Add module...>Maps and Mapping>GPS processing first time you open up Pamguard Viewer. +Also if you want to have a map you also need to add the module File>Add module...>Maps and Mapping>Map. You need to close Pamguard Viewer after you added these modules, and open it up again so it can load the GPS data.

+


+ + \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/offline_ImportingRBC.html b/target/classes/help/detectors/clickDetectorHelp/docs/offline_ImportingRBC.html new file mode 100644 index 00000000..313f6722 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/offline_ImportingRBC.html @@ -0,0 +1,29 @@ + + +Importing RBC Files + + + +

Click Detector Viewer Functions

+

Importing RBC Files

+

If you've used Rainbow Click or older versions of Pamguard you +may have click data saved in .clk files. +Pamguard requires binary files to display click data in the viewer mode +however has the functionality to batch convert .clk files to binary +format.

+

Select Click Detection > Batch +Convert .clk to .pgdf files. This will bring +up the following window.

+
+
+ClickDisplayParameters1 (9K) +
+
+

Select the location of your .clk files and the location you +want to save the new Binary file to, then click 'Start'.

+
+
+ + +
+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/offline_MarkingOutEvents.html b/target/classes/help/detectors/clickDetectorHelp/docs/offline_MarkingOutEvents.html new file mode 100644 index 00000000..7d80812f --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/offline_MarkingOutEvents.html @@ -0,0 +1,147 @@ + + +Marking out Events + + + +

Click Detector Viewer Functions

+

Marking out Events

+

+The Pamguard viewer click detector has the ability to allow manual +marking of events. Events usually consist of a group of clicks +associated with one acoustic encounter of a particular species. Event +information is saved to the database and in certain situations, such as +when using towed arrays, can be used to localise an animals position.
+
+Creating an Event +
+
+To mark an event bring up the bearing/amplitude time display (in the +Click Detector tab). The Figure shows a porpoise click train which +needs to be marked and stored as an event. Note that the bearing time +display is very similar to the online version +just that instead of the trigger window you get a Wigner +plot as default setting.
+
+

+
ClickTrain
+
+
+

To see the classified clicks better (in this case porpoise +clicks - the red triangles) you can untick the box at the top of the +window 'Unclassified clicks'. +The bearing time display will now only show the classified clicks +(depending on your settings you have more options i.e. echos, other +species, etc.). Right click on a click and select 'Label +click...'.

+
+
+
LabelClick_1
+
+
+

This will bring up the event dialogue box. Here you can create +a new event by selecting the 'New Event' button or +add the click to an existing event by selecting any event from the +Event list.

+
+
+
Events_1
+
+
+

When creating a new event the species/event type can be +selected from the drop down menu. To add a new species/event type to +the database simply right click on the drop down menu and select 'Edit +list'.

+
+
+
CreateNewEvents
+
+
+

In the Lookup Editor window select 'Add Item' +and create a Code, Text and Symbol for your new species/event type. +Press ok. +Now you can select your new Event type/species from the drop down list +in the click event dialogue (previous figure). +The Estimated number of animals and the comment are optional but always +useful to fill in. (Note: Dont worry about the event number, Pamguard +creates an ID automatically.)

+
+
+
Lookup
+
+
+

Multiple clicks can be selected using the advanced area +selection tool. Double click on the bearing/amplitude time display. +This will bring up a dotted line which you can use to draw around a +group of clicks. By joining up the ends of the dotted line the selected +area should appear grey.

+
+
+
MarkingAnEvent_1
+
+
+

All the clicks within this grey area can be added to an event +by right clicking inside the grey area and selecting 'Label +Clicks' or use the key short cut 'Ctrl+L'. +Note that there are also other options available such as removing +clicks from a certain event etc. So if you made a mistake, dont +panick. +Other useful tools for marking an event include the amplitude +selector and +zoom +selection.

+
+
+
LabelMultipleClicks
+
+

Following the described steps your event is saved. You can now +localise it with target +motion analysis. +
+
+All events are saved in the database. To get an overview about your +events go to 'Click Detection' and then 'Show +events'.

+
+
+
ShowEvents
+
+
+

Depending on your selection you see all events in your data +set or only the ones which are in the current period. Right click on an +event and you have the option for editing, deleting or going to the +event. +This comes in handy when you want to move between events.

+
+
+
EventList
+
+
+

Events which contain clicks with bearing information can be +viewed in the map tab- simply right click and select 'Click +Detector, Tracked Clicks'. +If using a towed array events can be localised using the target +motion analysis module. +Localisation information will also be displayed on the map.

+
+
+
MapEvents
+
+
+

You can also send Events to Rocca +for click analysis. Go to 'Click Detection' and +then 'Rocca Measurement'. +A new window will open up displaying all of the currently defined +events. Select the events to analyse, and then click 'Analyze +Selection'

+
+
+
RoccaAnalysis
+
+
+ + +
+
+

+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/offline_Navigating.html b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Navigating.html new file mode 100644 index 00000000..2572ed1e --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Navigating.html @@ -0,0 +1,42 @@ + + +Navigating through Data + + + +

Click Detector Viewer Function

+

Navigating through Data

+

The Pamguard viewer mode allows navigation through large data +sets. The data +map can be used to look at large volumes of data over long +periods of time. Possible areas of interest can be found by using the +datagram and click counter in the appropiate data density graphs (i.e. +click detector-clicks). You can switch between the views by right +clicking on the display.

+
+

+
Image
+
+

+
Image
+
+
+

If an area of interest is found right click on the data map +and select 'center data here' or 'start +data here'. This will load the clicks at this time into the +bearing time display. Here individual clicks can be selected, viewed +and added to an +event.
+
+See Viewer +Overview for more details on bearing time display navigation.

+
+
+ + +
+
+
+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/offline_Overview.html b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Overview.html new file mode 100644 index 00000000..ad451c72 --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Overview.html @@ -0,0 +1,113 @@ + + +Click Viewer Overview + + + +

Click Detector Viewer Function

+

Click Viewer Overview

+

An offline analysis functionality, which is similar to that +in the IFAW RainbowClick software, +is available in PAMGUARD. To use this functionality, click detector +data must be available +in the binary +storage format and PAMGUARD must be running in Viewer +Mode.

+

The click detector viewer mode provides several powerful tools +for data analysis: +

+ +

Beginning Analysis

+

+To begin using the offline click viewer you must have a set of binary +files and a database. +If this is NOT the case, you have to create +binaries offline (i.e. after you have collected you data in +the field). +Ideally the database will have been created whilst collecting data. It +should then contain GPS co-ordinates, a list of the binary files, +settings information etc. +When you open up PamguardViewer the first option is to select the +database.
+
+

+
Database
+
+
+

By selecting this database, viewer will load automatically the +corresponding binary-, settings- and data files but sometimes it gets +the directory path wrong (especially if your data is on an external +hard drive and you plugged it in and out frequently). +Just double check if the binary storage options are correct (Note: In +this case the drive is wrong).

+
+
+
Binary
+
+
+

The programme will then load the data and create the data map +which can take a couple of minutes if you are opening up the data for +the first time. +Use the data map for navigation. +Now you start to manually +mark events.

+
+
+
BinaryDataMapping
+
+
+

If no database is available then a a new one must be created. +Open Pamguard viewer and select a blank database. A message will appear.

+
+
+
+NoDatabaseMessage
+
+
+

Select 'OK'. A dialogue asking you to +select binary files will then appear. Select the path to your processed +binary files and click 'OK'. The following window should then appear. +(Note that your binary files must contain .psfx files. +These should be automatically created when binary files are created.)

+
+
+
NoSettingsBegin
+
+
+

Right click on the small red triangle and select 'load +settings from....'. Clicks should then be loaded from the +binary files and a datamap created.

+
+
+
Settings Loaded
+
+
+

Selecting the Click Detector tab should bring up the clicks +contained in the binary files. If GPS data needs to be added a new +table must be manually created in the database. The table must be named + +''gpsData' and should be in a specific format (Adding +GPS Data offline).
+
+
+

+ +
+
+
+

+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/offline_Reanalyse_click_types.html b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Reanalyse_click_types.html new file mode 100644 index 00000000..a12964ce --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Reanalyse_click_types.html @@ -0,0 +1,74 @@ + + + +Reanalyse click types + +

Click Detector Viewer Functions

+

Reanalyse click types

+ + +

Sometimes your initial click parameter settings need changing. There is an option in Viewer to reanalyse click types which will change the corresponding binary files. +Go to Click Detection>Reanalyse click types....

+ +

+Reanalyse +

+ +

The click reprocessing window will open giving you various options to proceed. First you need to decide which data you would like to reclassify. +The options are: Loaded data, all data or new data. To reprocess all data is time consuming so if you try out different parameter settings use the option of loaded data as it is much quicker. +Once you are content with your new settings you can apply it to the whole data set.

+

In the case of offline tasks which change database entries (not all do), checking the Delete old database entries checkbox will ensure old entries are deleted and duplicates are not made.

+

+ClickProcessing +

+ + +The parameters you can change are the same as in theclick detector. + +

Reclassify clicks

+ +

This brings you to the click classification. +Here you can change either the click parameters or add a new classification.

+ +

Echo Detection

+

This opens the Echo Detection window. Here you can change the parameters for echo classification. MORE JAMIE?

+
+EchoDetection +
+ + +

Recalculate click delays

+

This opens the delay measurement window. Here you can alter the setting of how click delays are calculated. +

+ClickDelay +

+ + +You can choose either of the two options, both or none. + +

Option 1: Filter data before measurement +
This option has the following settings: +

+FFT_Filtersettings +

+ +Option 2: Use wave form envelope. EXPLAIN?? +MORE JAMIE.

+ +

Click bearings

+ +

This option allows zou to recalculate click bearings. JAMIE MORE. + +

You can run all 4 reclassification options at once or tick the ones which are suitable for the analysis. Press 'Start' to beginn the recalculation process. +You can see how far advanced the recaclulation process is in the progress bar. During re-processing the cancel button will change to a 'Stop' button and when the process is finished it will change to a 'Close' button. +When recalculating large data sets the Close button might not appear after the last file. Just press Stop instead.

+


+ +

+ + \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/offline_Reclassify_clicks.html b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Reclassify_clicks.html new file mode 100644 index 00000000..c126f0df --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Reclassify_clicks.html @@ -0,0 +1,92 @@ + + +Reclassify clicks + + + +

Click Detector Viewer Functions

+

Reclassify click types

+

Sometimes your initial click parameter settings need changing. +There is an option in Viewer to reclassify click types which will +change the corresponding binary files. +Go to 'Click Detection' and click 'Reanalyse +click types'. +
+
+Reanalyse +
+
+The click reprocessing window will open giving you various options to +proceed. First you need to decide which data you would like to +reclassify. +The options are: Loaded data, all data or new data. To reprocess all +data is time consuming so if you try out different parameter settings +use the option of loaded data as it is much quicker. +Once you are content with your new settings you can apply it to the +whole data set. JAMIE: WHAT DOES the DELETE OLD DATABASE ENTRIES DO? +
+
+ClickProcessing +
+
+The parameters you can change are: +

+

Reclassify clicks

+

This brings you to the click +classification. +Here you can change either the click parameters or add a new +classification.

+

Echo Detection

+

This opens the Echo Detection window. Here you can change the +parameters for echo classification.

+
+EchoDetection +
+

Recalculate click delays

+

This opens the delay measurement window. Here you can alter +the setting of how click delays are calculated. +
+
+ClickDelay +
+
+You can choose either of the two options, both or none.
+
+Option 1: Filter data before measurement +
+This option has the following settings: +
+
+FFT_Filtersettings +
+
+Option 2: Use wave form envelope. This takes the +Hilbert Transform of the wave and uses this to calculate time delays +instead of the true waveform. This is useful for spectraly pure signals +which have characteristic wave envelopes, such as Harbour Porpoise +clicks.

+

Click bearings

+

This option allows you to recalculate click bearings. These +may have changed due to altering the spacing between hydrophone +elements or perhaps you have recalculated the click delays, hence the +bearings will have changed. +
+
+You can run all 4 reclassification options at once or tick the ones +which are suitable for the analysis. Press 'Start' +to beginn the recalculation process. +You can see how far advanced the recaclulation process is in the +progress bar. During re-processing the cancel button will change to a 'Stop' +button and when the process is finished it will change to a 'Close' +button. +When recalculating large data sets the Close button might not appear +after the last file. Just press Stop instead.

+
+
+ + +
+
+
+

+ \ No newline at end of file diff --git a/target/classes/help/detectors/clickDetectorHelp/docs/offline_Tools.html b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Tools.html new file mode 100644 index 00000000..4c6ab19d --- /dev/null +++ b/target/classes/help/detectors/clickDetectorHelp/docs/offline_Tools.html @@ -0,0 +1,90 @@ + + +Tools for marking an event + + + +

Click Detector Viewer Functions

+

Tools for marking an event

+


+There are a few tools which are useful whilst marking +an event or +working with the click detector in Viewer +Mode.
+

+
    +
  1. +

    Amplitude Selector

    +
  2. +
  3. +

    Zoom Selection

    +
  4. +
+

+

Amplitude Selector

+

+

+The amplitude selector is effectivly a filter. It will only show you +the clicks after a certain decibel threshold. This becomes useful if +your data shows extensive background noise. +
+
+

+
AmplNotSet
+
+
+

You can also enhance a click event by applying the amplitude +selector as it makes the click train usually cleaner, which will +improve Target +Motion Analysis. The amplitude selector can be activated by a +right click on the bearing time display selecting 'Show +amplitude selector'.

+
+
+
ShowAmplitudeFilter
+
+
+

A window for the amplitude selector will open showing an +amplitude histogram and some descriptive statistics from the loaded +data. The default setting for minimum amplitude is set to zero. Go to +the field and put a sensible number in judging by the histogram and +tick the box 'Display only clicks of set amplitude'. +A red line appears in the histogram which you can drag with the mouse +which changes the amplitude threshold. The clicks shown in the bearing +time display change accordingly. +When the amplitude selector is active a message appears at the bottom +of the bearing time display which reads how many clicks are not +displayed and the amplitude threshold currently set.

+
+
+
AmplitudeFilter
+
+
+

+

Zoom Selection

+

+

There are different ways to zoom. A simple rectangular area of +clicks can be selected by clicking on the bearing time display and +dragging the mouse. A black square will apear which you can zoom into +with a double click.

+
+
SquareSelectionTool
+
+
+

You can also use the advanced area selection tool (the one +where it gets grey) for more complex click sections. Same principle +applies. Alternatively to the double click to zoom you can also right +click and select 'Zoom in'. +Right click and select 'Zoom right out' to return +to the full click display.
+
+
+

+ + +
+
+
+

+ \ No newline at end of file diff --git a/target/classes/help/detectors/gpl/docs/configure.html b/target/classes/help/detectors/gpl/docs/configure.html new file mode 100644 index 00000000..1657b7ee --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/configure.html @@ -0,0 +1,80 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Configuration

+

+ Before creating a GPL module, you will need a + Sound + Acquisition module and an FFT + (Spectrogram) Engine. If these do not already exist you will be + prompted to create them when you add the GPL Module. In the File Menu, + go to Detectors / Generalised Power Law Detector and the module will + be added to your PAMGuard configuration. +

+

Note that the GPL detector is most useful for the detection of low frequency baleen whale sounds. If your raw + data are + high frequency, then consider adding a Decimator + module between the Sound Acquisition and FFT modules to + lower the frequency of the data.

+ +

FFT Data source

+

Open the GPL detector dialog from the main Settings menu and select the FFT data source and indicate which + channels + you want the detector to operate on. The detector will operate independently on each selected channel.

+

Note the frequency and time resolutions of the FFT data which are displayed in the dialog. If these are not + suitable, then + make adjustments in the FFT module before returning to the GPL configuration.

+

+
+
+ +

Spectrogram Whitening

+

The GPL detector uses advanced signal processing methods to estimate a median background noise which is then subtracted + from the data. The Whitening Time Period is the time over which this background is measured. + When processing starts, it can take up to two of these whitening periods for the initial background measurement to + stabilise. For this reason, data are often processed in blocks, so the software can scan back and forth within the same + block of data to make the background measurement, then search for detections.

+

+
+
+

Blocked Processing
+ In this mode, data are read in in blocks of the length of the whitening period, the background is measured on that block + of data, and then detections made within the same block. This works well for offline processing of duty cycled recordings. + However, when processing data in real time, no detections will be visible to the user until the end of each block, and the + detections may scroll off the screen before you've had a chance to look at them!

+ +

Block First
+ In this mode, the first block of data is processed exactly as for Blocked Processing. After that, the system then + switches to continuous processing, where the background is continually updated based on the data within the preceding + whitening period. After the initial block, this provides smoother displays than Blocked Processing. Output should be + very similar, however the background measurement at a moment in time will be slightly different, so results may vary slightly. + This mode could be used either for real time processing or for offline processing of recorded data.

+ +

Block First
+ In this mode, there is no blocking of data and all background assessments are made on preceding data. This mode is therefore NOT + suitable for offline processing of recordings, since detection will not be possible within the first two whitening time periods of + each file. However, for long term real time monitoring, if you're not too fussed about the first minutes of data, it would be + possible to use this processing mode.

+ +

+ + +


+ + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/gpl/docs/contours.html b/target/classes/help/detectors/gpl/docs/contours.html new file mode 100644 index 00000000..4bf6c124 --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/contours.html @@ -0,0 +1,62 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Contour Detection

+

Once a power law detection has been completed, the detector makes a search of that region of the spectrogram to + find the outlines, or 'contours' of sounds. Within each detection, it may be possible that there are multiple contours, + for example due to harmonics, or several closely spaced separate sounds. If the contour detection threshold is + set too high, or if the sounds were very faint, it's also possible that no contours will be found within a detection.

+ + +

+
+
+ +

Contour detection threshold
+ This is the main threshold for contour detection. Prior to applying this threshold, the whitened data from the first stage of detection pass through a second whitening process. It + is therefore not possible to relate this threshold to a meaningful Decibel value.

+ +

Minimum contour area
+ Minimum area for detected contours expressed as a number of pixels (time-frequency bins) from the spectrogram + rising above the contour detection threshold. Contours smaller than this will be rejected.

+ +

Connect 4 and Connect 8
+ These control how pixels in the whitened spectrogram that are above the contour detection threshold are joined together. + If Connect 4 is selected, pixels will only be joined if they are touching at their sides (i.e. above, below, before or after). + If Connect 8 is selected, pixels will also be joined if they are touching on their diagonals.

+ +

Multiple contours
+ Three options are available when multiple contours are detected:
+ Biggest contour only: Keep only the largest contour based on it's area (total number of pixels).
+ Separate all contours: Keep every contour as a separate detection.
+ Merge all contours: Merge all the separate contours into one larger contour.

+ +

Detections with no contour
+ On occasion, the GPL algorithm detects a sound, but the sound is too faint for any contours to be found in that region of data. These + regions will be discarded, not being shown on the displays and not being stored in the + Binary Files or + Database unless you select the option to "Keep detections with no contour".

+ + + + +

+ + +


+ + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/gpl/docs/defaults.html b/target/classes/help/detectors/gpl/docs/defaults.html new file mode 100644 index 00000000..ce5bd1a0 --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/defaults.html @@ -0,0 +1,104 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Default Settings

+

Default values for different species can be imported and exported from xml files using the drop down menu + which shows when you click on the Defaults button.

+ +
+
+ +

The configuration files are in xml format, which means that they can be opened and read with most + text editors and easily imported into other software, such as R or Matlab.

+

A selection of standard GPL configurations can be downloaded here.

+

Note that the configuration files only contain information about the GPL detection parameters and + do not contain information about the sample rate and FFT length of the data that the GPL detector is + connected to.

+

Sample rate and FFT length are important, since they control the time and frequency resolution of the + data coming into the detector.

+ +

You should adjust the FFT + (Spectrogram) Engine parameters so that they are appropriate for the species you're trying to detect, + including a Decimator module + if necessary to provide data at the right sample rate. If a sample rate is many times the frequency of the sound + you're interested in, then + you may find you need a very long FFT length to get a sensible time and frequency resolution.

+ + +

This means that data with a sample rate of + 2000 Hz, and FFT length of 2048 samples and an FFT hop of 128 samples will have time and frequency resolutions + of 64ms + and 0.98 Hz respectively. Exactly the same time and frequency resolutions could be achieved with data sampled at + 1000Hz + if you were to use an FFT length of 1024 samples and FFT hop of 64 samples.

+ + +

Nominal values for these parameters that have been used in the past are provided below.

+ +

Note that PAMGuard does support FFT lengths which are not an exact power of 2, however such values may mean + that the FFT's are slow to compute which may impact on processing speed.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpeciesSample RateFFT LengthFFT Hop
Blue Whale D2000 Hz2048128
Fin Whale 20Hz2000 Hz2048128
Fin Whale 40Hz2000 Hz2048128
Humpback2000 Hz2048128
Bryde's whale6000 Hz4096512
+ + +

+ + +


+ + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/gpl/docs/defaults_old.html b/target/classes/help/detectors/gpl/docs/defaults_old.html new file mode 100644 index 00000000..8c9c9485 --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/defaults_old.html @@ -0,0 +1,85 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Default Settings

+

Default values for several species are available by clicking on the Set Defaults button.

+ +
+
+ +

Note though that these default values were designed to work with specific sample rates, FFT lengths and FFT + overlaps and + you should adjust the FFT + (Spectrogram) Engine parameters accordingly, including a Decimator module + if necessary to provide data at the right sample rate. Nominal values for these parameters are provided below.

+

Key is to have about the right time and frequency resolution. The time resolution is the FFT Hop divided by the sample rate + and the frequency resolution is the sample rate divided by the + FFT Length. This means that data with a sample rate of + 2000 Hz, and FFT length of 2048 samples and an FFT hop of 128 samples will have time and frequency resolutions of 64ms + and 0.98 Hz respectively. Exactly the same time and frequency resolutions could be achieved with data sampled at 1000Hz + if you were to use an FFT length of 1024 samples and FFT hop of 64 samples.

+

Note that PAMGuard does support FFT lengths which are not an exact power of 2, however such values may mean + that the FFT's are slow to computer which may impact on processing speed.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpeciesSample RateFFT LengthFFT Hop
Blue Whale D2000 Hz2048128
Fin Whale 20Hz2000 Hz2048128
Fin Whale 40Hz2000 Hz2048128
Humpback2000 Hz2048128
Bryde's whale6000 Hz4096512
+ + +

+ + +


+ + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/gpl/docs/detection.html b/target/classes/help/detectors/gpl/docs/detection.html new file mode 100644 index 00000000..0de536b7 --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/detection.html @@ -0,0 +1,69 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Detection

+

The GPL detector has several parameters controlling the frequency range of data to search for sounds, the power + law to apply, duration of sounds, etc. The PAMGuard implementation also provides some pre-set default values + provided by Tyler Helble which work reasonably well for a number of species. Note however that all parameters + may require adjustment in different noise environments.

+ + +

+
+
+ +

Minimum and Maximum Frequency
+ These are the minimum and maximum frequencies used by the detector for spectrogram whitening, background measurement and detection.

+ +

Whitening scale factor
+ This is a scaling factor used to increase the level of background subtraction during the whitening process. + Generally it should be 1.0, but can be increased to 1.5 for noisy data.

+ +

Power law's (time and frequency)
+ These are the variables &nu1 and &nu2 in Equation 6 in Helble et al 2011. +The two power law parameters have slightly different properties, in that &nu1 is +operating on a spectrogram whitened over time and is therefore better at rejecting constant noise sources, +whereas &nu2 operates on a spectrogram whitened over frequency, so is better at rejecting broad band transients. +However, the effects of the two parameters are broadly similar. Overall, the sum of both &nu1 and &nu2 should be around 2.5 +for the detection of narrow band tonal systems. +

+ +

Detection ON and OFF Thresholds
+ For a detection to occur, the detection statistic must rise above the ON threshold. When this occurs, the detector will then search backwards + and forwards in time and select all data which were above the lower OFF threshold.
+ The values are expressed as factors, simple ratios of the power law statistic compared to background noise. As a guide, approximate decibel values + based on the threshold and magnitude of the power law parameters are also given. +

+ +

Minimum Gap
+ Many detections, particularly of lower amplitude sounds, will rise and fall above the detection thresholds more than once due to varying amplitude + over time. If the gap between subsequent peaks above threshold is less than the minimum gap, multiple small detections will + be joined together into a single large detection. The value is entered as the number of FFT time bins, but is also displayed in + seconds, based on the entered value and configuration of the spectrogram module.

+ +

Minimum and Maximum Length
+ These are the minimum and maximum lengths of a detection in seconds. Any detection that is shorter than or longer than these limits + will be rejected. The values are entered in seconds, but also displayed in + FFT time bins, based on the entered value and configuration of the spectrogram module.

+ + +

+ + +


+ + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/gpl/docs/gpldetector.html b/target/classes/help/detectors/gpl/docs/gpldetector.html new file mode 100644 index 00000000..54a5a2a1 --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/gpldetector.html @@ -0,0 +1,54 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Overview

+

The Generalised Power Law (GPL) Detector is a real time + implementation of the detector described in Helble et al, 2012. This + detector is particularly useful for the detection of highly variable + tonal sounds, such as those from humpbacks, where correlation or other + shape based detectors become ineffective.

+

A generalized power-law detection algorithm for humpback whale + vocalizations. Tyler A. Helble, Glenn R. Ierley, Gerald L. DSpain, + and Marie A. Roch and John A. Hildebrand. The Journal of the + Acoustical Society of America 131, 2682 (2012).
+ + http://asa.scitation.org/doi/abs/10.1121/1.3685790

+ +

Algorithm

+

For details of the algorithm, see Helble et al 2012. The papers + abstract is given here to give a quick summary of what happens. In + many ways, the algorithm is similar to an in band energy detector, + however by raising the amplitude of the data in a spectrogram to a + higher power, tonal sounds become amplified by a much greater amount + than broader band sources of noise such as shipping or wave motion.

+ +

ABSTRACT (from Helble et al, 2012)

+

Conventional detection of humpback vocalizations is often based on frequency summation of band-limited + spectrograms under the assumption that energy (square of the Fourier amplitude) is the appropriate metric. + Power-law detectors allow for a higher power of the Fourier amplitude, appropriate when the signal occupies a + limited but unknown subset of these frequencies. Shipping noise is non-stationary and colored and problematic + for many marine mammal detection algorithms. Modifications to the standard power-law form are introduced to + minimize the effects of this noise. These same modifications also allow for a fixed detection threshold, + applicable to broadly varying ocean acoustic environments. The detection algorithm is general enough to detect + all types of humpback vocalizations. Tests presented in this paper show this algorithm matches human detection + performance with an acceptably small probability of false alarms (PFA < 6%) for even the noisiest environments. + The detector outperforms energy detection techniques, providing a probability of detection PD = 95% for + PFA < 5% for three acoustic deployments, compared to PFA > 40% for two energy-based techniques. The + generalized power-law detector also can be used for basic parameter estimation and can be adapted for other + types of transient sounds.

+ + +

+ +


+ + + \ No newline at end of file diff --git a/target/classes/help/detectors/gpl/docs/gpldisplays.html b/target/classes/help/detectors/gpl/docs/gpldisplays.html new file mode 100644 index 00000000..512c7657 --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/gpldisplays.html @@ -0,0 +1,53 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Displays

+

Whitened spectrogram data

+

The whitened spectrogram is only calculated for the frequency + range specified in the settings, with data at other frequencies set to + 0. It can be viewed either using the + Spectrogram Display or the + Time Display FX. In either case + simple select the GPL Whitened Spectrogram as the data source. Note however, that during the whitening process + the scale of the data changes, so the displayed amplitude values no longer have any meaning.

+

+
+
+

Figure showing an FX display with raw spectrogram data, whitened spectrogram data and the GPL detection function

+ +

GPL detection overlays

+

Detected contours can be displayed as overlays on the + Spectrogram Display. Simply right click on the display and select GPL Detector Detections. To change colour options, click on the small + options button to the left of the menu item.

+
+
+

Figure showing a Spectrogram display with spectrogram data on it's own and overlaid with GPL detections

+ +

Similarly, GPL detections can be shown as overlays on the + PAMGuard map. If GPL detections have been localised bearing lines and / or 2D or 3D localisations + will be displayed.

+ + +

Detection Statistic / Trigger Function

+

Viewing the summed power in the detection frequency band is a + useful way of checking on detector performance. The statistic for each + channel the detector is running on can be shown as a line graph in the + Spectrogram Display or the + Time Display FX.. To view the data, once youve created the GPL + Detector and the Time Display, simply add GPL Level to a display + graph as shown in the examples above.

+ +

+ + +


+ + + diff --git a/target/classes/help/detectors/gpl/docs/gploutputs.html b/target/classes/help/detectors/gpl/docs/gploutputs.html new file mode 100644 index 00000000..4517e026 --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/gploutputs.html @@ -0,0 +1,53 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Outputs

+ +

The GPL Detector has three outputs, the whitened spectrogram, + the level of the detection statistic and detections made by the + detector. The first two of these are primarily for diagnostic purposes + and are not stored, the detections can be displayed as overlaid on + displays and are written to the PAMGuard binary storage.

+ + +

Binary Store

+

The GPL detector outputs both detections and background noise information to the + binary store.

+

Both the detections and the background measurements can be read from the binary files into Matlab and R using the + Matlab and R libraries. +

Detections

+

Detailed information for each detection, including the full outline of each detection are written to the binary storage files. + This provides a much higher level of detail than is written to the database, so is the preferred storage methods for GPL output.

+ +

Background measurements

+

In order to assist in understanding detector performance, the background level within the GPL detection algorithm is also written to the + binary store. If data are being processed in blocks, then this will be once per block, otherwise if data are being processed continuously it + will be every 10s.

+

The stored background data are the spectral levels of the median filter used in the first stage of the detection algorithm. These provide a + good measure of how feasible it is to detect sounds at different frequencies within the GPL detection band in varying noise conditions.

+

Depending on the configuration of the + binary store, background measured will either be written to the + pgdf files, along with detection data, or to separate pgnf pamguard noise files.

+ + +

Database

+

+ Detections can also be written to the PAMGuard database. + However, the database records only contain the times and frequency limits of each detection and not the detailed contour + information. The binary store is therefore the preferred storage format for GPL output data.

+ +

+ + +


+ + + diff --git a/target/classes/help/detectors/gpl/docs/images/defaults.png b/target/classes/help/detectors/gpl/docs/images/defaults.png new file mode 100644 index 00000000..a16fa39a Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/defaults.png differ diff --git a/target/classes/help/detectors/gpl/docs/images/defaults_old.png b/target/classes/help/detectors/gpl/docs/images/defaults_old.png new file mode 100644 index 00000000..8c0c539b Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/defaults_old.png differ diff --git a/target/classes/help/detectors/gpl/docs/images/fxdisplay.png b/target/classes/help/detectors/gpl/docs/images/fxdisplay.png new file mode 100644 index 00000000..4ac23040 Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/fxdisplay.png differ diff --git a/target/classes/help/detectors/gpl/docs/images/gpl_contour.png b/target/classes/help/detectors/gpl/docs/images/gpl_contour.png new file mode 100644 index 00000000..423887f6 Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/gpl_contour.png differ diff --git a/target/classes/help/detectors/gpl/docs/images/gpl_detect.png b/target/classes/help/detectors/gpl/docs/images/gpl_detect.png new file mode 100644 index 00000000..505a02bc Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/gpl_detect.png differ diff --git a/target/classes/help/detectors/gpl/docs/images/gpl_fft.png b/target/classes/help/detectors/gpl/docs/images/gpl_fft.png new file mode 100644 index 00000000..098aff2f Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/gpl_fft.png differ diff --git a/target/classes/help/detectors/gpl/docs/images/gpl_notes.png b/target/classes/help/detectors/gpl/docs/images/gpl_notes.png new file mode 100644 index 00000000..375cc68b Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/gpl_notes.png differ diff --git a/target/classes/help/detectors/gpl/docs/images/gpl_white.png b/target/classes/help/detectors/gpl/docs/images/gpl_white.png new file mode 100644 index 00000000..72cfb0a3 Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/gpl_white.png differ diff --git a/target/classes/help/detectors/gpl/docs/images/specdisplay.png b/target/classes/help/detectors/gpl/docs/images/specdisplay.png new file mode 100644 index 00000000..ea79dcc3 Binary files /dev/null and b/target/classes/help/detectors/gpl/docs/images/specdisplay.png differ diff --git a/target/classes/help/detectors/gpl/docs/localisation.html b/target/classes/help/detectors/gpl/docs/localisation.html new file mode 100644 index 00000000..f0066c4c --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/localisation.html @@ -0,0 +1,29 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Localization

+ +

The GPL detector is fully compatible with generic PAMGuard localisers + the Bearing Localiser + and the Group 3D Localiser.

+

+ +

+

+


+ + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/gpl/docs/notes.html b/target/classes/help/detectors/gpl/docs/notes.html new file mode 100644 index 00000000..11ee2b09 --- /dev/null +++ b/target/classes/help/detectors/gpl/docs/notes.html @@ -0,0 +1,37 @@ + + + + + Generalised Power Law Detector + + + + +

Generalised Power Law Detector

+

Notes

+

To help keep track of GPL configurations, enter notes to describe your configuration.

+

The notes tab has two boxes you can type into and you. The top box will automatically be + filled with information about files you import configurations from, + which will always overwrite exiting text. Therefore your 'main' notes should be added to the + lower of the two boxes.

+ + +

+
+
+ + + +

+ + +


+ + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/DOCS b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..b2363e2e --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/DOCS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..90e8e7aa --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +e@j \ No newline at end of file diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/OFFSETS b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..cae33c93 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +Ȁ \ No newline at end of file diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/POSITIONS b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..85b50a65 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/POSITIONS @@ -0,0 +1 @@ +S1eB0Y@a -Vw}E4,*V9:+>( \ No newline at end of file diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/SCHEMA b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..55514131 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=37 id2=1 diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/TMAP b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..6d8adbd9 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/LikelihoodDetector_.hs b/target/classes/help/detectors/likelihoodDetectionModuleHelp/LikelihoodDetector_.hs new file mode 100644 index 00000000..9bb85a52 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/LikelihoodDetector_.hs @@ -0,0 +1,55 @@ + + + + + Help + + +top + + + + + + +TOC + + + +javax.help.TOCView + + +LikelihoodDetector_TOC.xml + + + + +Index + + + +javax.help.IndexView + + +LikelihoodDetector_Index.xml + + + + +Search + + + +javax.help.SearchView + + +JavaHelpSearch + + + diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/LikelihoodDetector_helpIndex.html b/target/classes/help/detectors/likelihoodDetectionModuleHelp/LikelihoodDetector_helpIndex.html new file mode 100644 index 00000000..7843f634 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/LikelihoodDetector_helpIndex.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + +
+

Welcome to a new Help Project

+ +

General Remark

+ +

This is a default welcome page that is displayed when + you open your helpset in the viewer without specifying a + target. Change it according to your needs. If you do not + like this template, you can also edit the file + %INSTALLDIR%/templates/index.html.

+ +

Now you can create your HTML content files. Put them + in subdirectories of your project directory.

+
+ + + diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/Project.xml b/target/classes/help/detectors/likelihoodDetectionModuleHelp/Project.xml new file mode 100644 index 00000000..ff045313 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/Project.xml @@ -0,0 +1,32 @@ + + + + + + +LikelihoodDetector_ + + +/home/gryan/work/eclipse/workspace/pamsoft2006/likelihoodDetectionModuleHelp + + +LikelihoodDetector_helpIndex.html + + + + + + + +Help + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_Config.html b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_Config.html new file mode 100644 index 00000000..e7bb1771 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_Config.html @@ -0,0 +1,472 @@ + + + + Likelihood Detector Introduction + + + +

The Likelihood Detector Module

+

Configuring the Likelihood Detector

+

Once there is a Likelihood detector module added to the PAMGUARD system, the module + can be configured by selecting the Detection-> menu item and choosing + the menu option with the name that was supplied when the module was added. +

+ If this is the first time the module has been configured, then a + dialog resembling the following will appear.

+

+ + + +

Likelihood Detector Parameters Dialog

+ +
+

+

Selecting an Audio Data Source

+

Located at the top of the Likelihood Detector configuration dialog is the standard + PAMGUARD Raw Data Source management panel. Using the drop-down box + you can select a single audio source for the module. A Likelihood Detection module + can only have one audio source. If you would like to process multiple target + configurations on multiple audio sources simultaneously, you will need to add another + Likelihood Detection module. See the section on + adding a new Likelihood Detection module + for more information. +

+ You can also select which channels of audio data to process. By default, all channels + will be selected, but by using the checkboxes you can filter out specific channeles.

+

+ + + +

Selecting an audio source

+ +
+

+

Adding a Target Configuration

+

To add a new target configuration to the Likelihood Detector module, right-click + on the "Target Configurations" row in the list box and select + "Add Configuration".

+

+ + +
+ +
+

A dialog box will open and prompt you to enter a unique name for the target + configuration. The dialog will not allow you to enter in a name that is already + taken. Note that target configuration names are case sensitive.

+

+

General Parameters

+

Once a target configuration is added, it will be displayed in the configuration + area, showing the default values for the general parameters. These general parameters + are discussed in brief below.

+

+ + +
+ +
+ +

+

Parameter Tooltips

+

Most of the target configuration parameters have legal bounds that are determined + either by the audio data source's parameters or by other target configuration + parameter values. In order to ease configuration of the Likelihood Detector module, + tool tips are provided in the configuration dialog. Leaving the mouse pointer over + a parameter's value in the Value column of the dialog's target configuration + window will display a tool tip indicating the valid lower and upper bounds for a + parameter. The bounds displayed by the tool tip will be enforced by the editing + widget for the parameter.

+

+ + + +

Showing a parameter's tool tip

+ +
+
+

Note: Some parameters are co-dependent, for example the signal/guard band's noise window and the + signal window. To be able to enter the value you want, it may be necessary to alter a dependent + parameter. The tool tips will help you with this by explaining if any parameter boundries are + dependent on another parameter.

+
+

Editing a Parameter

+

All of the configurable parameters for a target configuration are editable in-place + within the configuration dialog. To edit a parameter, simply double-click with the left + mouse button on a value in the Value column and an editing widget will + appear.

+ The editing widget for a parameter will enforce the valid values on the numbers that + are entered.

+

+ + + + + + +

Editing configuration parameters

+ + + +
+
+

Note: Some parameters are co-dependent, for example the signal/guard band's noise window and the + signal window. To be able to enter the value you want, it may be necessary to alter a dependent + parameter. The tool tips will help you with this by explaining if any parameter boundries are + dependent on another parameter.

+
+

Parameter Validation

+

The Likelihood Detector's configuration dialog provides validation of user input. When a tool tip + displays a range of valid values (see Parameter Tooltips, above) the configuration dialog will + give live feedback to the operator by disallowing invalid characters and values to be entered. This + feature works in conjunction with the error reporting described below. +

+ The Java Validator used to implement the validation can be very literal with what it allows you to + type. Here are some helpful hints to keep in mind when entering floating-point values:

+
+ +
+

Note: Some parameters are co-dependent, for example the signal/guard band's noise window and the + signal window. To be able to enter the value you want, it may be necessary to alter a dependent + parameter. The tool tips will help you with this by explaining if any parameter boundries are + dependent on another parameter.

+
+

Error/Warning reporting

+

When a new target configuration is added, or when all of the signal bands for + a target configuration have been removed, the target configuration isn't valid. + Since a configuration isn't valid without at least one signal band, the + target configuration selection box will display a red border prompting you to + add a signal band.

+

+ + + +

Invalid configuration error with tool tip showing

+ +
+
+

While editing a target configuration parameter, if the text entered isn't valid or + is not within the allowed legal boundries for the parameter, then the configuration + dialog will display a red border around the parameter's editor and keep the editing + focus there until a valid value is entered.

+

+ + + +

A parameter error while editing

+ +
+
+

Since many of the target configuration's parameters have legal boundries based on + audio data source parameters or on other configuration parameters, it is possible that + a change to a parameter will invalidate some other parameter in a target configuration. + In addition, a change to an audio data source may invalidate values in one or more + whole target configurations.

+ If this condition occurs, then the existance of invalid parameter(s) will be indicated in two ways:

+ + + + +

A parameter dependency error

+ +
+
+

In certain cases, a value can be within an accepted range, but it will produce an undesirable + result. For example, the Noise Window parameter of the signal and guard bands will produce a + warning if it is set to a value that is greater-than or equal to the time resolution times 500. + In this case, the warning is provided to make the user aware of the increased processing + load that would be required.

+

+

When a warning condition is detected, the configuration dialog will change the background of + that parameter to yellow:

+

+ + + +

A parameter warning

+ +
+ +

+

Adding a Signal Band

+

To add a new signal band to a target configuration, right click on the + Detection Bands tree item for the name of the + target configuration you wish to add a new band to, and a pop-up dialog will appear. + Select the Add Signal Band menu option. You will be prompted to add a + new unique signal band identifier for the target configuration. The band name + dialog will ensure that the identifier you choose is unique.

+

+ + + +

Adding a signal band

+ +
+

Signal Band Parameters

+

When a new signal band is added, the Likelihood Detection module will add a series of + default parameter values for the band.The default thresholds should be acceptable for + most environments but can be lowered if the detector has too many missed detections, + or raised if the detector is generating too many false detections. These are shown + and described below:

+

+ + + +

Signal band parameters

+ +
+

+ +

+

Adding a Guard Band

+

To add a new signal band to a target configuration, right click on the + Detection Bands tree item for the name of the + target configuration you wish to add a new band to, and a pop-up dialog will appear. + Select the Add Guard Band menu option. You will be prompted to add a + new unique signal band identifier for the target configuration. The band name + dialog will ensure that the identifier you choose is unique.

+

+ + + +

Adding a guard band

+ +
+

+ +

Guard Band Parameters

+

When a new guard band is added, the Likelihood Detection module will add a series of + default parameter values for the band. The default thresholds should be acceptable for + most environments but can be lowered if the detector has too many missed detections, + or raised if the detector is generating too many false detections. + These are shown and described below:

+

+ + + +

Guard band parameters

+ +
+

+ +

+

Enabling and Disabling a Target Configuration

+

A single Likelihood Detection module can have many different target configurations + configured, but not all of them need to be active during a detection run. +

+ Enabling and disabling a target configuration is as easy as selecting the + target configuration checkbox located next to the name of the target configuration + in the configuration tree.

+

+ + + +

An enabled target configuration

+ +
+

+ + + +

A disabled target configuration

+ +
+

+ + + +

Various target configuration states

+ +
+

+

Removing a Signal or Guard Band

+

Removing a signal or guard band from a target configuration is easy. Simply right-click + on the name of the band you wish to remove, and a pop-up menu will display an option to + remove the band.

+

+ + + +

Deleting a signal band

+ +
+

+ + + +

Deleting a guard band

+ +
+

+

Removing a Target Configuration

+

If you wish to completely remove a target configuration from a Likelihood + Detection module, right-click on the name of the target configuration you + want to remove. A pop-up dialog will appear, providing you with the option + to delete the configuration.

+

+ + + +

Deleting a target configuration

+ +
+

+
+ + + +
+

Next: Importing and Exporting Target Configurations +

+

Previous: Adding a New Likelihood Detection Module

+
+


+ + + diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_ImportExport.html b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_ImportExport.html new file mode 100644 index 00000000..60c453bf --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_ImportExport.html @@ -0,0 +1,64 @@ + + + + Likelihood Detector Module + + +

The Likelihood Detector Module

+

Importing and Exporting Target Configurations

+

The Likelihood Detector module provides the ability to export a single target + configuration to disk and then read it back in to the same or other + Likelihood Detector modules. This makes it easy and convenient to save and + share target configurations. +

+ To export a target configuration, simply right-click on the name of the target + configuration you wish to export and then select the + Export Configuration menu option. You will be prompted to select + an output directory and to enter a file name for the target configuration file. + The output file will be supplied with the extension TCF.

+

+ + + +

Exporting a target configuration

+ +
+ +
+

A previously-exported target configuration file can be imported into a + Likelhood Detector module by right-clicking on the Target Configuration + node of the configuration tree and selecting the Import Configuration + menu option.

+

+ + + + +

Importing a target configuration

+ +
+
+

You will be prompted to select the directory and file name of the target configuration + file. The dialog will automatically filter out all files that do not have the + TCF extension.

+

+ + + +

Selecting a target configuration

+ +
+
+
+ + + +
+

Next: Removing a Likelihood Detection Module

+
+

Previous: Configuring the Likelihood Detector

+
+


+ + + diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_Introduction.html b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_Introduction.html new file mode 100644 index 00000000..66c1a80a --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_Introduction.html @@ -0,0 +1,128 @@ + + + Likelihood Detector Introduction + + +

The Likelihood Detector Module

+

Introduction

+

The likelihood detector module is an implementation of a likelihood ratio + test. It is suitable for detecting both short duration Odontocete clicks + (Sperm, Beaked, etc.) as well as moderate duration Mysticete calls + (Humpback, Bowhead, etc.). It is not suitable for detecting whistles; for more + information on whistle detection see the Whistle Detector Module.

+

+ +

Design Overview

+

The Likelihood Detector allows for the custom configuration of one or more + target profiles. Each target profile configuration allows the operator to + specifiy a series of parameters that identify the characteristics of the + signal to be detected.



+ + + + +

Likelihood Detector Parameters Dialog

+ +
+
+ +

For each target configuration, the Likelihood module will create a processing + stream composed of various processes which carry out the detection procedure. + There is no limit to the number of target configurations that may be + prepared, however additional hardware and software performance will be consumed + for each processing stream.

+

+ + + + +

Likelihood Detection Module Overview

+ +
+

+

Data Flow

+

The data flow begins with an audio data source (i.e., a Sound Acquisition + module), and the Likelihood Detection Module requires an audio data source + to be configured in order to operate. From there, raw audio data goes through + several stages of processing, each with its dedicated process, before the + processing stream emits detections. The stages are as follows:

+
+
    +
  1. + FFT Processing
    + When a target configuration is created, the first thing the Likelihood + Detection Module does is calculate the actual FFT parameters required based on + the operator's suggestions for the frequency and time resolutions and the + audio data source's parameters. + The module will then seek an existing + FFT data block within the PAMGUARD system that has those parameters and is + also for the same configured audio source. If a matching FFT process is not + located, an FFT process is automatically created within the Likelihood + Detection Module, and becomes the first step in the processing stream for + the target configuration. The output of this stage of processing is a standard + PAMGUARD FFT data block (i.e., RecyclingDataBlock<FFTDataUnit>).

    +
  2. +
    +
  3. + Linear Average Spectra Processing
    + This process computes the average band energy for all of a target configuration's + bands by averaging the FFT magnitude between the start and end frequencies for + that band. The output of this stage of processing is a + PamDataBlock<AverageSpectraDataUnit>.

    +
  4. +
    +
  5. + Spectral ETI Processing
    + This process computes the average band energy for all of the bands in a target + configuration by averaging the FFT magnitude between the minimum (start) and + maximum (end) frequencies for the bands. + The output of this stage of processing is a + PamDataBlock<SpectralEtiDataUnit>.

    +
  6. +
    +
  7. + Normalization Processing
    + The normalizer process computes a signal and noise window estimate based on the + configured normalization algorithm (i.e., either decaying average or + block average) and the configured signal and window lengths. + The output of this stage of processing is a + PamDataBlock<NormalizedDataUnit>.

    +
  8. +
    +
  9. + Threshold Detection Processing
    + The detection process computes the actual likelihood ration test (LRT) + portion of the detection process. This algorithm does two tests: first, for any + given signal band, if the likelihood ration is greater than the user defined + threshold, then a detection may be present. Second, if defined, and there may be a detection + present, the detector divides the signal estimate of the signal-band by the average + signal estimate af all of the associated guard bands. If that ratio is + greater than the user-defined threshold, then a detection results. + The output of this stage of processing is zero to many + ThresholdDetectorDataUnit, which is an extension of the standard + PAMGUARD PamDetection<> class.

    +
  10. +
+ +
+ + + +

A Likelihood Detection Processing Stream

+ + + +
+ +
+ + + +
+

Next: Adding a New Likelihood Detector Module

+
+


+ + diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_IntroductionFlow.html b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_IntroductionFlow.html new file mode 100644 index 00000000..d9584a12 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_IntroductionFlow.html @@ -0,0 +1,17 @@ + + + + Likelihood Detector Introduction + + + +

The Likelihood Detector Module

+

Data Flow Diagram

+ + + +

A Likelihood Detection Processing Stream

+ +
+ + diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_NewModule.html b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_NewModule.html new file mode 100644 index 00000000..413e3571 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_NewModule.html @@ -0,0 +1,76 @@ + + + + Adding a New Likelihood Detector Module + + +

The Likelihood Detector Module

+

Adding a New Likelihood Detector

+

To add a new Likelihood detection module to PAMGUARD, select the + File->Add Modules>Detectors->Likelihood Detector menu item. The Likelihood + detector requires an audio data source, so if there is not a Sound + Acquisition module available, the Likelihood module will prompt you with + a dialog box to create one.

+

+ + + + +

Adding a new Likelihood detector

+ +
+

+ +

Audio Source Configuration

+

Regardless of whether you have just added a new Sound Acquisition module or + are using an existing one, you should be sure that the module is configured + correctly by selecting the appropriate source and its sampling parameters. +

+ For more information on configuring an audio source, see the + Adding a Sound Acquisition Module section.

+

+ +

Hydrophone Array Configuration

+

In addition to verifying the audio data source and its sampling characteristics, + it is necessary to examine the hydrophone array configuration to make sure that + it matches the audio recording methods used to gather the raw data delivered + via the Sound Acquisition module. +

+ To do this, select the "File->Hydrophone array..." menu option, pictured + below.

+ +

+ + +
+ +
+
+ +

This will bring up the large hydrophone array configuration dialog that is part + of PAMGUARD. Explanation of how to use this dialog is outside the scope of + the Likelihood detector module help, however it will be necessary to verify that + the correct number of hydrophones (i.e. channels) are represented and that + their characteristics are represented correctly.

+ +

+ + + +

The Hydrophone Array Configuration Dialog

+ +
+

+
+ + + + +
+

Next: Configuring the Likelihood Detector

+
+

Previous: Likelihood Detector Introduction

+
+


+ + diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_RemoveModule.html b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_RemoveModule.html new file mode 100644 index 00000000..a7ce75a6 --- /dev/null +++ b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/LikelihoodDetector_RemoveModule.html @@ -0,0 +1,31 @@ + + + + Removing a Likelihood Detection Module + + +

The Likelihood Detector Module

+

Removing a Likelihood Detector

+

To remove a Likelihood Detection module from the PAMGUARD system, select the + File->Remove Modules->Detectors menu item and select the name + of the Likelihood Detector to remove.

+

+ For more information on removing PAMGUARD modules, see the PAMGUARD help on + adding and removing + plugins.

+

+ + + +

Removing a Likelihood Detection Module

+ +
+
+
+ + +
+

Previous: Importing and Exporting Target Configurations

+
+ + diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-guard-band.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-guard-band.png new file mode 100644 index 00000000..6a1adb0d Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-guard-band.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-new-detector.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-new-detector.png new file mode 100644 index 00000000..c99d6247 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-new-detector.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-signal-band.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-signal-band.png new file mode 100644 index 00000000..56795fa6 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/add-signal-band.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/combination-enabled-configs.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/combination-enabled-configs.png new file mode 100644 index 00000000..cb1fd9a2 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/combination-enabled-configs.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/config-warning.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/config-warning.png new file mode 100644 index 00000000..b089affe Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/config-warning.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-guard-band.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-guard-band.png new file mode 100644 index 00000000..45910e21 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-guard-band.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-signal-band.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-signal-band.png new file mode 100644 index 00000000..d4adfc06 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-signal-band.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-target-config.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-target-config.png new file mode 100644 index 00000000..b9ac7f45 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/delete-target-config.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/disabled-target-configuration.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/disabled-target-configuration.png new file mode 100644 index 00000000..3a0e7f42 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/disabled-target-configuration.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/editing-combo.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/editing-combo.png new file mode 100644 index 00000000..9f589e1c Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/editing-combo.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/editing-double.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/editing-double.png new file mode 100644 index 00000000..a5b4a342 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/editing-double.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/enabled-target-configuration.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/enabled-target-configuration.png new file mode 100644 index 00000000..2157bba1 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/enabled-target-configuration.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/export-configuration.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/export-configuration.png new file mode 100644 index 00000000..ec5297e1 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/export-configuration.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/general-parameters.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/general-parameters.png new file mode 100644 index 00000000..d1530c03 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/general-parameters.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/guard-band-parameters.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/guard-band-parameters.png new file mode 100644 index 00000000..7e9974d8 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/guard-band-parameters.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/hydrophone-config.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/hydrophone-config.png new file mode 100644 index 00000000..dceae531 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/hydrophone-config.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/hydrophone-config2.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/hydrophone-config2.png new file mode 100644 index 00000000..3909df20 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/hydrophone-config2.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/import-configuration-dialog.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/import-configuration-dialog.png new file mode 100644 index 00000000..41dc592a Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/import-configuration-dialog.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/import-configuration.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/import-configuration.png new file mode 100644 index 00000000..44821cf5 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/import-configuration.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/invalid-value.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/invalid-value.png new file mode 100644 index 00000000..3a5a4ff0 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/invalid-value.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-design-overview.gif b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-design-overview.gif new file mode 100644 index 00000000..6aae8c67 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-design-overview.gif differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-detection-processing-stream.gif b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-detection-processing-stream.gif new file mode 100644 index 00000000..91a61084 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-detection-processing-stream.gif differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-dialog.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-dialog.png new file mode 100644 index 00000000..b0c6d18d Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/likelihood-dialog.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/needs-signal-band.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/needs-signal-band.png new file mode 100644 index 00000000..843fe19e Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/needs-signal-band.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/new-config.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/new-config.png new file mode 100644 index 00000000..fd8b88a8 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/new-config.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/parameter-dependency-error.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/parameter-dependency-error.png new file mode 100644 index 00000000..d6436c54 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/parameter-dependency-error.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/parameters-dialog.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/parameters-dialog.png new file mode 100644 index 00000000..a180c1cc Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/parameters-dialog.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/remove-detector-module.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/remove-detector-module.png new file mode 100644 index 00000000..c14a1c33 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/remove-detector-module.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/selecting-audio-source.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/selecting-audio-source.png new file mode 100644 index 00000000..0c2493cd Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/selecting-audio-source.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/signal-band-parameters.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/signal-band-parameters.png new file mode 100644 index 00000000..de0b6746 Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/signal-band-parameters.png differ diff --git a/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/tooltip.png b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/tooltip.png new file mode 100644 index 00000000..e9ed766e Binary files /dev/null and b/target/classes/help/detectors/likelihoodDetectionModuleHelp/docs/images/tooltip.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/DOCS b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..12f675bd Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..9547f80d Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/DOCS.TAB differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/OFFSETS b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..33ef97b3 Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/OFFSETS differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/POSITIONS b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..0f2ecdd6 Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/SCHEMA b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..4ec29699 --- /dev/null +++ b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=269 id2=1 diff --git a/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/TMAP b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..84e2e6ca Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/images/Eq1.png b/target/classes/help/detectors/whistleDetectorHelp/docs/images/Eq1.png new file mode 100644 index 00000000..660491ab Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/docs/images/Eq1.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/images/Eq2.png b/target/classes/help/detectors/whistleDetectorHelp/docs/images/Eq2.png new file mode 100644 index 00000000..2452f4ce Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/docs/images/Eq2.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleLinks.png b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleLinks.png new file mode 100644 index 00000000..bc8fadd3 Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleLinks.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistlePeaks.png b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistlePeaks.png new file mode 100644 index 00000000..c42e2ad8 Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistlePeaks.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSidePanel.png b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSidePanel.png new file mode 100644 index 00000000..3fb3128c Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSidePanel.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSource.png b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSource.png new file mode 100644 index 00000000..68878ebf Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSource.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSpectrogram2.png b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSpectrogram2.png new file mode 100644 index 00000000..c47fa566 Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleSpectrogram2.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleWhistles.png b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleWhistles.png new file mode 100644 index 00000000..7c50103f Binary files /dev/null and b/target/classes/help/detectors/whistleDetectorHelp/docs/images/WhistleWhistles.png differ diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Configuring.html b/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Configuring.html new file mode 100644 index 00000000..2686dab8 --- /dev/null +++ b/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Configuring.html @@ -0,0 +1,112 @@ + + + +Configuring a Whistle Detector + + + + +

Whistle Detector

+

Configuring the Whistle Detector

+


+ Parameters for each of the three main stages of whistle detection are accessed via the Detection>Whistle Settings menu.

+

FFT Data Source

+Whistle Detector Data Source

+

+A drop down box will show a list of available data sources for the whistle detector. +These are either the output from an +FFTEngine, +or some other process that produces FFT / +Spectrogram data. If no data sources are listed, you need to create an appropriate +FFTEngine in the PAMGUARD data model. +

+

Channel List and Grouping

+

+Select which channels you wish to detect whistles on and which pairs or channels should be +used to calculate bearings to detected whistles. +

+To do this, select the channels you wish to use using the check boxes, then assign +group numbers. Only the first channel in each group will be used for detection, if a +whistle is detected, then data from the second channel in the group will be used to calculate +a bearing to that whistle. +

+

+In the example above, whistles will be detected on channels 0 and 2. Should a whistle be detected, then +channel 1 or 3 will be used to calculate a bearing. +

+

Peak Detection

+Image

+

+Two peak detectors are currently available. You are recommended to use the 'IFAW +Whistle Peak Detector' which is the same as the peak detector on the old IFAW whistle software. +

+

+The first stage of the whistle detection process is to compare the instantaneous +values in the spectrogram S to a measured value of background noise. +The background noise N at time t and frequency f is measured using +
+Eq 1. +
+where the constant α is given by +α=Δt/τ,

+Δt being the time between successive time partitions in the spectrogram and τ +is the smoothing constant set in the Peak Detection dialog. Two values of the smoothing +constant are used, one when the data are below threshold which allows relatively rapid response +of the system to varying noise levels and one when the data are already above threshold to +avoid the presence of a whistle affecting the chances of detecting further whistles by +raising the detection threshold. +

+After background noise measurement, the total number of frequency bins in each time partition +that exceed the detection threshold is counted. If this exceeds a set percentage of the total +bins (Maximum bins over threshold) it is assumed that there is a broad band click and no whistle +peaks are extracted from that time partitions. Otherwise, groups of bins in frequency that exceed +threshold and lie between the specified minimum and maximum frequency width are used to create spectral peaks +which are passed to the whistle linker. + +


+ +

Linking

+Image

+

+Three parameters control whether or not peaks from different time partitions can be joined into putative whistles. +

Several parameters can be specified. + +

Max Sweep: the maximum allowed frequency sweep rate. +

Max Sweep Differential : the rate at which the frequency sweep can change (how curved the whistle contour can be) +

Max Amplitude Change: the rate at which the peak amplitude can change along the length of the whistle. +

+For a peak to be added to the whistle, all three criteria must be satisfied (except on the +very first linkage for each whistle, in which case the differential term is not used). +If more than one peak is a candidate for linking to a whistle, then an overall +'goodness of link' value is calculated using the weight terms for each parameter. +

Max gap is the maximum number of time partitions that can be skipped at any point + within a whistle with peaks still being linked. +


+

Whistle Selection

+Image

+

+Whistles are only created if the the linked peaks (putative whistles) pass two final tests: +

Minimum Length: Whistles must exceed some minimum length +

Minimum Occupancy: If the Max gap parameter in the Linking stage is > 0, then whistles are only created if the number of peaks making up the whistle occupy a minimum percentage of the total whistle length. +


+

Event Detection

+A Whistle Event occurs when the rate at which whistles are produces +exceeds some minimum value. Since there is generally a low rate of +false detections of individual whistles and since most whistling species +produce many whistles, whistle events are often a more useful indicator +of the presence of animals than individual whistles. +

+Integration Time - time to count whistles over. +

+Minimum Whistle Count - minimum number of whistles required to form a whistle event +

+Maximum gap - time interval after the last whistle in an event before the event is closed and counting starts again from 0. + + + + +

+ +


+ + diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Creating.html b/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Creating.html new file mode 100644 index 00000000..b4af287c --- /dev/null +++ b/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Creating.html @@ -0,0 +1,21 @@ + + + +Creating a Whistle Detector + + + + +

Whistle Detector

+

Creating a new Whistle Detector

+


+ From either the File>Add Modules menu or the popup menu on the PAMGUARD data model view, select new Whistle Detector

+

+You will be prompted to enter a name for the new Whistle Detector. +


+ + + + + + diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Display.html b/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Display.html new file mode 100644 index 00000000..1a74defd --- /dev/null +++ b/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Display.html @@ -0,0 +1,41 @@ + + + +Whistle Detector Display + + + + +

Whistle Detector

+

Display

+


+ The whistle detector does not have it's own tab panel display. +

+

+Whistle detector data can be viewed on a side panel and as a graphic overlay +on spectrogram displays. + +

Whistle side panel

+Image

+

+A side panel shows +a count of recent whistles and whistle events +

+

+ +

Spectrogram graphics overlay

+Image

+

+On a spectrogram display panel pop up menu (right click anywhere on the spectrogram display panel), +select which detector overlays to display. +

+

+Whistles are currently only detected on the first channel of a grouped pair of channels, and whistle output displays will only overlay on the spectrogram of the the channel from which the detections were made.

+

In the example, in order to show both spectral peaks and whistles channel 0 is displayed in two panels; one has an overlay of + spectral peaks, the other an overlay of detected whistles.

+

+ + +


+ + diff --git a/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Overview.html b/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Overview.html new file mode 100644 index 00000000..e73c86d5 --- /dev/null +++ b/target/classes/help/detectors/whistleDetectorHelp/docs/whistleDetector_Overview.html @@ -0,0 +1,56 @@ + + + +Whistle Detector Overview + + + + +

Whistle Detector

+

Overview

+

Note that the Whistle detector has now been replaced by the new
+Whistle and Moan detector
+and may be removed altogether from future PAMGUARD releases

+


+ The Whistle detector finds odontocetes whistles by searching a spectrogram for 'ridges' of higher intensity sounds. +

+

+ +Whistle detection is a multi stage process: +

Background noise measurement and Peak detection +

+

First a measure of background noise is made independently for each frequency in the spectrogram. + The spectrogram data are then compared to the noise level and areas of the spectrogram that exceed + the background noise level by the detection threshold are selected. + For each time partition of spectrogram data, 'Peaks' are then generated by looking for adjacent + frequency bins that are over threshold. Peaks are only generated if the number of adjacent + frequency bins exceeding the threshold is between two specified limits to avoid noise spikes( when very few adjacent bins above threshold) + and broad band sounds (when many adjacent bins above threshold). In addition, if a large percentage of all the frequency + bins in a time partition are above threshold, no peaks are generated. (Again this is indicative of broad band sounds such as clicks). +

+

Linking

+

Detected peaks are then joined together. The joining process takes account of the frequency gradient, + the rate of change of the frequency gradient and the rate of change of amplitude between + peaks in successive time partitions and requires these to be values that are typical of odontocete whistles.

+

Whistles

+

Once a time frequency contour is completed, it is classified as a whistle if it exceeds a minimum length. (In fact these are usually fractions of whistles.)

+

Future releases of PAMGUARD will contain more sophisticated classification systems to determine species.

+

Whistle Event

+

A Whistle Event occurs when the rate at which whistles are produces exceeds a specified minimum value. + Since there is generally a low rate of false detection of individual whistles, and since + encounters with most whistling species result in a high rate of whistle detection, whistle events are often a more useful indicator of + the presence of animals than individual whistles. + +

+

Whistle Localisation

+

If whistles are being detected on two or more pairs of hydrophones, then should +whistles be detected simultaneously on multiple pairs (overlapping in time and frequency) + the bearings from each hydrophone pair are automatically crossed to produce a +location for the whistle source (subject to left-right ambiguity). +

+
+ + +


+ + diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog.png new file mode 100644 index 00000000..9c5e2616 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Branching.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Branching.png new file mode 100644 index 00000000..86ba0bbd Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Branching.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Connecting.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Connecting.png new file mode 100644 index 00000000..6ad26482 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Connecting.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_DataSource.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_DataSource.png new file mode 100644 index 00000000..e020c133 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_DataSource.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Grouping.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Grouping.png new file mode 100644 index 00000000..5450b44c Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/WhistleMoanDialog_Grouping.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/crossingSspectrogram.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/crossingSspectrogram.png new file mode 100644 index 00000000..379a7d65 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/crossingSspectrogram.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/fftClickRemoval.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/fftClickRemoval.png new file mode 100644 index 00000000..993bafaf Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/fftClickRemoval.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/leaveIntact.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/leaveIntact.png new file mode 100644 index 00000000..33aadc13 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/leaveIntact.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/noiseRemoval.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/noiseRemoval.png new file mode 100644 index 00000000..1e1a6e3a Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/noiseRemoval.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/rejoinCrossings.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/rejoinCrossings.png new file mode 100644 index 00000000..705cf15b Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/rejoinCrossings.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/separateBranches.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/separateBranches.png new file mode 100644 index 00000000..1424ce53 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/separateBranches.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog.png new file mode 100644 index 00000000..63134015 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Branching.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Branching.png new file mode 100644 index 00000000..591466a4 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Branching.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Connecting.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Connecting.png new file mode 100644 index 00000000..5571d094 Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Connecting.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_DataSource.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_DataSource.png new file mode 100644 index 00000000..2d24bc0f Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_DataSource.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Grouping.png b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Grouping.png new file mode 100644 index 00000000..9dffaf5d Binary files /dev/null and b/target/classes/help/detectors/whistleMoanHelp/docs/images/whistleToneDialog_Grouping.png differ diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigBranching.html b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigBranching.html new file mode 100644 index 00000000..58dc87d6 --- /dev/null +++ b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigBranching.html @@ -0,0 +1,112 @@ + + + +Whistle and Moan Branching + + + + +

Whistle and Moan Detector

+

Branching and Joining

+


+It is often the case that multiple whistles from different animals will +overlap in time and frequency. If large groups of dolphins are +encountered, then overlapping whistles tend to be the norm rather than +the exception. While this may not be a problem if you are only +interested in detecting whistles, if you are measuring bearings to +individual whistles or if you are using the +Whistle Classifier it is necessary to separate out the different sounds.

+

The Whistle and Moan detector has four options which control how +overlapping whistles are handled

+
    +
  1. +

    Leave branched regions intact

    +
  2. +
  3. +

    Discard branched regions

    +
  4. +
  5. +

    Separate all branches

    +
  6. +
  7. +

    Re-link across joins

    +
  8. +
+

This option is set at the bottom of the Whistle and Moan +configuration dialog.

+
+
dialog
+
+
+

The different options are illustrated below using three simulated +overlapping linear chirps.

+

Leave branched regions intact

+

If this option is selected, then branched regions will be left +intact and may contain more one actual sound.

+
+
+
+ +

Discard branched joins

+

If this option is selected, than any region that has more than +one detected frequency peak in any time slice will be discarded.

+
+ +

Separate all branches

+

If this option is selected, then all branches will be separated +and passed on as individual sounds. A break is created every time the +number of consecutive peaks changes. So a pair of crossing whistles will +generally be broken into five parts - each of the four branches and the +crossing point itself.

+

In the example below, the three sounds have been broken into 12 +separate parts.

+
+
+
+ +

Re-link across joins

+

If this option is selected, then the algorithm will attempt to +rejoin individual tones across joins. First, the sound is broken up as +above, it then rejoins the different components according to the +following rules:

+
    +
  1. +

    If there are the same number of sounds in consecutive time + slices and each sound in the earlier slice is in contact with one in + the later slice, then they are joined with 1:1 correspondence.

    +
  2. +
  3. +

    A crossing point is defined as a sound which has the same number + of other sounds entering it as leave it and has a total length no + longer than the set maximum in the options dialog. Sounds entering + and leaving a cross are linked across it with the highest frequency + sound on one side joining the lowest frequency sound on the other.

    +
  4. +
  5. + If there is a branch (one sound splitting to two or more) or a + join (two or more sounds merging into one), then the frequency gradient + of the merged part is compared to that of the sounds entering or + leaving and the sound with the best match is joined to the merged + section. Very short sections (fewer than 10 time slices) are penalised + during the comparison to favour longer whistles.

    +
  6. +
+
+
+
+

Which branching and joining method you chose may depend on the application. +Generally, re-linking across joins is the best option for small cetacean whistles. +

+
+


+ +

+ + +


+ + diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigConnect.html b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigConnect.html new file mode 100644 index 00000000..05ede6a0 --- /dev/null +++ b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigConnect.html @@ -0,0 +1,61 @@ + + + +Whistle and Moan Detector Overview + + + + +

Whistle and Moan Detector

+

Connected Region Search

+


+Once the threshold +has been applied to the spectrogram data in the noise removal stage, the +Whistle and Moan detector searches for connected regions in the +spectrogram matrix.

+


+

+
+
+

Min Frequency and Max Frequency

+

Usually, you will want the Whistle and Moan detector to search +the whole range of available frequencies, from 0 Hz to half the sample +rate. However, these parameters give you the opportunity to limit the +connected region search to a specific frequency band. This can be +particularly useful if your data are contaminated by a lot of noise at a +particular frequency.

+ +

Connection Type

+

When searching for connected regions, two main connection types +are available.

+

Connect 4 tries to connect each pixel to other pixels directly +above, below, to the left or to the right (i.e. 4 possible connections).

+

Connect 8 tries to connect to the sides and on the diagonals (i.e. +8 possible connections).

+

Clearly connect 8 will detect more whistles and can also detect +whistles sweeping more rapidly, however connect 8 may also be prone to a +higher rate of false alarm if it connects things which shouldn't be +connected.

+ + +

Minimum length and Minimum total size

+

There will always be a small number of random spectrogram pixels which are above threshold +but are not part of a whistle or tone. Generally (hopefully !) these will few in +number and the chances of them connecting to other random pixels to make a large connected region +will be small.

+

All connected regions which are shorter than the minimum length, or have fewer pixels than the minimum +total size will be discarded.

+ +
+ + + + +


+ + diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigGrouping.html b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigGrouping.html new file mode 100644 index 00000000..fab7b4dc --- /dev/null +++ b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigGrouping.html @@ -0,0 +1,45 @@ + + + +Whistle and Moan Detector Overview + + + + +

Whistle and Moan Detector

+

Channel Grouping and Bearing Calculations

+

+ The Whistle and Moan detector can operate on one or more channels of data. It can also measure time + delays between the arrival of sounds on different channels and use these to calculate bearings, and in + some instances ranges to detected sounds. +

+

Which channels the Whistle and Moan detector detects on and which channels it uses for bearing and range +calculations is controlled by the channel grouping section of the options dialog.

+ +
+
+
+

When a data source is selected, the dialog will +show a series of check boxes, one for each channel. Select the channels you want to use for detection +OR bearing calculation, then to the right of each channel check box, assign the channel to a group. The group +numbers themselves are not important - they just need to be different for each group.

+ +

The Whistle and Moan detector will detect sounds only on the first channel in each group.

+

If a sound is detected, it will then use data from other channels in the same group to measure time +delays between the arrival of the signal on the different channels. +The Whistle and Moan detector will do this independently for each group.

+ +

Measuring Range

+

If more than one group is present, then if whistles which overlap in time and frequency are detected on more than one +channel group, the Whistle and Moan detector will attempt to cross the bearings measured within each channel group in +order to estimate a range to the sound.

+

The example above was set up to work with a hydrophone array which consisted of four hydrophones arranged in two pairs. + The separation of each pair was 3m and the distance between pairs was 200m. Detection and bearing calculation was conducted + independently from each pair, and the bearings from the two pairs then crossed to estimate ranges.

+
+ + + +


+ + diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigNoise.html b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigNoise.html new file mode 100644 index 00000000..00c36173 --- /dev/null +++ b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigNoise.html @@ -0,0 +1,100 @@ + + + +Whistle and Moan Detector Overview + + + + +

Whistle and Moan Detector

+

Noise Removal and Thresholding

+

Noise removal and thresholding is one of the most important steps +in the operation of the Whistle and Moan detector.

+

Noise removal and thresholding is a five stage process. The first +stage has to occur before FFT data are calculated in the +FFT (Spectrogram) Engine. The remaining four stages can take place +either in the +FFT (Spectrogram) Engine module or in the Whistle and Moan detector.

+

Performing the noise removal in the +FFT (Spectrogram) Engine module has the advantage that other PAMGUARD +processes and displays will have access to the data

+

The Whistle and Moan detector will try to ensure that the correct +noise removal processes are run once and only once but looking back at +the FFT data source and testing whether noise removal has already been +done.

+

Noise removal processes which have already been conducted in an +earlier module cannot be repeated. However, the Whistle and Moan +detector cannot check, and has no control over the configuration of +noise removal processes conducted in earlier modules.

+

Generally, you should use the default settings

+ +
+

Click Removal
+Median Filter
+Average Subtraction
+Gaussian Kernel Smoothing
+Thresholding
+

+
+ + +

Click Removal

+

This stage of the noise removal has to take place on the raw data +prior to the calculation of the spectrogram. It is therefore carried out +by the +FFT (Spectrogram) Engine.

+

The click removal method operates on the time series data prior +to the FFT calculation and therefore affects both output streams of the +FFT Engine.

+

Click removal measures the standard deviation of the time series +data and then multiplies the signal by a factor which increases rapidly +for large signal components. This has the effect of reducing the +magnitude of short duration transient signals such as echolocation +clicks

+
+
+
+ +

Other noise removal stages can be controlled from either the +Whistle and Moan detector dialog or from the +FFT (Spectrogram) Engine

+
+
+
+

Median Filter

+

Within each spectrogram slice, the median value about each point +is taken and subtracted from that point.

+

Average Subtraction

+

A decaying average spectrogram is computed and subtracted from +the current spectrogram value.

+

Gaussian Kernel Smoothing

+

The spectrogram is smoothed by convolving the image with a +Gaussian smoothing kernel

+

1 2 1
+2 4 2
+1 2 1.

+

Thresholding

+

A threshold is applied and all data falling below that threshold +set to 0.

+

Although the Connected +Region Search uses only a binary map of parts of the spectrogram which +are above or below threshold it is generally more useful to output the +input from the raw FFT data which will have been multiplied by the +binary map. This will contain phase and amplitude information which can +be used by the Whistle and Moan detector for measuring time delays +between channels and the overall whistle amplitude.

+
+ + + +


+ + diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigSource.html b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigSource.html new file mode 100644 index 00000000..04de6754 --- /dev/null +++ b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_ConfigSource.html @@ -0,0 +1,48 @@ + + + +Whistle and Moan Detector Data Source + + + + +

Whistle and Moan Detector Data Source

+

Data Source Setup

+

To use the Whistle and Moan detector, you will need to configure +a +FFT (Spectrogram) Engine. When selecting the FFT length and hop, +consider the time and frequency resolution of the spectrogram. For +instance, a 1024 pt FFT with 50% overlap (512 pt hop) operating on data +with a sample rate of 48 kHz will have a frequency resolution of 47Hz +and a time resolution of approximately 10ms. Generally, for detecting dolphin whistles +with data sampled at 48 kHz, a 512 pt FFT length and 256 pt Hop is suitable. At higher +sample rates, scale the FFT length and hop accordingly, i.e. at a sample rate of 96 kHz use +a FFT length of 1024 pt and a hop of 512 pt, etc.

+ +

Select the data source

+

Noise removal and thresholding is a critical step +in the detection process. However, the noise removal methods can also be used by other PAMGUARD +detectors and displays, so they have been included in both the + +FFT (Spectrogram) Engine as well as in the Whistle and Moan detector.

+

The +FFT (Spectrogram) Engine has two output streams, one which is the raw FFT data and one +which has been through some or all of the noise removal processes.

+

Whether you do the noise removal in the FFT Engine or in the Whistle and Moan detector is entirely +up to you, but try not to do it twice since that will place an unnecessary load on the processor

+ +

+From the drop down box at the top of the Whistle and Moan detector options dialog, select which +data source you want to use. +

+
+
+
+
+ + + + +


+ + diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_Configure.html b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_Configure.html new file mode 100644 index 00000000..b55aef4d --- /dev/null +++ b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_Configure.html @@ -0,0 +1,36 @@ + + + +Whistle and Moan Detector Configuration + + + + +

Whistle and Moan Detector

+

Configuring the Whistle and Moan Detector

+ +

From the Detection menu select Whistle +and Moan Detector and the following dialog will appear.

+
+
+
+

The dialog contains two tabs, the first controls the +Data source, +Channel Grouping and +How sounds are connected. +The second tab controls +Noise removal and thresholding. + + + +


+ +

+ + +


+ + diff --git a/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_Overview.html b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_Overview.html new file mode 100644 index 00000000..0ed28ba7 --- /dev/null +++ b/target/classes/help/detectors/whistleMoanHelp/docs/whistleMoan_Overview.html @@ -0,0 +1,61 @@ + + + +Whistle and Moan Detector Overview + + + + +

Whistle and Moan Detector

+

Overview

+

The Whistle and Moan detector can be used to detect any tonal +vocalisation, including odontocete whistles and baleen whale calls. Details of the operation of the detector are +available in Gillespie et al, (2013).

+

The Whistle and Moan detector supersedes the old PAMGUARD Whistle +detector which should no longer be used.

+

The Whistle and Moan detector can be used alone, or with the +Whistle Classifier which can be used to identify groups of whistles to +species.

+
+

Creating a Whistle and Moan detector

+

From the File>Add modules>Detectors +menu, or from the pop-up menu on the data model display, select "Whistle +and Moan Detector". Enter a descriptive name for the new detector (e.g. +Whistle detector) and press OK.

+
+ +

General Principle of Detection

+

Detection is a multi-stage process, the main steps being
+

+
    +
  1. +

    Computation of a spectrogram from raw audio data

    +
  2. +
  3. +

    Processing of the spectrogram to remove noise (especially + clicks)

    +
  4. +
  5. +

    Thresholding to create a binary map of regions above threshold

    +
  6. +
  7. +

    Connecting regions of the binary map to create sounds

    +
  8. +
  9. +

    Breaking and then rejoining branches of complex regions (for + instance, if two whistles cross)

    +
  10. +
+ +

References

+

Gillespie, D., Caillat, M., Gordon, J., and White, P. (2013). Automatic detection and classification of odontocete whistles, +The Journal of the Acoustical Society of America, 134, 24272437.

+ +

+ +


+ + diff --git a/target/classes/help/displays/LevelMeters/Docs/Images/LevelMeters.png b/target/classes/help/displays/LevelMeters/Docs/Images/LevelMeters.png new file mode 100644 index 00000000..64852db7 Binary files /dev/null and b/target/classes/help/displays/LevelMeters/Docs/Images/LevelMeters.png differ diff --git a/target/classes/help/displays/LevelMeters/Docs/LevelMeters.html b/target/classes/help/displays/LevelMeters/Docs/LevelMeters.html new file mode 100644 index 00000000..fae2f422 --- /dev/null +++ b/target/classes/help/displays/LevelMeters/Docs/LevelMeters.html @@ -0,0 +1,40 @@ + + + +Level Meters + + + + +

Level Meters

+

Overview

+
+ +

This module displays level meters for the audio signals in the side panel of the main PAMGuard GUI.

+

This can be useful in diagnosing that all input channels are active and that none are saturating.

+ +

Creating the module

+

+ From the File>Add modules>Displays + menu, or from the pop-up menu on the data model display select "Level Meters". + Enter a name for the new module and press Ok. +

+ +

Configuring the module

+

+ To configure the module, open the settings dialog from the Detection>"your + module name" menu: +

+
+ +
+

In the dialog select the sound source (generally the sound acquisition module, but you could connect to the output + of some other process such as a filter or decimator).

+

The module has no other settings, but you might want to adjust the position of the display in the side panel which + can be done by changing the order of the modules from the File>Module Ordering menu command. +

+ +
+ + \ No newline at end of file diff --git a/target/classes/help/displays/LocalTime/Docs/LocalTime.html b/target/classes/help/displays/LocalTime/Docs/LocalTime.html new file mode 100644 index 00000000..b72d2f62 --- /dev/null +++ b/target/classes/help/displays/LocalTime/Docs/LocalTime.html @@ -0,0 +1,30 @@ + + + +Local Time + + + + +

Local Time

+

Overview

+
+ +

This module displays the local time of the PC in the side panel of the main PAMGuard GUI.

+

Note that all PAMGuard data collection and display modules will continue to use Universal time (UTC or GMT).

+ +

Creating the module

+

+ From the File>Add modules>Displays + menu, or from the pop-up menu on the data model display select "Local time". + Enter a name for the new module and press Ok. +

+
+

Configuring the module

+

The module has no settings, but you might want to adjust the position of the display in the side panel which + can be done by changing the order of the modules from the File>Module Ordering menu command. +

+
+ + diff --git a/target/classes/help/displays/dataselect/docs/dataselection.html b/target/classes/help/displays/dataselect/docs/dataselection.html new file mode 100644 index 00000000..1b21b14f --- /dev/null +++ b/target/classes/help/displays/dataselect/docs/dataselection.html @@ -0,0 +1,30 @@ + + + +Display Marks + + + + +

Data Selectors

+

Overview

+ +

The layout of a data selector and the options available will depend on which PAMGuard module the data relate to and also + on how that module is being used with other modules.

+

Two examples are shown below:

On the left is the data selector for the click detector. The options in each of the two main panels + depend on which click classifiers have been configured and which species labels have been defined for click events.

+

On the + right is a data selector for a clip generator. The clip generator, on it's own, does not have an data selection options, however the + clips in this configuration are being annotated by a right whale classifier, which does have a data selector. They can also be selected and added + to a Detection Group localiser, and the Detection Group Localiser has also been configured so that the groups can be annotated with a + logger form which has a drop down list ("LOOKUP") data entry control called "Species", so a set of options to select the different species + defined in that data entry control is automatically included. Because there is more than one type of data selector for the clips, + additional options have been generates so that individual sections can be skipped or combined together with a logical AND or OR.

+ +
+
+
+

Back to overview

+ + diff --git a/target/classes/help/displays/dataselect/docs/images/dataselect1.png b/target/classes/help/displays/dataselect/docs/images/dataselect1.png new file mode 100644 index 00000000..b738ae92 Binary files /dev/null and b/target/classes/help/displays/dataselect/docs/images/dataselect1.png differ diff --git a/target/classes/help/displays/dataselect/docs/images/dataselect2.png b/target/classes/help/displays/dataselect/docs/images/dataselect2.png new file mode 100644 index 00000000..9a5d10e4 Binary files /dev/null and b/target/classes/help/displays/dataselect/docs/images/dataselect2.png differ diff --git a/target/classes/help/displays/dataselect/docs/images/symbolchoice1.png b/target/classes/help/displays/dataselect/docs/images/symbolchoice1.png new file mode 100644 index 00000000..5f00e313 Binary files /dev/null and b/target/classes/help/displays/dataselect/docs/images/symbolchoice1.png differ diff --git a/target/classes/help/displays/dataselect/docs/images/symbolchoice2.png b/target/classes/help/displays/dataselect/docs/images/symbolchoice2.png new file mode 100644 index 00000000..8acd41f9 Binary files /dev/null and b/target/classes/help/displays/dataselect/docs/images/symbolchoice2.png differ diff --git a/target/classes/help/displays/dataselect/docs/images/symbolmenu.png b/target/classes/help/displays/dataselect/docs/images/symbolmenu.png new file mode 100644 index 00000000..e427c93b Binary files /dev/null and b/target/classes/help/displays/dataselect/docs/images/symbolmenu.png differ diff --git a/target/classes/help/displays/dataselect/docs/selectandsymbol.html b/target/classes/help/displays/dataselect/docs/selectandsymbol.html new file mode 100644 index 00000000..d5732d35 --- /dev/null +++ b/target/classes/help/displays/dataselect/docs/selectandsymbol.html @@ -0,0 +1,61 @@ + + + +Display Marks + + + + +

Data and Symbol Selection

+

Overview

+
+

+ PAMGuard contains powerful methods for choosing which data to display, + and which symbols should be used to display it. This is achieved using + Data Selectors and Symbol Choosers. +

+

Data properties are often quite different for the various + PAMGuard detectors, so different options are available which reflect + what is appropriate for each type of data. Increasingly, data may be + grouped into 'Events' or 'Super Detections' in which case data may + also be selected or coloured by the properties of those groupings. + Further, PAMGuard is increasingly using annotations, for instance + allowing the user to develop their own form to add information to a + spectrogram mark. Again it is possible for the user to select and + colour based on the content of these annotations.

+ +

Data selector and symbol chooser options are usually accessed by + clicking on the display with the right mouse button and selecting the + small wheel like icon on the popup menu items.

+
+
+ +
+
+ +

+ As well as being different for each type of data, PAMGuard also + creates a unique data selector and symbol chooser for each display. + This means that you can select one subset of data on one display, and + a different type of data on another. For example, you might chose to + have two map displays, one showing clicks that have been classified as + harbour porpoise and another map showing beaked whales. Similarly, you + might have a display of clips from the clip + generator which shows all of the clips, and a second display which + only shows those that have been included in a group + detection.
+
+

+ More on Data Selectors +

+

+ More on Symbol Choosers +

+ + + + diff --git a/target/classes/help/displays/dataselect/docs/symbolchoice.html b/target/classes/help/displays/dataselect/docs/symbolchoice.html new file mode 100644 index 00000000..46cc62e2 --- /dev/null +++ b/target/classes/help/displays/dataselect/docs/symbolchoice.html @@ -0,0 +1,49 @@ + + + +Display Marks + + + + +

Symbol Choosers

+

Overview

+

There are lots of reasons to change the colour and shape of a + symbol in PAMGuard. For example, if you're displaying clicks, you + might want to display them according to the type of click, the channel + they are detected on, or their grouping into click trains or 'Events'. + On the other hand, if you're plotting them on a map along with other + data, you may want them all the same colour, using a different colour + for other types of data.

+

Three things can be changed for a symbol, although not all of + them apply on all displays, so some options might be available which + aren't actually used. These are:

+ +

For each symbol chooser, you can select a default symbol for the + display. This is then modified by a series of 'symbol modifiers'. The + types of modifiers available will depend on the PAMGuard module and + it's connections to other modules.

+

Symbol modifiers are processed in order, so you can select 'line colour' in + more than one modifier, but that last modifier in the list which has valid + data with prevail

+

You can change the order of the modifiers by right clicking with the mouse and selecting + 'Move Earlier' or 'Move Later'. Some will also have additional options, which are accessed from the + same popup menu.

+ + +
+
+ +
+ +

+ Back to overview +

+ + diff --git a/target/classes/help/displays/displaymarks/docs/displaymarks.html b/target/classes/help/displays/displaymarks/docs/displaymarks.html new file mode 100644 index 00000000..08b2b9b1 --- /dev/null +++ b/target/classes/help/displays/displaymarks/docs/displaymarks.html @@ -0,0 +1,83 @@ + + + +Display Marks + + + + +

Display Marks

+

Overview

+
+

PAMGuard contains powerful methods for manually marking and selecting data on many of it's displays. + Manually marking data is + often an essential step in data analysis whether it be in real time of offline using the PAMGuard Viewer

+

There are two essential components making up the mark system, Mark Sources and Mark Observers.

+ +

Mark Sources

+

Mark Sources are displays that can respond to mouse or touch actions to mark out a region of that display.

+

Displays which currently have this functionality are the + Spectrogram Display, + the Map + and the FX time based display.

+ +

The click Detector continues to have it's own marking system for linking clicks into click trains. The marks from the + click detector cannot currently be sent to other Mark Observers. However, the Click Detector can now act as a Mark Observer, + receiving mark information from other Mark Sources.

+ +
+

Mark Observers

+

Mark Observers are PAMGuard modules which receive an respond ot marks from the Mark Sources.

+

Mark Observers are the Click Detector event management system , + the new Detection Group Localiser module, + the DIFAR module, + the Clip Generator + and the Spectrogram Annotation module. +

Some Mark Observers will respond immediately to the arrival of a mark, others may display a pop-up menu or a dialog box requiring + additional user input.

+

How each Mark Observer used the mark data is very module specific, so you should refer to the documentation for the observer + module for details.

+ +

Mark source / Observer Relationships

+

Which Mark Sources send marks to which Mark Observers can be controlled by the user.

+

Some Mark Sources and some Mark Observers may include a list of Observers or Sources to select within their own + configuration dialogs. There is also a master configuration dialog controlling all relationships between Markers and Observers + which can accessed from the Display/Display marks and observers menu item

+
+
+
+

In this example, there are four different Mark Sources and three Mark Observers

+

Both the Beaked Whale detector and the Detection Group Localiser can use marks made on displays with any axis units (e.g. Latitude / Longitude on the map or Bearing / Time on + a bearing-time display), whereas the DIFAR module can only handle marks made on a spectrogram type display with units of Frequency and Time. + Consequently, check boxes for linking some maek sources (the map and one of the fx display graphs) are not available.

+

While it is possible to have multiple observers of a single mark source, generally this is not recommended

+ +

Data Selection

+

Some mark observers may use the coordinates of the mark (in whatever units were in use on the marked display), others may use a list of data from the display + indicating which data units were enclosed within the mark or in some way overlapped with the mark.

+

Some Mark Observers may also contain additional data selection options so that only certain types of data unit from within a marked area are included + in whatever actions take place within the Mark Observer. For details, refer to documentation for the specific Mark Observers.

+ +

Marking Data

+

Individual displays may have restricted or altered the way in which marks are made, but generally, there are two types of marks + that can be made, Rectangles and Polygons

+

Not all displays work in the same way, although we are in the process of trying to standardise their behaviour as much as possible across PAMGuard

+

Main points to note at that not all displays will support Polygon Marks and some displays (the Map and the FX displays) require the Ctrl key to be held down + while the mark is made. Also note that displays will not create or show a mark if the display is not linked to one or more Mark Observers.

+

Rectangular Marks

+

To make a rectangular mark, hold the Ctrl key, press the mouse at one corner of the area you wish to mark and drag it across to the opposite corner before + releasing the mouse button.

+

It does not matter whether the mouse is dragged from left to right or right to left or op rather than down the display.

+ +

Polygon Marks

+

To make a polygon mark, hold the Ctrl key, click at the point you wish to start the polygon at, then repeatedly click around the area you wish to mark. The + polygon will be closed when you click close to the start of the polygon.

+

You can cancel marking by right clicking with the mouse at any time.

+ +

Notifications to Mark Observers

+

Notifications of the current mark size, shape and status are sent to Mark Observers each time the mark changes. Most Mark Observers are + programmed to only act when the mark is complete, i.e. the mouse has been released from a rectuangular mark or a polygon mark has been closed.

+ + + diff --git a/target/classes/help/displays/displaymarks/docs/images/markobservers.png b/target/classes/help/displays/displaymarks/docs/images/markobservers.png new file mode 100644 index 00000000..6a986d6b Binary files /dev/null and b/target/classes/help/displays/displaymarks/docs/images/markobservers.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/DOCS b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..b5ea3e77 Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..1c80f067 --- /dev/null +++ b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +eu_@ \ No newline at end of file diff --git a/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/OFFSETS b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..0cd84e78 Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/OFFSETS differ diff --git a/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/POSITIONS b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..81539bea Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/SCHEMA b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..50ed1727 --- /dev/null +++ b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=140 id2=1 diff --git a/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/TMAP b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..d907541f Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar.html b/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar.html new file mode 100644 index 00000000..08daf60f --- /dev/null +++ b/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar.html @@ -0,0 +1,36 @@ + + + +Radar Display + + + + +

Radar Display

+

Overview

+


+ Radar display windows can be used to display range and bearing information to + detected sounds. Alternatively, when range information is not available, + amplitude information can be displayed on the radial axis as a proxy for range. On a radar display the centre of the display is the midpoint of the array from which bearings are being calculated. +

+

+Since many detectors, particularly those using simple linear hydrophones, +produce ambiguous bearing information, it is possible to display either the +full display or only one half of the display. + + +

Examples of radar displays

+

+ +Radar examples

+

+

+ +

Creating a radar display

+ + + + +


+ + diff --git a/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar_Configuring.html b/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar_Configuring.html new file mode 100644 index 00000000..74b09aef --- /dev/null +++ b/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar_Configuring.html @@ -0,0 +1,53 @@ + + + +Radar Display + + + + +

Radar Display

+

Configuring a Radar display

+

Radar display options are set when the display is first created, and they can be adjusted at any time using the popup menu accessed by right clicking on the radar plot.

+

+The Radar Display Parameters Dialog has two tabs +

Scales Tab

+

Scales - Range + Scales - Amplitude
+
+ Name: each display may be named individually as an aid to the user

+

Style: select the type of radar display - Full, Right half, Left half, Front half or Rear half. +

Radial Axis: select either amplitude or distance.

+If planar or a volumetric array is being used and slant angle is available, +then there will be an additional option to display slant angle on the radial axis. +

+The lower panel will automatically change between Amplitude Range +and Distance Range depending on the Radial Axis selection. +

+When using Amplitude Range, it is common to enter the maximum amplitude as +the minimum value so that louder sounds appear closer to the centre of the display. +It is however possible to enter these numbers the other way around so that louder +sounds are closer to the perimeter of the display. + + +

+

Detectors Tab

+

Scales - Range
+
+The detector tab lists data blocks in the PAMGUARD system that can be overlaid +on the radar plot. The contents of this list will depend on which detectors are +included in the current PAMGUARD system. +

+

+To display data from a particular detector, tick the check box. Also enter the +time in seconds that you wish each detection to be displayed for. Generally +detections which occur at a high rate, such as clicks, should only be displayed for +a short amount of time. Detections that are less common (such as manually +tracked clicks) may displayed for longer without cluttering the display. + +

+ + +

+ + diff --git a/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar_Creating.html b/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar_Creating.html new file mode 100644 index 00000000..e7f6752d --- /dev/null +++ b/target/classes/help/displays/radarDisplayHelp/docs/UserDisplay_Radar_Creating.html @@ -0,0 +1,27 @@ + + + +Creating a Radar Display + + + + +

Radar Display

+

Creating a Radar display

+


+ + First you must have created an instance of a User Display Panel +

+

+From the User Display menu select User Display>New Radar display +

+A Radar Display Parameters dialog will open allowing you to select the type of +radar display. +

Click Ok and the radar display will be added to the user display panel. + + +

+ +


+ + diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/RadarDetectors.png b/target/classes/help/displays/radarDisplayHelp/docs/images/RadarDetectors.png new file mode 100644 index 00000000..4fe2a4c6 Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/RadarDetectors.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/RadarExamples.png b/target/classes/help/displays/radarDisplayHelp/docs/images/RadarExamples.png new file mode 100644 index 00000000..dd3839bb Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/RadarExamples.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/RadarScale_amplitude.png b/target/classes/help/displays/radarDisplayHelp/docs/images/RadarScale_amplitude.png new file mode 100644 index 00000000..25ad8c13 Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/RadarScale_amplitude.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/RadarScale_range.png b/target/classes/help/displays/radarDisplayHelp/docs/images/RadarScale_range.png new file mode 100644 index 00000000..3ab1ee97 Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/RadarScale_range.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramDataScales.png b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramDataScales.png new file mode 100644 index 00000000..9e3633d9 Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramDataScales.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramDataSource.png b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramDataSource.png new file mode 100644 index 00000000..29a48931 Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramDataSource.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramMarkObservers.png b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramMarkObservers.png new file mode 100644 index 00000000..cb0d71de Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramMarkObservers.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramPlugins.png b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramPlugins.png new file mode 100644 index 00000000..7de65b8a Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramPlugins.png differ diff --git a/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramWithPlugins.png b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramWithPlugins.png new file mode 100644 index 00000000..207bb8c6 Binary files /dev/null and b/target/classes/help/displays/radarDisplayHelp/docs/images/SpectrogramWithPlugins.png differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/DOCS b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..c132533b Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..5f600cfc --- /dev/null +++ b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +eꪪꪪ \ No newline at end of file diff --git a/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/OFFSETS b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..e31e10a8 --- /dev/null +++ b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +ƾ<m \ No newline at end of file diff --git a/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/POSITIONS b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..02f4039c Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/SCHEMA b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..441638c6 --- /dev/null +++ b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=196 id2=1 diff --git a/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/TMAP b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..0e9102e9 Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram.html b/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram.html new file mode 100644 index 00000000..91ff59a5 --- /dev/null +++ b/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram.html @@ -0,0 +1,28 @@ + + + +Spectrogram Display + + + + +

Spectrogram Display

+

Overview

+


+ Spectrogram windows not only display spectrograms, + but they can also form a container for plug in graphics modules + for detector data that is to be displayed beneath the spectrogram windows or in the case of the whistle detector, on top of it.

+

+Spectrogram example with plug ins

+

+Each spectrogram display contains two main section divided by a movable divider that can be used to alter the size of each section. +

Each section may be divided into several sub-displays. +

The top section (which always exists) displays a number of spectrogram windows with optional graphic overlays from some PAMGUARD detectors +

The bottom section (which is optional) displays plug in displays from other parts of the PAMGUARD system for showing data such as waveforms, detector output, trigger functions, etc. Data shown in the plug in panels will scroll in synchrony of the spectrogram data in the top section. +

The types of plug in panels available will depend on the current PAMGUARD configuration. + + +

+


+ + diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Configuring.html b/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Configuring.html new file mode 100644 index 00000000..8b982c6a --- /dev/null +++ b/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Configuring.html @@ -0,0 +1,83 @@ + + + +Spectrogram Display + + + + +

Spectrogram Display

+

Configuring a Spectrogram display

+


+ Spectrogram display options are specified when the display + is first created; in addition, they can be adjusted at any time using the popup + menu accessed by right clicking on the spectrogram plot and selecting >Settings.

+

+The Spectrogram Display Parameters Dialog has four tabs + +

+

Data Source Tab

+Spectrogram data source tab

+

+Select the desired FFT Data source. +The spectrogram display requires a source of FFT data which will +generally come from a FFT (Spectrogram) Engine PAMGUARD module. +

+Each spectrogram window can have any number of separate spectrogram +panels which will share the top section of the display. All display +panels will use data from the same FFT data source, but any +combination of channels from that data source is permitted. +

For example, + you may want to display each channel of data in a separate panel, so that + all data on all channels can be viewed. On the other hand, you may want + to display the same channel of data multiple times and overlay different + detector data on each panel. +

+First set the number of panels required. The appropriate number of drop down lists, +each offering a list of available channels will then change to reflect +the number of panels. + + +

+

Scales Tab

+Spectrogram scales tab

+

+Set the Frequency Range; for the vertical axis. + The default buttons will set these to range between 0 and to half the + sampling frequency of the selected data source. + +

Set the Amplitude Rang;. For for a greyscale display min will be the amplitude value coding for white and the maximum will be the value coding for black. +

Set the Time Range; this can either specify the number of +pixels to display each bin of FFT data, or the length of time for the whole +display (which may lead to a varying number of FFT partitions being +displayed on each screen pixel). +

A fixed number of pixels per FFT is the most efficient + + +setting.

+

Plug ins Tab

+Spectrogram plug ins tab

+

Select he plug in display panels for the bottom section of the spectrogram window. +The list of available plug-ins will depend on which detectors are available in +the current PAMGUARD configuration. + +

+

Mark Observers Tab

+Spectrogram mark observers tab

+

Mark Observers are PAMGUARD modules that receive information from the computer +mouse when it is dragged across the Spectrogram display. The list of mark observers +will depend on which modules are available in the current PAMGUARD configuration. +Tick the check box for any modules that you wish to receive mouse movement +information. +

If one or more Mark Observers are selected, a red rectangle will appear on the +spectrogram display panels when you press and drag the mouse across them. See the +help documentation for the individual mark observers to see how they will use this +information. + + + +

+ +


+ + diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Creating.html b/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Creating.html new file mode 100644 index 00000000..db4f3854 --- /dev/null +++ b/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Creating.html @@ -0,0 +1,26 @@ + + + +Creating a Spectrogram Display + + + + +

Spectrogram Display

+

Creating a Spectrogram display

+


+ + First you must have created an instance of a User Display Panel +

+

+From the User Display menu select User Display>New Spectrogram Display +

+A Spectrogram Display Parameters dialog will open allowing you to set display options. +Click Ok and the spectrogram display will be added to the user display panel. + + +

+ + + + diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Overlays.html b/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Overlays.html new file mode 100644 index 00000000..1948e7c2 --- /dev/null +++ b/target/classes/help/displays/spectrogramDisplayHelp/docs/UserDisplay_Spectrogram_Overlays.html @@ -0,0 +1,22 @@ + + + +Spectrogram Display + + + + +

Spectrogram Display

+

Graphic Overlays

+


+ The pop-up menu on each spectrogram panel gives access to a list of detector + data that can be overlain on top of the spectrogram. +

+

+The list of graphic overlays will depend on which detectors are available in the +current PAMGUARD configuration. The overlays can be set individually for each panel. + +

+ + + diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramDataScales.png b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramDataScales.png new file mode 100644 index 00000000..fd16901e Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramDataScales.png differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramDataSource.png b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramDataSource.png new file mode 100644 index 00000000..e93dd3b1 Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramDataSource.png differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramMarkObservers.png b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramMarkObservers.png new file mode 100644 index 00000000..22ab72d2 Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramMarkObservers.png differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramPlugins.png b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramPlugins.png new file mode 100644 index 00000000..a204c67d Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramPlugins.png differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramWithPlugins.png b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramWithPlugins.png new file mode 100644 index 00000000..207bb8c6 Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/SpectrogramWithPlugins.png differ diff --git a/target/classes/help/displays/spectrogramDisplayHelp/docs/images/spectrogramPopUpMenu.png b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/spectrogramPopUpMenu.png new file mode 100644 index 00000000..e47f5b57 Binary files /dev/null and b/target/classes/help/displays/spectrogramDisplayHelp/docs/images/spectrogramPopUpMenu.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/adddata.png b/target/classes/help/displays/timedisplayfx/docs/images/adddata.png new file mode 100644 index 00000000..ebe588d8 Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/adddata.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/addgraph.png b/target/classes/help/displays/timedisplayfx/docs/images/addgraph.png new file mode 100644 index 00000000..66e314ea Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/addgraph.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/allowmarking.png b/target/classes/help/displays/timedisplayfx/docs/images/allowmarking.png new file mode 100644 index 00000000..204fd17a Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/allowmarking.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/axisbutton.png b/target/classes/help/displays/timedisplayfx/docs/images/axisbutton.png new file mode 100644 index 00000000..a1b4c744 Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/axisbutton.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/axiscontrol.png b/target/classes/help/displays/timedisplayfx/docs/images/axiscontrol.png new file mode 100644 index 00000000..1038013b Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/axiscontrol.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/datasettings.png b/target/classes/help/displays/timedisplayfx/docs/images/datasettings.png new file mode 100644 index 00000000..b4bf3fc3 Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/datasettings.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/emptydisplay.png b/target/classes/help/displays/timedisplayfx/docs/images/emptydisplay.png new file mode 100644 index 00000000..8d7347ad Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/emptydisplay.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/emptydisplayconfig.png b/target/classes/help/displays/timedisplayfx/docs/images/emptydisplayconfig.png new file mode 100644 index 00000000..1dbb70aa Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/emptydisplayconfig.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/scrollwrap.png b/target/classes/help/displays/timedisplayfx/docs/images/scrollwrap.png new file mode 100644 index 00000000..7cafcbdd Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/scrollwrap.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/images/settingsbutton.png b/target/classes/help/displays/timedisplayfx/docs/images/settingsbutton.png new file mode 100644 index 00000000..6427af58 Binary files /dev/null and b/target/classes/help/displays/timedisplayfx/docs/images/settingsbutton.png differ diff --git a/target/classes/help/displays/timedisplayfx/docs/timedisplayfx.html b/target/classes/help/displays/timedisplayfx/docs/timedisplayfx.html new file mode 100644 index 00000000..76462aa7 --- /dev/null +++ b/target/classes/help/displays/timedisplayfx/docs/timedisplayfx.html @@ -0,0 +1,182 @@ + + + +Time Display FX + + + + +

Time Display FX

+

Overview

+
+ +

The Time Display FX is a general and flexible display for + displaying time based data from multiple sound processing and + detection modules.

+

The display uses the Java FX graphics library which is only + available if you are running Java version 8 or above (i.e. not Java + 7).

+

Time is always displayed along one axis of the display, the + units of the other axis can vary depending on the type of data, for + instance, click detector output can contain bearing, inter-click + interval, amplitude or frequency information, whereas FFT output can + only display frequency information.

+ +

Types of data which can be shown on this display are shown in + the table below:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PAMGuard ModuleData TypeAxis type(s)
FFT + (Spectrogram) EngineFFT DataFrequency
Click + DetectorClicksBearing; Interclick interval (ICI); Amplitude; Frequency
Whistle + and Moan DetectorWhistle / Moan ContoursBearing, Frequency
Sound + AcquisitionRaw Audio DataAmplitude
+

Data from other modules will be added in future releases

+ + +
+

Configuring the display

+

+ Any number of Time Displays can be created within PAMGuard User + Display Panels. +

+

Once a User Display Panel has been created, the option to create + a "New time base display fx" will appear in the User Display menu. + Select this menu option and an empty display container will appear.

+
+
+ +
+
+

Click on the downward poining arrow 'V' in the middle near the + top of the display to show the display configuration panel.

+
+
+ +
+
+

Graphs and Data

+

To configure the display the user must understand the concept of + "Graphs"

+

A display panel can contain any number of graphs, with each one + being stacked vertically in the display. All graphs within a display + panel will share a common time axis and time scroll bar, however each + graph can have a different data axis dimension (e.g. bearing, + frequency, amplitude, etc.)

+

The data axis dimension is controlled by the type of data added + to each graph.

+

To add or remove graphs, use the + and - buttons at the left end + of the configuration panel

+
+
+ +
+
+

Add data to a graph by clicking on the Graph buttons in the + configuration panel to show a drop down menu of available data types + (if no data are available, then add some modules to your PAMGuard + configuration). Data can be removed from a graph using the same menus.

+
+
+ +
+
+

You can add as many types of data to a graph as you wish and the + data will be plotted on top of one another. There are no constraints + as to which data are mixed within a graph, but the user should select + data which can be plotted on a common axis, i.e. it's not sensible to + select one type of data which can only display frequency and another + which can only display amplitude.

+ +

Axis Dimensions

+

Once data have been added to a graph, the display will examine + each type of data to see which data dimensions it supports and + construct a list of possible dimensions from all types of data + connected to that graph. To select the dimension of the display axis, + click on the small > arrow in the top left corner of a graph and a + larger panel will appear showing all possible options.

+
+
+ +
+
+

In this case, the graph is showing both Spectrogram data (FFT + 2kHz) and the output of a Whistle and Moan detector (Moans Contours). + The Spectrogram data can show only on a Frequency axis, whereas the + moans can show either on a frequency or on a bearing axis. Therefore + if the frequency axis is selected, both the spectrogram AND the Moans + Contours will show, however if the bearing axis is selected, then only + the Moans will show.

+

Also note that the display has discovered that the FFT data is + multi-channel (channels 0 and 7 in this case) and additional options + have been provided to display only certain channels of data. Different + channels are displayed within separate display strips within each + graph.

+ +

Scrolling

+

+ + When running in real time mode, the display can operate in "Scroll" or + "Wrap" mode. Toggle between the two modes using the button with left / + right arrows in the configuration panel. Scrolling often looks nicer, + but if you're trying to mark data in real time, wrapping can often be + easier since things are moving around less. +

+ +

Data Marking

+

+ + To mark data on the display, select the "Allow marking" button in the + configuration panel. To make and use data marking, you will also need + to correctly configure the relationship between the display and marked + data and will have to hold down the Ctrl while making marks. For more + information see Display + Marking. The display will pause while marks are being drawn. +

+ +

Data Display Options

+

Many types of data have a number of options controlling how they are displayed, for instance the colour used + for symbols, amplitude ranges of spectrograms, etc.

+

Configuration panels for individual data types are available by clicking on the settings button in the + top right corner of each graph. The example below shows settings panels for a graph showing + Spectrogram and Whistle and Moan Detector data. For the spectrogram, the user can select the frequency range + to display and the amplitude colour and scale. For the 'moans' it is possible to select a symbol type and colour.

+
+ +
+ +
+ + diff --git a/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/DOCS b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..adbb882b --- /dev/null +++ b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/DOCS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..98184238 --- /dev/null +++ b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +e@j \ No newline at end of file diff --git a/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/OFFSETS b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..d2de4904 --- /dev/null +++ b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/POSITIONS b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..18f03e7a Binary files /dev/null and b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/SCHEMA b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..36c3cd31 --- /dev/null +++ b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=61 id2=1 diff --git a/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/TMAP b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..410e1ad8 Binary files /dev/null and b/target/classes/help/displays/userDisplayHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/displays/userDisplayHelp/docs/images/scrollcoupling.png b/target/classes/help/displays/userDisplayHelp/docs/images/scrollcoupling.png new file mode 100644 index 00000000..a24d7450 Binary files /dev/null and b/target/classes/help/displays/userDisplayHelp/docs/images/scrollcoupling.png differ diff --git a/target/classes/help/displays/userDisplayHelp/docs/images/userdisplay.png b/target/classes/help/displays/userDisplayHelp/docs/images/userdisplay.png new file mode 100644 index 00000000..8050aeb8 Binary files /dev/null and b/target/classes/help/displays/userDisplayHelp/docs/images/userdisplay.png differ diff --git a/target/classes/help/displays/userDisplayHelp/docs/userDisplayPanel.html b/target/classes/help/displays/userDisplayHelp/docs/userDisplayPanel.html new file mode 100644 index 00000000..a3eec02c --- /dev/null +++ b/target/classes/help/displays/userDisplayHelp/docs/userDisplayPanel.html @@ -0,0 +1,64 @@ + + + +User Display Panel + + + + +

User Display Panel

+

User Display Panel

+ +

Overview

+

+User display panels are containers for other types of display window.

+

Each User Display panel will appear as a new tab on the PAMGUARD GUI and can contain multiple display windows. +

+ +Scroller coupling dialog
+ +

Currently supported standard display windows that can be incorporated into +a display panel are:
+Spectrogram displays
+'Radar' displays
+Maps
+Time based displays +

+ +

Several other PAMGuard modules may also create display windows which can be shown in a user display +panel. The display menu will automatically show these additional displays when they are available.

+ +

Creating an instance of the user display

+

+From the File>Add module menu, or from the pop-up menu on the data model display select "User Display Panel". +Enter a name for the new display panel (e.g. spectrograms, Ishmael data, etc) and press Ok.

+ +

Adding display windows to the user display

+

To add display windows to the user display, from the User Display menu select either New Spectrogram, New Radar Display etc.

+ +

Window Layout

+

Individual display windows may be dragged and resized in the normal way. Alternatively, you may use the options in the User Display>Arrange Windows sub menu.

+

The positions of windows will be remembered when you exit PAMGUARD.

+ +

Scroller Coupling

+

Many display components, such as spectrograms, +the map and +time based displays +contain a scroller which can be used to move back and forth through +data, particularly when using +PAMGuard Viewer mode to review previously analysed data. +

Rules for scroller coupling are set from the User Display / Scroller Coupling menu:

+Scroller coupling dialog +

+No Coupling: Scrollers will not be coupled and can be moved independently.
+Couple scroller starts: Start times of scrollers will follow each other.
+Couple scroller middles: Middle / centre times of scrollers will follow each other.
+Couple scroller range: Scrollers will maintain overlap, but more more independently.
+
+ + +

+ + + + diff --git a/target/classes/help/index.html b/target/classes/help/index.html new file mode 100644 index 00000000..7843f634 --- /dev/null +++ b/target/classes/help/index.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + +
+

Welcome to a new Help Project

+ +

General Remark

+ +

This is a default welcome page that is displayed when + you open your helpset in the viewer without specifying a + target. Change it according to your needs. If you do not + like this template, you can also edit the file + %INSTALLDIR%/templates/index.html.

+ +

Now you can create your HTML content files. Put them + in subdirectories of your project directory.

+
+ + + diff --git a/target/classes/help/localisation/bearingLocaliser/docs/BL_AlgoConfig.html b/target/classes/help/localisation/bearingLocaliser/docs/BL_AlgoConfig.html new file mode 100644 index 00000000..1bc88778 --- /dev/null +++ b/target/classes/help/localisation/bearingLocaliser/docs/BL_AlgoConfig.html @@ -0,0 +1,93 @@ + + + + Bearing Calculator Algorithm Configuration + + + +

Bearing Localiser

+

Algorithm Configuration

+
+

Algorithm Dialog Tabs

+

The Basic Frequency Domain beamformer, MVDR Beamformer and TOAD Algorithms all have similar user-configurable options to generate Beamograms. Unlike +the Beamformer module, the user cannot configure individual beams with the Bearing Calculator.

+

+
+
+

Configuring the Basic Frequency Domain and MVDR beamformers

+

A beamogram can be used to sweep an entire area. The resultant output is a 'heat-map' of the amplitude of the signal versus primary angle, secondary angle +or frequency. The output can be shown on a User Display tab by selecting New Bearing Calculator Display.

+

+
+ +
    +
  1. +

    Array Information: The type of array as defined by the channels in this group. Valid angle ranges are given in the appropriate sections below. +There are three possible array types: Linear, Planar and Volumetric.

    + +
  2. +
  3. +

    Checkbox indicating whether or not to calculate the beamogram.

    +
  4. +
  5. +

    Primary angle parameters: the minimum, maximum and step size to use when sweeping the primary angle. The direction and valid range of the primary angle + depends on the type of array (see above for details).

    +
  6. +
  7. +

    Secondary angle parameters: the minimum, maximum and step size to use when sweeping the secondary angle. The direction and valid range of the secondary angle + depends on the type of array (see above for details).

    +
  8. +
  9. +

    The Frequency range: in order to speed up the calculations and prevent memory overflow problems, it is recommended that the frequency range over which the + beamogram is calculated be limited to the frequencies containing the signals of interest.

    +
  10. +
+

+
+

Configuring the TOAD Algorithm

+

The TOAD algorithm uses the same primary and secondary angle parameters as the beamformer, but does not require a frequency range.

+ +
+
    +
  1. +

    Array Information: The type of array as defined by the channels in this group. Valid angle ranges are given in the appropriate sections below. +There are three possible array types: Linear, Planar and Volumetric.

    + +
  2. +
  3. +

    Primary angle parameters: the minimum, maximum and step size to use when sweeping the primary angle. The direction and valid range of the primary angle + depends on the type of array (see above for details).

    +
  4. +
  5. +

    Secondary angle parameters: the minimum, maximum and step size to use when sweeping the secondary angle. The direction and valid range of the secondary angle + depends on the type of array (see above for details).

    +
  6. +
+
+
+ + + + \ No newline at end of file diff --git a/target/classes/help/localisation/bearingLocaliser/docs/BL_Output.html b/target/classes/help/localisation/bearingLocaliser/docs/BL_Output.html new file mode 100644 index 00000000..fb3c59a1 --- /dev/null +++ b/target/classes/help/localisation/bearingLocaliser/docs/BL_Output.html @@ -0,0 +1,78 @@ + + + + Bearing Calculator Output + + + +

Bearing Localiser

+

Output

+
+

Basic Frequency Domain and MVDR beamformer Output

+

The output image shown below was generated using simulated right whale calls located 90 degrees to the ship heading.

+ +
    +
  1. +

    Standard spectrogram, using FFT Engine as source

    +
  2. +
  3. +

    A whistle selected using the Spectrogram Annotation module.

    +
  4. +
  5. +

    Bearing localiser output for a Volumetric Array. The chart shows the amplitude (represented by the colour) vs. Primary and Secondary angles. The data for each + point is averaged over all frequencies.

    +
  6. +
  7. +

    The white line shows the amplitude as a function of Primary angle.

    +
  8. +
  9. +

    The plus sign indicates the point of highest gain. This primary/secondary angle position is output as the bearing of the detection.

    +
  10. +
  11. +

    Bearing localiser output for a Linear Array. The chart shows the amplitude (represented by the colour) vs. Frequency and Primary angle.

    +
  12. +
  13. +

    The white line shows the amplitude as a function of Primary angle.

    +
  14. +
  15. +

    The plus sign indicates the point along the line of highest gain. This primary angle is saved as the bearing of the detection.

    +
  16. +
+

+
+
+

TOAD Output

+

The output image shown below was generated using simulated right whale calls located 90 degrees to the ship heading.

+ +
    +
  1. +

    Standard spectrogram, using FFT Engine as source

    +
  2. +
  3. +

    A whistle selected using the Spectrogram Annotation module.

    +
  4. +
  5. +

    Bearing localiser output for a Volumetric Array. The chart shows the log likelihood (represented by the colour) vs. Primary and Secondary angles.

    +
  6. +
  7. +

    The white line shows the log likelihood as a function of Primary angle.

    +
  8. +
  9. +

    The circle indicates the point of highest likelihood. This primary/secondary angle position is output as the bearing of the detection.

    +
  10. +
  11. +

    Bearing localiser output for a Linear Array. The chart shows the log likelihood (represented by the colour) vs. Primary angle. Since there is no + Secondary angle information, the output appears as vertical bars.

    +
  12. +
  13. +

    The white line shows the log likelihood as a function of Primary angle.

    +
  14. +
  15. +

    The circle indicates the point of highest likelihood. This primary angle is saved as the bearing of the detection.

    +
  16. +
+
+
+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/bearingLocaliser/docs/BL_Overview.html b/target/classes/help/localisation/bearingLocaliser/docs/BL_Overview.html new file mode 100644 index 00000000..30917ecf --- /dev/null +++ b/target/classes/help/localisation/bearingLocaliser/docs/BL_Overview.html @@ -0,0 +1,77 @@ + + + +Bearing Localiser Overview + + +

Bearing Localiser

+ +

Overview

+ +

The bearing Localiser can be used to estimate bearings to sound sources using a number +of different algorithms.

+

The type of bearing that can be estimated will depend on the shape of the hydrophone array:

+
+
Single hydrophones
+
No bearing calculation is possible
+
Linear array of two or more hydrophones
+
A single bearing is calculated relative to the axis of the array and there will be ambiguity about + the array axis.
+
Planar Array
+
Two bearings are calculated relative to the plane of the array, an angle in the + plane and and elevation above the plane. There will be an ambiguity across the plane (i.e. + the source might be either side of it.
+
Volumetric Arrays
+
Two unambiguous bearings, a horizontal angle and and elevation angle, are caclulated relative to + the arrays coordinate frame.
+
+ +

The localiser is designed to work with "small" or "compact" arrays, which needs some definition. A small + array is one in which the spacing of the hydrophones is less than half the length of the Fourier Transforms + used in the localisation calculation. Although this can be varied in the configuration of the localiser, for + clicks, it will typically be a bit longer than the longest click you're likely to detect and for whistles, it's + likely to be 512 points for a typical configuration of the PAMGuard + Whistle and Moan Detector for data sampled at + 48kHz for a given Fourier Transform length, the maximum hydrophone separation is

+

max Separation = FTTLength / sampleRate * speedOfSound / 2

+

The table below shows some typical maximum hydrophone separations for common configurations

+ + + + + + + + + + + + + + + + + +
SpeciesSample RateFFT LengthMax Separation
Sperm Whale48 kHz102416m
Porpoise500 kHz51277cm
Dolphin Whistles48 kHz5128m
Baleen Whale2 kHz25696m
+
+

In practice it is often better to keep hydrophone spacings to a lot less than this, for example, if clicks become too widely separated, +then the +Click Detector might separate them into separate detections. It is therefore generally wise to keep hydrophone separation small. +
+

The bearing calculator can work with data from any detector in PAMGuard or with data marked manually on a + spectrogram display.

+ +

Both Time Of Arrival and Beam Forming algorithms are available. Note that the Time of arrival algorithms are the same as those already + built into the +Click Detector so there is little point in running +these a second time on +Click Detector output.

+ + +
+ + + diff --git a/target/classes/help/localisation/bearingLocaliser/docs/BL_Settings.html b/target/classes/help/localisation/bearingLocaliser/docs/BL_Settings.html new file mode 100644 index 00000000..3df01e39 --- /dev/null +++ b/target/classes/help/localisation/bearingLocaliser/docs/BL_Settings.html @@ -0,0 +1,108 @@ + + +Bearing Calculator Configuration + + + +

Bearing Localiser

+

Creation and Configuration

+
+

Creating a Bearing Localiser module

+

From the File > Add Modules +> Localisers menu, select "Bearing Calculator". +Enter a descriptive name for the new module and press OK.

+

+
+
+

Configuring a Bearing Calculator module

+

Note: A suitable Source module should be configured before configuring the Bearing Calculator. See below for details of acceptable sources.

+
+

From the Settings menu, select "Bearing Calculator settings". This will open up a new dialog containing 3 tabs: Source, +Channel Groups and Algorithms.

+ +

+
+
+

Source tab

+ +
    +
  1. +

    Detection Source: Which module triggers the Bearing Calculator. Many different detector modules can be used, including +Click Detector, +Whistle and Moan Detector, +Spectrogram Annotation Marks, etc.

    +
  2. +
  3. +

    Data Source: Where the Bearing Calculator actually gets it's data from. If the Detection Source already has suitable acoustic data with + which to perform calculations, such as the Click Detector or Whistle & Moan Detector, this drop-down menu is disabled and the Detection + Source is used for the Data Source (see image above right). If the Detection Source does not contain data, such as a Spectrogram Mark, the data source needs to be + selected here (see image above left). The Data Source can be raw audio data or FFT data.

    +
  4. +
  5. +

    FFT Parameters: If the Data Source is raw audio data, the FFT parameters to use for bearing calculations should be specified here. If the Data Source is already + FFT data, the information here is for reference only and cannot be modified.

    +
  6. +
+

+
+
+

Channel Grouping tab

+ +

If the Data Source on the Source tab already has channel grouping definitions (such as an FFT Module, Whistle & Moan Detector, Click Detector, etc), +the channel grouping from that source is used here and cannot be modified (see image above right). If the Data Source does not define channel groups +(such as Raw Audio Data), the grouping must be done here (see image above left).

+
  1. +

    Channel Group Type: Select how the channels should be grouped, either No Grouping, a Single Group, or multiple (User) Groups.

    +
  2. +
  3. +

    Channel Grouping: When a data source is selected, the dialog will show a series of check boxes - one for each channel available +from that Source. Select the channels you want to use for bearing calculation, then to the right of each channel check box, +assign the channel to a group. The group numbers themselves are not important - they just need to be different for each group.

    +

    The bearing algorithm will combine the information from all channels in a group and output the resulting signal. If there are +multiple groups defined, there will be multiple output signals. In such a case, each signal will be identified by the group number.

    +

    In the above left image 2 groups have been defined, each with 4 channels.

    +
  4. +
  5. +

    If a detection is made in a single group, the channels in that group are used for bearing calculations and there is one set + of output data. If this checkbox is selected, then bearings will be calculated for ALL groups when there is a detection in + one of them. The timing information from the group with the detection is used for the groups without a detection, in order to + calculate the bearing data.

    +

    Care should be taken when selecting this option. If the hydrophone spacing is large between groups, the timing information from the group with the detection may not be + applicable to the other groups. It is possible that the signal of interest would be missed, and resultant bearing data incorrect.

    +
  6. +
+

+
+

Algorithms tab

+ +
+

The user is able to select a beamformer algorithm for each group defined on the Channel Groups tab. The window displays the group number, and +the number of channels associated with that group.

+
    +
  1. +

    Algorithm: specify which algorithm to use for this group. There are 3 types of algorithms available: Basic Frequency Domain beamformer, Minimum +Variance Distortionless Response beamformer (MVDR), and Time Of Arrival Difference (TOAD).

    + +
  2. +
  3. +

    Settings: press the settings button to open up the settings for the algorithm in a new dialog.

    +
  4. +
+
+
+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/bearingLocaliser/docs/images/BL Algo.PNG b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Algo.PNG new file mode 100644 index 00000000..3280415c Binary files /dev/null and b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Algo.PNG differ diff --git a/target/classes/help/localisation/bearingLocaliser/docs/images/BL Beamogram.PNG b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Beamogram.PNG new file mode 100644 index 00000000..c58024d2 Binary files /dev/null and b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Beamogram.PNG differ diff --git a/target/classes/help/localisation/bearingLocaliser/docs/images/BL Channels.PNG b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Channels.PNG new file mode 100644 index 00000000..cf2c835c Binary files /dev/null and b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Channels.PNG differ diff --git a/target/classes/help/localisation/bearingLocaliser/docs/images/BL Output Beamogram.PNG b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Output Beamogram.PNG new file mode 100644 index 00000000..8ece1f62 Binary files /dev/null and b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Output Beamogram.PNG differ diff --git a/target/classes/help/localisation/bearingLocaliser/docs/images/BL Source.PNG b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Source.PNG new file mode 100644 index 00000000..d6cbd792 Binary files /dev/null and b/target/classes/help/localisation/bearingLocaliser/docs/images/BL Source.PNG differ diff --git a/target/classes/help/localisation/bearingLocaliser/docs/images/BL TOAD Output.PNG b/target/classes/help/localisation/bearingLocaliser/docs/images/BL TOAD Output.PNG new file mode 100644 index 00000000..3e06a9e2 Binary files /dev/null and b/target/classes/help/localisation/bearingLocaliser/docs/images/BL TOAD Output.PNG differ diff --git a/target/classes/help/localisation/bearingLocaliser/docs/images/BL TOAD.PNG b/target/classes/help/localisation/bearingLocaliser/docs/images/BL TOAD.PNG new file mode 100644 index 00000000..791ca5fb Binary files /dev/null and b/target/classes/help/localisation/bearingLocaliser/docs/images/BL TOAD.PNG differ diff --git a/target/classes/help/localisation/bearingLocaliser/docs/images/BL menu select.PNG b/target/classes/help/localisation/bearingLocaliser/docs/images/BL menu select.PNG new file mode 100644 index 00000000..7bc65795 Binary files /dev/null and b/target/classes/help/localisation/bearingLocaliser/docs/images/BL menu select.PNG differ diff --git a/target/classes/help/localisation/detectiongroup/docs/dglocaliser.html b/target/classes/help/localisation/detectiongroup/docs/dglocaliser.html new file mode 100644 index 00000000..31ab4ec3 --- /dev/null +++ b/target/classes/help/localisation/detectiongroup/docs/dglocaliser.html @@ -0,0 +1,98 @@ + + + + Detection Grouper + + +

Detection Grouper

+ +

Overview

+

The Detection Grouper provides methods for manually selecting and sometimes localising groups of data within PAMGuard.

+

A lot of the basic functionality replicates that of the offline functions in the Click Detector, whereby groups of clicks +can be linked into "Events" which then get localised using Target Motion Analysis". The Detection Grouper +extends this functionality to nearly all PAMGuard displays and to all types of data.

+ +

Creating a Detection Grouper

+ +

Configuration

+

The Detection Grouper is configured from a menu item in the main PAMGuard Settings menu. Select the +menu item and a dialog box will appear with three tabs for selecting which displays send marked data to +the grouper, which data from those displays are selected and finally, annotations which will be added +to each Detection Group.

+

Selecting Which displays

+

The Markers tab controls which displays send marks and data to the Detection Grouper

+
+
+
+

Select which displays you want to mark on. This may be all displays, or just some of them depending on the +complexity of the PAMGuard configuration.

+

Display markers can also be selected from the global +Display Marks menu and dialog

+ +

Selecting Which data

+

Select which types of data you wish to include when marks are sent to the Detection Grouper. +Note that ANY type of data can be sent to the Detection Grouper, so consider carefully which types +of data you are interested in.

+
+
+
+
Partial Overlaps
+

You may want to select data that only partially overlap the mark you've made on the display. +For instance, bearing lines on the map may cross at a clear point you want to mark, but extend beyond that +point. Detections whos bearing lines cross the mark will only be included if the 'partial' check box is selected.

+
Data Selection
+

Some types of data have additional selection options, for instance, types of identified clicks. If additional +data selection options are available, then an additional symbol button + +appears beside the name of each data. Click the button for data selection options and refer to the help pages +for each data type for further information.

+ + +

Annotations

+

Annotations are in important feature of the Detection Grouper. They allow the user to select which +additional data are added to, or calculated from, the data in the selected marks

+
+
+
+ + +

A certain amount of common sense is required to select annotations compatible with the types of data you are +planning to mark. For instance, if you are using the Target Motion annotation, then it will only be of use if +the data you are marking have calculated bearings. Similarly, it may not be sensible to have more than one +annotation that requires user input, for instance the text annotation AND the user forms annotation.

+ +

For more information on annotations, see +Help With Annotations +

+ +

Using the Detection Grouper

+

When a mark is made on one of the displays associated with the Detection +Grouper and at least one data unit is selected within that mark, a +popup menu will appear. The exact appearance of the menu will depend on whether +selected data are already contained within a mark and whether marks already +exist in memory. Examples of menus are:

+
+ +

or

+ +
+ + + +

Data Storage

+ + +

User display table

+ + + + +

Help With Display Marks +

Help With Annotations + + + + +

 

+ + diff --git a/target/classes/help/localisation/detectiongroup/docs/images/SettingsButtonSmall2.png b/target/classes/help/localisation/detectiongroup/docs/images/SettingsButtonSmall2.png new file mode 100644 index 00000000..b91ab544 Binary files /dev/null and b/target/classes/help/localisation/detectiongroup/docs/images/SettingsButtonSmall2.png differ diff --git a/target/classes/help/localisation/detectiongroup/docs/images/dgannotations.png b/target/classes/help/localisation/detectiongroup/docs/images/dgannotations.png new file mode 100644 index 00000000..4e7c95a8 Binary files /dev/null and b/target/classes/help/localisation/detectiongroup/docs/images/dgannotations.png differ diff --git a/target/classes/help/localisation/detectiongroup/docs/images/dgdata.png b/target/classes/help/localisation/detectiongroup/docs/images/dgdata.png new file mode 100644 index 00000000..431f578f Binary files /dev/null and b/target/classes/help/localisation/detectiongroup/docs/images/dgdata.png differ diff --git a/target/classes/help/localisation/detectiongroup/docs/images/dgmarks.png b/target/classes/help/localisation/detectiongroup/docs/images/dgmarks.png new file mode 100644 index 00000000..be399ade Binary files /dev/null and b/target/classes/help/localisation/detectiongroup/docs/images/dgmarks.png differ diff --git a/target/classes/help/localisation/detectiongroup/docs/images/dgmenu1.png b/target/classes/help/localisation/detectiongroup/docs/images/dgmenu1.png new file mode 100644 index 00000000..f81d8f10 Binary files /dev/null and b/target/classes/help/localisation/detectiongroup/docs/images/dgmenu1.png differ diff --git a/target/classes/help/localisation/detectiongroup/docs/images/dgmenu2.png b/target/classes/help/localisation/detectiongroup/docs/images/dgmenu2.png new file mode 100644 index 00000000..a246e75c Binary files /dev/null and b/target/classes/help/localisation/detectiongroup/docs/images/dgmenu2.png differ diff --git a/target/classes/help/localisation/difar/difarAudio/docs/directionalAudio.html b/target/classes/help/localisation/difar/difarAudio/docs/directionalAudio.html new file mode 100644 index 00000000..66899ea2 --- /dev/null +++ b/target/classes/help/localisation/difar/difarAudio/docs/directionalAudio.html @@ -0,0 +1,89 @@ + + + + Difar Directional Audio + + +

DIFAR Directional Audio

+ +

 

+ +

*Warning*

+ +

This module is BETA software. It has only received limited testing as of 23/09/2016 and it may crash and/or halt PAMGuard. As such, it may not be advisable to use during fieldwork or real-time data collection, but is probably reasonably safe to use for post-processing of existing data.

+ +

*Use at your own risk*

+ +

Overview

+ +

The DIFAR Directional Audio module can be used to create a directional audio stream from data that have been collected from DIFAR sonobuoys. The  module can be run in normal-mode, mixed-mode for post-processing/re-analysis of existing DIFAR recordings, and viewer-mode.

+ +

Background

+ +

DIFAR sonobuoys contain a single omnidirectional pressure sensor, two directional particle-velocity sensors, and a magnetic compass. By applying signal processing techniques to the signals on each of the three acoustic sensors it is possible to listen preferentially in a chosen direction, and attenuate sounds that come from the opposite direction.

+ +

This module works well with the DIFAR Localisation Module.

+ +

Configuring the Directional Audio

+ +

Required PAMGuard modules

+ +

The following modules are required for DIFAR Localisation.

+ + + +

Recommended Modules

+ +

The following modules are not required, but are highly recommened to facilitate analysis of DIFAR data.

+ + + +

Settings

+ +

The configuration for the Directional Audio are accessed via the Settings menu.

+ +

+ +

The Data Source must contain multiplexed audio from a DIFAR sonobuoy, including pilot tones at 7500 and 15000 Hz. The Directional audio module requires 24 kHz of audio bandwidth from the raw audio source (48 kHz minimum sample rate). An typical data source would be an Analog-Digital converter or sound card that is connected to the audio output of one or many VHF radio receivers.

+ +

The output sample rate of the directional audio is presently fixed at 8000 Hz, but can be resampled with a Decimator module.

+ +

If the option Use GPS data source for noise reduction is checked, then the Directional Audio module will attempt to adjust the listening direction in the opposite direction of the GPS data. Presently only GPS sources are available for noise reduction, but AIS sources, and possibly DIFAR localisations may also be available as Noise Cancellation locations in future releases.

+ +

Usage

+ +

Noise reduction

+ +

The Directional Audio module can be used to preferentially listen to audio from a particular direction, while attenuating audio from the opposite direction.

+ +

This module requires audio from a DIFAR sonobuoy and will output  directional audio by using a beamforming algorithm. This module makes use of the AMMC DIFAR demodulator, and beamforming algorithm is that described in Equation 1 from Thode et al (2016). This module can use a GPS data stream to automatically set the listening direction in order to potentially reduce masking noise in the direciton of the GPS data source.

+ +

When using GPS data for noise cancellation, the listening direction (steering angle of the beamformer) will automatically be set in the opposite direction of the GPS data source. The module uses the location of the current HydrophoneStreamer as the location of the sonobuoy. The Heading of the streamer is used to apply an additional Compass Correction to the angle between the Sonobuoy and GPS data.

+ +

As described by Thode et al (2016) steering the null of the beam towards the GPS bearing will attenuate sounds originating from that direction. The expected performance and limitations are described in detail by Thode et al, but in short, noise reduction typically applies to an entire quadrant (90 degree span of bearings, 45 degrees on either side of the null angle).

+ +

At present, this feature may be useful for detecting whales using DIFAR sonobuoys that have been deployed from a noisy vessel.

+ +

Directional Listening

+ +

If not using the GPS data for noise reduction, then the direction of listening can be adjusted manually by typing preferred listening angle into the Side Panel. The new listening direction will come into effect after hitting enter

+ +

+ +

References

+ +

Thode, AM, KH Kim, RG Norman, SB Blackwell and CR Greene 2016. Acoustic vector sensor beamforming reduces masking from underwater industrial noise during passive monitoring. JASA-Express Letters 139(4) EL105-EL111. DOI:http://dx.doi.org/10.1121/1.4946011

+ + + + diff --git a/target/classes/help/localisation/difar/difarAudio/docs/images/settings.png b/target/classes/help/localisation/difar/difarAudio/docs/images/settings.png new file mode 100644 index 00000000..b05ca21e Binary files /dev/null and b/target/classes/help/localisation/difar/difarAudio/docs/images/settings.png differ diff --git a/target/classes/help/localisation/difar/difarAudio/docs/images/sidebar.png b/target/classes/help/localisation/difar/difarAudio/docs/images/sidebar.png new file mode 100644 index 00000000..b9739281 Binary files /dev/null and b/target/classes/help/localisation/difar/difarAudio/docs/images/sidebar.png differ diff --git a/target/classes/help/localisation/difar/difarAzigram/docs/azigram.html b/target/classes/help/localisation/difar/difarAzigram/docs/azigram.html new file mode 100644 index 00000000..f1ec9541 --- /dev/null +++ b/target/classes/help/localisation/difar/difarAzigram/docs/azigram.html @@ -0,0 +1,61 @@ + + + + + Sperm Whale IPI Plugin + + +

Azigram plugin (beta)

+ +

 

+ +

Release notes

+ +


+The Azigram plugin is version 0.0.1 and has been tested on Pamguard version 2.01.03e. This plugin is BETA software. It has not been designed for efficiency, has not been thoroughly and may contain bugs. Use at your own risk.

+ +

Overview

+ +

In brief, the Azigram provides a means of viewing directional information from a DIFAR sonobuoy. The Azigram displays directional information via a time-frequency-direction display. The display is similar to a spectrogram, but instead of colour representing power, it represents the angle of arrival with the maximum intensity at each time-frequency cell.

+ +

Specifically, this plugin implements the Azigram algorithm as described by Thode et al 2019 J. Acoust. Soc. Am. Vol 146(1) pp 95-102 (doi: 10.1121/1.5114810).

+ +

This module also includes the methods described in that paper for frequency domain demultiplexing of directional signals from DIFAR sonobuoys.

+ +

Adding  the Azigram plugin

+ +

The Azigram plugin can be added from the PAMGuard menu via:

+ +

File -> Add Module -> Sound Processing-> DIFAR Azigram Engine

+ +

The Azigram plugin requires input from an FFT module. The (raw) input into the FFT module must be multiplexed data from a DIFAR sonobuoy with at least 24 kHz of bandwidth (i.e. the same type of raw acoustic input used by the DIFAR Localisation Module).

+ +

Configuring

+ +

The Azigram plugin presently has very few settings. The FFT length and FFT hop (and thus, the time and frequency resolution) for the Azigram display are determined by those used in the upstream FFT Module. The Source panel of the Azigram Settings allows for selection of the FFT module to use as input, and selection of specific channels from this upstream FFT module.

+ +

The sample rate of the Azigram output can be chosen from the Output panel of the settings. The plugin uses frequency domain downsampling in order to acheive the selected sample rate. When selecting the output sample rate, the output FFT length and FFT hop will be altered in order to maintain the same time and frequency resolution as the upstream FFT module.

+ +

+ +

The Azigram can be viewed on a Spectrogram Display. The HSV colour model is recommended for viewing Azigrams. This colour model is circular so will better illustrate the circular nature of the angular data (e.g. sounds from 359 degrees will be similar in colour to sounds from 1 degree). The limits of the Amplitude Range on the "Scales" tab of the "Spectrogram Parameters" should be manually set to Min 0 and Max 360. While this tab suggests that the Min and Max are in dB, the Azigram module will treat these values as degrees if an Azigram is being displayed.

+ +

+ +

 

+ +

Using the Azigram

+ +

The screenshot below shows the DIFAR Azigram Module displaying the Azigram output (top graph) and regular spectrogram ouput (middle panel) of a synthetic test signal. The test signal is a simulated DIFAR source with 8 short FM downsweeps arriving from 0-315 degrees in 45 degree increments. The bottom panel shows the PAMGuard Data Model.

+ +

+ +

 

+ +

References

+ + + + diff --git a/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramDisplay.png b/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramDisplay.png new file mode 100644 index 00000000..554edfef Binary files /dev/null and b/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramDisplay.png differ diff --git a/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramExample.png b/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramExample.png new file mode 100644 index 00000000..6f276bdd Binary files /dev/null and b/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramExample.png differ diff --git a/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramSettings.png b/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramSettings.png new file mode 100644 index 00000000..95d2d703 Binary files /dev/null and b/target/classes/help/localisation/difar/difarAzigram/docs/images/AzigramSettings.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_Calibration.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_Calibration.html new file mode 100644 index 00000000..8cd5fada --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_Calibration.html @@ -0,0 +1,51 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Calibration

+ +

In addition to providing a magnetic bearing to the source of acoustic detections, the DIFAR module provides a means to “calibrate” the compass of the sonobuoy in order to account for local magnetic anomaly and the magnetic deviation inherent in the compass within the sonobuoy. After “calibration” the DIFAR module will report all bearings referenced to true north. The procedure for “calibrating” the compass is the same as that presented in detail by (Miller 2012, Miller et al. 2013, Miller, Collins, et al. 2014), and basically involves measuring several magnetic bearings to the known positions of the research vessel as it moves away from a sonobuoy after deployment.

+ +

To start a calibration run, press the “Start Calib…” button at the top of the DIFAR queue display. If more than one buoy is deployed, then a drop down menu will appear allowing to select a single buoy. When you start a calibration, a window will appear showing two histograms. The top histogram shows uncorrected (Magnetic) bearings from the buoy, the bottom histogram shows the bearing correction required to line each clip up directly on the vessel.

+ +
Calibration window
+ +

Naturally there will be some scatter about the true value and there may be some values which are completely incorrect. The operator can right click with the mouse on the lower histogram to select the mean or the modal (most common) value. They can also drag the red line to the required position using the mouse.

+ +

Pressing Cancel will abort the calibration run.

+ +

When the operator presses OK, a small option dialog will appear asking them to confirm that they wish to update the buoy heading. The updated heading data will then be stored with the PAMGuard Array Manager.

+ +

It is possible to simultaneously calibrate more than one buoy at a time.

+ +

If calibration of a sonobuoy in this manner is not feasible, compass corrections may be entered manually (e.g. using magnetic anomaly from a chart) as the Heading in the Streamer Dialog of the Array Manager. The Use Orientation Data checkbox should be checked.

+ +
Calibration window
+ + + + + +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureModule.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureModule.html new file mode 100644 index 00000000..05d38bed --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureModule.html @@ -0,0 +1,46 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Configuring the DIFAR module

+ +

DIFAR Localisation requires a relatively complex PAMGuard configuration. You may want to start by downloading the DIFAR example configuration from the pamguard.org website.

+ +

Required PAMGuard modules

+ +

The following modules are required for DIFAR Localisation.

+ + + +

Recommended Modules

+ +

The following modules are not required, but are highly recommened to facilitate analysis of DIFAR Localisations

+ + + +

 

+ +

The figure below shows a typical PAMGuard model for DIFAR processing

+ +
difarDataModel
+ + + + + + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureProcessing.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureProcessing.html new file mode 100644 index 00000000..0bf1f3a1 --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureProcessing.html @@ -0,0 +1,202 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Configure DIFAR Processing

+ +

The DIFAR localisation system is configured either from an item in the main Detection menu or by pressing the Settings button at the top of the DIFAR queue panel. Process Settings are laid out across a few different tabs on the dialog. Generally, you will only have to set up the Data and Species tabs and can leave other settings at their default values.

+ +

Data and buffers
+Processing (Classification/Species)
+Calibration
+Automation

+ +
+

Data and buffers

+ +

+ +
Data sources and buffers
+ +
 
+ +

Data Source determines which audio source will be used to when de-multiplexing DIFAR clips. This is generally the sound acquisition module connected to a sound card receiving multiplexed audio data from a VHF radio receiver.

+ +

Demultiplexing Settings determines which demultiplexor (demodulator) will be used.

+ +

Most DIFAR sonobuoys send data via VHF radio link back to an aircraft of nearby vessel. Consequently, the acoustic data from the three sensors are multiplexed into a single signal prior to transmission. An important part of the processing is therefore the de-multiplexing of the signal back into it’s three separate components, and to achieve this, PAMGuard makes use of a software library developed by Greenridge Sciences Inc. Greeneridge Sciences Demultiplexing Library is not included with PAMGuard and must be purchased separately. Upon purchase, you be supplied with a file GreenridgeDemux32.dll or GreenridgeDemux64.dll, and this should be placed in your Program Files (x86)/PamguardBeata/lib folder prior to launching PAMGuard.

+ +

An alternative to the Greenridge demultiplexor is the Australian Marine Mammal Centre (AMMC) Experimental Demultiplexor. This freely available, open source demodulator developed at the Australian Antarctic Division is included in PAMGuard within the DIFAR module. The AMMC Experimental Demodulator does not require purchase, and at the time of writing (July 2014) is not subject to export restrictions by the Australian Defence Control Export Agency. However, the AMMC module is considered Beta software and may not be as stable, reliable, or robust as the Greeneridge Demodulator.

+ +

The Greenridge demultiplexor is more robust and well tested, but must be purchased separately. The AMMC Expermintal demultiplexer is included by default.

+ +

Buffers

+ +

Prepend to clip: This is the amount of data (in seconds) added to the start of each DIFAR clip. When using the Greeneridge demodulator, this should be set to approximately 3 s or more to enable the phased lock loop in the DIFAR de-multiplexing module to lock onto the carrier signal. When using the AMMC demodulator, this should be set to 0. 

+ +

Time to keep Raw Data: The time in seconds that raw data are held in memory. Once data are discarded it is no longer possible to make clips from the data for DIFAR processing. Generally a couple of minutes is adequate. Increasing this too much can cause PAMGuard to run out of memory.

+ +

Queued Data Buffer (m): The minimum number of minutes that data are held in the queue prior to processing before being automatically discarded. Additionally, there are also controls on the DIFAR Queue Display to determine how long data are kept in the queue.  

+ +

Processed Data Buffer (m): The number of minutes that processed data are held prior to being discarded. Additionally, the Map Data Selector can determine how long processed data are kept. 

+ +

Clear queued data at start: If this is selected, then each time PAMGuard starts, all queued data clips will be discarded.

+ +

Clear processed data at start: If this is selected, then each time PAMGuard starts, processed data objects will be discarded, and thus removed from the map. 

+ +
+

 Classification (Species) Processing

+ +

 

+ +
difarParamsDialog_Clips
+ +

 

+ +

The PAMGuard DIFAR module uses the beamforming algorithms as described by (D’Spain 1994, McDonald 2004) to obtain an estimate of the signal power as a function of tonal frequency and magnetic bearing. We refer to the display of signal power as a function of frequency and bearing as the DIFARGram. For a given detection, the bearing and frequency with the highest power can usually be said to represent the direction of the vocalisation.

+ +

Parameters for creating the DIFARGram are controlled on this tab. The PAMGuard DIFAR module allows for a different DIFARGram parameters to be used for different "Species" (i.e. user-defined classifications) of vocalisations. The Edit Species List button allows the creation of new user-defined species classifications. The Select Species drop-down menu is used to select a species in order to edit itparameters.

+ +

DIFARGram parameters

+ +

DIFAR calculation allows selection of the beamforming method: either Bartlett or MVDR.

+ +

Sample Rate: After de-multiplexing, the data for each clip are decimated to a lower sample rate.

+ +

FFT Length: The Fourier Transform length to use during DIFAR processing and display. This must be a power of 2. 

+ +

FFT Hop: The hop, in samples between successive FFT frames.

+ +

No. Angle Bins determines the angular precision when computing the DIFARGram. Generally, 360 bins, for a 1 degree resolution is adequate. Increasing higher than 360 degrees may substantially increase processing times. 

+ +

Intensity Scale is a numeric factor that controls the color scaling (i.e. contrast) of the DIFARGram. Specifically, a "floor" value is set for the DIFARGram that is equal to the maximum power in the DIFARGram divided by the Intensity Scale. Intensity Scale values between 10 and 10000 provide adequate contrast for most DIFAR data.

+ +

Beamforming Frequency Max. and Beamforming Frequency Min. Maximum and Minimum frequencies to use to use when determining the bearings of a DIFAR localisation. For detections that were manually marked on the spectrogram, these values are overridden if the “Marked” button is selected, in which case the frequency limits of the mark made by the operator will be used. For automatic detections, the values will be overridden if the “Detection” button is pressed.

+ +

Load/Save List. These buttons can be used to save or load your list of classifications so that these lists can be easily shared and transferred among different settings files.

+ +

 

+ +
+

Calibration

+ +

+ +
Calibration panel
+ +

+ +

Intensity calibration (sonobuoy frequency response)

+ +

Most sonobuoys have a non-flat frequency response i.e. the intensity is shaped as a function of frequency in order to optimise the dynamic range of the FM signals sent across the limited bandwidth of the VHF radio link. The effects of this "pre-whitening" filter must be reversed in order to make calibrated intensity measurements from signals from sonobuoys.
+
+In addtion to the frequency response of the sonobuoy, the frequency response of the VHF receiver must also be taken into account when measuring intensity of signals from sonobuoys that have been received over VHF radio. The View/Edit Frequency Response button can be used to create a single arbitrary FIR filter that will correct for the combined frequency response of the sonobuoy and the VHF receiver. Lastly, to ensure accuracy, make sure that the hydrophone sensitivity in the Array Manager is set to the correct reference sensitivity for each sonobuoy.
+
+Example: A DIFAR 53D sonobuoy is used with a WiNRADiO G39 sonobuoy VHF receiver.
+
+The frequency response of the 53D sonobuoy (figure below) is given relative to the reference pressure (100Hz) and reference intensity (122 dB re 1 uPa RMS; as per Greene et al 2004).

+ +

 

+ +

+ +
Calibration panel
+Intensity frequency response of a DIFAR 53D Sonobuoy (adapted from Greene et al 2004)
+ +

 

+ +

The hydrophone sensitivity is measured in dB re 1 V/uPa. Therefore the inverse of the reference intensity can be used as the sensitivity of the hydrophone in the Array Manager (Figure Below).

+ +

 

+ +
Calibration panel
+Setting the hydrophone sensitivity in PAMGuard's Array Manager
+ +

 

+ +

At the reference pressure and intensity the sonobuoy will generate a 25 kHz of frequency deviation. The voltage frequency response of the WiNRADiO G39 receiver is then measured at 25 kHz frequency deviation and found to be relatively flat at 1 V (i.e. 0 dB from 10 to 48000 Hz). These two frequency responses are combined and entered into the DIFAR module using the button View/Edit Freq. Response (Figure Below).

+ +

 

+ +
Calibration panel
+Setting up a filter for obtaining calibrated intensity measurements from sonobuoys
+ +

 

+ +

The DIFAR module will now apply this filter to the data from the omnidirectional hydrophone when measuring the intensity (i.e. processing) of an audio clip. The resulting intensity measurements will be accurately referenced to 1 uPa RMS. NB: Specifications from sonobuoy manufacturers typically suggest that intensity is accurate to within ±3 dB.

+ +

 

+ +

Calibration GPS Source

+ +

If multiple GPS modules have been added to PAMGuard (e.g. in viewer mode or mixed-mode for post-processing of data), then this drop-down menu can be used to select the GPS module that contains the position of the calibration sound source.

+ +

 

+ +

Compass calibration

+ +

In addition to providing a magnetic bearing to the source of acoustic detections, the DIFAR module provides a means to “calibrate” the compass of the sonobuoy in order to account for local magnetic anomaly and the magnetic deviation inherent in the compass within the sonobuoy. After “calibration” the DIFAR module will report all bearings referenced to true north. The procedure for “calibrating” the compass is the same as that presented in detail by (Miller 2012, Miller et al. 2013, Miller, Collins, et al. 2014), and basically involves measuring several magnetic bearings to the known positions of a research vessel as it moves away from a sonobuoy after deployment. See here for details of running the calibration.

+ +

Audio clips used for calibration, are treated as a special species and are processed and localised in much the same way as other species. The DIFARGram parameters for calibration clips are controlled using the top portion of this tab. The bottom portion of the tab can be used to set the length and number of clips to include in a calibration run.

+ +

Clip length (s): Length of each automatically generated calibration clip.

+ +

Interval between clips(s): The number of seconds between automatically generated calibration clips.

+ +

Number of clips in sequence: The number of clips to include in the calibration run.

+ +

Auto-process vessel clips: When checked, automatically generated calibration clips will be automatically moved from the DIFAR queue to the DIFAR processing module as soon as the previous clip is cleared from the DIFAR processing module.

+ +

 

+ +
+

Automation

+ +

+ +
difarParamsDialog_Automation
+ +

 

+ +

The main purpose of the DIFAR Localisation module is to process signals from directional DIFAR sonobuoys in order to obtain bearings to vocalisations from whales. The detection of whale vocalisations may take place automatically via any PAMGuard detector that can generate clips (e.g Ishmael energy and spectrogram detectors, PAMGuard’s whistle and moan detectors) or can take place via manual selection of calls on the spectrogram. Any number of these automated detectors can be used to present detections to the DIFAR module.

+ +

Automated Detectors: This panel lists all of the PAMGuard modules that are capable of generating detections that can be processed and potentially localised with the DIFAR Localisation module. The first column lists the name of the detector, and the checkbox in the second column determines whether or not the detections will be used by the DIFAR Locasitaion module. Be warned though that many detectors produce false alarms at a high rate which may fill the DIFAR queue very rapidly. The final column labelled "Classification" contains a drop-down menu containing all of the "Classifications" known to the DIFAR module. Selection of a classification species will force all of the detections for that detector to be classified and automatically processed accordingly. Automatic detection without automatic processing can be achieved by selecting the "Unclassified" species (i.e. listed first in the "Classification" drop-down menu). 

+ +

 

+ +

Quick classification: This panel controls which classifications, if any, will be prominently visible next to each detection in the DIFAR Queue. There can be up to three “Favourite” species which will appear as buttons next to each clip in the DIFAR queue. NB: Species that are not "Favourites" will be available via a drop-down menu next to each clip.

+ +

 

+ +

Auto Saving (and auto-processing)

+ +

Auto-process classified clips:  When this box is checked, clips that have a classification will be automatically processed (i.e. DIFARGrams will be created and displayed). If not checked, then the user must click on the Process button next to each clip in the DIFAR queue to process each clip.

+ +

Auto save processed clips: If you select to Auto save processed data, then once a DIFAR clip has been processed it will automatically be saved after the set delay time using the maximum DIFAR angle and automatically crossing bearings to other detections if more than one buoy is in operation.

+ +

 

+ +

Global Keyboard Shortcuts:

+ +

Keyboard shortcuts can be assigned to any or all of the five actions listed under this panel. If any of these keys are pressed in any PAMGuard window (including, but not limited to windows created by the DIFAR module) their corresponding actions will be carried out if possible. Three of these actions, Save, Save without Crossbearing, and Delete have corresponding buttons on the DIFARGram. The remaining two actions will change the selected classification in the DIFAR Selection sidebar.

+ +

 

+ +

Advanced

+ +


+Use DifarGram summary line: When checked the angle with the maximum value of the summary line in the DifarGram will be automatically selected for newly processed bearings. When unchecked, the angle and frequency with that contain the maximum value of the DIFARGram will be selected for newly processed bearings.

+ +

Previous: Configuring the User Display

+ + + +

 

+ +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureUserDisplay.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureUserDisplay.html new file mode 100644 index 00000000..265146b7 --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ConfigureUserDisplay.html @@ -0,0 +1,81 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Configuring the User Display

+ +

DIFAR processing is an interactive process with the computer doing the bulk of the work, but an operator making critical decisions such as validating detections, classifying sounds by species, and selecting/rejecting sounds for further processing and localisation.

+ +

The DIFAR module does not have its own tab panel. Instead the various displays you’ll need should be configured on a user display panel. Create a user display panel from the File > Add Module > Displays > User Display menu.

+ +

On your user display(s) you will need to configure a spectrogram, a DIFAR Queue and a DIFAR Processing display. You may also want an additional map. A typical display configuration is shown below:

+ +

 

+ +
difarUserDisplayOverview
+ +

 

+ +
+

The DIFAR Display modules

+ +

Two different displays are required to run the DIFAR system. They are added separately to allow more flexibility in how the overall display system is laid out. The display first is a queue of selected or detected sounds which are waiting for DIFAR processing (i.e. localisation). The second display shows the output of DIFAR processing and allows the operator to make final decisions regarding the directionality of the detected sound, and ultimately allows validation, acceptance or rejection of the localisation results.

+ +

The Display modules are added from the User Display menu:

+ +

 

+ +
difarUserDisplayMenu
+ +

 

+ +

Add each of the display components in turn and drag them to the required positions on the screen.

+ +

Note that you can only add one each of the two DIFAR displays, so the menu items will go grey once you’ve added them.

+ +
+

The spectrogram

+ +

 

+ +

To create a spectrogram, from the User Display menu select User Display > New Spectrogram Display

+ +

Configure the spectrogram, right click > Settings... will reopen the dialog. Details of spectrogram configuration can be found here

+ +

The spectrogram should display the FFT from the decimated data. For diagnostic purposes it’s useful to show the spectrum of the FFT from the raw 48kHz data as well. To show this, open the dialog and go to the “plug-ins” tab and check the box next to the data you want to display.

+ +

If you’re marking detections by hand on the spectrogram, then you also need to enable this feature by going to the Mark Observers tab and selecting the appropriate checkbox.

+ +

 

+ +
difarSpectrogramPlugins difarSpectrogramMarkObservers
+ +

 

+ + + + + +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_CrossingBearings.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_CrossingBearings.html new file mode 100644 index 00000000..6194f8b1 --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_CrossingBearings.html @@ -0,0 +1,76 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Advanced localisation

+ +

The DIFAR Localisation module has two features intended to aid in real-time localisation of whales:

+ +

1) The ability to triangulate the location of a calling whale if the same call is received on two different sonobuoys.

+ +

2) The ability to average a time-series of bearings that are believed to originate from a group of calling whales.

+ +

 

+ +

Crossing Bearings

+ +

If more than one buoy is in use then the system will automatically attempt to cross bearings from two or more buoys to give a localisation of a sound source.

+ +
Map with DIFAR bearings and Crossed Bearings
+ +

When a sound is processed and it’s bearing calculated, the system searches back through the list of recently processed DIFAR clips from other buoys and checks if any existing bearings from the same species are close enough in time that they may have been the same sound. If they are, then the crossing point is calculated.

+ +

NB: Crossing points are calculated on a rectangular grid, however sound propagation over long distances will typically follow a great-circle path. Thus crossing points that are very far from both of the sonobuoys may contain errors that arise from applying a rectangular grid that does account for the curved surface of the earth.

+ +

 

+ +

Tracked Groups

+ +


+Groups is a feature that allows the operator to semi-automatically assign a text label to bearings that are believed to originate from a closely spaced group of calling whales. Summary statistics for each group are then calculated and can be plotted on the PAMGuard Map. The Groups panel on the DifarGram is used to manage and view the list of Groups as well as assign groups to DIFAR clips.

+ +
PAMGuard Map with Tracked Groups
+ +

Adding and removing groups

+ +

Groups can be created and removed using the buttons. The Add group button will create a dialog-window that asks the user to type the name of a new group, and upon accepting the dialog-window the name of the new group is added to the list-box in the Groups panel. The Remove group button removes the currently-selected group's label from the list-box. When a group is removed from the list-box, new bearings cannot be assigned to that group, however the PAMGuard database and map will retain the entry for that group. Groups that have been removed can be re-added to the list-box using the Add group button and typing the name of a previously removed group. NB: Group names are case sensitive, so "Apple" and "apple" are considered two different groups. The default group "No group" is always present in the list-box and cannot be removed. Summary statistics for the default group are not plotted on the map.

+ +

Assigning Groups

+ +

Assigning a group to a DIFAR clip involves selecting name of the group in the Groups panel before saving the clip. The selected/highlighted group will be assigned to the DIFAR clip when the clip is saved. The Groups module will then calculate a summary of the bearings from all of the DIFAR clips from that sonobuoy that were assigned to that group. Summary statistics include the mean and standard deviation of bearings to that group, the first and last bearings and detection times, and the total number of DIFAR clips assigned to that group. All summary statistics are calculated per-sonobuoy.

+ +

After the first clip has been assigned to a group, PAMGuard will suggest that DIFAR clips with closely matching bearings be assigned to that group. When new clips appear in the DifarGram, the group with the closest-matching mean-bearing will be automatically highlighted. PAMGuard will only suggest groups that match closely to the bearing selected in the DifarGram. If the closest-matching mean-bearing is more than 10 degrees from that of the clip, then the default group will be selected (i.e. PAMGuard will not attempt to creat new groups, but the user should feel free to do so). NB: Because summary statistics are created for each group per-sonobuoy, automatic suggestions for a group will not work on newly deployed sonobuoys until at least one DIFAR clip has been assigned to that group on that sonobuoy.

+ +

Viewing Summary Statistics

+ +
DifarGram with Controls for Tracking Groups
+ + + + + + + +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_DifarOutput.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_DifarOutput.html new file mode 100644 index 00000000..034d6d8e --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_DifarOutput.html @@ -0,0 +1,44 @@ + + + +Difar Module + + + +

+DIFAR Localisation +

+ +

+Output from the DIFAR System +

+ +

+DIFAR results are stored in both the +PAMGaurd database +and in the +Binary storage system +. Each has its own advantages and disadvantages so it is likely that you will want to use both. +

+

+The database can store a single line of information for each localisation in a format +which can be easily read using a database management system (e.g MS Access). However, +the database is unable to store the full waveform clip. +

+

+The binary store stores data in a system which can only be read by the PAMGuard software. +However, it is able to store the waveform clip for each DIFAR localisation allowing the +operator to review data offline using the PAMGuard viewer. +

+ + + + + +


+ + \ No newline at end of file diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_GraphicsOutput.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_GraphicsOutput.html new file mode 100644 index 00000000..e1701890 --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_GraphicsOutput.html @@ -0,0 +1,44 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Graphics Output

+ +

As well as the DIFAR queue and the DIFAR localisation display, the DIFAR system can overlay data on both the spectrogram and the PAMGuard map. Data from the DIFAR Queue and the Processed clips will automatically be included in lists of possible overlays for both these displays. Additional options are also available from the Display / DIFAR Localisation Display options menu.

+ +
Picture of Graphics Dialog
+ +

Default length: This is the default length of lines drawn on the map. Amplitude scaling is in use If multiple buoys are in use and a crossing point has been calculated, then this value is ignored and lines are drawn as far as the crossing point.

+ +

Amplitude Scaling: If ‘Amplitude scaled line length’ is selected, then a range is estimated based on a nominal source level, the received level, and the geometric spreading model of the form  r = 10^((SL-RL)/g) where g is the geometric spreading factor.

+ +

Fade bearings: If the fade bearings button is selected, then lines drawn on the map will fade from solid to transparent over the set time period.

+ +

Show Vessels. If this is selected, bearings to vessels will be displayed as well as bearings to other sounds.

+ +
Picture of Map
+ + + + + +

 

+ +

  +

 

+

+ +

  +

 

+

+ +

 

+ +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_HydrophoneArray.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_HydrophoneArray.html new file mode 100644 index 00000000..5c4e551c --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_HydrophoneArray.html @@ -0,0 +1,50 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Hydrophone array configuration

+ +

Arrays of DIFAR sonobuoys are fundamentally different than towed arrays. In PAMGuard each DIFAR sonobuoy is assigned to a streamer using the Array Manager. The Array Manager can be accessed via the Deploy button on the DIFAR Queue.

+ +

 

+ +

DIFAR Array Manager

+ +

 

+ +

Presently streamers for DIFAR sonobuoys should be configured using a "Fixed location" for the reference position, and a "Straight/Rigid Streamer". An independent streamer is required for each sonobuoy when recording from multiple sonobuoy simultaneously (i.e. the number of streamers should be equal to the number of radio receivers used to receive signals from sonobuoys). The following image shows one of the streamers from a three-sonobuoy array.

+ +

 

+ +

DIFAR Streamer

+ +
+

Deploying

+ +

The Deploy button on the DIFAR Queue can be used when physically deploying a new sonobuoy. Clicking the Deploy button will open a menu allowing options to deploy a new buoy on any of the existing streamers that have been configured in the Array Manager. Upon selecting one of these menu items, a new Streamer Dialog window will appear.

+ +

The Streamer Dialog window will contain the GPS position of the ship at the time when the "Deploy channel"  menu item was selected. If any of the streamers in the Array Manager have a numeric Streamer Name, then this will be used to automatically name the newly deployed streamer using the next sequential number. Thus, using the Deploy button is used to deploy all sonobuoys will result in sonobuoys names being sequential numbers.

+ +

Sonobuoys can be assigned alternative names, deployment numbers, or station numbers by typing directly into the Streamer Name.

+ +

Sonobuoy deployments will be stored in the PAMGuard database under the HydrophoneStreamers table.

+ +

In addition to a Deploy button, versions of PAMGuard after 1.15.05 also have an button titled Buoy Finished which will add a timestamp in the EndTime column of the database for the selected deployment. Aside from this timestamp in the database, the Buoy Finished button has no effect on the operation of PAMGuard's DIFAR module, the Array Manager, or any other aspect of PAMGuard.

+ +

Sonobuoy Manager

+ +

A 'Sonobuoy Manager' was added to the DIFAR module after PAMGuard version 1.15.05. The sonobuoy manager allows limited viewing and editing of sonobuoy metadata in normal, mixed, and viewer mode, and can be added to a User Display via the User Display menu. Presently, the DIFAR module only allows one Sonobuoy Manager window to exist.

+ +

Sonobuoys that have been edited via the Sonobuoy Manager will be updated both within PAMGuard modules (e.g. ArrayManager, Map, DIFAR Localisaiton Module, etc), and their corresponding entries in the PAMGuard database will be OVERWRITTEN. Thus users should exercise caution when using the Sonobuoy Manager and are encouraged to make backups of their database (NB: Sonobuoy metadata is stored in the HydrophoneStreamers table of the database). 

+ +

Sonobuoy Manager

+ + + + + + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ManagingQueue.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ManagingQueue.html new file mode 100644 index 00000000..b566d59f --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_ManagingQueue.html @@ -0,0 +1,51 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Managing the Queue

+ +
Image of Difar Loacalisation Queue
+ +

Clips marked by the user or clips resulting from automatic detections are held in the DIFAR queue. At the top of the queue panel are a set of controls which can be used to resize and change the colour contrast on the clips. The top panel can also be hidden, using the small button on the left hand side of the control panel, in order to generate more space for sound clips.

+ +

Each clip is displayed as a small spectrogram. To the right of each clip is a set of buttons which perform the following actions:

+ +

Del: Permanently deletes the clip. No further processing will take place.

+ +

Proc: Sends the clip to the DIFAR Localisation display. Note that this button is only enabled once a species has been assigned to a clip. Since clips can be processed automatically once a species has been assigned, this button may only be necessary in situations where the unit was not processed because a clip was already in the DIFAR processor which had not been deleted or saved.

+ +

Ves: Marks the clip as a calibration (i.e. vessel) clip.

+ +

Classification buttons: Up to three species buttons will be displayed, which were defined by the user. Pressing a classification button will automatically send the clip for processing.

+ +

Other: If the user has defined more than three species, then pressing this button will generate a popup menu containing all species options.

+ +

Automatic Processing: There is an option in the Automation tab of the difar parameters tab to auto-process clips. When this option is checked clips will automatically be sent to the DIFAR Localisation display and the DIFARGram computed.

+ + + + + +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_Overview.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_Overview.html new file mode 100644 index 00000000..cd15f5bf --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_Overview.html @@ -0,0 +1,23 @@ + + + + Difar Overview + + +

DIFAR Localisation

+ +

Overview

+ +

The PAMGuard DIFAR Localisation module can be used to locate tonal sounds (e.g. calls from baleen whales) that have been acquired from DIFAR (directional) sonobuoys. The DIFAR Localisation module can be run in normal-mode for real-time localisation, or in mixed-mode for post-processing/re-analysis of existing DIFAR recordings, and the results from the DIFAR Localisation module can be displayed in viewer-mode.

+ +

Background

+ +

Over the past two decades DIFAR (directional) sonobuoys have seen increased use in whale research programs worldwide.

+ +

DIFAR sonobuoys contain a single omnidirectional pressure sensor, two directional particle-velocity sensors, and a magnetic compass. By comparing the amplitude and phase of signals on each of the three acoustic sensors it is possible to calculate the direction that a sound is coming from relative to magnetic north. Additionally, most DIFAR sonobuoys send data via VHF radio link back to an aircraft or nearby vessel. Consequently, the acoustic data from the three sensors are multiplexed (modulated) into a single signal prior to transmission. An important part of the processing is therefore the de-multiplexing (demodulation) of the signal back into the three separate acoustic components (Delagrange 1992). While there are some general purpose tools available for working with DIFAR data such as the beamforming software from WhaleAcoustics, and the demultiplexing software by Greeneridge Sciences Inc real-time analysis of signals from DIFAR sonobuoys has remained the province of a limited number of bespoke (or restricted military) systems.

+ +

This module has been developed between SMRU and the Australian Marine Mammal Centre to serve as a flexible tool for for real-time localisation of loud & vocal species of baleen whales. The PAMGuard DIFAR Localisation module was made possible by the Southern Ocean Research Partnership. The module is BETA software, and further development of the module is still ongoing as of December 2014. For questions, comments, or to report bugs on the DIFAR module contact Brian Miller at the Australian Marine Mammal Centre.

+ + + + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial.html new file mode 100644 index 00000000..5910b957 --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial.html @@ -0,0 +1,1316 @@ + + + + + JOURNAL ARTICLE + + + +
+

Tutorial: Post-processing of data from DIFAR sonobuoys with the PAMGuard DIFAR module

+ +

Brian S. Miller

+ +

Australian Marine Mammal Centre, Australian Antarctic Division

+ +

brian.miller@aad.gov.au

+ +

Purpose of this tutorial

+ +

The purpose of this tutorial is to provide step-by-step instructions for configuring and running the PAMGuard DIFAR module in order to post-process data that have been collected from DIFAR sonobuoys. This document is not intended as a guide for real-time analysis of DIFAR data, however there is considerable overlap between these two use cases. The tutorial includes step-by-step instructions for importing voyage tracks (i.e. GPS data) into PAMGuard, importing sonobuoy deployment locations into PAMGuard, configuring PAMGuard for DIFAR Localisation, and configuration of PAMGuard’s automated Whistle and Moan Detector for use with the DIFAR Localisation module. Post-processing of DIFAR data should yield a list of magnetic and possibly true bearings to sound sources in the DIFAR data. The list of bearings can be stored in PAMGuard binary storage files and/or the PAMGuard database.

+ +

Version 1.0 2014-08-20

+ +

Contents

+ +

Preparation and expectations. 2

+ +

Disclaimer. 2

+ +

Installation of PAMGuard DIFAR module. 2

+ +

Custom install of the PAMGuard DIFAR jarfile. 2

+ +

OPTIONAL: Installation of the Greeneridge Sciences Demultiplexing Software. 3

+ +

A technical note on demultiplexers. 3

+ +

Verifying installation. 4

+ +

Preparation and Import of Data and Metadata. 4

+ +

Overview.. 4

+ +

Database preparation. 5

+ +

Hydrophone array configuration. 5

+ +

Example: single sonobuoy deployment. 6

+ +

Example: Recordings with two sonobuoys. 8

+ +

Sonobuoy deployments – Import Streamer Data. 9

+ +

Validating Streamer Import. 11

+ +

Import ship tracks (GPS data). 13

+ +

Validating GPS tracks. 15

+ +

Cleanup after import. 15

+ +

Acoustic Data Files. 16

+ +

Configuration of DIFAR Localisation. 21

+ +

Overview.. 21

+ +

Required PAMGuard modules. 21

+ +

Recommended Modules. 21

+ +

Decimators. 22

+ +

Omnidirectional decimator. 22

+ +

Low frequency  decimator (for blue/fin whale calls). 24

+ +

FFT Engine. 26

+ +

Low frequency spectrogram (for blue/fin whale calls). 26

+ +

Full bandwidth spectrogram (for DIFAR diagnostics). 27

+ +

User Displays. 29

+ +

Processing DIFAR data. 32

+ +

Data Formats. 32

+ +

 

+ +

Preparation and expectations

+ +

The instructions in this tutorial follow the assumption that the user already has a working installation of PAMGuard Beta version and that the user has basic familiarity with running PAMGuard. At the time of writing, the latest version of PAMGuard Beta is 1.12.05 which can be downloaded via the PAMGuard website. Tutorials for installation and general operation of PAMGuard are available on the PAMGuard website, and the PAMGuard online help system. The PAMGuard DIFAR module was developed and has only been tested on 64-bit Windows 7 with PAMGuard running uder a 32-bit version of the Java 7 runtime. Familiarity with acoustic detection, localisation, and DIFAR usage will be helpful, but is not required.

+ +

Disclaimer

+ +

Please keep in mind that the PAMGuard DIFAR module is still beta software and it may break in unexpected ways. Standard disclaimers apply: the software is available without warranty, as is where is; backup your data; don't expect too much; I'm not to be held responsible if it eats your homework, frightens your pets, melts polar icecaps, etc.

+ +

Installation of PAMGuard DIFAR module

+ +

Installation of the PAMGuard DIFAR Module follows the general procedure for the installation of custom JARFILES. This installation procedure has been in practice for a number of years, and is the semi-official means for installing versions of PAMGuard with custom features outside of the mainstream releases. At the time of writing this procedure is detailed on the System Requirements page of the PAMGuard Website. A version of these instructions tailored to the DIFAR module is included below.

+ +

Custom install of the PAMGuard DIFAR jarfile

+ +

Download the latest PAMGuard DIFAR .jar and .ini files from the Australian Antarctic Division FTP server: ftp://ftp.aad.gov.au/Public/BrianMiller/PamguardDifar/

+ +

In addition to the jar file you will also need other shared libraries. (E.g. the appropriate rxtx serial library will needed in order to acquire gps data). These shared libraries can be downloaded from the lib folder on the FTP server.

+ +

After downloading, the .jar and .ini files and the lib folder must be copied, overwriting existing files, into an existing installation of PamguardBeta. If a default installation of PamguardBeta on windows is being used then this would mean copying the custom .jar, and .ini files and lib folder into C:\Program Files (x86)\PamguardBeta\.

+ +

The custom version of PAMGuard with the DIFAR module can then be launched via the usual shortcuts for PAMGuard in the start menu/desktop, or alternatively with an appropriate command line, probably along the lines of:

+ +

java -Djava.library.path=/your_shared_library_folder -Xms384m -Xmx1024m -jar PamguardDifar_YYYY-MM-DD.jar

+ +

where:

+ +

·         /your_shared_library_folder specifies the folder in which the JVM should look for shared libraries

+ +

·         -Xms and –Xmx specifies the initial and maximum memory to be reserved for PAMGuard

+ +

·         PamguardDifar_YYYY-MM-DD.jar specifies the runnable jarfile containing release e.g. 2014-08-04 of the PAMGuard DIFAR module.

+ +

Once you have command line that successfully launches PAMGUARD on your system then there is always the option of incorporating the command line into a suitable shell script or batch file.

+ +

OPTIONAL: Installation of the Greeneridge Sciences Demultiplexing Software

+ +

Analysis of DIFAR data requires demultiplexing (i.e. demodulation) software in order to correctly extract the signals from the directional hydrophones that are included in VHF transmissions of DIFAR sonobuoys. The PAMGuard DIFAR module was initially developed and tested with commercially available demultiplexing software licensed from Greeneridge Sciences Inc. The Greeneridge Sciences demultiplexing software is not included by default in the PAMGuard DIFAR module. Those wishing to use the Greeneridge Sciences demultiplexer must obtain the software directly from Greeneridge Sciences Inc. Installation of the Greeneridge Sciences demultiplexer only requires placing the file GreeneridgeDemux32.dll into the lib folder as described above. Installation of the Greeneridge Demultiplexing Software is optional, but recommended.

+ +

A technical note on demultiplexers

+ +

The PAMGuard DIFAR module includes open-source demultiplexing software created at the Australian Marine Mammal Centre (AMMC). The implementation of this demultiplexing software is fundamentally different than that of Greenridge Sciences Inc. It has worked well in the limited testing that has been conducted, and it appears to give similar results to those from the Greenridge Sciencies demultiplexer.

+ +

To the best of my knowledge, the Greenridge Sciences demultiplexing library used by PAMGuard is based on algorthims and computer-code that has been used successfully over the past 10 years (at the very least) to analyse DIFAR data. Thus, it is recommended over the AMMC demultiplexer, which should work, but has not yet seen extensive use.

+ +

Verifying installation

+ +

To verify that the PAMGuard DIFAR module is installed, run PAMGuard using either the shortcut from the start menu or command-line, and create a new blank settings (.psf) file. If installed correctly, the module should be available from the PAMGuard Menu under File -> Add Modules ... -> Localisers -> DIFAR Localisation, and there should be a corresponding entry under PAMGuard’s online help system under Help -> Help. Since you have now gone to the trouble of opening the DIFAR Help, it might be a good time to take a few minutes to read through the PAMGuard’s help files in order to better familiarise yourself with general operation of the DIFAR module. NB: the online help for the DIFAR module is geared towards real-time operation, rather than the aim of this tutorial: post-processing.

+ +

+ +

Import of Data and Metadata

+ +

Overview

+ +

The general process for post-processing DIFAR recordings is somewhat more convoluted than real-time acquisition, as data must be imported in Viewer mode, but analysed in Mixed-mode. It is assumed that the user has recordings from one or more DIFAR sonobuoys, recorded at a level and sample rate suitable for recovering the directional signals (e.g. the audio was not clipped during recording and the sample rate is at least 48 kHz). The purpose of post-processing such data is to obtain magnetic and/or true bearings to sound sources audible within these recordings.

+ +

The general procedure for post-processing data is to first configure the hydrophone array, then import the sonobuoy deployments as streamers in VIEWER mode. Ships tracks, if available can also be imported into Viewer mode. After import of sonobuoy deployments and ships tracks the DIFAR module and required sound-processing must be configured, and this can be done either in Viewer or Mixed-mode. Finally, acoustic data can be post-processed to obtain DIFAR bearings by running PAMGuard in Mixed-mode.

+ +
+

At this point it is wise to make a backup copy of your data/ existing PAMGuard databases before any post-processing, since post-processing may alter tables, rows, and columns of the PAMGuard database.

+
+ +

Database preparation

+ +

Post-processing of DIFAR data requires a database module. All development and testing of the DIFAR module were conducted using the MS Access database module. NB: I have found that the older .mdb Access databases seem to work more reliably than the newer format .accdb database files, especially on computers where MS Access is not installed.

+ +

If a PAMGuard database has already been created for this dataset (e.g. PAMGuard was used initially when collecting the data), this database can be used in lieu of importing GPS and streamer data into a blank database. However, the more likely scenario is that there is no PAMGuard database, so one must be created. An easy way to create a new database is to simply create a copy of a blank database (e.g. the one distributed with this tutorial).

+ +

copy blank.mdb difarTutorial.mdb

+ +

 

+ +

With the blank database created, run PAMGuard in Viewer-mode, and select difarTutorial.mdb as the database.

+ +

+ +

Hydrophone array configuration

+ +

Before importing any GPS or sonobuoy deployment data, the hydrophone array must be configured using PAMGuard’s Array Manager, either in Normal, Mixed, or Viewer-Mode.

+ +

+ +

Presently, it is up to the user to correctly configure the streamers, hydrophones, and channel mappings within the Array Manager in a way that is sensible for DIFAR post-processing. Thus, some explanation of how the DIFAR module maps sonobuoy deployments to Hydrophone Elements and Hydrophone Streamers within the Array Manager is required. The total number of streamers and elements defined in the Array Manager must be equal to or greater than the total number of simultaneously recorded sonobuoys in the dataset. The DIFAR module assumes that each physical DIFAR sonobuoy that is deployed will have a single hydrophone element, and thus correspond to a single audio channel. In short, a one-to-one-to-one relationship is expected between the audio channel:hydrophone element:streamer.

+ +

Example: single sonobuoy deployment

+ +

For a single sonobuoy deployment there will be one audio channel, and thus only one streamer and element is required. Configure that hydrophone element (i.e. id# 0) as follows:

+ +

Streamer: Streamer 0

+ +

Hydrophone type: DIFAR

+ +

Hydrophone sensitivity: -122

+ +

Interpolation: Use the location for the time preceeding each data unit

+ +

The other fields are not required, however if it is useful for your own purposes you can enter the deployment depth of the sonobuoy as the depth coordinate. The screenshot below shows a correctly configured hydrophone.

+ +

+ +
+

NB: Assuming that the gain on the Analog-to-Digital Converter has been correctly set in PAMGuard, a value of -122 dB for the hydrophone sensitivity will get the spectrogram in the right ballpark of actual received levels, at least for DIFAR 53D sonobuoys received on a WinRadio G39 receivers and that have a roughly flat frequency response of 1 V audio output at 25 kHz frequency deviation. ICOM receivers (which have been commonly used on several past surveys) will have a different frequency response. The received levels won't take into account the pre-whitening filter built in each sonobuoy (i.e highpass filter from 10-100 Hz, and from 100-1000 Hz, so received levels under 100 Hz will be displayed as lower than they really are, and received levels for signals over 100 Hz will display higher, and 100 Hz will be just about right.

+
+ +

Next configure the streamer for this hydrophone by clicking on Streamer 0, and then clicking the edit button below. Most of the details for the streamer are not important at this point, as they will be overwritten in the next step when we Import the sonobuoy deployments. However, I have always set the following at this point:

+ +

Reference Position: Fixed location (moorings and buoys)

+ +

Hydrophone Locator Method to: Straight / Rigid Streamer

+ +

Interpolation: Use the location for the time preceeding each data unit

+ +

 

+ +

+ +

If you have multiple datasets, or are planning on re-analysing data more than once, then you might want to Export the array to save yourself from having to follow the above steps for each data set. Click the Export button and name the array SingleSonobuoyArray.paf. Then the next time that you post-process the data, you can simply import SingleSonobuoyArray.paf instead of manually configuring the array by following the above steps.

+ +

If your data set only ever contains one-channel audio (i.e. recordings from only one sonobuoy at a time), then you can continue onto the section on Importing sonobuoy deployments as streamers. Otherwise continue with the example below.

+ +

Example: Recordings with two sonobuoys

+ +

If your data contain simultaneous recordings from two sonobuoys (i.e. two channel audio), then add another streamer and another hydrophone and repeat the configuration steps for each of these as per the single-sonobuoy example  above. When configuring hydrophone id: 1 be sure to assign it to Streamer 1 in order to maintain a 1:1:1 mapping between channels, hydrophones, and streamers.

+ +

If you have multiple datasets, or are planning on re-analysing data more than once, then you might want to Export the array to save yourself from having to follow the above steps for each data set. Click the Export button and name the array TwoSonobuoyArray.paf. Then the next time that you post-process the data, you can simply import TwoSonobuoyArray.paf instead of manually configuring the array by following the above steps. The screenshot below shows a properly configured two-sonobuoy array.

+ +

+ +

Sonobuoy deployments – Import Streamer Data

+ +

In order to plot the correct location of sonobuoys and DIFAR bearings on the PAMGuard map, one must first input the deployment time and location of each sonobuoy. This is achieved via Settings -> Hydrophone Array -> Import Streamer Data ...

+ +

+ +

The trick to post-processing DIFAR data is to first import the sonobuoy deployments as streamers in VIEWER mode. Streamers can be imported as a CSV file. The CSV file should NOT have a header, as the CSV import can only cope with numbers (even for the StreamerName). The format for each row in the CSV file should be:

+ +

StreamerName, StreamerID, Origin, Locator, Time,  XPos, YPos, ZPos, XErr, YErr, ZErr, Heading, Pitch, Roll, Latitude, Longitude

+ +

Where:

+ +

·         StreamerIndex must be equal to an existing streamer ID (i.e. one that has already been added to the Array Manager; e.g. 0 for a single sonobuoy array, 0, or 1 for a two-sonobuoy array. The streamer index is effectively the channel mapping, since we have made sure to maintain a 1:1:1 relationship between channels, hydrophones, and streamers when configuring the array (see section above).

+ +

·         Origin can either be 0 or 1 for Ship GPS or Static origins.

+ +

·         Locator can either be 0 or 1 for threading or straight/rigid locators.

+ +

·         Time should be an Excel date-number. This can be achieved by typing a date and time into a cell in MS Excel and hitting , then change the format of that cell to Number.

+ +

·         X,Y,ZPos and X,Y,ZErr should be specified in metres.

+ +

·         Heading, Pitch and Roll should be in degrees. If the DIFAR compass correction is known, enter it into the Heading column. Pitch and Roll should probably be left null (as in the example below).

+ +

·         Latitude and Longitude should be in decimal degrees with negative Latitudes for the Southern Hemisphere.

+ +

Here is an example of eleven deployments from the 2013 Antarctic Blue Whale Voyage. Note that the deployments on StreamerID 0 cannot by definition overlap in time with other deployments on StreamerID 0, so the deployment of the next streamer on a channel marks both the end of the previous deployment and the start of the new deployment. Deployments on streamerID 0 can quite happily overlap in time with deployments on StreamerID 1.  Note that sonobuoy 59 was a failure, as it has neither a precise lat/long, nor Heading (i.e. compass correction), and another sonobuoy was deployed on StreamerID1 (i.e. channel 1) almost immediately afterwards (i.e. < 1/100th of a day).

+ +

The entries below can be used as a template for your own data: simply change the first colum to your sonobuoy deployment number, the second column to the correct data channel/streamerID, the 5th column to your deployment time, the 12th column to your compass correction (or 0 or null if not known), and lastly change the last two columns to your latitude,longitude. When you are finished entering your sonobuoy deployments save the file as a .csv file.

+ +

52,0,1,1,41312.65103,0,0,0,0,0,0,27.4,,,-62.53047,141.00856

+ +

53,1,1,1,41312.75039,0,0,0,0,0,0,38.9,,,-62.54945,141.70648

+ +

54,0,1,1,41312.78403,0,0,0,0,0,0,30.5,,,-62.48229,141.97649

+ +

55,1,1,1,41312.83917,0,0,0,0,0,0,44.6,,,-62.31181,142.28328

+ +

56,0,1,1,41313.03021,0,0,0,0,0,0,33.5,,,-62.45373,142.58243

+ +

57,1,1,1,41313.06223,0,0,0,0,0,0,41.4,,,-62.5171,142.86876

+ +

58,0,1,1,41313.11081,0,0,0,0,0,0,34.4,,,-62.49822,143.25349

+ +

59,1,1,1,41313.14236,0,0,0,0,0,0,0,,,-62,143

+ +

60,1,1,1,41313.15221,0,0,0,0,0,0,48.4,,,-62.57063,143.5453

+ +

61,0,1,1,41313.21843,0,0,0,0,0,0,40.4,,,-62.45458,143.90166

+ +

62,0,1,1,41313.37924,0,0,0,0,0,0,40.2,,,-62.73215,143.92734

+ +

Select your .csv file containing sonobuoy deployments via the Browse button on the Streamer Import Dialog, and Then click Ok.

+ +

+ +
+

NB: After importing streamers, it is recommended that you avoid using the Array Manager, as this could potentially modify the imported streamers and will almost certainly introduce bugs or undesired behaviours in PAMGUard.

+
+ +

Validating Streamer Import

+ +

Once imported a summary of the streamer data should appear in the Data Map in Viewer mode.

+ +

+ +

The time-slider on the Data Map in Viewer-mode can be used to further verify that the times of the sonobuoys are correct/sensible.

+ +

Additionally, adding a Map module should show the deployment locations on the Pamguard Map (ensure that the Array Manager, Streamer Data option is checked, both by right clicking on the map and using the list, and by going to Plot Overlay Options).

+ +

+ +

The time-slider on the Map in Viewer-mode can be used to further verify not only that the times of the sonobuoys are correct/sensible, but that the locations are also sensible. You will most likely need to zoom and pan to the correct location of your deployments. Additionally, you will probably need to adjust the time window (via the button with a black downward pointing triangle) in order to scroll through multiple days of data.

+ +

+ +

Additionally, for two sonobuoy arrays, the map option to color the hydrophones by channel is very useful. This can be set by right-clicking on the Map -> Map Options...

+ +

+ +

+ +

If the positions aren’t correct, or seem suspicious, then exit, re-load from your backup database, fix the CSV file, and try again.

+ +

OPTIONAL: Import ship tracks (GPS data)

+ +

Import of GPS data is only required if the GPS data are not already in the PAMGuard database (i.e. none of the data were originally collected with PAMGuard). GPS data of the ships track are required not only for viewing the track of the ship, but also to calibrate the compass of sonobuoys within the DIFAR module using noise from the vessel.

+ +

First add a GPS Processing module:

+ +

 File -> Add Modules -> Maps and Mapping -> GPS Processing.

+ +

+ +

Next choose the menu option to Import GPS Data:

+ +

Settings -> GPS -> Import GPS Data ...

+ +

+ +

Select the file that contains the GPS data. Data can be in NMEA 0183 strings within a text file (personally tested and verified) or presumably in other common formats such as GPS, KML (but I haven’t actually tried these). Importing a days worth of GPS data from NMEA text (i.e. 86400 NMEA strings) may take some time.

+ +

+ +

The dialog above is a good indication that your GPS data are being imported, and also that there’s probably time for a cup of tea.

+ +

Validating GPS tracks

+ +

As with the sonobuoy deployments, ships tracks should be visible both on the Data Map, and the Map. Again, scrolling the time slider on the Map to see that the ships track and sonobuoy deployments line up provides a good reality check to ensure that the data are at least plausible.

+ +

+ +

Cleanup after import

+ +

The GPS Import can result in an MS Access database that has an excessive file size. This provides a good excuse to create a backup of the database now that the GPS track and Sonobuoy Deployment locations have been imported.

+ +

Close Pamguard Viewer, open the database in MS Access, and save the database as a new MS Access database: e.g. difarTutorial-Imported.mdb.

+ +

 

+ +
+

Also, at this point it will be useful to make a backup of this file to use as a starting point for future post-processing sessions. It may be good to keep this backup in a place where it cannot be confused with the working copy (e.g. another folder) since a database file is modified each-time it is loaded into PAMGuard.

+
+ +

Acoustic Data Files

+ +

With sonobuoys and ships tracks imported and verified, it is finally time to make PAMGuard aware of the acoustic data. Again run PAMGuard in Viewer mode, loading the newly saved database: difarTutorial-Imported.mdb.

+ +

+ +

Add a Sound Acquisition module: File -> Add Modules ... -> Sound Processing ->Sound Acquisition

+ +

+ +

Sometimes Adding Modules may cause PAMGuard to appear unresponsive, however clicking on the small arrow on the Data Map will restore PAMGuard to a responsive state:

+ +

+ +

Now configure the Sound Acquisition: Settings -> Sound Acquisition ...

+ +

+ +

Sound acquisition is best handled if all of the acoustic files with DIFAR data are in a single folder, or a single set of subfolders. Files should have names that PAMGuard can interpret as a timestamp, e.g. code_YYYYMMDD_hhmmss.wav

+ +

·         Where code is a  text identifier for the voyage (e.g. ABWV)

+ +

·         YYYY is the 4 digit year

+ +

·         MM is the two digit month (with leading zero for months 1-9)

+ +

·         DD is the two digit day of the month (with leading zero for days 1-9)

+ +

·         hh is the two digit hour of the day (24 hour clock i.e. no AM/PM with leading zero for 00-09)

+ +

·         mm is the two digit minute (with leading zeros)

+ +

·         ss is the two digit seconds (with leading zeros)

+ +

 

+ +

DAQ Settings tab: Data Source Type: Audio file folder or multiple files

+ +

Click the button: Select Folder or Files, and navigate to the folder containing the DIFAR acoustic files.

+ +

Merge contiguous files should be checked, otherwise DIFAR data might be cleared from the queue and map for each new file that is processed.

+ +

The Peak-Peak voltage range is important for scaling the spectrogram and ensuring that received levels measured by the DIFAR module are somewhat representative of the actual received levels. If known, enter the Peak-Peak voltage range of the Analog/Digital converter that was used to digitise the files. For example: The Peak-Peak Voltage of the Fireface UFX recorder used for the 2013 Antarctic Blue Whale Voyage was 8.396 V for the “Instrument” input with the gain was set to 20 dB. Thus one could enter either of the following which should be equivalent:

+ +

Peak-Peak voltage range:8.396, Preamplifier gain:0 (tried and tested) or

+ +

Peak-Peak voltage range:83.96, Preamplifier gain:20 (untested; should be equivalent).

+ +

 

+ +

+ +

Under the Offline Files tab, make sure the box Use offline files is checked and once again select the folder containing the DIFAR acoustic files.

+ +

+ +

As with the sonobuoy deployments and ships tracks, these data should now be added to the Data Map under the Sound Acquisition.

+ +

+ +

This concludes the preparation and import of metadata. It’s a good idea at this point to Save Data and Save Configuration (in the File menu). You can then close PAMGuard Viewer.

+ +
+

At this point it is wise to make a backup copy of your data/ existing PAMGuard databases before any post-processing, since post-processing may alter tables, rows, and columns of the PAMGuard database.

+
+ +

Preparation and Sound Processing

+ +

The DIFAR Localisation module depends on several core PAMGuard modules, thus it is sensible to ensure that these are correctly configured before spending any time adjusting DIFAR specific settings. For configuration of these modules, I typically run PAMGuard Mixed-Mode, though theoretically configuration can occur in Normal or Viewer modes as well.

+ +

When starting Mixed-Mode, load the database file that contains the sonobuoy deployments, ship track, and DIFAR audio data (i.e. the one created above).

+ +

Overview

+ +

Required PAMGuard modules

+ +

The following modules are required for processing of DIFAR data:

+ +

·         Sound Acquisition: Already added and configured during Preparation and Import of Data

+ +

·         Decimator: To reduce the sample rate of the data you’ll actually be looking at to a few kHz or less, depending on your target species.

+ +

·         FFT (Spectrogram) Engine: To display a spectrogram of the Decimated data for manually marking detections, and also to be used as input to an automatic detector.

+ +

·         User Display: The DIFAR display modules and spectrograms can all be integrated into a single display module. However, if you’ve multiple screens, you may wish to make multiple user displays and spread out a little.

+ +

·         DIFAR Localisation: Contains the DIFAR specific components

+ +

Recommended Modules

+ +

The following modules are not required, but are highly recommended to facilitate analysis of DIFAR Localisations

+ +

·         Additional FFT (Spectrogram) Engine processing raw data from the sound acquisition. The primary purpose of this FFT is to show the spectrum of the full signal which is a useful diagnostic to determine whether the DIFAR sonobuoy is functioning correctly. The spectrum of a correctly functioning DIFAR sonobuoy will show spectral peaks at the 7.5 and 15 kHz carrier frequencies. Absence of these peaks is a good indicator that something in the recording chain is amiss.

+ +

·         Database: DIFAR results are written to the database, so you’ll need one if you want to store results.

+ +

·         Binary store: Bearings, clips of audio that have been localised, and the processed DIFARGram are stored in the binary store, so like the Database, this module is useful for further analysis of localisations will be conducted.

+ +

·         GPS Processing and Map modules: Already added and configured during Preparation and Import of Data.

+ +

·         Whistle and moan detector: automated detection of whale sounds.

+ +

The figure below shows a typical PAMGuard model for DIFAR processing:

+ +

If you have followed the previous section of this tutorial (Preparation and Import of Data and Metadata) then the Sound Acquisition, Database, GPS Processing, and Map modules should already be present in your configuration, and will not need to be added, though the Map module will need almost certainly need to be reconfigured at a later time (e.g. after adding and configuring the DIFAR Localisation module).

+ +

Decimators

+ +

Omnidirectional decimator

+ +

There is typically 3 kHz of usable bandwidth on the omnidirectional hydrophone on a DIFAR sonobuoy, thus it is useful to include a Decimator when viewing the spectrogram of the omnidirectional hydrophone.

+ +

File -> Add Modules -> Sound Processing -> Decimator

+ +

Since there will be multiple Decimators, it is useful for each to have a descriptive name e.g. Downsample to 6 kHz.

+ +

Now configure the newly created decimator: Settings -> Downsample to 6 kHz

+ +

Input Data Source: Raw input from Sound Acquisition

+ +

Output sample rate: 6000

+ +

+ +

Click on the button to modify the Filter settings

+ +

The following parameters are recommended for this filter:

+ +

Filter Type: IIR Butterworth

+ +

Filter Response: Low Pass

+ +

Frequencies->Low Pass: 3000

+ +

Filter order: 4

+ +

+ +

Click Ok on all of the Decimator/filter dialog boxes in order to accept the newly configured parameters.

+ +

Low frequency  decimator (for blue/fin whale calls)

+ +

In addition to creating a decimated data stream containing only the omnidirectional hydrophone, it may also be desirable to create a further decimated data stream for investigation of very low frequency calls from baleen whales (especially blue and fin).

+ +

 File -> Add Modules -> Sound Processing -> Decimator

+ +

Since this is the second Decimator, it should also have a descriptive name e.g. Downsample to 250 Hz.

+ +

Now configure the newly created decimator: Settings -> Downsample to 250 Hz

+ +

Input Data Source: Downsample to 6 kHz

+ +

Output sample rate: 250

+ +

+ +

Click on the button to modify the Filter settings

+ +

The following parameters are recommended for this filter:

+ +

Filter Type: IIR Butterworth

+ +

Filter Response: Low Pass

+ +

Frequencies->Low Pass: 125

+ +

Filter order: 4

+ +

+ +

Click Ok on all of the Decimator/filter dialog boxes in order to accept the newly configured parameters.

+ +

You can check the flow of data through these Decimators by looking at the Data Model: File -> Show data model ...

+ +

+ +

FFT Engine

+ +

Low frequency spectrogram (for blue/fin whale calls)

+ +

Viewing and often detection of sounds of interest in PAMGuard typically requires a spectrogram. Here we will add a single spectrogram and use the acoustic data that has been downsampled to 250 Hz as the source of this spectrogram. Add the spectrogram engine:

+ +

File -> Add Modules ... -> Sound Processing -> FFT (Spectrogram) Engine

+ +

Like the Decimators, it is useful to give this FFT (Spectrogram) Engine a more descriptive name since there may ultimately be several of these modules. Since we will configure this FFT engine to use data from the 250 Hz decimator, it will be called Low Frequency FFT (Spectrogram) Engine. Now it needs to be configured. The settings below will yield ~1 Hz frequency bins and a time step of just over 100 ms, but with a lot of overlap between time slices.

+ +

Settings -> Low Frequency FFT (Spectrogram) Engine Settings ...

+ +

Raw data source for FFT: Downsample to 250 Hz data

+ +

FFT Length: 256

+ +

FFT Hop: 32

+ +

Window: Hann

+ +

+ +

NB: I find these settings useful for visually inspecting blue and fin whale song as well as FM non-song calls such as D calls of blue whales and other low frequency FM calls made by many other baleen whales. Using the Decimator to reduce the sample rate to 250 Hz before taking the FFT can help achieve the desired balance between time resolution and frequency resolution, and additionally it substantially reduces computational requirements (compared to those required for comparable time-frequency resolution on a signal sampled at 48 kHz). Of course feel free to use any settings that suit your application.

+ +

Full bandwidth spectrogram (for DIFAR diagnostics)

+ +

In addition to visualising the acoustic data from the omnidirectional hydrophone, viewing the full bandwidth spectrum (and spectrogram) can provide valuable diagnostic information regarding the VHF reception and correct function of the DIFAR recording chain. Add another spectrogram engine:

+ +

File -> Add Modules ... -> Sound Processing -> FFT (Spectrogram) Engine

+ +

Again this FFT (Spectrogram) Engine should have a descriptive name since there are now several of these FFT modules. Since we will configure this FFT engine to use data from the raw audio from the VHF receiver, it will be called Full Bandwidth FFT (Spectrogram) Engine. Now it needs to be configured. The exact settings for this are not critically important, as it will only be used for gross inspection the spectrum rather than detection of marine mammal sounds.

+ +

Settings -> Full Bandwidth FFT (Spectrogram) Engine Settings ...

+ +

Raw data source for FFT: Raw input data from Sound Acquisition

+ +

FFT Length: 2048

+ +

FFT Hop: 1024

+ +

Window: Hann

+ +

+ +

Additional FFT engines can be added as required; e.g. an FFT engine for the Omnidirectional decimator could be added to view mid-frequency baleen whale calls and low frequency odontocete whistles.

+ +

Again, you can check the flow of data through these Decimators by looking at the Data Model: File -> Show data model ...

+ +

+ +

User Displays

+ +

In addition to the FFT (Spectrogram) Engine, at least one User Display is required in order to actually visualise the output from the FFT Engine.

+ +

File -> Add Modules ... -> Displays -> User Display

+ +

Since we may eventually have several displays, each should be given a descriptive name. This will be the display that contains the DIFAR interface, so it should be named Difar Display.

+ +

A new tab with the named Difar Display should appear next to the Map. The new display is a blank canvas awaiting our configuration.

+ +

Display -> Difar Display -> Add Spectrogram

+ +

The new spectrogram will need to be configured.

+ +

Data Source

+ +

Source Data: FFT-256 point, 250.0 Hz-Low frequency FFT (Spectrogram)

+ +

Number of Panels: 2

+ +

Panel 0 channel: 0

+ +

Panel 1 channel: 1

+ +

+ +

Scales

+ +

Frequency Range

+ +

Min: 0

+ +

Max: 100

+ +

Amplitude Range

+ +

Min: 40

+ +

Max: 80

+ +

Colour model Fire (multicoloured)

+ +

Time Range

+ +

Window length (s): 120

+ +

+ +

Plug ins

+ +

Full Bandwidth FFT (Spectrogram) engine

+ +

+ +

Presently the Mark Observers tab is empty, but it is probably worth pointing out that we will need to revisit this tab again after we have added a DIFAR Localisation module. Ok.

+ +

A spectrogram display should now be visible in the Difar Display tab. NB: The Difar Display will appear in the Data Model, but will not appear to be connected to anything – this is no cause for concern: User Displays never appear connected to anything in the Data Model.

+ +
+

At this point it is wise to make a backup copy of your data/ existing PAMGuard databases before any post-processing, since post-processing may alter tables, rows, and columns of the PAMGuard database.

+
+ +

Before further configuration, it may be useful to run through the data while viewing the spectrogram in order to test that the spectrogram parameters are reasonable. Additionally, the Full Bandwidth FFT plug in will give a good indication of whether the data are suitable for further DIFAR processing.

+ +

Click the big red circle to run through the data in Mixed-Mode.

+ +

In the screenshot above, we can see that the colour scaling in the spectrogram appears reasonable: Tonal calls of Antarctic blue whales are visible at ~26 Hz, more prominently on channel 0 than channel 1, but above the background noise on both channels.

+ +

The panel on the bottom shows the instantaneous spectrum (i.e. spectrum at the latest time slice). In the screenshot above, the spectrum for channel 0 (blue) shows the characteristic shape of that of a DIFAR sonobuoy with good VHF reception (i.e. strong omnidirectional signal from 0-3 kHz, carrier tones at 7.5 and 15 kHz, and directional signals modulated onto both sides of the 15 kHz carrier). The flat spectrum shown for channel 1 (red) indicates that DIFAR processing is unlikely to be successful or reliable, despite the presence of what appears to be a 26 Hz call of an Antarctic blue whale at approximately 60 s.

+ +

In this specific case, we know that the sonobuoy associated with channel 1 was simply too far away to give adequate VHF reception for further DIFAR processing, however the time of arrival difference between the calls can still provide a strong indication that the calling whale is closer to the sonobuoy on channel 0 than the one on channel 1 (assuming that the detections on each channel actually correspond to the same call). This type of process, i.e. thought experiment starting from first principles, serves as useful reality check whenever using DIFAR sonobuoys, regardless of whether they seem to be operating reliably or not.

+ +

If the colour contrast or time-frequency resolution of the spectrogram is not to your liking, adjust and re-run until they are fit for purpose.

+ +
+

At this point it is wise to make a backup copy of your data/ existing PAMGuard databases before any post-processing, since post-processing may alter tables, rows, and columns of the PAMGuard database.

+
+ +

Configuration of DIFAR Localisation

+ +

With sonobuoy deployments, ship tracks, DIFAR data, and sound processing modules all configured correctly, it is finally time to add the DIFAR Localisation module:

+ +

File -> Add Modules ...-> Localisers -> DIFAR Localisation

+ +

There will only be one DIFAR Localisation module, so the default name is acceptable.

+ +

By default the DIFAR localisation module attempts to use the Greeneridge Sciences Demultiplexer. If this demultiplexer has not been installed, a warning message will appear. This warning can safely be dismissed.

+ +

The DIFAR Localisation module has a considerable number of options. Many of the default options are perfectly acceptable, but many of the default options need to be modified for specific purposes. Here we will setup the DIFAR localisation module for processing Antarctic blue whale song and D calls.

+ +

Settings -> DIFAR Localisation settings

+ +

Data and buffers

+ +

The default settings on the data panel should be acceptable if using the AMMC_EXPERIMENTAL Demultiplexer.

+ +

Data Source: Raw input data from Sound Acquisition

+ +

Demultiplexer: AMMC_EXPERIMENTAL

+ +

Prepend to clip (s): 0

+ +

Time to keep Raw Data (s): 120

+ +

Queued Data Buffer (m): 60

+ +

Processed Data Buffer (m): 10

+ +

If using the Greeneridge Sciences Demultiplexer, change Prepend to clip (s): 3. The Prepend to clip setting is only required in order to allow the Greeneridge Demultiplexer to “Lock” onto the carrier signals before the sound of interest, and is not required by the AMMC demultiplexer.

+ +

+ +

Species (i.e. call classification)

+ +

We now need to add species/vocalisation-specific processing parameters under the Species tab. While the tab is called Species, it might actually be better named Call types, Vocalisations, or Classifications. This panel allows for the creation of different classifications for each call type, and each classification/call type can have its own parameters (e.g. sample rate, frequency band, angular resolution) for analysis of DIFAR localisations.

+ +

Click on the Edit Species List button, and add two call types to the Lookup Editor (Difar Localisation species list).

+ + + + + + + + + + + + + + + + + + + + + + +
+

Code

+
+

Text

+
+

Selectable

+
+

Symbol

+
+

Abw

+
+

Antarctic blue whale song

+
+

checked

+
+

Blue circle

+
+

Bwd

+
+

blue whale d call

+
+

checked

+
+

Green triangle

+
+ +

 

+ +

 

+ +

The selected Line Colour of each symbol will be used for bearings to the species on the PAMGuard Map and Spectrogram, so selecting different line colours for each “Species” is a good idea. Click Ok, on the Lookup Editor to accept these two new “species.”

+ +

NB: There are a couple of bugs regarding the symbols in the Lookup Editor: I find that filled (i.e. solid coloured) symbols are not typically desired, however The Fill checkbox does not seem to influence the whether symbols are actually filled or not.  Instead, the Transparency can be set to 100 under the HSV tab of the Fill Colour panel (as per the figure below). Like the Fill checkbox, the Line thickness setting does not appear to influence the actual thickness of the symbol or bearing lines.

+ +

+ +

Now we need to configure the DIFAR analysis parameters for each of the newly added “species.” From the Select Species drop-down menu choose abw; Antarctic blue whale song, and enter the following parameters:

+ +

Difar Calculation BARTLETT

+ +

Sample Rate.: 250

+ +

FFT Length (samples): 256

+ +

FFT Hop (samples): 32

+ +

Number of Angle Bins: 360

+ +

Intensity Scale: 100

+ +

Beamforming Frequency Max. (Hz): 30

+ +

Beamforming Frequency Min. (Hz): 25

+ +

Marked Clips: Beamforming (selected)

+ +

Auto Detections: Beamforming (selected)

+ +

+ +

Again, from the Select Species drop-down menu choose bwd; blue whale d call, and enter the following parameters:

+ +

Difar Calculation BARTLETT

+ +

Sample Rate.: 250

+ +

FFT Length (samples): 128

+ +

FFT Hop (samples): 16

+ +

Number of Angle Bins: 360

+ +

Intensity Scale: 100

+ +

Beamforming Frequency Max. (Hz): 125

+ +

Beamforming Frequency Min. (Hz): 30

+ +

Marked Clips: Marked (selected)

+ +

Auto Detections: Detection (selected)

+ +

+ +

Additional “species”/call classifications can be added as required and configured in the same way as above.

+ +

OPTIONAL: Calibration

+ +

The calibration tab is only required if you wish to obtain compass correction/calibration using DIFAR bearings that originate from the ships track (i.e. the one that was imported as per above). In addition to knowing the ships location, characterisation of the ship noise (i.e. identification a frequency band where ship noise remains well above background levels) is also required. This frequency band should then be entered for the Beamforming Frequency Max/Min in the Calibration tab.

+ +

For the tutorial dataset the following Calibration settings are appropriate:

+ +

Difar Calculation BARTLETT

+ +

Sample Rate.: 2000

+ +

FFT Length (samples): 1024

+ +

FFT Hop (samples): 256

+ +

Number of Angle Bins: 360

+ +

Intensity Scale: 100

+ +

Beamforming Frequency Max. (Hz): 800

+ +

Beamforming Frequency Min. (Hz): 600

+ +

Clip Length (s): 10

+ +

Interval between clips (s): 10

+ +

Number of clips in sequence: 20

+ +

+ +

OPTIONAL: Automation

+ +

The Automation tab contains settings that should facilitate analysis of large numbers of detections.

+ +

Presently no automated detectors are configured, but this top panel will need to be revisited later after adding a Whistle and Moan Detector (as per the section below).

+ +

For convenience, 3 Quick classification “selectors” can be configured to appear next to audio clips in the DIFAR queue. Since we have only configured two “species”, we will leave the third Quick classification empty.

+ +

For new users of the DIFAR module, it is recommend not to Auto-save processed clips until you are familiar with operation of the module.

+ +

+ +

Configuring DIFAR Displays and Overlays

+ +

DIFAR processing is an interactive process with the computer doing the bulk of the work, but an operator making critical decisions such as validating detections, classifying sounds by species, and selecting/rejecting sounds for further processing and localisation.

+ +

The DIFAR module does not have its own tab panel. Instead the various displays you’ll need should be configured on the Difar Display panel.

+ +

Spectrogram Overlays and Manual Detections

+ +

The Low frequency FFT (Spectrogram) should have already been added to the Difar Display, but now that we have a DIFAR Localisation module we can configure the DIFAR specific overlays and functionality. Right-click on each channel of the spectrogram and ensure that both Queued DIFAR Data, and Processed DIFAR Data are checked. Remember overlays for Queued and Processed DIFAR Data must be enabled separately for each channel.

+ +

+ +

Additionally, if you plan to mark detections by hand on the spectrogram then it is important to enable the DIFAR Localisation module to function as a Mark Observer on the spectrogram. Right-click on either channel of the spectrogram, select Settings …; select the Mark Observers tab, and ensure that DIFAR Localisation is checked.

+ +

+ +

Map Overlays and Data Selectors

+ +

For single-monitor setups, you may also want to add an additional map to the DIFAR display. Speaking of maps, it is important to configure the Map Overlays for the DIFAR Localisation.

+ +

Right-click on the Map and select Plot overlay options …

+ +

Ensure that Plot and All are checked for both Array manager, Streamer Data as well as DIFAR Localisation, Processed DIFAR Data. Note that there are additional options available for the DIFAR Localisation, Processed DIFAR Data, and these can be accessed via the configuration button (i.e. the button with the gear icon). In future releases of the DIFAR Module the gear-icon will allow filtering of DIFAR bearings by species, amplitude, and tonal frequency.

+ +

+ +

NB: Map overlays must be configured for each map module, so if you added an extra Map to the Difar Display, you will need to perform these steps on both that Map, and the one that is in the separate Map tab.

+ +

In addition to the Map Overlays, there are also DIFAR Localisation display options… under the Display menu. The default values for these options are perfectly acceptable, and further documentation for these options are available in PAMGuard’s Help System.

+ +

DIFAR Displays

+ +

In addition to the spectrogram and map, a DIFAR Queue and a DIFAR Processing display are required to analyse DIFAR data.

+ +

Difar Display -> New DIFAR Localisation Queue

+ +

Difar Display -> New DIFAR Localisation Displays

+ +

difarUserDisplayMenu

+ +

The DIFAR Localisation Display does not require any configuration, and further documentation can be found in PAMGuard’s online help system.

+ +

The DIFAR Localisation Queue will likely need to be modified from the default settings in order to tailor the presentation of audio to suit the target species. Click the small downward pointing arrow below the label Actions to expand the viewing options for queued clips. Clips selected for DIFAR Processing will appear in the queue as a spectrogram, and the sample rate for these clips is determined by the sample rate for the Default “species.”

+ +

Generally, the Min Amplitude should be adjusted to the same value that is used by the spectrogram: for the data from the 2013 ABW Voyage 40 dB works well. In my experience, DIFAR sonobuoys typically have a dynamic range of about 40-60 dB, so set the Amplitude Range to 40 dB. The FFT Length of the Queue will need to provide adequate frequency resolution at the sample rate of the Default species (which we set to 2000 Hz in the section above). The following settings are recommended for viewing clips of low-frequency sounds from blue and fin whales:

+ +

Min Amplitude: 40 dB

+ +

Amplitdue Range: 40 dB

+ +

FFT Length: 1024 pt

+ +

Scale

+ +

Horizontal: 8.00 x

+ +

Vertical: 0.25 x

+ +

Max Niquist X:0.10

+ +

Max Clips: 300

+ +

Max Minutes: 120

+ +

New Clips Last: (checked)

+ +

+ +

After configuration, the Queue settings panel can be hidden to make more room for clips by clicking the formerly downwards, but now upwards facing arrow on the far left of the panel.

+ +

Binary Storage

+ +

While the GPS, streamers, and other data are stored in the PAMGuard Database module, DIFAR Localisation should probably have a Binary Storage module as well.

+ +

File -> Add Modules … -> Utilities -> Binary Storage

+ +

File -> Storage options …

+ +

Make sure that both Binary Store and Database are checked for Processed DIFAR Data.

+ +

+ +

Additional configuration of the Binary Store is required:

+ +

File -> Binary Storage …

+ +

Select a location (i.e. folder) for the binary storage files using the Browse button, and if you are processing several days of data, it might be useful to Store data in sub folders by date.

+ +

+ +
+

Remember that it might be a good idea to clean/move the Binary Store folder before each analysis session if you plan to re-analyse the same data multiple times.

+
+ +

 

+ +
+

Once you're happy with the configuration, I recommend saving yet another backup copy of the database since post-processing may alter tables, rows, and columns of the PAMGuard database, and potentially destroy all of the configuration and data.

+
+ +

Testing DIFAR Localisation

+ +

If you have followed the tutorial up to this point, you should now have a working DIFAR localisation system, and it is almost time to hit the big red button to run the recording in Mixed mode.

+ +

Controlling the speed of post-processing

+ +

However, unless you have Sound Output module enabled, post-processing will most likely run too fast to allow for manual marking of every sound of interest that you see on the spectrogram. However, the Sound Output can be used to control the overall speed of post-processing by adjusting the playback rate.

+ +

Settings -> Sound Output …

+ +

It is recommended that you not use the Raw input data from Sound Acquisition as the Data source. Rather, use either the Downsample to 6 kHz or Downsample to 250 Hz, as these will facilitate playback at a faster rate, and also have filtered the constant loud whistling of the 7.5 and 15 kHz DIFAR pilot tones. Make sure that at least one Channel is checked to enable the sound output. Also, make sure that the checkbox to Use default playback rate is unchecked. Though it may not be obvious, the post-processing speed will now be limited by the ratio of the sample rate of the Data source divided by the Playback rate. Thus, for the data source Downsample to 6 kHz a Playback rate of 48000 Hz will yield a post-processing speed of approximately eight times faster than real-time (provided that your computer has sufficient CPU processing ability to maintain that speed). Additionally, the “sped-up” audio will be played through the output device (i.e. speakers) with pitch shifted by the same ratio. For low frequency sounds from blue and fin whales, shifting the pitch this way can facilitate aural detection of calls that would ordinarily be too low in frequency to be audible to most people.

+ +
+

NB: You can adjust the Playback rate during post-processing in order to speed up long periods with little whale activity, or to slow down post-processing if there are many sounds of interest displayed on the spectrogram.

+
+ +

Post-processing initial run

+ +

Finally, click the red button to begin post-processing. Imported sonobuoys should automatically appear on the Map at the correct time/position with no need for you to hit the Deploy button or modify anything in the Array Manager in any way. The spectrogram should show low-frequency audio, or it may require adjustment of the Min and Max Amplitude Range under the Scales tab, or via the floating menu that can be expanded by the semi-transparent leftward pointing arrow in the upper right of the spectrogram display.

+ +

+ +

After ensuring that the audio in the spectrogram appears with adequate contrast, select a sound of interest by clicking and dragging on the spectrogram. As you click and drag, a box will appear around the sound of interest, and after you release the mouse, the sound will appear in the DIFAR Localisation Queue.

+ +

Right clip on the clip, then click on one of the classifications (or simply click on one of the Quick classifications to the right of the clip if you have configured these) to analyse the sound of interest. The sound will be sent to the DIFAR Localisation Displays. In this display, you can check that the signal was demodulated by right-clicking on the spectrogram and inspecting the Demuxed NS and Demuxed EW signals, which should appear as amplitude shifted copies of the Demuxed Omni signal. Then save the localisation if you are happy with it; the bearing should appear on your map.

+ +

As always, bearings to the ship are a great way to confirm that the DIFAR module is working as expected.

+ +
+

Once you're happy with the configuration, I recommend saving yet another backup copy of the database since post-processing may alter tables, rows, and columns of the PAMGuard database, and potentially destroy all of the configuration and data.

+ +

Remember that it might be a good idea to clean/move the Binary Store folder before each analysis session if you plan to re-analyse the same data multiple times.

+
+ +

Compass Calibration

+ +

At the time of writing, compass calibration in Mixed-mode requires a workaround since there are still unresolved issues between the Streamer Import and the Array Manager. This cause of this issue is somewhat understood and a solution is being investigated.

+ +
+

As stated before, DO NOT USE THE Deploy button or open the Array Manager when post-processing, or your sonobuoy deployments may be lost or disrupted.

+
+ +

To calibrate the compass of a sonobuoy when post-processing, wait until after the sonobuoy-to-be-calibrated appears on the Map, then click on the Start Calib.. button on the Actions bar of the DIFAR Queue Display. Proceed with the calibration as you would in Normal Mode (see Difar Localisation Calibration under the PAMGuard Help System). Once the Difar calibration window indicates Calibration complete click OK, and a new dialog window should ask if you wish to update the heading. WRITE DOWN the updated heading (either in a separate file or better yet in the correct column of the Streamer Import .csv file), and click Cancel. Clicking OK to accept the heading will likely cause that sonobuoy streamer to disappear. Cancel the Difar calibration window and exit PAMGuard.

+ +

Open the PAMGuard database in MS Access, and then open the HydrophoneStreamers Table. Locate the streamer that was calibrated, and enter the updated heading (i.e. the one you wrote down) into the column for heading. Save the database and now when you re-run PAMGuard in Mixed mode, the hydrophone will be now be calibrated.

+ +

As an alternative to editing the database using MS Access, you could enter the compass correction in the 12th column of the Streamer Import .csv, and then import the streamer/sonobuoy deployments with the updated heading into a new PAMGuard database.

+ +

Automated Detection and DIFAR processing

+ +

Using PAMGuard’s automated detectors via post-processing is identical to using them during Normal Mode, so consult the PAMGuard Help System -> DIFAR Localisation -> Configure DIFAR Processing -> Automation for further information.

+ +

 

+
+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/Thumbs.db b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/Thumbs.db new file mode 100644 index 00000000..f7d434de Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/Thumbs.db differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image001.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image001.jpg new file mode 100644 index 00000000..dd02ceba Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image001.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image002.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image002.jpg new file mode 100644 index 00000000..2f1caa13 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image002.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image003.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image003.jpg new file mode 100644 index 00000000..666dbf0b Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image003.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image004.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image004.jpg new file mode 100644 index 00000000..778ebd1e Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image004.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image005.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image005.jpg new file mode 100644 index 00000000..bfad93d6 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image005.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image006.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image006.jpg new file mode 100644 index 00000000..9387a057 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image006.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image007.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image007.jpg new file mode 100644 index 00000000..5d129276 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image007.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image008.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image008.jpg new file mode 100644 index 00000000..ac128568 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image008.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image009.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image009.jpg new file mode 100644 index 00000000..6db44301 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image009.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image010.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image010.jpg new file mode 100644 index 00000000..60005d03 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image010.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image011.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image011.jpg new file mode 100644 index 00000000..1b07980a Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image011.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image012.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image012.jpg new file mode 100644 index 00000000..cae0e1c2 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image012.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image013.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image013.jpg new file mode 100644 index 00000000..e00cbf52 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image013.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image014.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image014.jpg new file mode 100644 index 00000000..53518ac0 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image014.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image015.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image015.jpg new file mode 100644 index 00000000..1a341351 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image015.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image016.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image016.jpg new file mode 100644 index 00000000..c24d3491 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image016.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image017.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image017.jpg new file mode 100644 index 00000000..2c0a52ef Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image017.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image018.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image018.jpg new file mode 100644 index 00000000..ea4a2174 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image018.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image019.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image019.jpg new file mode 100644 index 00000000..d74a403c Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image019.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image020.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image020.jpg new file mode 100644 index 00000000..9b1e437a Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image020.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image021.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image021.jpg new file mode 100644 index 00000000..6e50e312 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image021.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image022.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image022.jpg new file mode 100644 index 00000000..b03ceff9 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image022.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image023.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image023.jpg new file mode 100644 index 00000000..4a939e66 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image023.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image024.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image024.jpg new file mode 100644 index 00000000..d389fbd5 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image024.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image025.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image025.jpg new file mode 100644 index 00000000..3ffb7358 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image025.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image026.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image026.jpg new file mode 100644 index 00000000..4552868e Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image026.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image027.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image027.jpg new file mode 100644 index 00000000..32882db7 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image027.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image028.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image028.jpg new file mode 100644 index 00000000..e5f51553 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image028.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image029.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image029.jpg new file mode 100644 index 00000000..4f6fa737 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image029.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image030.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image030.jpg new file mode 100644 index 00000000..19689680 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image030.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image031.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image031.jpg new file mode 100644 index 00000000..117c448c Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image031.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image032.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image032.jpg new file mode 100644 index 00000000..33c7ebe0 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image032.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image033.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image033.jpg new file mode 100644 index 00000000..c2e396e4 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image033.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image034.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image034.jpg new file mode 100644 index 00000000..7abbcc4d Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image034.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image035.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image035.jpg new file mode 100644 index 00000000..3c508f92 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image035.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image036.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image036.jpg new file mode 100644 index 00000000..05facefa Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image036.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image037.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image037.jpg new file mode 100644 index 00000000..5ada85c8 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image037.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image038.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image038.jpg new file mode 100644 index 00000000..487164d8 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image038.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image039.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image039.jpg new file mode 100644 index 00000000..a68025bd Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image039.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image040.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image040.jpg new file mode 100644 index 00000000..0861b1a2 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image040.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image041.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image041.jpg new file mode 100644 index 00000000..d35861c5 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image041.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image042.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image042.jpg new file mode 100644 index 00000000..b621a605 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image042.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image043.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image043.jpg new file mode 100644 index 00000000..e8a8c830 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image043.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image044.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image044.jpg new file mode 100644 index 00000000..3614fd6e Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image044.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image045.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image045.jpg new file mode 100644 index 00000000..f48c8209 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image045.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image046.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image046.jpg new file mode 100644 index 00000000..7b17b885 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image046.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image047.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image047.jpg new file mode 100644 index 00000000..de8d815c Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image047.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image048.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image048.jpg new file mode 100644 index 00000000..162518e5 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image048.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image049.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image049.jpg new file mode 100644 index 00000000..a8852745 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image049.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image050.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image050.jpg new file mode 100644 index 00000000..19be2de5 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image050.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image051.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image051.jpg new file mode 100644 index 00000000..ecb22220 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image051.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image052.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image052.jpg new file mode 100644 index 00000000..118df32e Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image052.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image053.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image053.jpg new file mode 100644 index 00000000..5c212579 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image053.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image054.jpg b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image054.jpg new file mode 100644 index 00000000..fbad4d99 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_PostProcessingTutorial_files/image054.jpg differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_References.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_References.html new file mode 100644 index 00000000..95413d1d --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_References.html @@ -0,0 +1,47 @@ + + + + Difar References + + +

DIFAR Localisation

+ +

References

+ +

DIFAR References (non-comprehensive list)

+ + + + + +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_RunningSystem.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_RunningSystem.html new file mode 100644 index 00000000..f8e66fcf --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_RunningSystem.html @@ -0,0 +1,31 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Running the DIFAR System

+ +

There are generally four main displays you need to interact with while processing DIFAR data:

+ +
    +
  1. The Spectrogram and Sidebar
  2. +
  3. The DIFAR Queue
  4. +
  5. The DIFAR Localisation
  6. +
+ +

The software has been written to minimise the number of mouse clicks as far as is possible so that the operator can focus on validation of detections, and interpretation of localisations to facilitate real-time tracking. Getting a bearing to a sound should require no more than

+ +
    +
  1. Marking that sound on the spectrogram with a click-and-drag of the mouse,
  2. +
  3. Assigning a classification to each sound-clip in the DIFAR queue to classify the sound for directional processing, and
  4. +
  5. Verifying and saving the DIFAR Localisation (by pressing the save button on the DIFAR display).
  6. +
+ + + + + + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_UsingDifarGramDisplay.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_UsingDifarGramDisplay.html new file mode 100644 index 00000000..3b3ee9a4 --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_UsingDifarGramDisplay.html @@ -0,0 +1,53 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Using the DIFARGram Display

+ +
Picture of the DIFAR Localisation Displays
+ +

When DIFAR clips are processed from the DIFAR queue, they are sent to the DIFAR Localisation display where they are first demultiplexed in order to separate out the signals from the three acoustic sensors. Depending on the bandwidth and frequency resolution, demultiplexing may takes several seconds to perform on a typical 10 – 30s long clip, longer on slow computers. Progress is shown in the top right of the DIFAR Localisation display.

+ +

The Greeneridge demultiplexer has an inherent mechanism for determining whether a signal contains a correctly multiplexed DIFAR signal. Correct demodulation can only be achieved when the Greeneridge demultiplexer correctly locks onto the 7.5 and 15kHz carrier signals. The lock status is also shown in the progress bar, which will be red if the signal is not locked. If the signal doesn’t lock, then the clip should be discarded. NB: The AMMC demultiplexer does not presently contain any mechanism for determining whether a clip contains a correctly multiplexed DIFAR signal, thus when using the AMMC demultiplexer user experience and investigation of the directional signals may be required to determine whether the results of demodulation are sensible.

+ +

The display shows the spectrogram of the processed clip on the left with the DIFARGram on the right. By default, the spectrogram is created from the decimated raw input data (i.e. the omnidirectional hydrophone). Right clicking on the spectrogram allows the operator to display the signals from any of the three demultiplexed signals (i.e. omnidirectional, north-south, and east-west directional signals).

+ +

The DIFARGram is a colourmap of energy verses frequency and angle. There should be intense colour at the frequency of the selected sound and also at the angle from which the sound has arrived. To guide the eye a summary line is also displayed which shows the DIFARGram summed between the frequency limits of the clip. The summary line may be turned on and off by right clicking on the DIFARGram. The angle and frequency corresponding to the maximum energy are selected by default, and their values are shown as the Selection in the Info panel next to the DIFARGram.

+ +

At this time, the bearing calculated for the clip will be displayed on the PAMGuard map.

+ +

Buttons and Actions

+ +

If the operator is happy with the selected maximum, they can simply press the Save button. If The Auto button is selected, the clip will save automatically after a short delay. Alternately the operator can click anywhere on the DIFARGram to select a different angle and frequency (in which case the bearing displayed on the map will immediately update).

+ +

Delete will permanently delete the clip. The clip can also be returned to the DIFAR queue by right clicking anywhere on the DIFARGram and selecting the appropriate menu item.

+ +

The Zoom Freq button causes both the spectrogram display and the DIFARGram to zoom in in frequency to slightly more than the frequency limits of the selected sound.

+ + + + + +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/difar_UsingSpectrogram.html b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_UsingSpectrogram.html new file mode 100644 index 00000000..d307d843 --- /dev/null +++ b/target/classes/help/localisation/difar/difarLocalisation/docs/difar_UsingSpectrogram.html @@ -0,0 +1,39 @@ + + + + Difar Module + + +

DIFAR Localisation

+ +

Using the Spectrogram

+ +

The spectrogram display serves several purposes. Firstly it provides a visual check that the DIFAR signal is being received correctly. Secondly it allows the operator to manually mark out sounds they want to be processed with the DIFAR system. Lastly, it provides visual indication of the detections and classifications that are in the DIFAR Queue and/or have been processed.

+ +

 

+ +
Image of Spectrogram with marks and spectrum plugin
+ +

The figure shows a typical spectrogram display using one DIFAR sensors. The spectrogram is displaying the low frequency FFT data, with a bandwidth of 0 to 125 Hz. The lower panel is showing the instantaneous spectra from the 48kHz data. In this lower panel clear spectral peaks are visible at 7.5kHz and at 15kHz. These are the carrier frequencies for the frequency modulated signal from the DIFAR buoy. If these peaks are not clearly visible, then it’s likely that the DIFAR buoy is out of range or there is a problem with your receiving system.

+ +

There are also broader ‘humps’ in the bottom panel which represent the multiplexed signals from the three acoustic sensors. The hump between 0 and about 4 kHz is the spectrum of data received on the omnidirectional hydrophone. This is broadly similar in shape to the humps either side of the 15kHz carrier which are the signals on the two directional sensors.

+ +

To mark a sound simply place the mouse on the spectrogram at the start of a sound and drag to the end of a sound. While you are dragging, other marks on the spectrogram will temporarily disappear. While dragging, the mark will also appear on every channel, although only the channel you are marking will be used in DIFAR processing.

+ +

If marks do not appear on the spectrogram display the most likely cause is that the mark observers on the spectrogram display have not been correctly configured. Once a sound has been marked on the spectrogram it will be sent to the DIFAR queue.

+ +

On the spectrogram itself, sounds that are in the DIFAR Queue will be indicated with a black rectangle with a dashed line corresponding to the mark. Sounds that have been assigned a classification will appear as colored marks corresponding to the color assigned to that classification. A solid line around a clip indicates that those sounds that have been processed and saved and are no longer in the DIFAR Queue.

+ +

DIFAR Side-panel

+ +

The DIFAR Selection side-panel can be used to combine the process of manually marking of sounds and assigning classifications. When the Assign classification checkbox is checked, the highlighted classification will be automatically applied to newly created clips. When combined with the option to Auto-process classified clips, this will further streamline operation and reduce the need to interact with the DIFAR queue. This mode of operation is especially streamlined when there are only a few different classifications are present in a recording.

+ +

When checked, the Multi-Channel checkbox will apply classifications and create individual DIFAR clips from each of the audio channels in a given Raw Data source. When unchecked (the default option), a clip will be created only for the marked channel. Multi-Channel is typically the most useful when sonobuoys have been deployed very close to each-other. 

+ + + + + +

 

+ + diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/1-Data.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/1-Data.png new file mode 100644 index 00000000..2aa37aa3 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/1-Data.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/2-Species.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/2-Species.png new file mode 100644 index 00000000..a38f7099 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/2-Species.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-FreqResponse53D.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-FreqResponse53D.png new file mode 100644 index 00000000..d443c52f Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-FreqResponse53D.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-HydrophoneSensitivity.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-HydrophoneSensitivity.png new file mode 100644 index 00000000..084edbb8 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-HydrophoneSensitivity.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-InverseFreqResponse.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-InverseFreqResponse.png new file mode 100644 index 00000000..6e74d062 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration-InverseFreqResponse.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration.png new file mode 100644 index 00000000..4a90d5a6 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/3-Calibration.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/4-Automation.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/4-Automation.png new file mode 100644 index 00000000..9fd0d07c Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/4-Automation.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/ArraynStreamerDialog.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/ArraynStreamerDialog.png new file mode 100644 index 00000000..c87ebb7c Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/ArraynStreamerDialog.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/CalibrationWindow.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/CalibrationWindow.png new file mode 100644 index 00000000..b02d1544 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/CalibrationWindow.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARArrayManager.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARArrayManager.png new file mode 100644 index 00000000..759b7672 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARArrayManager.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARLocalisationDisplays.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARLocalisationDisplays.png new file mode 100644 index 00000000..c19eed7d Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARLocalisationDisplays.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARLocalisationQueue.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARLocalisationQueue.png new file mode 100644 index 00000000..cc89c9cf Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DIFARLocalisationQueue.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/DataModel.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DataModel.png new file mode 100644 index 00000000..8c1e7bbd Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DataModel.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/DeployMenu.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DeployMenu.png new file mode 100644 index 00000000..dd1ea4ff Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DeployMenu.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/DifarDisplayParams.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DifarDisplayParams.png new file mode 100644 index 00000000..8530b7bd Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/DifarDisplayParams.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/MapWithSlider.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/MapWithSlider.png new file mode 100644 index 00000000..b109cd62 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/MapWithSlider.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/Overview.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/Overview.png new file mode 100644 index 00000000..eb6ecdda Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/Overview.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/SonobuoyManager.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SonobuoyManager.png new file mode 100644 index 00000000..2c2b2dfd Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SonobuoyManager.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecClose2Chan.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecClose2Chan.png new file mode 100644 index 00000000..614e9346 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecClose2Chan.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecMarkObs.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecMarkObs.png new file mode 100644 index 00000000..9100ae93 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecMarkObs.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecPlugins.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecPlugins.png new file mode 100644 index 00000000..cf33569f Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecPlugins.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecRClick.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecRClick.png new file mode 100644 index 00000000..facbb026 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpecRClick.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpeciesOtherMenu.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpeciesOtherMenu.png new file mode 100644 index 00000000..906210cd Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpeciesOtherMenu.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpreadingRule.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpreadingRule.png new file mode 100644 index 00000000..275e7213 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/SpreadingRule.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/StreamerDialog.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/StreamerDialog.png new file mode 100644 index 00000000..abe52e51 Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/StreamerDialog.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/ToAdd.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/ToAdd.png new file mode 100644 index 00000000..f913822a Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/ToAdd.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/TrackedGroupsMap.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/TrackedGroupsMap.png new file mode 100644 index 00000000..e180654e Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/TrackedGroupsMap.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/UserDispMenu.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/UserDispMenu.png new file mode 100644 index 00000000..bebce91e Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/UserDispMenu.png differ diff --git a/target/classes/help/localisation/difar/difarLocalisation/docs/images/trackedGroups.png b/target/classes/help/localisation/difar/difarLocalisation/docs/images/trackedGroups.png new file mode 100644 index 00000000..298d9f8e Binary files /dev/null and b/target/classes/help/localisation/difar/difarLocalisation/docs/images/trackedGroups.png differ diff --git a/target/classes/help/localisation/docs/images/Belhop.png b/target/classes/help/localisation/docs/images/Belhop.png new file mode 100644 index 00000000..d9bbe152 Binary files /dev/null and b/target/classes/help/localisation/docs/images/Belhop.png differ diff --git a/target/classes/help/localisation/docs/images/CrossCorrelation.jpg b/target/classes/help/localisation/docs/images/CrossCorrelation.jpg new file mode 100644 index 00000000..c9c742fd Binary files /dev/null and b/target/classes/help/localisation/docs/images/CrossCorrelation.jpg differ diff --git a/target/classes/help/localisation/docs/images/CrossCorrelation.png b/target/classes/help/localisation/docs/images/CrossCorrelation.png new file mode 100644 index 00000000..140c24bd Binary files /dev/null and b/target/classes/help/localisation/docs/images/CrossCorrelation.png differ diff --git a/target/classes/help/localisation/docs/images/MCMCChains.png b/target/classes/help/localisation/docs/images/MCMCChains.png new file mode 100644 index 00000000..5b04946d Binary files /dev/null and b/target/classes/help/localisation/docs/images/MCMCChains.png differ diff --git a/target/classes/help/localisation/docs/images/PopoiseClicks.png b/target/classes/help/localisation/docs/images/PopoiseClicks.png new file mode 100644 index 00000000..ac5f8678 Binary files /dev/null and b/target/classes/help/localisation/docs/images/PopoiseClicks.png differ diff --git a/target/classes/help/localisation/docs/images/ProbEq.png b/target/classes/help/localisation/docs/images/ProbEq.png new file mode 100644 index 00000000..c4f34ac3 Binary files /dev/null and b/target/classes/help/localisation/docs/images/ProbEq.png differ diff --git a/target/classes/help/localisation/docs/images/Thumbs.db b/target/classes/help/localisation/docs/images/Thumbs.db new file mode 100644 index 00000000..768f5ad1 Binary files /dev/null and b/target/classes/help/localisation/docs/images/Thumbs.db differ diff --git a/target/classes/help/localisation/docs/images/VerticalArrayCones.png b/target/classes/help/localisation/docs/images/VerticalArrayCones.png new file mode 100644 index 00000000..9073d0ce Binary files /dev/null and b/target/classes/help/localisation/docs/images/VerticalArrayCones.png differ diff --git a/target/classes/help/localisation/docs/images/clicktdoa.png b/target/classes/help/localisation/docs/images/clicktdoa.png new file mode 100644 index 00000000..0142713e Binary files /dev/null and b/target/classes/help/localisation/docs/images/clicktdoa.png differ diff --git a/target/classes/help/localisation/docs/images/locambigm.png b/target/classes/help/localisation/docs/images/locambigm.png new file mode 100644 index 00000000..4a93243d Binary files /dev/null and b/target/classes/help/localisation/docs/images/locambigm.png differ diff --git a/target/classes/help/localisation/docs/images/locunambig.png b/target/classes/help/localisation/docs/images/locunambig.png new file mode 100644 index 00000000..dafcaf3b Binary files /dev/null and b/target/classes/help/localisation/docs/images/locunambig.png differ diff --git a/target/classes/help/localisation/docs/localisation_algorithms.html b/target/classes/help/localisation/docs/localisation_algorithms.html new file mode 100644 index 00000000..6c8b1d1b --- /dev/null +++ b/target/classes/help/localisation/docs/localisation_algorithms.html @@ -0,0 +1,159 @@ + + + +Target Motion Overview + + +

Localisation

+

Localisation Techniques

+
+ + + + +

The Forward and Inverse Problem

+ + +

In an ideal world the problem of localisation is barely a problem at all. Time +delays can be calculated, bearings crossed and a location calculated. A rigorous +and concise mathematical derivation of this is found in Magnus Wahlberg et +al. However biological studies are not conducted in vacuum, seawater is not +a still homogeneous medium and cetaceans are not perfectly spherical acoustic +sources. As discussed in the localisation overview section error is inherent in +every part of a hydrophone monitoring system, from the position of the +hydrophone, to the digitisation and cross correlation of a detected porpoise +click. Therefore instead of having cones, which perfectly intersect at the exact +location of the cetacean, in reality there exists a set of cones, which roughly +intersect each other in a certain area or perhaps do not intersect at all. This +creates an obvious problem. If there is no exact intersection point, where is the +cetacean? +

+

The process of calculating and crossing bearings to find an intersection point +is generally named the inverse problem. The inverse problem refers to a +situation were for a given set of observations (time delays) the initial +parameters (location of the cetacean) are directly calculated. The advantage of +this system is that it is very computational efficient however, it is also +particularly vulnerable to errors. Although cones may roughly intersect around a +likely cetacean position, quantification of the error in location is difficult +and therefore the inverse problem does not provide an intuitive or satisfactory +solution to real world localisation. Instead for many localisation algorithms +one must look at the forward problem: calculating the observables from a given +set of parameters. In terms of localisation this refers to selecting a point in +space, calculated the theoretical time delays, or bearing angles from hydrophone clusters, +if the cetacean was vocalising at +this point in space and then comparing the theoretical delays to the actual +observed time delays or bearings. The more similar the theoretical and observed time delays +the +closer the point in space is to the actual position of the source position. By sampling many different +locations the localisation algorithm can select that location which best fits the observed data. +While this may sound highly inefficient, algorithms exist which can efficiently test multiple locations +and converge on a solution sufficiently fast for real time operation on most modern computers. +

+

Least Squares

+

Least squares methods are generally solving the inverse problem. Examples are found in +hyperbolic localisation methods +within the Group 3D localiser, where the least +squares crossing point is calculated for multiple hyperbolae, each derived from a time difference +of arrival on a pair of hydrophones. Another example is one of the +target motion algorithms, +which takes a set of bearings to an animal from multiple points along a track-line and finds the +least squares solution to the crossing point of those bearings.

+ + +

Simplex, or Nelder-Mead

+

Simplex, or Nelder-Mead methods are a +commonly used way of solving the forward problem, i.e. guess an animal location and calculate theoretical +values for the observed data (bearings, time delays, etc.), test the observed data against +those values, move the animal a bit and see if updated theoretical values better fit the data, keep updating until +the fit is as good as it can get. While this sounds computationally intensive, the Nelder-Mead method varies the +step sizes as it tests different locations and is incredibly efficient at finding the optimal solution. Within +PAMGuard these methods are used to cross bearings within the +target motion algorithm, to cross +bearings in the Group 3D localiser and also to +estimate 2 and 3D locations direct from time delays using alternative algorithms within the +Group 3D localiser +

+ +

+ +

+MCMC +

Markov Chain Monte Carlo (MCMC) is a Bayesian statistical technique that +has been applied to a large variety of problems, from estimating the solutions +of complex integrals, to searching for exo-planets. The basic premise is +to calculate a series of estimates which gradually increase in accuracy until a +satisfactory solution is reached. The estimates form a chain of results which +then bounces around the likely solution creating a probability distribution of +results. +

+

+In terms of acoustic localisation MCMC is particularly useful due to its +ability to easily incorporate experimental unknowns and then provide dynamic +visualisations of the resulting errors. Utilising both real and simulated data +this allows rigorous analysis of the effectiveness of a hydrophone array and easy +quantification of the error for each individual localisation. +

+

For acoustic localisation, parameter space generally refers to the Cartesian (or other) co- +ordinates (x,y,z) but could also include other variables which would alter the +theoretical time delays. These can include sound speed, salinity, hydrophone +positions, and/or the angle of a vertical array. +

+

The process begins with a random point in parameter space. +From this initial point in space +a random jump is executed. A jump involves changing each parameter value +by a limited but random value. For example if the only parameters changing +were the x.y,z co-ordinates then each jump would simply be a random jump +through 3D space. Once a jump is executed a measurement of whether the new +parameters are closer to the solution is undertaken. This is a chi squared +value. The chi squared value compares the theoretical time delays calculated from the +new jump location to the observed time delays. The lower the chi squared value the +greater the similarity is between the theoretical and observed values. +After jumping and calculating the new chi squared value the Markov chain then +follows a series of three sequential rules. These are based on the difference +between the previous and new chi squared values; +

+

+1. If the new chi squared value is less than the previous chi squared value then the jump is accepted.

+2. If the new chi squared value is greater than the previous chi squared value then the jump is only accepted with a probability of;
+

+ +ProbEq

+ +

were delta chi squared is the difference in chi squared between the previous and new jump point.

+ +3. If neither of the two above criteria is achieved the jump is not accepted +and another random jump is executed from the previous point. +

+ +

The result is a sequence or chain of jumps, which converge to form a cloud of +points around the likely position of the acoustic source. The density of this +cloud then represents the probability distribution of the acoustic source +location in space. Figure 1. shows three MCMC chains converging to form a +circular probability distribution. Here the acoustic source could be anywhere on +a circle of possible locations, a common result when using linear arrays. +

+ +

MCMCChainsFigure 1. +

+ +

+Although this process requires large amounts of computational power the rapid progress of multi-core computing means it is possible to have +multiple chains without a large increase in computational time.

+

+



References +

Magnus Wahlberg, Bertel Mhl and Peter Teglberg. Estimating source position accuracy of a large-aperture hydrophone array for biacoustics. J. Acoust Soc. Am. 109. 397-405 +

Stacy Lynn Deruiter. Echolocation-based foraging by harbour porpoises and sperm whales including effects of noise and acoustic propagation. PhD thesis, (2008). +

Line A. Kyhn, J. Tougard, F. Jensen, M. Wahlberg, G. Stone, A. Yoshinaga, K. Beedholm and P.T Madsen. Feeding at a high pitch. Source parameters of narrow band, high frequency clicks from echolocating off-shore Hourglass dolphins and coastal Hectors dolphins. J. Acoust. Soc. Am .125, 1783-1791 (2009) +

Mathew J. Holman, Joshua N. Winn, David W. Latham, Francis T. ODonovan, DavidCharbonneau, Gaspar A. Bakos, Gilbert A. Esquerdo, Carl Hergenrother, Mark E. Everett and Andras Pal. The Transit light curve project. I. four consecutive transits of exoplanet XO-1b. The Astrophysical Journal. 652: 1715-1723 (2006) +

+ + +

+

+ +


+ + + + diff --git a/target/classes/help/localisation/docs/localisation_arrays.html b/target/classes/help/localisation/docs/localisation_arrays.html new file mode 100644 index 00000000..6e135217 --- /dev/null +++ b/target/classes/help/localisation/docs/localisation_arrays.html @@ -0,0 +1,84 @@ + + + +Generic Localisers + + +

Localisation

+

Types of array

+
+ +

The type of localisation that can be performed depends a lot on the size and shape of the hydrophone array. A short linear array of two or more hydrophones can measure a single +bearing to a detected sound, but not estimate range. A longer linear array may also be able to estimate range. Similarly, a small horizontally aligned triangle of hydrophones +can estimate an unambiguous bearing in the horizontal plane and possibly also an elevation angle, although the elevation angle will be subject to an up-down ambiguity. Large arrays +of several widely distributed hydrophones can estimate locations in three dimensions.

+ +

Small and large, compact and distributed, small and wide aperture

+

These terms are often used to describe hydrophones arrays. All are easily stated, but not so easily understood and what is a wide aperture array for one species may be considered +a compact array for a different species.

+

In the current context, a small or compact array is an array who's dimension is a) much smaller than the detection range of the sounds being detected such that animals are +almost guaranteed to be outside the volume or area of the array, and + b) small enough that the time difference between the arrival of sounds on the different receivers is never (or rarely) confused my multiple arrivals, and c) small enough that +a sound received on one receiver is almost guaranteed to be visible on all of them.

+

A large or wide aperture array, on the other hand, is likely to be large enough that many animals will be within, or at least relatively close to, the area or volume covered +by the receivers. Detection of a sound on one receiver is no guarantee of detection on other receivers and the arrival of multiple sounds on the different receivers may cause +ambiguities in working out which sounds match on the different receivers.

+

As a general rule (remembering that rules are there to be broken) is that whatever the dimension of the array, 2 or 3D localisation is excellent within the volume of the array and is +OK out to 3, or sometimes even 10 times the array dimension. Beyond that distance, bearing estimation is still possible, but errors on range become so large that the range estimations have +no validity. It therefore follows that a compact array is good for bearing measurements, whereas a wider aperture array can be used for 2 or 3D localisation.

+ +

Hydrophone Spacing

+

Most PAMGuard localisers are based upon Time Difference of Arrival (TDOA) measurements between multiple hydrophones. Time differences can be measured more accurately +with high frequency sounds sampled at high sample rates. With advanced signal processing, time differences can be measured to a fraction of a sample and to a fraction of a +wavelength of the detected sound. For example, Gillespie and Macaulay (2019) showed that for harbour porpoise like clicks (Frequency 130kHz, wavelength 1.2cm) sampled at 500kHz, they could measure +TDOA's to an accuracy of a few microseconds - that's 1/100ths of a sample, or well below 1/100'th of a wavelength. Gillespie et. al, 2020 describe how three small aperture arrays +of dimension 30cm cold be used to accurately measure bearings to porpoise clicks and that three of these clusters spaced over several metres formed a wide aperture array which could be used to localise +porpoise clicks in three dimensions.

+

At the other extreme, say working with blue whales, which can produce sounds at 15Hz (wavelength 100m) you'd hardly expect to get a blue whale within an array a few metres across and would +probably want to detect them out to a distance of several 10's of km. Timing measurements to blue whale sounds will also be far less accurate than for porpoise clicks +(milliseconds rather than a fraction of a microsecond) so the wide aperture array used for porpoises would be a compact array for blue whales.

+ +

Numbers of Hydrophones

+

Hydrophones are expensive to purchase and both complex and expensive to deploy, but you do need to make sure you have enough for the type of +localisation you're aiming to use.

+

Localisations can be in one, two or three dimensions and are most often described in polar (bearing and range) +or cartesian (x,y,z) space.

Whichever system is used, a pair of hydrophones can measure a single time +difference, so can resolve one dimension. Three hydrophones can measure two independent time differences, so can estimate two dimensions (e.g. x and y or latitude and longitude) and +four hydrophones can measure three independent time differences, so can in principle estimate three dimensions.

+

However, the reality is often that at least one extra hydrophone is +required to resolve ambiguities. For example, a pair of hydrophones will measure a bearing, but it will be ambiguous, whereas a triangle of hydrophones can measure a surface bearing without +ambiguity. A common misconception is that three widely spaced hydrophones can provide two dimensional localisations. The truth is that while animals within the array will probably get an +unambiguous position, positions outside the array can sometimes still be ambiguous (Spiesberger, 2001). As an illustration of this, the figures below show hyperbolic localisations from a +two dimensional 3 element array. The first localisation does not have am ambiguity, but the second one clearly does.

+ + +
+ + + +
+ +

The addition of a fourth hydrophone will resolve the ambiguity for a two dimensional array. Five hydrophones are required for unambiguous 3D localisation.

+ +

References

+

Gillespie, D., and Macaulay, J. (2019). Time of arrival difference estimation for narrow band high frequency echolocation clicks, +The Journal of the Acoustical Society of America, 146, EL387EL392. +

+

Gillespie, D., Palmer, L., Macaulay, J., Sparling, C., and Hastie, G. (2020). +Passive acoustic methods for tracking the 3D movements of +small cetaceans around marine structures, PLoS ONE, 15 (5), 16pp. doi:https://doi.org/10.1371/journal. pone.0229058

+

Spiesberger, J. L. (2001). Hyperbolic location errors due to insufficient numbers of receivers, +The Journal of the Acoustical Society of America, 109, 30763079

+ + + + +

+ + +


+ + + + + diff --git a/target/classes/help/localisation/docs/localisation_generic.html b/target/classes/help/localisation/docs/localisation_generic.html new file mode 100644 index 00000000..494ad115 --- /dev/null +++ b/target/classes/help/localisation/docs/localisation_generic.html @@ -0,0 +1,76 @@ + + + +Generic Localisers + + +

Localisation

+

Generic Localisers

+
+

The Generic Localisers are intended to work with any type of data from any PAMGuard detector. Some detectors, such +as the Click Detector and the Whistle and Moan detector have built in bearing localisers and you should continue to +use these. Most other detectors should use these generic localisers, and the 3D localiser can be used to estimate +2D and 3D locations for click and whistle data.

+ +

Some localisers will work on a single sound, detected on multiple hydrophones. +

In general terms, there are three types of localisation that are possible for single sounds:
+

    +
  1. Bearings - a bearing in one or two dimensions (e.g. horizontal angle and elevation angle), possibly with ambiguity either side of the hydrophone array.
  2. +
  3. 2D Localisations - a Latitude and Longitude, or x,y position relative to the hydrophone array.
  4. +
  5. 3D Localisations - Latitude, Longitude, and depth or x,y,z, positions relative to the hydrophone array.
  6. +
+

Another type of localisation, called Target Motion Analysis, +uses the movement of the vessel and assumes that multiple sounds from the same source can be linked together, it then crosses multiple +bearings to the sound source to generate a position. Target Motion Analysis can provide localisations using simpler arrays, but it's success is very dependent on animals producing regular +vocalisations which can be linked together either automatically or by a human observer.

+ +

The type of localisation will depend a lot on the type and layout of the array, its overall dimensions, the number of individual hydrophones, whether they are +laid out in a line, a plane, or distributed in three dimensions. Success will also be heavily influenced by the types of sound being detected, their signal to noise ratio (it's easer if SNR +is high!), the rate at which sounds are arriving (is it easy to match the different sounds on the different hydrophones, or are there many possibilities?), etc.

+

Often there are fundamental trade-offs of compromises to be made. For example, when localising harbour porpoise, you'll want to get the hydrophones quite far apart to cover the area or volume +you're interested in, but at the same time you'll want the hydrophones quite close together or the highly directional sounds won't be detected on sufficient hydrophones for localisation. +In most studies using wide aperture arrays, there will always be sounds detected on the periphery of the array which are only detected on one or two hydrophones and can't therefore be localised.

+ +

Single Sound Localisers

+

Bearing Localiser

+

The Bearing Localiser is designed to work with compact arrays of two or more hydrophones. Implicit in it's operation +is the assumption that hydrophones are close enough together that a sound detected on one hydrophone will also be present on others. Time delay +measurements will be based on the cross correlation of the signals on the different channels and localisation will provide one or two bearings, +depending on the type of array (linear, planar or volumetric).

+

Bearing localiser results are added as an annotation to the group detection and will be stored in both the database and in binary storage.

+ +

Group 3D Localiser

+

The Group 3D Localiser has been developed for use with wide aperture arrays of four or more hydrophones. It links separate +detections from multiple hydrophones and offers a choice of algorithms for 2 or 3 dimensional localisation

+

The automatic grouping of multiple detections to form a localisation generates a new data output stream in +PAMGuard which is written to the database. Each database record contains information on which detections were used in the localisation and the localisation result.

+ + +

Multiple Sound Localisers

+

Target Motion Localiser

+

The Target Motion Localiser can be used for 2D and 3D localisation using target motion analysis. +It's input must be grouped detections, where the grouping has either been done automatically, e.g. using the Click Train Detector, or manually using +the Detection grouper. Detections within each group must have bearing information, e.g. from +the Bearing Localiser. +For a linear array, the localisation will generally be ambiguous about the array +axis, so two separate locations may be calculated, one for each side. For compact volumetrica arrays, which produce unambiguous bearings, the resulting localisation +will also be unambiguous.

+

Target motion results are added as an annotation to the group detection and will be stored in both the database and in binary storage.

+ +

Detection grouper

+

The Detection grouper is not a localiser in itself, but can be used to manually group detections +together on the PAMGuard displays for use with the +Target Motion Localiser.

+

The detection grouper generates a new data output stream in PAMGuard which contains information on which detections were included in each group.

+ +

Example configurations

+

A selection of PAMGuard configuration files that illustate the use of some of the PAMGuard localisers +with different detectors and types of array can be downloaded here.

+ +

+ + + + + + diff --git a/target/classes/help/localisation/docs/localisation_overview.html b/target/classes/help/localisation/docs/localisation_overview.html new file mode 100644 index 00000000..f102d490 --- /dev/null +++ b/target/classes/help/localisation/docs/localisation_overview.html @@ -0,0 +1,121 @@ + + + +Target Motion Overview + + +

Localisation

+

Overview

+
+ + +

Localisation is the process by which the possible locations of an acoustic source are determined by an array of two or more receivers. In the case of underwater acoustics the receivers are hydrophones and if using PAMGUARD the acoustic source is almost certainly a marine mammal. +

+ + +

Time Delays

+In order to localise an acoustic source a time delay between two hydrophones is required. +This simply refers the number of seconds between two hydrophones receiving the same acoustic signal. +In order to get to this stage vocalisations must be first detected, classified and then the time delay between two likely signals from the same source calculated. +The calculation itself must be highly accurate and cannot rely on simply determining the rough start of two signals without introducing large errors.

+ + + + +

Figure 1

+ PopoiseClicks (14K) +
+ +Figure 1. + +

For example a harbour porpoise click consists of an ultra-short directional pulse of sound with a peak frequency of around 130kHz . +The complex internal structure of a cetacean's biosonar means that click waveforms are not uniform and highly dependent on a multitude of factors. +A 'direct' click detected along the longitudinal axis of the animal, for example, will differ in waveform from the same click recorded at an angle. Thus often incident on each hydrophone are clicks of similar peak frequency but very different waveforms as shown in Figure. 1. +The distance between the hydrophones in this case was 0.25m. Although only a fraction of a millisecond in length in order to work out an accurate time delay between such clicks, a cross correlation function must be utilised. This method slides one waveform along the time axis of the other, calculating the integral of the product of both waveforms over a range of different times. +The accepted mathematical form is

+ + + + +

Equation 1

+ CrossCorrelation (14K) +
+ +
+ +

where x(τ) and y*(τ-t) (* refers to the complex conjugate) represent two waveforms with a time separation of t. This results in the time dependent function Cxy(t). The integral is essentially proportional to the area beneath the two waveforms and so if they overlap precisely this produces a large value. Hence Cxy(t) is a measure of the similarity between two waveforms over time with its maximum value corresponding to the likely time delay between the two signals.

+ +

Localising + +

As long as the distance between the two receiving hydrophones is known a measured time delay can then be used to restrict the possible location of an acoustic source. In the case of just two hydrophones the source is theoretically restricted to a three dimensional hyperboloid of infinite length. It is perhaps easier to visualise this in two dimensions in which case the hyperboloid can be considered as two possible symmetrical bearings pointing towards the source. By introducing another pair of hydrophones and hence another time delay measurement the location of the source can restricted further. Now the only possible locations are the points at which the hyperboloid surfaces calculated for each hydrophone pair cross. +

+ + + + +

Figure 2

+ VerticalArrayCones.jpg (14K) +
+ +

Figure 2 shows an example of two pairs of hydrophones (each pair is represented by a black box) each restricting the possible source locations to a hyperboloid surface (because the hydrophones are relatively close together the hyperboloid can be considered as two cones). The two cones intersect along a highlighted circle and hence the only possible locations of the source are on this circle. However there are four hydrophones in this array and hence this actually corresponds to six time delay measurements between hydrophones, 1-2, 1-3, 1-4, 2-3, 2-4 and 3-4. Thus it is possible to restrict the source location further depending on the array geometry. In Figure 2 the hydrophones are placed in-line with each other. This in-line symmetry results in the possible source locations always being restricted to a circle independent of the number of hydrophones used. In general the mathematical rules governing localisation require at least three hydrophones (two time delay measurements) to locate the source in two dimensions and at least four hydrophones (over three time delay measurements) to locate a source in three dimensions. +

+

The number and distribution of hydrophones therefore play a key role in localisation; however other measurements also restrict the source location. The maximum detectable range of a harbour porpoise click is on the order of a few hundred meters whilst blue whales are detectable tens of kilometres away. Thus the possible ranges are restricted simply by the frequency of a vocalisation. In addition both the seabed and sea surface provide limits restricting the source location. +

+ +

Localisation Errors + +

In an ideal world, if we knew the exact spacing between hydrophones, accurate +sound speed profiles in all locations and the precise time delay of a signal it +would be possible to localise the exact location of any detectable sound source. +However, reality, down to the smallest fundamental units, is built on +probability and the same applies to localisation. Errors in measurements, from +digitising a signal to measuring the distance between different hydrophones, are +inherent within every acoustic monitoring system. How this error propagates +through to source positions is an important aspect of localisation and needs to +be calculated accurately. +

+

Time delay errors generally occur due to unsynchronised signals and/or +errors in cross correlating different waves. For example, if a wave is digitally +sampled every 1.41x10 -5 seconds (96kS/s) then in an ideal situation +the time delay is accurate to +/- 1.41x10-5/2. This can be reduced by +applying a polynomial fit to the cross correlation mimicking a more analogue +wave. However, the cross correlation function itself is not always accurate, +especially with spectrally pure signals, such as those produced by harbour +porpoises. Therefore time delay errors, as well as being dependent on the +sampling frequency are also often species dependent. +

+ + + +

Figure 3 (S.Deruiter)

+ Bellhop (14K) +
+ +

Propagation and speed of sound provide another important source of error. The speed of sound in seawater is not constant, with temperature, salinity and pressure gradients resulting in variable sound speed profiles. This results the bending of acoustic rays and can introduce a significant source of error, especially over large distances. +Figure 3 shows a ray trace diagram of a porpoise click in a measured environment with a variable sound speed profile. Here temperature and salinity gradients cause significant bending of the acoustic signals creating a waveguide effect. Although this is an extreme case it is clear that assuming a constant sound speed in this particular instance would incur large localisation errors.

+

The geometry of an array is critical in error propagation. The first and most obvious error is the uncertainty in the position of each hydrophone. After a time delay measurement any error in the position of a hydrophone pair will alter the position of the resulting hyperboloid surface. This then changes the calculated possible source locations. The degree to which the source location is moved due to this and other errors is related to the geometry of the array. For example, consider two pairs of hydrophones, separated by 0.5m and located 1m apart from each other. Assume an error in measurement results in one of the calculated hyperboloid surfaces shifting by one degree; this then propagates to a range error of 1.9m. However if the hydrophone pairs are moved 10m apart the same error in measurement results in a range error of just 0.41m. +

+

This suggests that arrays should be spaced as widely as possible. This is indeed the case with evenly distributed, widely spaced hydrophones theoretically providing the most accurate localisations. However, cetacean vocalisations only propagate a finite distance and depending on species are often highly directional. Therefore arrays are fundamentally restricted in size even before the practical considerations of deployment are taken into consideration. +

+

The natural environment and especially the sea are fundamentally unpredictable places. The complexity of these environments means a complete and accurate mathematical model is impossible. Instead errors must be accepted as always present and localisations should always be regarded as probabilities of a source location. +

+



References +

Magnus Wahlberg, Bertel Møhl and Peter Teglberg. Estimating source position accuracy of a large-aperture hydrophone array for biacoustics. +J. Acoust Soc. Am. 109. 397-405 (2001). +

Stacy Lynn Deruiter. Echolocation-based foraging by harbour porpoises and sperm whales including effects of noise and acoustic propagation. +PhD thesis (2008). +

Line A. Kyhn, J. Tougard, F. Jensen, M. Wahlberg, G. Stone, A. Yoshinaga, K. Beedholm and P.T Madsen. +Feeding at a high pitch. Source parameters of narrow band, high frequency clicks from echolocating off-shore Hourglass dolphins and coastal Hector's dolphins. +J. Acoust. Soc. Am .125, 1783-1791 (2009). +

Mathew J. Holman, Joshua N. Winn, David W. Latham, Francis T. O'Donovan, DavidCharbonneau, Gaspar A. Bakos, +Gilbert A. Esquerdo, Carl Hergenrother, Mark E. Everett and Andras Pal. +The Transit light curve project. I. four consecutive transits of exoplanet XO-1b. +The Astrophysical Journal. 652: 1715-1723 (2006). + +

+ + + + + + diff --git a/target/classes/help/localisation/docs/localisation_tdoa.html b/target/classes/help/localisation/docs/localisation_tdoa.html new file mode 100644 index 00000000..56e0193d --- /dev/null +++ b/target/classes/help/localisation/docs/localisation_tdoa.html @@ -0,0 +1,67 @@ + + + +Time Difference of Arrival + + +

Localisation

+

Time Difference of Arrival

+

Many localisers use Time Difference of Arrival (TDOA) of signals on multiple hydrophones to estimate locations, whether it be just a bearing calculation, or a full 3D location. +Even when using localisation algorithms such as the Group 3D Localiser Crossed Bearing algorithm it's +likely that the bearings being crossed will have been derived from TDOA measurements.

+

TDOA measurements are most often made by finding the peak in the +cross correlation function of the signal waveform recorded at each hydrophone.

+

TDOA measurement are more accurate for louder signals and can be made more accurate through careful filtering of data, +up-sampling, and interpolation (Gillespie and Macaulay, 2019).

+

Exactly how PAMGuard calculates a TDOA for a given detector depends slightly on the type of detection, what data are included with the detection +and also on how far apart hydrophones are spaced.

+ +

Clicks

+

Transient sounds from the click detector are stored with a short +waveform clip which is used for TDOA measurement. There are a number of options available to control how the TDOA measurement is made, broadly +following the examples in Gillespie and Macaulay (2019). It is also possible to select different settings (e.g. different frequency ranges for +filtering) based on the classification of individual detected clicks.

+ +

+ +

+

Timing configuration options for the click detector are available from within the main Settings dialog of the Click Detector, or through a +settings button in the configuration of the Group 3D localiser when a TDOA based algorithm +is selected.

+ +

Spectrogram based detectors

+

Several detectors, including the +Whistle and Moan detector and +the GPL detector search a +spectrogram of +audio data to detect sounds. These detectors tend not to store the waveform of the detected sound (as is the case for the +click detector) but do often store the time-frequency contour of the detection. +For these detectors, TDOA's are calculated from the Complex FFT data used as input to the detection algorithm. Note that +this is mathematically the same as a waveform cross correlation, so time resolution (with interpolation) is still better +than a single sample, and is NOT the time resolution of the FFT data frames. +For detectors providing detailed time-frequency contour information, the cross correlation is restricted to the frequency +limits of the detection.

+

Generally, there are no options controlling how the cross correlation of the spectrogram data is conducted, but some localisers +may need you to select the correct source of FFT data appropriate to the detector.

+

Localisers requiring a time delay will calculate the maximum possible time delay between two hydrophones. If this time delay is +less than half the length of an FFT frame, then the cross correlation is simply the sum of the cross correlations of all FFT frames +included in the detection, with a 1:1 match between the FFT frames from the different channels of data. Where the maximum time +delay is greater than half a FFT frame, then data from each pair of channels will be 'slid' across one another, and the total cross correlation +calculated for all possible time delays, the best correlation value being selected.

+

Some localisers also offer the option of selecting raw sound data for input to the TDOA calculation. In this instance, it will recalculate +the FFT data, which is probably a waste of time if the FFT is already calculated.

+ + +
+ +

References

+

Gillespie, D., and Macaulay, J. (2019). Time of arrival difference estimation for narrow band high frequency echolocation clicks, +The Journal of the Acoustical Society of America, 146, EL387EL392.

+ + +

+ + + + + diff --git a/target/classes/help/localisation/group3d/docs/3dalgorithms.html b/target/classes/help/localisation/group3d/docs/3dalgorithms.html new file mode 100644 index 00000000..3536abd5 --- /dev/null +++ b/target/classes/help/localisation/group3d/docs/3dalgorithms.html @@ -0,0 +1,41 @@ + + + + Group 3D Localiser + + +

Group 3D Localiser

+ +

Algorithms

+

The Group 3D localiser has a number of available algorithms, the availability of which is dependent on both the layout of the array and the configuration of the +detector used.

+

The Crossed bearing algorithm can be used when the detections already have bearing information. This may be because bearings have already +been calculated by an internal algorithm within the detector, as is the case for the Click and Whistle and Moan detectors, or it may be a detection that has had bearing +information added to it by the Bearing Localiser. This algorithm is also suitable for calculating +positions from multiple DIFAR buoys.

+ +

The Hyperbolic algorithm can be used to localise single detections from widely spaced hydrophones so long as Time Difference of Arrival +measurements can be accurately made between the different hydrophone channels. Localisation can be in either 2 or 3 dimensions.

+ +

The Simplex algorithm is an alternative to the Hyperbolic algorithm, working with the same data, but solving +the problem in a different way.

+ +

It is difficult to predict which algorithm will provide the best performance, both in terms of how many sounds it manages to localise and the spatial accuracy of those localisations. The +Crossed bearing algorithm is a sensible choice if multiple compact clusters of hydrophones have been deployed, especially if there is some uncertainty as +to the quality of time synchronisation between the clusters (they will need to be synchronised well enough to match sounds on the different clusters, but not so perfectly that +Time Difference of Arrival measurements are reliable between clusters). +If individual detections do not have bearing information (as would be the case for most wide aperture arrays), then the +Hyperbolic or the Simplex algorithms should be used. Even if hydrophones are in clusters and bearing +information is available, these algorithms should be more accurate due to their use of the +additional time delays between distant hydrophones.

+ + + +
+ + + +

+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/group3d/docs/3dconfig.html b/target/classes/help/localisation/group3d/docs/3dconfig.html new file mode 100644 index 00000000..3b6adaca --- /dev/null +++ b/target/classes/help/localisation/group3d/docs/3dconfig.html @@ -0,0 +1,46 @@ + + + + Group 3D Localiser + + +

Group 3D Localiser

+ +

Configuration

+

Creating a Group 3D Localiser

+

From the File > Add Modules > Localisers menu, select "Group 3D Localiser". Enter a descriptive name for the new module and press OK. + +

Configuring the Group 3D localiser

+

Before configuring the Group 3D Localiser you should have configured the detector you plan to use it with and correctly set up +the hydrophone array. Consider testing your configuration with simulated sound source + before trying it with real data.

+ +

Detection source and group matching options

+

From the main PAMGuard settings menu, open the Group 3D Localiser dialog and select the source of detection data.

+ +
+
Detection Matching
+

As the selected detector creates detections, the Group 3D Localiser will try to put them into groups ready for localisation. Select the minimum number of detections to include in a localisation attempt. This should be at least the minimum number required by the selected algorithm, but may be higher depending +on the number of hydrophones you think detections should occur on. If sounds are far apart in time and the detector is working well +then there will be one detection per channel and a group with that number of detections will form. However, detections may not occur on all hydrophones and some hydrophones may have more +than one detection (if sounds were being produces at a high rate, or there are false detections). The initial grouping is based purely on what may be possible based on the time of arrival differences +between the different hydrophones. In a worst-case-scenario a group might become infinitely long, so a maximum number of sounds allowed in a group can also be specified.

+
Data selection
+

Some detectors have a built in data selector (for instance the +Click Detector, +when used with it's +click classifier +allows you to select only clicks that meet certain classification criteria, the +Whistle and Moan detector +allows you to select whistles based on their duration and frequency range, etc.). If a data selector is available, set it to select only the detections of interest.

+ + +
+ + + + +

+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/group3d/docs/3dcrossedbearing.html b/target/classes/help/localisation/group3d/docs/3dcrossedbearing.html new file mode 100644 index 00000000..4985d768 --- /dev/null +++ b/target/classes/help/localisation/group3d/docs/3dcrossedbearing.html @@ -0,0 +1,63 @@ + + + + Group 3D Localiser + + +

Group 3D Localiser

+ +

Crossed Bearing Algorithm

+

The crossed bearing algorithm can be used when hydrophones are arranged in small clusters, each of which can provide a bearing.

+

For example +a towed hydrophone might contain two groups of hydrophones, with spacing within each group close enough that they can be considered a compact +array, which can easily estimate bearings, but spacing between the hydrophone groups large enough that crossing angles can be used +to estimate absolute source locations.

+

If using static equipment, then it may be possible to deploy groups of several multi-channel recorders. Channels within each recorder +would be accurately time synchronised, so TDOA measurements from each recorder would provide accurate bearings, however +time synchronisation between recorders may not be accurate enough for TDOA measurement, so crossed bearings could +be used to combine data from multiple clusters.

+

The crossed bearing algorithm uses exactly the same internal algorithms as +target motion analysis, which crosses bearings from multiple sounds from the same animal from different locations of a single compact array.

+ +

Configuration

+

Select the Crossed Bearings algorithms from the drop down list. Click on the configuration button to the right of the +list to select one of three possible crossed bearing algorithms. You may also limit the maximum number of sounds used within +the algorithm and select limits (Filters) on reasonable outputs - any localisation result outside these limits will be +rejected.

+

In principle, it is possible to select more than one of the above algorithms, in which case all will be applied and PAMGuard will select the best result based on +goodness of fit criteria. Generally, it is recommended that you test the options through simulation and then select one algorithms which is giving the best results. +an exception might be when using a moving array, which might sometimes be in a linear line (so 3D location is definitely not possible) and sometimes might +(for example as a boat turns) effectively form a plane. In this instance you might run both the 2D and 3D simplex algorithms and the 'best' model fit +will be selected based on AIC.

+ +
+ +

Least Squares

+

This is the original target motion algorithm developed within PAMGuard. The algorithm is fast, but makes an assumption that all detections are being +at points which form a straight line. It is therefore only suitable when there are no more than two hydrophone groups (or when they genuinely are in a +straight line).

+ +

2D Simplex

+

This algorithm can deal with any configuration of hydrophones arranges in a planar array and will only estimate positions in two dimensions.

+

A Simplex algorithm is used to find a point which has the least squares error of bearings +from each hydrophone cluster location. This algorithm is slightly more flexible and better at dealing with complex array geometries than the Least +Squares algorithm above. +

+ +

3D Simplex

+

This algorithm is ideal for volumetric arrays. It can also work with planar arrays, though localisations may be subject to an ambiguity across the plane.

+

This algorithm is the most flexible and better at dealing with complex array geometries than the Least +Squares or 2D Simplex algorithms above, but will fail with unsuitable array geometries.

+

The algorithm can work with hydrophone clusters of different types, e.g. with one tetrahedral cluster (producing bearings with unambiguous +slant and elevation angles) and a pair of hydrophones (producing bearings with an ambiguity about the pair axis). Somewhat surprisingly, you can sometimes get +a 3D location from two or more horizontal pairs of hydrophones, so long as they are not all in a line (forming a linear array). + + +
+

+ + +

+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/group3d/docs/3dhyperbolic.html b/target/classes/help/localisation/group3d/docs/3dhyperbolic.html new file mode 100644 index 00000000..cbfc69f1 --- /dev/null +++ b/target/classes/help/localisation/group3d/docs/3dhyperbolic.html @@ -0,0 +1,50 @@ + + + + Group 3D Localiser + + +

Group 3D Localiser

+ +

Hyperbolic Algorithm

+

The hyperbolic localisation algorithm is a direct implementation of the algorithm described in +Gillette and Silverman (2008), although the algorithm was earlier described +by Spiesberger and Fristrup (1990). It's also worth reading Spiesberger (2001) which gives an +explanation of the minimum number of hydrophones required for 2D and 3D localisation.

+

PAMGuard contains both 2D and 3D implementations of the algorithm and will automatically select +the appropriate version depending on the shape of the hydrophone array.

+

A hyperbola is calculated for each pair of hydrophones from the time delay between that hydrophone +pair. This requires that accurate time delays can be calculated for the sounds being detected, so +accurate time synchronisation for all hydrophones is important. This is generally not a problem for +hydrophones cabled to a single acquisition system, but can be highly problematic for + + +

Configuration

+

To configure, select Hyperbolic from the list of available algorithms. Timing and channel configuration options will be shown.

+ +


+

It is possible to set a minimum correlation value for each time delay, any hydrophone pair with a cross correlation value smaller than +this being excluded from the minimisation function.

+

Consequently, it is also possible to set a minimum number of TOAD measurements to use in the localisation, the localisation attempt +being aborted if not enough hydrophone pairs can return adequate correlations between signals.

+

If hydrophones are arranged in groups (e.g. a click detector operating on multiple small hydrophone clusters as in +Gillespie et al, (2020) then you can also define a minimum number of groups to use in a localisation.

+

If the detection source has TDOA timing options available, then these can be accessed through the Timing Settings button.

+ + + +

References

+

Gillette, M. D., and Silverman, H. F. (2008). A linear closed-form algorithm for source localization from time-differences of arrival, +IEEE Signal Processing Letters, 15, 14.

+

Spiesberger, J. L., and Fristrup, K. M. (1990). Passive localization of calling animals and sensing of their acoustic environment using acoustic tomography, + The american naturalist, 135, 107153

+

Spiesberger, J. L. (2001). Hyperbolic location errors due to insufficient numbers of receivers, +The Journal of the Acoustical Society of America, 109, 30763079

+
+ + + +

+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/group3d/docs/3doutput.html b/target/classes/help/localisation/group3d/docs/3doutput.html new file mode 100644 index 00000000..0732a670 --- /dev/null +++ b/target/classes/help/localisation/group3d/docs/3doutput.html @@ -0,0 +1,31 @@ + + + + Group 3D Localiser + + +

Group 3D Localiser

+ +

Localiser Output

+

The Group 3D localiser combines multiple detections from several hydrophones. When is successfully localises, it creates a new data object +in PAMGuard which is in a new output stream, which is internally cross referenced back to the original detections.

+ +

Displays

+

Localiser output can be displayed on the +PAMGuard map by selecting the localiser from the maps drop down menu. Note that most +detectors that can be used as input to the Group 3D localiser can also be displayed on the map, however the original detections will not have +localisation information, so will either display at the location of the hydrophones they were detected on, or if they have bearings, show those bearing +lines (with fixed range) from the hydrophone locations.

+

It is entirely up to you the user whether you display the original detections as well as the 3D localisations, or just one or the other.

+ +

Database

+

Successful localisations are written to the PAMGuard database.

+

The output table will use the name of the localiser, there being multiple tables if multiple localisers are in use. 3D information is provided +in x,y,z format from the arrays main reference location and also as Latitude, Longitude and depth. There may be some variation as to exact column formats +depending on choice of algorithm.

+ + +

+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/group3d/docs/3doverview.html b/target/classes/help/localisation/group3d/docs/3doverview.html new file mode 100644 index 00000000..a15b70b1 --- /dev/null +++ b/target/classes/help/localisation/group3d/docs/3doverview.html @@ -0,0 +1,56 @@ + + + + Group 3D Localiser + + +

Group 3D Localiser

+ +

Overview

+

The Group 3D Localiser is designed for 2D (latitude and longitude or x and y) and 3D (latitude, longitude and depth or x, y and depth) +localisation using wide aperture arrays.

+ +

With a wide aperture array, there is an implicit assumption that a detection on one hydrophone is no guarantee of detections on +other hydrophones, either because the sound source was too far from some of the hydrophones, the sound source was too directional, or noise local +to one or more hydrophones was too high for detection to be possible.

+ +

Furthermore, by their nature, wide aperture arrays are large compared to the duration of a typical sound being detected (this is true +whatever the species, for example with harbour porpoise a 'wide' aperture array may only be a few metres across, which equates to a few milliseconds +travel time, but porpoise clicks are less than 100µs long; similarly baleen whale sounds may be a couple of seconds long, but arrays for +baleen whales are likely to be spread over many km).

+ +

The Group 3D localiser is therefore used with detectors configured to detect independently on individual hydrophones or compact hydrophone clusters. +It then looks for possible matches of detections between available hydrophones, based on time of arrival differences, and forms groups of detections which +are then passed to the localisation algorithm. If an array is large, the possible time of arrival of a sound on multiple hydrophones may be great +enough that there are multiple possible matches of detected sounds between the various hydrophones. This problem is known as spatial aliasing and +may make localisation of some sounds impossible.

+ +

Careful array design, considering animal vocalisation rate, overall call rate if many animals are likely to be present, detection range, sound directionality, +the extent of the study area, and number of hydrophones to use is therefore required if this localiser is to be successfully employed.

+ +

Device Synchronisation

+

Most of the algorithms rely on Time Difference of Arrival of signals at multiple hydrophones. If the hydrophones are autonomous recorders deployed some +distance apart, then it is likely that their clocks will be running at slightly different rates and methods must be employed to accurately measure these clock +offsets and to account for them when merging files from separate recorders into multi channel files for analysis. +How accurately clocks need to be synchronised depends on the size of the array. As a rule of thumb, clock synchronisation should aim to be better than 1% of the +time separation of the hydrophones. So if you're hydrophones are several km apart, then a few milliseconds time offset may be acceptable. A smaller array will +require more accurate synchronisation.

+ +

Simulating Success

+

When considering using the Group 3D Localiser a great way of testing a configuration is to set up a +simulated sound source. This allows you to test out +configurations with high signal to noise ratio sounds at known locations. While the simulation is somewhat idealised and a combination of +detectors and localisers which work with simulated data is no guarantee that the configuration will work with real data, if a configuration +doesn't work with simulated data, the chances of it working with real data are going to be impossibly low.

+

A series of demonstration configurations, all using simulated data, are being developed and made available through +the PAMGuard website. +You may want to take a look at these before developing your own configuration.

+ + +
+ + +

+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/group3d/docs/3dsimplex.html b/target/classes/help/localisation/group3d/docs/3dsimplex.html new file mode 100644 index 00000000..90619748 --- /dev/null +++ b/target/classes/help/localisation/group3d/docs/3dsimplex.html @@ -0,0 +1,61 @@ + + + + Group 3D Localiser + + +

Group 3D Localiser

+ +

Simplex Algorithm

+

This algorithm uses a Simplex to estimate a most likely position for a sound source based on +Time Difference of Arrival measurements on multiple +hydrophones.

+

Two and Three dimensional versions of the algorithm are available. Select the one most suitable for your array geometry. Note +that even with a 2D array, a better fit may be obtained using a 3D model than with 2D. As a general "rule of thumb", if the vertical +position of the animal is likely to be a significant fraction of the array dimension, then you're probably better off using the 3D +model. If on the other hand, the array is large and in shallow water, so that the vertical position can only ever be a small fraction of +the array dimension, then the 2D model may be more stable.

+ +

The minimisation function used by the Simplex is created in the following manner: +

    +
  1. The propagation delay from the location to each hydrophone is calculated.
  2. +
  3. From these values, the difference in time delay for each hydrophone pair is calculated.
  4. +
  5. An estimate of the error on each time delay is calculated based on the errors on hydrophone locations entered +into the Array Manager, the entered +sound speed error and the relative orientation of the hydrophone pair to the location. +
  6. The measured time delays from the appropriate TDOA calculation are compared +to the calculated values for that pair, and a χ2 value constructed from the differences in measured and expected times +divided by the expected errors. + +
+

+

The Simplex / Nelder-Mead algorithm then moves the location around to minimise the χ2 value.

+ +

Configuration

+

To configure, select "Simplex 2D" or "Simplex 3D" from the list of available algorithms. Timing and channel configuration options will be shown.

+ +


+

It is possible to set a minimum correlation value for each time delay, any hydrophone pair with a cross correlation value smaller than +this being excluded from the minimisation function.

+

Consequently, it is also possible to set a minimum number of TOAD measurements to use in the localisation, the localisation attempt +being aborted if not enough hydrophone pairs can return adequate correlations between signals.

+

If hydrophones are arranged in groups (e.g. a click detector operating on multiple small hydrophone clusters as in +Gillespie et al, 2020) then you can also define a minimum number of groups to use in a localisation.

+ +

Timing (TDOA) options, displayed below the algorithm selection, may vary depending +on the type of detector used.

+ + +

References

+

Gillespie, D., Palmer, L., Macaulay, J., Sparling, C., and Hastie, G. (2020). +Passive acoustic methods for tracking the 3D movements of small cetaceans around marine structures, + PLoS ONE, 15 (5), 16pp. doi:https://doi.org/10.1371/journal.pone.0229058

+ +
+ + + +

+ + + \ No newline at end of file diff --git a/target/classes/help/localisation/group3d/docs/images/3dcrossedbearingconfig.png b/target/classes/help/localisation/group3d/docs/images/3dcrossedbearingconfig.png new file mode 100644 index 00000000..2274073b Binary files /dev/null and b/target/classes/help/localisation/group3d/docs/images/3dcrossedbearingconfig.png differ diff --git a/target/classes/help/localisation/group3d/docs/images/3dsimplexoptions.png b/target/classes/help/localisation/group3d/docs/images/3dsimplexoptions.png new file mode 100644 index 00000000..bb17894a Binary files /dev/null and b/target/classes/help/localisation/group3d/docs/images/3dsimplexoptions.png differ diff --git a/target/classes/help/localisation/group3d/docs/images/3dsimplexoptions2.png b/target/classes/help/localisation/group3d/docs/images/3dsimplexoptions2.png new file mode 100644 index 00000000..9867928b Binary files /dev/null and b/target/classes/help/localisation/group3d/docs/images/3dsimplexoptions2.png differ diff --git a/target/classes/help/localisation/group3d/docs/images/loc3dalgo.png b/target/classes/help/localisation/group3d/docs/images/loc3dalgo.png new file mode 100644 index 00000000..895d1e2c Binary files /dev/null and b/target/classes/help/localisation/group3d/docs/images/loc3dalgo.png differ diff --git a/target/classes/help/localisation/group3d/docs/images/loc3dalgo2.png b/target/classes/help/localisation/group3d/docs/images/loc3dalgo2.png new file mode 100644 index 00000000..0d6e1882 Binary files /dev/null and b/target/classes/help/localisation/group3d/docs/images/loc3dalgo2.png differ diff --git a/target/classes/help/localisation/group3d/docs/images/loc3dsource.png b/target/classes/help/localisation/group3d/docs/images/loc3dsource.png new file mode 100644 index 00000000..11b43793 Binary files /dev/null and b/target/classes/help/localisation/group3d/docs/images/loc3dsource.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image001.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image001.jpg new file mode 100644 index 00000000..c230b5fb Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image001.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image002.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image002.jpg new file mode 100644 index 00000000..aa565f6a Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image002.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image003.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image003.jpg new file mode 100644 index 00000000..aa576f32 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image003.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image004.png b/target/classes/help/localisation/largeAperture3D/docs/images/image004.png new file mode 100644 index 00000000..a016fe1d Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image004.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image005.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image005.jpg new file mode 100644 index 00000000..152f61d6 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image005.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image006.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image006.jpg new file mode 100644 index 00000000..7757b079 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image006.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image007.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image007.jpg new file mode 100644 index 00000000..88ed0948 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image007.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image008.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image008.jpg new file mode 100644 index 00000000..c5726c54 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image008.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image009.png b/target/classes/help/localisation/largeAperture3D/docs/images/image009.png new file mode 100644 index 00000000..cd4bc22c Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image009.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image010.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image010.jpg new file mode 100644 index 00000000..b970ab3a Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image010.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image011.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image011.jpg new file mode 100644 index 00000000..ca3f2107 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image011.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image012.png b/target/classes/help/localisation/largeAperture3D/docs/images/image012.png new file mode 100644 index 00000000..4303a2b5 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image012.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image013.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image013.jpg new file mode 100644 index 00000000..de4b7d70 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image013.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image014.png b/target/classes/help/localisation/largeAperture3D/docs/images/image014.png new file mode 100644 index 00000000..1dcd2a13 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image014.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image015.png b/target/classes/help/localisation/largeAperture3D/docs/images/image015.png new file mode 100644 index 00000000..671665fe Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image015.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image015alt.png b/target/classes/help/localisation/largeAperture3D/docs/images/image015alt.png new file mode 100644 index 00000000..aae0270e Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image015alt.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image016.png b/target/classes/help/localisation/largeAperture3D/docs/images/image016.png new file mode 100644 index 00000000..55e6308e Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image016.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image017.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image017.jpg new file mode 100644 index 00000000..377bb831 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image017.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image018.png b/target/classes/help/localisation/largeAperture3D/docs/images/image018.png new file mode 100644 index 00000000..cf3dfe9e Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image018.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image019.png b/target/classes/help/localisation/largeAperture3D/docs/images/image019.png new file mode 100644 index 00000000..6611f3f2 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image019.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image020.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image020.jpg new file mode 100644 index 00000000..fc5d738c Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image020.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image021.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image021.jpg new file mode 100644 index 00000000..9c19fe51 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image021.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image022.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image022.jpg new file mode 100644 index 00000000..ce4d1194 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image022.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image023.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image023.jpg new file mode 100644 index 00000000..3a7db5b8 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image023.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image024.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image024.jpg new file mode 100644 index 00000000..9a7ba72e Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image024.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image025.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image025.jpg new file mode 100644 index 00000000..ca501370 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image025.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image026.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image026.jpg new file mode 100644 index 00000000..0ab598e6 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image026.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image027.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image027.jpg new file mode 100644 index 00000000..1ffcff15 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image027.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image028.png b/target/classes/help/localisation/largeAperture3D/docs/images/image028.png new file mode 100644 index 00000000..4b4f6fbe Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image028.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image029.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image029.jpg new file mode 100644 index 00000000..17445d3d Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image029.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image030.png b/target/classes/help/localisation/largeAperture3D/docs/images/image030.png new file mode 100644 index 00000000..c7cef180 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image030.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image031.png b/target/classes/help/localisation/largeAperture3D/docs/images/image031.png new file mode 100644 index 00000000..fe33da79 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image031.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image032.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image032.jpg new file mode 100644 index 00000000..dd8fec75 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image032.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image033.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image033.jpg new file mode 100644 index 00000000..026a5f62 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image033.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image034.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image034.jpg new file mode 100644 index 00000000..ae1d25a8 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image034.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image035.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image035.jpg new file mode 100644 index 00000000..8855d774 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image035.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image036.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image036.jpg new file mode 100644 index 00000000..7fe32787 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image036.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image037.png b/target/classes/help/localisation/largeAperture3D/docs/images/image037.png new file mode 100644 index 00000000..aab95e90 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image037.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image037alt.png b/target/classes/help/localisation/largeAperture3D/docs/images/image037alt.png new file mode 100644 index 00000000..fdd16400 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image037alt.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image038.png b/target/classes/help/localisation/largeAperture3D/docs/images/image038.png new file mode 100644 index 00000000..a53828f9 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image038.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image039.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image039.jpg new file mode 100644 index 00000000..0da6b3db Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image039.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image040.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image040.jpg new file mode 100644 index 00000000..78c88c8d Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image040.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image041.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image041.jpg new file mode 100644 index 00000000..31bc1a8e Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image041.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image042.png b/target/classes/help/localisation/largeAperture3D/docs/images/image042.png new file mode 100644 index 00000000..60e9464c Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image042.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image042alt.png b/target/classes/help/localisation/largeAperture3D/docs/images/image042alt.png new file mode 100644 index 00000000..bbc26af5 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image042alt.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image043.png b/target/classes/help/localisation/largeAperture3D/docs/images/image043.png new file mode 100644 index 00000000..7f396335 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image043.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image044.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image044.jpg new file mode 100644 index 00000000..44606def Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image044.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image045.png b/target/classes/help/localisation/largeAperture3D/docs/images/image045.png new file mode 100644 index 00000000..806b941a Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image045.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image046.png b/target/classes/help/localisation/largeAperture3D/docs/images/image046.png new file mode 100644 index 00000000..49126d53 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image046.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image047.png b/target/classes/help/localisation/largeAperture3D/docs/images/image047.png new file mode 100644 index 00000000..91f6d0aa Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image047.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image048.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image048.jpg new file mode 100644 index 00000000..1060306b Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image048.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image049.png b/target/classes/help/localisation/largeAperture3D/docs/images/image049.png new file mode 100644 index 00000000..94696aab Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image049.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image050.png b/target/classes/help/localisation/largeAperture3D/docs/images/image050.png new file mode 100644 index 00000000..4483837f Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image050.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image051.png b/target/classes/help/localisation/largeAperture3D/docs/images/image051.png new file mode 100644 index 00000000..0f411aea Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image051.png differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image052.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image052.jpg new file mode 100644 index 00000000..c070bc50 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image052.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image053.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image053.jpg new file mode 100644 index 00000000..9ce0d50b Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image053.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image054.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image054.jpg new file mode 100644 index 00000000..23a6dd50 Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image054.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/images/image055.jpg b/target/classes/help/localisation/largeAperture3D/docs/images/image055.jpg new file mode 100644 index 00000000..dc30899d Binary files /dev/null and b/target/classes/help/localisation/largeAperture3D/docs/images/image055.jpg differ diff --git a/target/classes/help/localisation/largeAperture3D/docs/meal_exercise1_detectPorpoises.html b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise1_detectPorpoises.html new file mode 100644 index 00000000..204a4c94 --- /dev/null +++ b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise1_detectPorpoises.html @@ -0,0 +1,208 @@ + + + +Detect Porpoises + + + +

Large Aperture 3D Localiser

+

Detect Porpoises

+

+Summary + +

+ +

Process +10 channel .wav files using the click detector to detect porpoises and create +binary files

+ +

+1.1 Create the Module Structure + +

+ +

To begin we +need to analyse the raw .wav data in PAMGUARD. Start PAMGUARD in normal +mode. Select File > Add Modules > Sound Processing > Sound +Acquisition to add the sound acquisition module. This will allow the +raw .wav files to be analysed in PAMGUARD. Next we need a click detector. Go to +File > Add Modules > Detector > Click Detector. The click +detector module should now appear. Finally we need a database (File > Add +Modules > Utilities > Database) and binary storage (File > Add +Modules > Utilities > Binary Store).

+ +

Now you have +added the modules the next stage is to set up everything. Your data model +should look like.

+ +
+

+ +

Figure 1 The data model should look roughly like this to analyse clicks.

+
+ +

In PAMGUARD +you always move from modules on the left to modules on the right when inputting +settings. So here we start with sound acquisition and then move to the click +detector. Select Detection > Sound Acquisition... In the dialog +box set the audio source to Audio file or multiple file, select Select +Folder or Files... and choose the folder containing the porpoise .wav +files. Now that the sound acquisition knows you are dealing with ten channels +of data you will need to create a ten channel hydrophone array in the array +manager. Go to File > Hydrophone Array... and use Import. +to select the ten channel array file for this porpoise data. (In Exercise 1-2 +folder) The hydrophone array manager dialog box should look like.

+
+

+

+

Figure 2. Hydrophone array manager.

+
+ +

+1.2 Set +up the Click Detector Params + +

+ +

Now set up +the click detector. Go to the Click Detection menu on the main +screen and select Detection Parameters.... We want to detect clicks +on all channels so select the check box for all ten channels. Make sure that +no grouping is selected. This is usually sensible for wide aperture arrays (see +note). Select the Trigger tab and ensure check boxes are selected +for every channel. This ensures each channel individually runs the click detection +algorithm. Click OK.

+ +
+

+ +

+

Figure 3. Make sure the channels are not grouped and all selected in the trigger tab.

+
+ +

+1.3 Create filters to optimise for Porpoise Click Detection + +

+ +

Now we want +to set up filters to optimise our chances of finding porpoise clicks. There are +two filters in the click detector, a pre filter and digital trigger filter. The +pre filter filters the raw sound data used by the click detector module. We +want to get rid of low frequency noise so a high pass filter at 20kHz is ideal. +Select Click Detection > Digital Pre Filter... In the dialog +which pops up create a high pass Butterworth filter at 20000Hz.

+ +
+

+

Figure 4. The digital pre filter should be set to 20kHz, high pass.

+
+ +

Now we need +to set the digital trigger filter. The digital trigger filter is only used by +the algorithm which searches for clicks. The final saved click waveforms and +spectra are taken from the raw sound data filtered only by the pre filter. +Since porpoises have narrow band high frequency clicks it is sensible to search +for clicks only in a narrow frequency band. Hence our digital trigger filter +will be a band pass, from 100kHz to 150kHz. Select Click Detection > +Digital trigger filter... In the dialog which pops up create a band pass +Chebyshev filter between 100000 and 150000Hz.

+ +
+

+

+ +

Figure 5. The digital trigger filter should be a band pass between 100 and 150kHz. +

+
+ +

+1.4 Create +a porpoise click classifier + +

+ +

The click +detector is now set up to detect clicks in the porpoise frequency range. +However, although we have optimised the click detector for porpoise like +vocalisations it will still detect many different types of sounds. In order to +determine whether porpoise are present we need to classify clicks. For this we +can use the PAMGUARD click classifier. Go to Click Detection > Click +Classification. In the Click Classifier Selection drop +down box select Classifier with frequency sweep. Select New +to bring up a new click classifier settings dialog. In the bottom of +the dialog box use the Set Defaults button to create default +porpoise parameters. Click OK.

+ +
+

+ +

Figure 6. The click classifier has default settings for porpoise clicks.

+
+ +

You've now +created a porpoise click classifier. To ensure that classifier is applied to +data make sure that the Run classification online and Enable +check boxes are selected.

+ +
+

+ +

Figure 7. Click classifier manager.

+
+ +

+1.5 Running + +

+ + +

We have now +set the detector click detector up to detect and classifiy porpoise +vocalisations. To run select Detection > Start

+ +
+

+ +

Figure 8. The click detector running through the ten +channel .wav files should look something like the above.

+
+ + + +

A note +on groups. In +many detectors you have the option of "grouping channels". Grouping tells +PAMGUARD to automatically calculate extra information for those channels which +have been selected as belonging to a group. Grouped channels are saved as a +single data unit containing information from each channel. For example, a towed +array contains two closely spaced hydrophones. These two channels, when +analysed in PAMGUARD, are usually grouped. If a click is detected on one of the +hydrophones then a waveform clip is also automatically recorded from the other +channel; this is then saved as a data unit containing information on both +channels. PAMGUARD can calculate extra information for any data unit which +contains more than channel of information. For our towed array, two clicks allow +bearing information to be calculated for bearing time displays and target +motion analysis. In general widely spaced hydrophones are not grouped.

+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/localisation/largeAperture3D/docs/meal_exercise2_viewData.html b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise2_viewData.html new file mode 100644 index 00000000..a61ca7f3 --- /dev/null +++ b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise2_viewData.html @@ -0,0 +1,178 @@ + + + +View Data + + + +

Large Aperture 3D Localiser

+

View Data

+

+Summary + +

+ +

Open +PAMGUARD binary files in viewer mode, browse through clicks and create a better +porpoise click classifier. Re-classify porpoise clicks with the better +classifier in viewer mode, mark out interesting click features and view using +concatenated spectrogram.

+ +

You have so +far used PAMGUARD to run through ten channels of raw .wav data and pick out +porpoise clicks. All clicks, including classified porpoise clicks, have been +saved in PAMGUARD binary files. These are around 99.9% smaller than .wav files +and contain all information needed to browse through click data and perform +complex tasks, such as classification or localisation. In this exercise we will +open binary files in PAMGUARD viewer mode.

+ +

Start +PAMGUARD viewer mode. PAMGUARD will ask you to select a database. Select the +database you used in analysing the .wav files. Next PAMGUARD will ask you to +select binary files.

+
+

+ +

Figure 9. Open the binary files you saved.

+
+

Select the +folder you saved binary files when using PAMGUARD in standard mode. PAMGUARD +should now open. You will be presented with a click detector window which looks +very similar to PAMGUARD in standard mode.

+
+

+
+ +

There are, +however, several important differences between the click detector in PAMGAURD +viewer and standard mode. The scroll bars allow users to navigate through and +load new sections of data. You will also find new displays are present and +extra functionality exists to annotate clicks and add to events. Play around +with the controls and load a new section of clicks.

+ +

+2.1 +Reclassify clicks + +

+ +

You will +notice after selecting some click detections, that the classifier we used in +section 1 has missed a lot of porpoise clicks. For the purposes of +localisation it is often better to have more false positives than false +negatives. Therefore we need to reclassify clicks. Go to Click +Detection > Re Analyse Click Types... This will bring up the click +analysis dialog box.

+
+

+ +

Figure 10. Reprocessing clicks allows you to tweak classifier settings.

+
+

Tick the Reclassify +Clicks check box and click on Settings... This will bring +up the familiar click classifier manager from which you can access your +classifier settings.

+
+

+ +

+
+ + +

In the click +classifier disable the Click Length and Zero Crossing settings. +Click OK on the classifier and Classifier manager to return the Click +Analysis dialog. In the Data Options drop down menu +select All Data. This will perform data processing on all +binary files rather than just the click detections currently loaded into +memory. Click Start and wait for the processing to finish.

+ + +

You should +notice that the number of classified clicks visibly increases. Play around with +the classifier until you are happy with the settings and the majority of the +porpoise clicks are correctly classified.

+
+

+
+

+ +

+2.2 +Create an Event + +

+ +

The PAMGUARD Viewer click detector +allows manual marking of events. Events usually consist of a group of clicks +associated with one acoustic encounter of a particular species. Event +information is saved to the database and in certain situations can be used to +perform extra analysis

+ +

Double click on the amplitude time +display. By repeatedly clicking with the mouse you can draw a bounding line +around a group of clicks. By joining up the ends of the dotted line an area is +selected and will be coloured grey.

+ +
+

+ +

Figure 11. You can select groups of clicks to add to an +event by drawing a shape around them and right clicking.

+
+ +

These clicks +can now be saved as an event. Right click within the grey area and select New +Event. Use Porpoise from the drop down menu and click OK. +If there are no species in the dropdown menu you can right click and select Edit +Species to add some. Your clicks should now turn a different colour +which indicates this event is saved. By selecting Click Detection > Show Eventsyou can bring up a dialog box showing +selected events.

+ +
+

events

+ +

Figure 12. Events can be accessed from the Event List.

+
+ +

Create a few events of interesting sections of clicks.

+ +

+2.3 View events on extra displays + +

+ +

There are a +few extra displays in viewer mode which allow users to investigate more acoustic +properties of clicks, especially once events have been selected.

+ +

Go to Click Display > Add Display... > Concatenated Spectrogram. This will add +the Concatenated Spectrogram display. Click on a click within an event to bring +up the concatenated spectrogram for that event. You should see a narrow band +of energy near 130kHz, typical for porpoise vocalisations.

+ +
+

+ +

Figure 13. Concatenated Spectrogram of a set of porpoise +clicks. As expected lots of energy in the 120-140kHz band.

+
+ + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/localisation/largeAperture3D/docs/meal_exercise3_localise.html b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise3_localise.html new file mode 100644 index 00000000..78c1c87f --- /dev/null +++ b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise3_localise.html @@ -0,0 +1,367 @@ + + + +Localise + + + + +

Large Aperture 3D Localiser

+

Localise

+ +

+Summary + +

+ + +

Add the +MEAL localiser and localise porpoise clicks. Batch process the entire dataset +and view in a spread sheet. Create a graph of the dive profile.

+ +

+3.1 Set up the localiser + +

+ +

Now we have +detected and classified our porpoise clicks we can begin to localise. The MEAL localiser module is currently still under +development and can only be accessed in PAMGUARD viewer. This partly due +to the fact that localisation is computationally intensive and so currently not +suitable for real time use.

+ +

For this +exercise we are going to use some data already prepared so that all +participants are using the same classification settings etc. Start a new +instance of PAMGUARD viewer mode, open the database named PorpFineScalePAMTech +in the Exercise 3 folder and select the corresponding binary files in +the folder named 20120630.

+ +

Go to File > Add +Modules > Loclaisers > MEAL localiser. This will add the MEAL +localiser to viewer mode. As the module is +still in development there are a few minor issues which need to be sorted out +when adding the module. Your instructor will guide you through these.

+ +

You should +end up with a new localiser tab which looks like.

+ +
+

+ +

Figure 14. The MEAL localiser should initially look +something like this.

+
+ +

For the rest +of this exercise we will divide the localiser into panels and refer to each +panel by the names given below.

+ +
+

+ + + + + + +
+ 1) Data block selection menu +
2) Click bt display +
3) Algorithm selection +
4) Detection match
+ 5) Localiser controls +
6) Map +
7) Algorithm display +
8) Results
+ +
+ +

The top Click bt display panel contains a miniature bearing time display however since we +did not group any of our clicks there is no bearing information to display. +Right click on the display, select Bearing Amplitude Options and +in the dialog box select Amplitude.

+
+

+ +

Figure 15. Because we did not group clicks we will need to +view them on an amplitude time rather than bearing time display.

+
+

The Click bt display panel should now look similar to your main Click Detector +bearing time display. Select Porpoise in the Filter Species box. +This tells the localiser to only use classified porpoise clicks in +calculations.

+ +

The Map +panel displays localisation results and shows the hydrophone array. Right click +to drag the map, left click to rotate and use the mouse wheel to zoom in and +out. Your display should now look something like.

+
+

+ +

Figure 16. Use the mouse left click, right click and wheel to manipulate the 3D map.

+
+

Select a +porpoise click. You should notice the Detection match panel changing. +The Detection match panel contains information on the number of possible +time delay combinations. The red circle represents the selected detection, in +this case whichever click you have selected in the Click bt Display. This +selected detection is your primary detection. We need to find +this detection on other hydrophones; to do this we look in a time window before +and after the time of the primary detection, represented in the panle by a grey +line. Each hydrophone will have a different time window depending on how far it +is away from the primary hydrophone. It is possible that a time window will +contain more than one detection and for species such as a harbour porpoise, +which has indistinguishable clicks, there is a an equal likelihood that any one +click within the time window could be the primary click we are looking for. +The blue dots represent the possible matches to the primary click within +the time windows. Each blue line represents a possible combination of +detections of which only one will contain only detections which correspond to +the primary detection. The number of possibilities is shown at the top of the +window.

+
+

+ + + + + +
+ +Reasons for multiple time delay possibilities +
-echoes +
-multiple animals +
-rapid vocalisations +
-widely spaced elements
+

+ +

Figure 17. The number of possible time delay combinations +is displayed in the Detection match panel. Lines represent each +combination and the red dot represents the currently selected detection.

+
+ +

For this +exercise we are only going to use the vertical component of the array to +determine depth and range. This will reduce the number of time delay +possibilities and give us information on depth and range. In the localiser +controls panel select Options and in the Channels tab +deselect channels 6, 7, 8 and 9. In the Map tab make sure that Use +high res. Plot symbols is selected. Click OK.

+
+

+ +

Figure 18. For this exercise we only need channels 0-5 +selected.

+
+ +

+3.2 Localise a click + +

+

We are now +going to perform our first localisation. Select MCMC in the Algorithm +selection panel. You should see the Localise, Localise +All, and Stop buttons becoming enabled. Find a click +which contains corresponding detections on most other channels and has more +than one time delay possibility. In the detection match panel such a click +should look something like...

+
+

+ +

Figure 19. Select a click which has time delay +possibilities roughly similar to this.

+
+

First we are +going to localise only one combination. Click the Localise Button.

+ +
+

+ +

Figure 20. MCMC produces a circular probability +distribution. This is exactly what would be expected from a linear array.

+
+ +

You should +notice a circular 'cloud' appear on the map. This cloud corresponds to the +probability distribution of the porpoises' location calculated by the MCMC +algorithm. The cloud is circular because a linear array only allows us to +determine depth and range.

+ +
+

+ +

Figure 21. Using the map you can view the circle side on. +Note it has a well-defined depth.

+
+ +

Align the +map horizontally and you will see the circle has well defined depth. The range +corresponds to the radius of the circle. The ability of MCMC to automatically +determine these distributions is one of its primary strengths.

+ +

You will +notice that the results panel contains summary information on the position of +the animal including its depth, range and corresponding errors.

+ +

+3.2.1 Localise all Combinations + +

+ +

Now we are +going to localise all possible combinations of time delays and by doing so we +can check which combination is correct. Localise by pressing Localise +All. The localiser will now localise all the possible combinations. +Once the localiser has stopped your screen should look something like...

+
+

+ +

Figure 22. You can localise all possible time delay +combination for a given detection. The result which has the lowest chi squared +value is also likely the correct combination of detections.

+
+ +

We now have +multiple clouds, some which have the expected circular shape and others which +do not. Instantly, just by eye, you can see some combinations produce better +results than others. Click on one of the clouds. It will turn red along with +its corresponding time delay combination in the Detection match panel. +Clicking on a combination or map symbol will also highlight the corresponding +localisation result in the Results panel. The algorithm display +panel has an MCMC tab. If selected this will show you a graph of chi squared +versus 'jump iteration'.

+
+

The highlighted series here has the lowest average chi squared value and hence is the best fit result. By selecting it in this panel the corresponding cloud in the map and time delay combination in the detection match panel will be highlighted. +

+

The quicker +this graph reaches a low chi squared value the better the time delay +information has fit the algorithm. You can also use this panel to highlight +corresponding detection match lines and plot symbols; it is a handy way of +picking the combination which has the lowest final chi squared value.

+
+

+ +

Figure 23. You can select 3D shapes on the map and time +delay possibilities in the detection match panel.

+
+

In the +results panel the result with lowest chi squared value will be ticked. +This result is the best fit to the algorithm which likely indicates it was +calculated from the correct combination of time delays. You can save this +result by pressing Save.

+ +

You have now +learned the basics of the MEAL localiser. It is vital you familiarise yourself +with this so take a while to localise other clicks.

+ + +

+3.3 Simplex Localisation + +

+

The Simplex +algorithm is similar to MCMC however does not show true probability +distributions. It is, however much faster. Select Simplex in +the Algorithm selection panel and compare it to the MCMC algorithm by +localising a few more clicks. Pay attention to the millis column +in the results table. This shows the computational time of each algorithm.

+ +
+ +

+ +

Figure 24. Simplex is much faster than MCMC but doesn't +perform quite as well.

+
+ +

+3.4 Batch Process Data + +

+

In this section we will batch process +the entire dataset. In doing so we will localise every porpoise click and save +to a database. To save time we will be using the Simplex algorithm, however +analysis with MCMC will produce better results. Make sure Simplex is the only +algorithm selected in the Algorithm selection panel. Select Batch +Process and tick the Batch Localise box and ensure +All Data is selected in the Data Options drop down menu. +Next select Settings...

+
+

+
+

In the Batch Process +Tab select Use a primary hydrophone box and set the Primary +Hydrophone as 4.Using a primary hydrophone means that only clicks on +one channel are processed. This ensures that localisations are not repeated +across different channels. Set the Min no. of time delays to 4. Min. +number of delays specifies the minimum number of channels which must have a +click detected. Note delays are related to channels by 0.5+sqrt(1+2*TD)/2 +were TD is the number of time delays. There is no +point in localising a click which was only detected on one other channel, as +this simply gives you one time delay and hence a hyperbolic cone of infinite +size on which a porpoise may be located i.e. not much localisation information. +

+ +

Next select the General +tab and ensure that Display only lowest chi2 value +is selected. This means that only the localisation result with the lowest chi +squared value will be saved from clicks which have multiple possible +combinations.

+
+

+
+

In the General tab you +can export data to a spread sheet. This is not necessary as data is +automatically saved to a database, however is convenient in many cases to +quickly open data in excel. Tick Save to.csv and specify a path +using Browse. Click OK.

+ +

Now click Start and +wait until the data processing is complete.

+ +

+3.5 View results + +

+

Once the batch processing has +finished open the spread sheet you specified in section 3.4. Using Microsoft +Excel or equivalent select the chi column and filter out any values above 3. +Now selected the z column and plot a graph of results with time. You should end +up with something which looks roughly like....

+
+

+ +

Figure 25. Your results with the Simplex algorithm should +look something like this graph.

+
+

Well done. You have calculated a +porpoise dive profile from raw .wav data. MCMC produces slightly better +result. If you have time you can try and replicate these by batch processing +with MCMC.

+
+

+ +

Figure 26. MCMC captures more of the dive.

+
+ + + + + + + \ No newline at end of file diff --git a/target/classes/help/localisation/largeAperture3D/docs/meal_exercise4_geoReferencing3dLocalisations.html b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise4_geoReferencing3dLocalisations.html new file mode 100644 index 00000000..7238eb33 --- /dev/null +++ b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise4_geoReferencing3dLocalisations.html @@ -0,0 +1,91 @@ + + + +Geo referencing 3D localisations + + + +

Large Aperture 3D Localiser

+

Geo referencing 3D localisations

+

+Summary + +

+ +

Use the MEAL localiser with vector GPS data.

+ +

In the last +exercise we used a vertical array which we assumed was stationary and +determined a porpoise dive profile. In real life it is possible we will be +using an array which is not stationary. If this is case there are two vital +pieces of information needed to relate localisation information to real world +co-ordinates, the heading and latitude/longitude of the array.

+ +

Open PAMGUARD viewer mode and select the database VertQuad in the Exercise +4 folder. Open the binary file folder 20120715.

+ +

In order to +use GPS data you need to add the GPS module. Go to File > Add +Modules > Maps and Mapping and add NMEA Data Collection, +GPS Processing and Map. You should see the Map tab +appear in PAMGUARD.

+ +
+

+
+ +

To add GPS +data go to Detection > GPS > Import GPS Data....

+ +
+

+
+ +

In the dialog +box open the NMEA file in the Exercise 4 folder. A dialog box will appear +asking you to select a date. Ignore this, tick Use only GPRMC strings +and click OK .

+ +
+

+ +

+
+ +

Wait until +the GPS data has loaded

+ +

Select the +map. You should see GPS tracks. Use the slider to move the position of the +vessel. You may need to use the scroll bars to load more hours of data into +memory.

+ +
+

+ +

Figure 27. After successfully importing GPS data you should +be able to view the ships’ tracks and heading in the MAP.

+
+ +

Now select +the MEAL localiser module and find a suitable porpoise detection. Localise +using one of the algorithms. You will notice a realistic GPS position in the results +panel

+ +
+

+ +

Figure 28. The MEAL localiser will automatically import GPS +data and convert localisation results to a real lat/long.

+
+ + + + + + \ No newline at end of file diff --git a/target/classes/help/localisation/largeAperture3D/docs/meal_exercise5_extraExercises.html b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise5_extraExercises.html new file mode 100644 index 00000000..db4ad6a4 --- /dev/null +++ b/target/classes/help/localisation/largeAperture3D/docs/meal_exercise5_extraExercises.html @@ -0,0 +1,36 @@ + + + +Extra Exercises + + + +

Large Aperture 3D Localiser

+

Extra Exercises

+

There are +several other examples of the MEAL localiser you can have a go with. Try the +TEL database to localise using a well dispersed 12 hydrophone array.

+ +
+

+ +

Figure 29. Well dispersed 3D array can produce highly +accurate localisation results.

+
+ +

Next have a +play with towed array data. See what an MCMC localisation looks like.

+ +
+

+ +

Figure 30. Can you think why MCMC might have this shape for +a two element towed array?

+
+ + + + \ No newline at end of file diff --git a/target/classes/help/localisation/largeAperture3D/docs/meal_overview.html b/target/classes/help/localisation/largeAperture3D/docs/meal_overview.html new file mode 100644 index 00000000..0f2a9315 --- /dev/null +++ b/target/classes/help/localisation/largeAperture3D/docs/meal_overview.html @@ -0,0 +1,36 @@ + + + +Overview + + + +

Large Aperture 3D Localiser

+

Overview

+ +

The purpose of this exercise is to use PAMGUARD to determine the fine scale tracks of +harbour porpoises using data from a wide aperture 10 element hydrophone array. +

+

+The Materials to do these exercises are provided on the pamguard website. +

+

+In this exercise we are going to turn this

+ +

+ +

Into this

+ +

+ + + + + \ No newline at end of file diff --git a/target/classes/help/localisation/targetmotion/docs/images/H1P.jpg b/target/classes/help/localisation/targetmotion/docs/images/H1P.jpg new file mode 100644 index 00000000..b6427558 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/H1P.jpg differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/LeastSquaresAlgorithm.png b/target/classes/help/localisation/targetmotion/docs/images/LeastSquaresAlgorithm.png new file mode 100644 index 00000000..cb02a04d Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/LeastSquaresAlgorithm.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/MCMC3DAlgorithm.png b/target/classes/help/localisation/targetmotion/docs/images/MCMC3DAlgorithm.png new file mode 100644 index 00000000..0a3bdaf6 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/MCMC3DAlgorithm.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/MCMCSettings Panel.png b/target/classes/help/localisation/targetmotion/docs/images/MCMCSettings Panel.png new file mode 100644 index 00000000..0095e262 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/MCMCSettings Panel.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/MCMCtmLoc.png b/target/classes/help/localisation/targetmotion/docs/images/MCMCtmLoc.png new file mode 100644 index 00000000..3bf6e26f Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/MCMCtmLoc.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/Results.png b/target/classes/help/localisation/targetmotion/docs/images/Results.png new file mode 100644 index 00000000..d706cd25 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/Results.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/Simplex2DAlgorithm.png b/target/classes/help/localisation/targetmotion/docs/images/Simplex2DAlgorithm.png new file mode 100644 index 00000000..9dccddd3 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/Simplex2DAlgorithm.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/Simplex3DAlgorithm.png b/target/classes/help/localisation/targetmotion/docs/images/Simplex3DAlgorithm.png new file mode 100644 index 00000000..ea1b3f15 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/Simplex3DAlgorithm.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/TargetMotion2DDialogue.png b/target/classes/help/localisation/targetmotion/docs/images/TargetMotion2DDialogue.png new file mode 100644 index 00000000..ace110c3 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/TargetMotion2DDialogue.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/TargetMotion2DdialogueSpermLoc.png b/target/classes/help/localisation/targetmotion/docs/images/TargetMotion2DdialogueSpermLoc.png new file mode 100644 index 00000000..6f79836c Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/TargetMotion2DdialogueSpermLoc.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/TargetMotion3Ddialogue.png b/target/classes/help/localisation/targetmotion/docs/images/TargetMotion3Ddialogue.png new file mode 100644 index 00000000..b95275e4 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/TargetMotion3Ddialogue.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/TargetMotion3DdialogueSpermLoc.png b/target/classes/help/localisation/targetmotion/docs/images/TargetMotion3DdialogueSpermLoc.png new file mode 100644 index 00000000..82179a7f Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/TargetMotion3DdialogueSpermLoc.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/TargetMotionPaired.png b/target/classes/help/localisation/targetmotion/docs/images/TargetMotionPaired.png new file mode 100644 index 00000000..3a4407d6 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/TargetMotionPaired.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/images/TargetMotionPaired2.png b/target/classes/help/localisation/targetmotion/docs/images/TargetMotionPaired2.png new file mode 100644 index 00000000..fd8d5731 Binary files /dev/null and b/target/classes/help/localisation/targetmotion/docs/images/TargetMotionPaired2.png differ diff --git a/target/classes/help/localisation/targetmotion/docs/targetmotion_LocalisationAlgorithms.html b/target/classes/help/localisation/targetmotion/docs/targetmotion_LocalisationAlgorithms.html new file mode 100644 index 00000000..204af140 --- /dev/null +++ b/target/classes/help/localisation/targetmotion/docs/targetmotion_LocalisationAlgorithms.html @@ -0,0 +1,118 @@ + + + +Target Motion Overview + + +

Target Motion

+

Localisation Algorithms

+
+ + + +

+PAMGUARD allows the user to select a number of localisation algorithms for target motion analysis. The mathematical basis behind these algorithms can be found in the Localisation Techniques section. +

The Localisation algorithms utilised in target motion analysis are either 2D or 3D in nature. A 2D algorithm does not consider depth as a variable and will attempt to find the most likely position of the source on the sea surface. A 3D algorithm attempts to localise in all three dimensions.

Referring to the Target Motion Overview section, a single paired hydrophone array will often result in a circular probability distribution of the source location. In 2D this circle become two points and hence the 2D localisation algorithms will often have two results, one for each of the possible points. The straightness of the trackline and uncertainty in hydrophone positions dictates how similar in likelihood each of these results is. Often it will be ambiguous as to which is the more correct location of the animal. +

+ +

Algorithm Description +

+ +Least Squares

+The least squares algorithm is the least computationally intense of the four. It will only work if the +track is relatively straight. The first step of the computation is to fit a straight line to the GPS data +and then to project all bearings from that straight line. By using a straight line approximation, it is +then possible to use a simple linear regression of the 1/tan(bearing angle) to the animal against their +position along the track-line to compute a perpendicular distance and a position along the track-line +(Gillespie and Chappell 2002). The regression is carried out for an animal on each side of the trackline +and the side with the lowest +chi squared taken as the most likely position, where +chi squared is the sum of the +squares of the difference in measured angles to true angles to the location divided by the expected +bearing errors.

+ + + + +

Figure 1

+ Least Squares Loc4K) +
+

+ +Simplex2D

+The 2D simplex method, as its name implies, uses the Nelder-Mead Simplex optimisation algorithm +(available in the apache commons library ) to minimise the +chi squared +function, where the +chi squared is again the sum of the squared differences between the expected and +measured angles to any animal location. The difference between the Simplex and the Least Squares +method is that the Simplex method can handle large changes in vessel heading. To achieve this +however, the algorithm cannot calculate the animal position directly, but must use the Simplex +search method which tests many possible positions until it finds the one with the lowest +chi squared . While +more flexible than the Least Squares method, this inevitably takes considerably longer to execute. The errors calculated by this algorithm are derived from the uncertainty in position of each hydrophone element. These can be set in the hydrophone array manager window . +

+ + + +

Figure 2

+ Simplex 2D Loc(14K) +
+

+ +Simplex3D

+Simplex3D is the 3D version of the Simplex2D algorithm and a very fast 3D localiser. The errors calculated by this algorithm are also derived from the uncertainty in position of each hydrophone element. +

+ + + +

Figure 3

+ Simplex 2D Loc(14K) +
+

+ +MCMC

+MCMC is a 3D localisation algorithm based on Markov chain Monte Carlo methods. It is a very computationally intensive algorithm, however, shows the most accurate probability distribution of the source location. The algorithm is extremely sensitive to errors and has several settings which need changed depending on the range distribution of localisations. + +

+ + + +

Figure 4

+ Simplex 2D Loc(14K) +
+

The MCMC localiser uses the errors in hydrophone element positions set in the hydrophone array manager window and the expected error in the time delay measurements to calculate the likely probability distribution of the source location. The error in time delay measurements will generally come from cross correlating two digitised waves and for most species will be around 1 sample. For species, such as harbour porpoises, with narrowband clicks this error should be increased.

The time delay error and other settings for the MCMC localiser can be accessed from the MCMC 'Settings' tab in the model control panel.
+
+ + + + +

Figure 5

+ Simplex 2D Loc(14K) +
+ +

Time Error +

+Set the error in time delays. Generally this will be 1 sample although for narrowband species this should be set to around 5 samples. +

Max Jump Size +

+The length of each MCMC jump is a random number between 0 and Max Jump Size. If the jump size is set too low it will take the algorithm a long time to find the source location. If the jump size is set too high the probability distribution will not 'flesh out' properly. As a rule of thumb the maximum jump size should be 1/100 of the maximum expected detection range. +

Number of Jumps +

+The number of attempted jumps. The more jumps the longer the computation time. If the number of jumps is set too low the algorithm will not 'flesh out' the probability distribution of the source location properly and may not reach the source location at all. For 3D localisation without any additional parameters 250000 jumps is usually sufficient. +

Number of Chains +

+The number of Markov Chains used to localise. More chains means more accurate results and will also show whether there is a potential 3D ambiguity in the source location. Each chain runs on separate processor thread. +

Chain Start Dispersion +

+Each Markov chain begins in a random location. The maximum range of these random location is set by Chain Start Dispersion. Generally this should be the maximum detection range of the species in question. +

Cylindrical Co-Ordinates +
+Switching from a Cartesian to a Cylindrical Co-Ordinate system allows MCMC to flesh out circular probability distributions more efficiently.
+ +

Previous: Localising an Event

+

Next: Results

+ +

+ + diff --git a/target/classes/help/localisation/targetmotion/docs/targetmotion_LocalisationResults .html b/target/classes/help/localisation/targetmotion/docs/targetmotion_LocalisationResults .html new file mode 100644 index 00000000..e0b235c2 --- /dev/null +++ b/target/classes/help/localisation/targetmotion/docs/targetmotion_LocalisationResults .html @@ -0,0 +1,66 @@ + + + +Target Motion Overview + + +

Target Motion

+

Results

+
+ + +

Results are displayed at the bottom of the Target Motion Analysis window described in the Localising an Event section. Multiple localisation algorithms can be run from the Model Control panel populating the table with multiple results. The result which best fits the data is automaticaly selected by PAMGUARD however this can be manually changed by selecting one of the other result checkboxes.

+

+ + + + +

Figure 1

+ Result Table(14K) +
+ +

Table Columns +

+Model

+Shows the localisation algorithm used to calculate the result. + +

+Symb

+Shows the symbol used to represent the localisation result on the 2D Map. In the 3D Map the colour of this symbol is used for the for the result ellipse. +

+Side

+Some localisation algorithms will show two possible results. In the case of a paired array two results occur due to a left right ambiguity. +These are labelled 0 and 1.

+LatLong

+The latitude and longitude in decimal of the localised position. +

+Depth

+The depth of the localised source. For 2D algorithms this is -0.0. +

+Dist

+The distance (m) from the localised source position to the nearest point on the trackline. This is often referred to as perpendicular distance and is an important measurement in Distance sampling. +

+Error

+The error (m) of the perpendicular distance. +

+Chi2

+Chi squared value. A measure of how well the observed data fits the theoretical data. For example, referring to the Overview section, in the unlikely event that all the bearing lines cross at a single point then Chi2 will be very low. The greater the area over which the bearings cross the greater Chi2. +Chi2 is also a function of the measurement error. Assuming very low uncertainties in the position of the array will result in a much greater Chi2 whilst assuming larger uncertainties will reduce the final Chi2 value.

+p

p value.

+nDF

+ +Number of Degrees of freedom.

+AIC

+ +Akaike information criterion. A measure of the relative goodness of fit of the statistical model used to localise.

+millis

+The number of milliseconds required to compute the source location. + +


Previous: Target motion algorithms + + +


+

+ + + diff --git a/target/classes/help/localisation/targetmotion/docs/targetmotion_Localising.html b/target/classes/help/localisation/targetmotion/docs/targetmotion_Localising.html new file mode 100644 index 00000000..390eaca7 --- /dev/null +++ b/target/classes/help/localisation/targetmotion/docs/targetmotion_Localising.html @@ -0,0 +1,64 @@ + + + +Target Motion Overview + + +

Target Motion

+

Localising an Event

+
+ + +

PAMGUARD is capable of localising target motion data utilising multiple algorithms. In order to do so click trains must be marked out as described in the Click Detector Viewer Functions section. Once a click train has been marked as an event it can be localised either by right clicking on a click and selecting 'Localise Click Train idxxx' or selecting 'Target Motion Analysis..' from the 'Click Detection' drop down menu. This will open the target motion dialogue panel. +

+ + + + +

Figure 1

+ 2D Target Motion Example (14K) +
+ +

The Target Motion Analysis Panel consists of four sections.

+ +

Event Selection
+
+The Event Selection panel is located at the top of the Target Motion Analysis window. The drop down menu allows different events to be selected.The 'Run' and 'Run all' button will attempt to localise each event using the selected localisation algorithms. Once the localisation algorithm(s) have run the results can be saved into the current database using the 'Save' button, disregarded using the 'Keep Old' button, or disregarded and if there are previous results, deleted, from the database using the 'Set Null' button. +

+

Model Control
+
+Model control allows the selection of different localisation algorithms described in the Target Motion Localisation Algorithms section. By default no algorithms are selected. +

+

Map
+
The Map shows the trackline, bearing vectors to the source for each detected vocalisation and anylocalisation results. The Map can be switched between 2D and 3D views by selecting the 2D Map and 3D Map buttons at the top of the panel. +

+ + + + +

Figure 2

+ 2D Sperm Whale (14K) +
+ +
+ + + +

Figure 3

+ 3D Sperm Whale (14K) +
+ +
+
The 2D map shows a birds eye view of the event with ability to zoom using the mouse wheel and drag using either the left or right mouse buttons. Localisation results are represented as 2D symbols with a black line representing the perpendicular distance to the trackline. Figure 2 shows a 2D Map example of a sperm whale encounter with all four algorithms used to localise.

The 3D map is similar but with the ability to manipulate and rotate the map through three dimensions using the left mouse button. The 3D map also allows an intuitive display of the localisation errors calculated by each algorithm. Least Squares and Simplex2D/3D algorithms display the localisation results as translucent three dimensional ellipses with dimensions corresponding to the calculated localisation errors. For the MCMC algorithm each Markov chain is represented by a blue track showing an accurate probability distribution of the source location. Figure 3 shows the same encounter and localisation results as in Figure 2 but represented using the 3D map. A large MCMC probability distribution and Simplex3D ellipse show the likely source location in 3D with the 2D Simplex and Least Squares algorithms represented by yellow and black 3D ellipses on the sea surface.

Right clicking on either map will create a drop down menu with options to return the map to the original view, rotate by 90 degrees or change the length of the bearing vectors. +

+

Results
+
The results pane shows the localisation results for each attempted algorithm. The algorithm which best fits the data is automatically selected however this can be changed by selecting the checkbox of any other result. +The data from the selected result is saved to the connected database when the 'Save' button is pressed in the Event Selection panel. See the Target Motion Results section for a detailed explanation of the results table.

+ +

Previous: Target motion Overview


+

Next: Target motion algorithms + +


+ + + diff --git a/target/classes/help/localisation/targetmotion/docs/targetmotion_overview.html b/target/classes/help/localisation/targetmotion/docs/targetmotion_overview.html new file mode 100644 index 00000000..befc4a51 --- /dev/null +++ b/target/classes/help/localisation/targetmotion/docs/targetmotion_overview.html @@ -0,0 +1,141 @@ + + + +Target Motion Overview + + +

Target Motion

+

Overview

+
+ + + +

Target motion localisation is used to detect and localise + continuously vocalising cetaceans, usually clicking odontocetes. The + process requires a moving hydrophone array, usually towed by a vessel + and makes the assumptions that during a train of detected clicks the + acoustic source is stationary.

+

+ These help pages concern themselves mostly with offline + analysis of data using the PAMGuard + viewer. Those interested in real time / online tracking using the + PAMGuard click detector should refer to the Tracking + and Click Train Identification section in the Click + Detector section of the help. +

+

A towed array will detect a series of different clicks as it + moves through the water. The path of the array, often referred to as + the trackline, can be estimated by GPS units, accelerometers, + gyroscopes and/or heading sensors. If the source is assumed to be + stationary then each detected click corresponds to a set of time + delays at some position along the trackline. Each set of time delays + can be visualised as a 2D or 3D bearing, depending on the towed array, + pointing towards the acoustic source. As more clicks are detected more + bearings are calculated along the trackline and eventually they should + begin to cross around the likely location of the source.

+ +
+ + + + + + +
+

Figure 1

+
PopoiseClicks (14K)
+ +

Figure 1 shows an example of target motion data using a single + array of two hydrophones. Each detected click corresponds to a time + delay which restricts the source location to a hyperboloid surface. + Because the hydrophones are relatively close together this surface can + be approximated as a cone and for simplicity Figure 1 represents this + cone in 2D as a green and red bearing line. As the track line + progresses more clicks are detected and a possible source location can + be calculated. Figure 1 shows two possible source locations, where the + red lines cross and where the green lines cross. Errors in the + location of the array and the obviously incorrect assumption that the + vocalising cetacean remains stationary means that the bearings will + rarely cross at a single point. In the case of a paired array with a + completely straight trackline this will always give two possible + locations in 2D and a perfect circle of possible locations in 3D.

+

+ However there is often information which can be used to minimise these + errors. The trackline is rarely straight. It 'wobbles' constantly and + therefore breaks the symmetry which results in the circular + distribution of possible locations. This is evident in Figure 1 one + were the green bearings appear to cross through a more consistent + point compared the red bearings. The more the trackline deviates from + a straight line the more the ambiguity in position begins to break + down. Figure 2 shows a 3D localisation attempt of Figure 1 assuming a + relatively high uncertainty in the position of the array.
+

+
+ + + + + + +
+

Figure 2

+
PopoiseClicks (14K)
+ +

+ Here the high uncertainty in the position of array masks the small + wobble in the trackline and so a circular probability distribution + results. Note the cetacean is unlikely to be located above the sea + surface so a large chunk of this circular distribution can be + disregarded.

If the uncertainty in the position of + the array is reduced a different probability distribution results.
+

+
+ + + + + + +
+

Figure 3

+
TargetMotionPaired2 (14K)
+ +

Figure 3 shows the probability distribution calculated from ther + same data as in Figure 2 but assuming an almost perfect knowledge of + the array position corresponding to the path of the trackline. Here + the wobble in the trackline has resulted in a much tighter probability + distribution with the most likely location of the cetacean being + almost directly beneath the array.

+

Localisation results are therefore a combined product of the + expected uncertainties in measurements, the design of the towed array + and the degree to which the trackline deviates from a straight line. + PAMGUARD features multiple localisation algorithms which take all + these factors into account.

+ +
+

+ Next: + Localising an Event +

+ +
+

+ References

Detection of beaked whales using + near surface towed hydrophones: prospects for survey and mitigation J. + Acoust. Soc. Am. Volume 123, Issue 5, pp. 3774-3774 (2008)

+
+

+ + + + \ No newline at end of file diff --git a/target/classes/help/mapping/AIS/docs/AISConfiguration.html b/target/classes/help/mapping/AIS/docs/AISConfiguration.html new file mode 100644 index 00000000..0df182df --- /dev/null +++ b/target/classes/help/mapping/AIS/docs/AISConfiguration.html @@ -0,0 +1,31 @@ + + + +AIS Configuration + + + + +

AIS

+

AIS Configuration


+ +

+The AIS module requires an NMEA Data Source + configured to read AIS data via a serial port. +

+The normal baud rate for AIS receivers is 38400 bps. +

+To configure the AIS module, open the AIS configuration dialog from the Detection>AIS Ship Reporting menu +and select the correct NMEA data source. +


+ + AIS Options

+


+ If a database module is active in the PAMGUARD model, then AIS data will be logged to the database
+ +

+ +

AIS

+

AIS Display


+ +

+AIS Data can be displayed on the PAMGuard map. Vessels +are displayed along with an optional heading arrow. Hovering the mouse over a vessel will bring up a +window displaying further information about the vessel. +

+

+
+AIS Map Overlay
+

Options

+

AIS Display heading arrows and the track of each vessel can be +turned on and off from the AIS Display dialog which is accesed +from the Display>AIS Ship Reporting>Display Options menu command.



+
+AIS Map Options

+ +

A full list of recent AIS data can be viewed from the Display>AIS Ship Reporting>Show all Ship Data. +Note that so called "static" data, such as the vessel name, type, cargo and destination are transmitted +less often than position course and speed information. It is therefore not unusual to see AIS data items +which only have basic position information. Cargo and Destination information accuracy is also highly +dependent on each vessels master keeping that information up to date. + +

+

+


+ + \ No newline at end of file diff --git a/target/classes/help/mapping/AIS/docs/AISOverview.html b/target/classes/help/mapping/AIS/docs/AISOverview.html new file mode 100644 index 00000000..c5b8c2f4 --- /dev/null +++ b/target/classes/help/mapping/AIS/docs/AISOverview.html @@ -0,0 +1,42 @@ + + + +AIS Overview + + + + +

AIS

+

Overview

+
+ +

+The Automatic Identification System (AIS) is a system used by ships and vessel management services to identify +and locate ships. It is required on all commercial vessels of over 300 gross tons and all passenger vessels +irrespective of size, although many other vessels also use it. +

+Vessels equipped with an AIS tranceiver system regularly transmit their position, speed, course, +name, cargo and destination. +

+While AIS transceivers are expensive and must be registered with international shipping authorities, AIS receivers +which do not transmit, but can receive data from other vessels can be purchased for a modest price. +

+PAMGUARD can decode AIS data and use it in a number of ways, for example: +

    +
  1. +

    Display other vessels on the PAMGuard map

    +
  2. +
  3. +

    Display the locations of airguns on other vessels, which is particularly useful if + PAMGUARD is being operated from a guard vessel or during multi-vessel surveys when airguns + are in use on multiple vessels.

    +
  4. +
+ +

+

+

+

Airgun Display

+

Airgun Display Configuration


+ +

+The airgun display configuration dialog is accessed from the + Display>AIS Ship Reporting>Display Options... menu command. +

+Airgun Options

+ +

+ The two pieces of information required to correctly position the guns are

+

    +
  1. +

    The Source Vessel Identification
    + This is either the vessel PAMGUARD is running on, in which case + the gun position will be relative to the GPS receiver plugged into PAMGUARD, or it can be + another vessel in which case the guns' positions will be calculated relative to the + GPS receiver feeding the AIS transponder on that vessel. If the guns are on another vessel, you will need to know the vessel's + Maritime Mobile Service Identity (MMSI) number and input it to the + AIS Display dialog. You can get this either from the AIS data listed within + PAMGUARD, or ask the vessel's captain.

    +
  2. +
  3. +

    The location of the airgun array
    + This is in the form of two coordinates relative to the GPS receiver feeding + PAMGUARD or the GPS receiver feeding the AIS transponder on a different vessel.

    +
  4. +

+

 

+

Mitigation Zone

+

You may also enter a mitigation zone, which is a simple circle of fixed radius around + the airgun location. +

+

+You may also enter a predicted mitigation zone which will display the area on the PAMGUARD +map which will fall within the mitigation zone within the specified time period.

+ +
+ + +

+

Airgun Display

+

Map Display


+ +

+The airgun location will be displayed on the PAMGuard map. See +Map Overlays for +instructions on displaying overlays on the map. +

+AIS Options

+If more than one set of airguns are in use on the same or on multiple vessels, +it is possible to configure multiple airgun display modules, each set up +with the correct source vessel identification and dimensions. +


+ Multiple vessels and Airgun arrays during a wide azimuth seismic survey

+

+ AIS Options
+
+ + + +


+ + \ No newline at end of file diff --git a/target/classes/help/mapping/AirgunDisplay/docs/AirgunOverview.html b/target/classes/help/mapping/AirgunDisplay/docs/AirgunOverview.html new file mode 100644 index 00000000..a26e8328 --- /dev/null +++ b/target/classes/help/mapping/AirgunDisplay/docs/AirgunOverview.html @@ -0,0 +1,25 @@ + + + +Airgun Display Configuration + + + + +

Airgun Display

+

Overview


+ +

+During mitigation exercises, it is often required to know the locations of detections relative to an airgun array. +

+PAMGUARD can display the locations of airguns, and the extent of a specified mitigation zone around the guns. +

+Airgun locations can be set relative to the GPS receiver +of the vessel running PAMGUARD or relative to +the AIS data received from one or more different vessels.

+ + +

+


+ + \ No newline at end of file diff --git a/target/classes/help/mapping/AirgunDisplay/docs/images/AirgunOptions.png b/target/classes/help/mapping/AirgunDisplay/docs/images/AirgunOptions.png new file mode 100644 index 00000000..503a4cf8 Binary files /dev/null and b/target/classes/help/mapping/AirgunDisplay/docs/images/AirgunOptions.png differ diff --git a/target/classes/help/mapping/AirgunDisplay/docs/images/MultipleAirguns.png b/target/classes/help/mapping/AirgunDisplay/docs/images/MultipleAirguns.png new file mode 100644 index 00000000..1a5c532d Binary files /dev/null and b/target/classes/help/mapping/AirgunDisplay/docs/images/MultipleAirguns.png differ diff --git a/target/classes/help/mapping/AirgunDisplay/docs/images/SingleAirgun.png b/target/classes/help/mapping/AirgunDisplay/docs/images/SingleAirgun.png new file mode 100644 index 00000000..9fc0c49b Binary files /dev/null and b/target/classes/help/mapping/AirgunDisplay/docs/images/SingleAirgun.png differ diff --git a/target/classes/help/mapping/NMEA/docs/ClockOptions.html b/target/classes/help/mapping/NMEA/docs/ClockOptions.html new file mode 100644 index 00000000..f61029b2 --- /dev/null +++ b/target/classes/help/mapping/NMEA/docs/ClockOptions.html @@ -0,0 +1,38 @@ + + + +Clock Options + + + + +

NMEA

+

Update PC Clock

+


+ Accurate timing is critical to many survey and mitigation exercises.

+

+All timing within PAMGUARD uses the Universal Time Code (equivalent to GMT) which is read +from the PC clock.

+The PC Clock should be set from the GPS, which receives an accurate time stamp +from satellites.

+Select the menu Detection>GPS>Update PC Clock to open the dialog +

+Update Clock

+ +The upper text area shows the current PC time. When GPS data are received, the correct time +will be printed in the lower text area and you are given the option of setting the PC clock from +the GPS data. +

+Check "Auto set on PAMGUARD start-up" and the PC clock will automatically be set +from the GPS each time PAMGUARD starts. +

Time Zones

+

Note that PAMGUARD sets and reads the PC clock in such as way that the local time, + (for instance, as shown in the Windows task bar) may show a time different to UTC as governed + by the time zone and daylight savings settings of your computer. Don't worry - this is perfectly normal. + The correct UTC time as used by PAMGUARD is clearly visible on the GUI display. Setting the PC clock by hand + from the control panel is likely to set the incorrect UTC in the machine.

+

 

+

Previous: Configuring GPS

+


+ + \ No newline at end of file diff --git a/target/classes/help/mapping/NMEA/docs/ConfiguringGPS.html b/target/classes/help/mapping/NMEA/docs/ConfiguringGPS.html new file mode 100644 index 00000000..29bc1eda --- /dev/null +++ b/target/classes/help/mapping/NMEA/docs/ConfiguringGPS.html @@ -0,0 +1,89 @@ + + + +GPS Configuration + + + + +

NMEA

+

Configuring GPS Processing

+
+ +

Adding an GPS Processing Module

+

To add a new GPS Data Collection module to PAMGUARD, + select the File->Maps and Mapping->GPS Processing menu item.

+

+Note that it is only possible to have one GPS Processing module in PAMGUARD, so the menu +item will be greyed out if a module has already been added. + +

Setting the GPS Parameters

+ +

+From the Detection Menu, select GPS>GPS Options

+
+ +GPS Options
+ +

Select NMEA Data Source

+

Select the NMEA data source from the drop down list. If there are no NMEA Data Collection + modules in the current PAMGUARD model, you must close the GPS Options dialog and add one. + +

+

Main Navigation data string

+

A number of different NMEA Strings (or NMEA sentences) contain navigation data. The first five letters of each sentence identify the type of data in the rest of the sentence. The most common + sentences with GPS data are is GPRMC, but occasionally some GPS receivers may only output GPGGA data.

+

+On very rare occasions, if the GPS data have been multiplexed through some other instruments, the first +two characters of the string identifier are changed. If this is the case, it may also be necessary to set these +so that the GPS module can identify the appropriate data. + +

Read Options

+

Three options for reading and storing GPS data are available.

+

Read all GPS data: all GPS data will be used, however often they arrive (typically once per second).

+

Read at fixed time intervals: GPS Data will only be used at fixed time intervals (say 10s).

+

Read on timer or course of speed change: GPS data will be used at fixed time intervals or whenever the course or speed change.

+

The latter options minimises the amount of data stored when undertaking straight line transects. + PAMGUARD will interpolate between GPS positions, so it + is possible to set a relatively long time interval (say 1 minute) for regular reads, but data + will get read more often if there are course or speed changes. + +

+

Heading Data

+

A GPS receiver can only directly measure a vessels position in space. GPS receivers output +course information based on successive measurements of position. This course is therefore the +direction the vessel is moving in relative to the earth, which is not necessarily the direction +the vessel is pointing in. For instance, the vessel may be moving sideways in a cross current.

+

The course information from a GPS is generally referred to as Course Over Ground, or COG.

+

A number of options exist for reading the true heading of a vessel, i.e. the direction it is pointing in. +These are:

+
    +
  1. A gyro compass (Generally only available on larger vessels. Gives a heading relative +to true North)

  2. +
  3. A fluxgate compass (A cheaper options which measures the magnetic heading of the vessel)

  4. +
  5. A twin GPS heading sensor (Two GPS receivers close together. The relative positions of the +two receivers are accurate enough to give true heading

  6. +
+

Most of the above devices will output an NMEA string GPHDT which contains either the +true or the magnetic heading information, depending on the type of sensor.

+

PAMGUARD can read the GPHDT string and will add the heading information to the data from the +GPS receiver. The heading data are displayed on the map and are also written to the GPSData database +table

+

Heading Data
+

To read heading data, go to the Heading tab, check the 'Read heading data' check box. Then select the +NMEA data source. Note that with some NMEA installations, the heading data string may +be in the same multiplexed data as the GPS data, in others, it may be on a separate serial +data stream.

+ + +

Vessel Options

+

Clicking the vessel tab allows you to specify where the GPS receiver is on the vessel.

+

Vessel Options

+ Enter the ships dimensions and select an optional heading arrow to be shown on the map. These + parameters affect displays only and have no other effect on PAMGUARD operation.

+

 

+

Previous: Configuring NMEA

+

Next: Clock Options

+


+ + \ No newline at end of file diff --git a/target/classes/help/mapping/NMEA/docs/NMEAConnections.html b/target/classes/help/mapping/NMEA/docs/NMEAConnections.html new file mode 100644 index 00000000..435a62cf --- /dev/null +++ b/target/classes/help/mapping/NMEA/docs/NMEAConnections.html @@ -0,0 +1,51 @@ + + + +NMEA Connection + + + + +

NMEA

+

NMEA Connections

+ +

Often on larger boats, NMEA signals will be distributed by wire and available at several location.

+

Connection to a 9 pin serial connector is very simple. In a 9 pin D plug connect:

+
+

Pin 2 to NMEA Data in (Data Out form GPS or other NMEA device)

+

+ Pin 5 to Ground (usually the same wire as connects to the negative of the power supply) +

+
+

+It is not necessary to make any other connections. PAMGUARD does not send any data back to the GPS, +so connection of Pin 3 (NMEA Data Out) is not necessary. + +

Using Serial to USB converters

+

Most PC's no longer have a built in serial (RS-232) port. If you don't have a serial port, then + purchase a serial to USB converter. + Follow the manufacturers installation instructions for the converter + and once installed connect your NMEA device. Your device will appear in the NMEA configuration + dialog as a normal serial port. +

+

+Note that if you move the serial to USB converter to a different serial port, then your +operating system may re-install the drivers and assign a different serial port number, +in which case you will have to reconfigure the NMEA settings in PAMGUARD. + +
+

Using a USB GPS

+

Some GPS's have an USB connector instead of a serial one. In reality, the data are still + the same serial data as from a GPS with a serial output, but a USB to serial converter has been built + into the GPS. Therefore connect your GPS and install the manufacturers software drivers as you + would for a serial to USB converter described above. + +
+

+

Connecting one NMEA source to Multiple Computers

+

If you want to connect an NMEA device to multiple computers, then + it's generally possible to split an NMEA signal from a serial device and input it to + multiple serial ports. If you do do this, ensure that only pins 2 and 5 are connected.

+

Previous: Configuring NMEA

+ + \ No newline at end of file diff --git a/target/classes/help/mapping/NMEA/docs/Troubleshooting.html b/target/classes/help/mapping/NMEA/docs/Troubleshooting.html new file mode 100644 index 00000000..b690dfc0 --- /dev/null +++ b/target/classes/help/mapping/NMEA/docs/Troubleshooting.html @@ -0,0 +1,118 @@ + + + +GPS and NMEA Troubleshooting + + + + +

NMEA

+

GPS and NMEA Troubleshooting

+

Contents

+
    +
  1. I'm not getting any GPS Data

  2. +
  3. I can't find the right serial port

  4. +
  5. The GPS makes my mouse go crazy !

  6. +
  7. The GPS isn't outputting any data

  8. +
  9. All or some of the NMEA Strings are empty

  10. +
+ +

Answers

+ +

I'm not getting any GPS Data
+
+ There are several possible causes of this. Either the + GPS has no output, + the serial port is incorrectly configured, + there is a problem with + the antenna or there is a wiring problem + between the GPS and computer. +

+

[Back to the top]
+  

+

I can't find the correct serial port
+
+ If you have no serial ports or too many serial ports in the NMEA Configuration Dialog + and are using a serial to USB converter check that the drivers are + correctly installer. On Windows machines, look in the control panel for + unknown USB devices. If you're having trouble identifying the right + port, then it may be worth restarting PAMGUARD with and without the + converter plugged in to see which ports appear and disappear from the + list in the NMEA + Configuration Dialog. +

+

[Back to the top]
+  

+

The GPS makes my mouse/cursor go + crazy !
+
+ When a Windows PC starts up and a GPS or other NMEA device is + connected, the Plug and Play system thinks that a serial mouse or + trackball has been installed. The system then starts to interpret NMEA + messages as mouse movements. Your cursor seems to jump all over + the place and it becomes impossible to control your machine.

+

+ To solve this problem either temporarily or permanently, do one + of the following: +

+
    + +
+

[Back to the top]
+   +

+

The GPS isn't outputting any data
+
+ If you're convinced that the GPS is correctly connected any you still aren't getting any + data, then it's possible that the GPS has been configured to either not output data at all, + to output data in a different format or at a different baud rate. +

+

+ This is unlikely with marine GPS's, but many hand held devices are set to different + communications protocols. Refer to the manufacturers hand book (or jab about randomly at the + GPS's menu options) and set it to output data in NMEA 0183 format at 4800 baud. +

+

[Back to the top]
+  

+

All or some of the NMEA Strings are empty
+
+ If data are getting into the computer and you can see strings in the + NMEA Strings List which are + mostly lot's of ,,,,,,,, then + the most likely explanation is that you've no satellite signal. Check your antenna has a + clear view of the sky. If your GPS has only been switched on for a few minutes and has moved + a long distance since it was last switched on it may take some minutes to find satellites. + Refer to the manufacturers handbook for further information. +

+

+ [Back to the top]
+  

+ + \ No newline at end of file diff --git a/target/classes/help/mapping/NMEA/docs/configuringNMEADataSource.html b/target/classes/help/mapping/NMEA/docs/configuringNMEADataSource.html new file mode 100644 index 00000000..74128af5 --- /dev/null +++ b/target/classes/help/mapping/NMEA/docs/configuringNMEADataSource.html @@ -0,0 +1,101 @@ + + + +NMEA Configuration + + + + +

NMEA

+

Configuring the NMEA Data Source


+ +

PAMGUARD GPS & NMEA Overview

+

+GPS Data are output from GPS Receivers in National Marine Electronics Association (NMEA) format. NMEA format Data are also output by many other ships instruments, such as + wind instruments and echo sounder and also by AIS (Automatic Ship Identification) systems. +

NMEA is a standard specification for interface and data exchange between marine instruments. It allows ship's instruments to "talk to" each other and to computers. A good source for more detailed information is http://en.wikipedia.org/wiki/NMEA_0183 + +

+NMEA Data are generally sent in RS-232 protocols and can be input to a computer via a serial port. If your computer does not have a serial port (nowadays few laptops do), then it's generally possible to use a serial to USB to serial converter. +

+ +GPS data are fundamental to PAMGUARD in addition, several other useful data sources which may be useful to PAMGUARD may be available in an NMEA data string and several PAMGUARD module may need to access NMEA data. Thus, PAMGUARD has a module for accessing NMEA data and an additional module for GPS Processing which is dependent on an NMEA Acquisition module. + +

Adding an NMEA Data Collection Module

+

To add a new NMEA Data Collection module to PAMGUARD, + select the File->Maps and Mapping->NMEA Data Collection menu item.

+

Setting the NMEA Parameters

+

+From the Detection Menu, select NMEA Data Collection>NMEA Parameters

+


+ + NmeaParametersDialogue (17K)
+

+

 

+

There are two ways of reading NMEA data into PAMGUARD + +

+

Direct control of the Serial Port

+

This is by far the easiest and most sensible way of getting NMEA data into PAMGUARD.

+

+At present, Java does not provide direct serial port access. However, +PAMGUARD provides cross platform support for serial ports through the RXTX library. +

+In the NMEA Parameters dialog, select Serial NMEA data. +

Then, select the COM port that your NMEA equipment + is plugged into and the correct baud rate. +

+The standard baud rate for GPS is 4800 bps.

+The standard baud rate for AIS is 38400 bps.

+Some NMEA multiplexing devices may also use other baud rates. Refer to the equipment manual. + +

External NMEA Server

+

An alternative to direct control of the serial port is to use an external NMEA server program which + will read the serial port and send NMEA data to PAMGUARD using a network protocol (UDP). This method is only + ever used when also working with the IFAW Logger Software. + The IFAW NMEA server software, which is bundled with the IFAW Logger software + can simultaneously output NMEA data to both PAMGuard and to Logger. With + either server, the UDP Port number in PAMGUARD must match that in the NMEA server.

+

+ +

Simulated NMEA and AIS Data

+

PAMGUARD can also simulate NMEA GPS and AIS data. This is useful during training and setting up exercises. + GPS Data are simulated according to a user defined start position, course and speed. AIS data are sampled + from data collected in the English channel. +

+
+ + +

+

Checking the NMEA data source

+ +

To verify the NMEA data source, select Detection>NMEA Data Collection>NMEA Strings

+ +

This will show the NMEA Strings List Dialogue, an example of which is below.

+
+ +nmeaStringsListDialogue (17K)

+ +

This dialogue shows the current NMEA strings being acquired by PAMGUARD. +The update time and string ID are also shown. +In the example above, a GPRMC string has been acquired.

+ +

The "Last update" time should update according to the time and date on your GPS receiver, +or the simulated date if in simulation mode. +If this is not the case, please check all cables and connections and re-try. +If using the NMEA Server utility, check that the NMEA output strings are updating.

+ +


+ +

+

+

Hints and Solutions

+

Setting up NMEA isn't always as straight forward as it might be.

+

Some information on making connections to an NMEA signal can be found here.

+

Some troubleshooting FAQ's and solutions are here.

+

 

+

Next: Configuring GPS

+ +


+ + diff --git a/target/classes/help/mapping/NMEA/docs/images/GPSOptions1.png b/target/classes/help/mapping/NMEA/docs/images/GPSOptions1.png new file mode 100644 index 00000000..02f26ec1 Binary files /dev/null and b/target/classes/help/mapping/NMEA/docs/images/GPSOptions1.png differ diff --git a/target/classes/help/mapping/NMEA/docs/images/GPSOptions2.png b/target/classes/help/mapping/NMEA/docs/images/GPSOptions2.png new file mode 100644 index 00000000..17e8819b Binary files /dev/null and b/target/classes/help/mapping/NMEA/docs/images/GPSOptions2.png differ diff --git a/target/classes/help/mapping/NMEA/docs/images/GPSOptions3.png b/target/classes/help/mapping/NMEA/docs/images/GPSOptions3.png new file mode 100644 index 00000000..7769807a Binary files /dev/null and b/target/classes/help/mapping/NMEA/docs/images/GPSOptions3.png differ diff --git a/target/classes/help/mapping/NMEA/docs/images/NmeaParametersDialogue.png b/target/classes/help/mapping/NMEA/docs/images/NmeaParametersDialogue.png new file mode 100644 index 00000000..baac34ad Binary files /dev/null and b/target/classes/help/mapping/NMEA/docs/images/NmeaParametersDialogue.png differ diff --git a/target/classes/help/mapping/NMEA/docs/images/Updateclock.png b/target/classes/help/mapping/NMEA/docs/images/Updateclock.png new file mode 100644 index 00000000..c2e33322 Binary files /dev/null and b/target/classes/help/mapping/NMEA/docs/images/Updateclock.png differ diff --git a/target/classes/help/mapping/NMEA/docs/images/nmeaStringsListDialogue.png b/target/classes/help/mapping/NMEA/docs/images/nmeaStringsListDialogue.png new file mode 100644 index 00000000..4cc59199 Binary files /dev/null and b/target/classes/help/mapping/NMEA/docs/images/nmeaStringsListDialogue.png differ diff --git a/target/classes/help/mapping/mapHelp/JavaHelpSearch/DOCS b/target/classes/help/mapping/mapHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..d7970174 Binary files /dev/null and b/target/classes/help/mapping/mapHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/mapping/mapHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/mapping/mapHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..cd5f6eab Binary files /dev/null and b/target/classes/help/mapping/mapHelp/JavaHelpSearch/DOCS.TAB differ diff --git a/target/classes/help/mapping/mapHelp/JavaHelpSearch/OFFSETS b/target/classes/help/mapping/mapHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..f2daf13c --- /dev/null +++ b/target/classes/help/mapping/mapHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +%x: an?g `la0 \ No newline at end of file diff --git a/target/classes/help/mapping/mapHelp/JavaHelpSearch/POSITIONS b/target/classes/help/mapping/mapHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..eab8eeb1 Binary files /dev/null and b/target/classes/help/mapping/mapHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/mapping/mapHelp/JavaHelpSearch/SCHEMA b/target/classes/help/mapping/mapHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..4a368b0c --- /dev/null +++ b/target/classes/help/mapping/mapHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=195 id2=1 diff --git a/target/classes/help/mapping/mapHelp/JavaHelpSearch/TMAP b/target/classes/help/mapping/mapHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..50d09cf3 Binary files /dev/null and b/target/classes/help/mapping/mapHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/mapping/mapHelp/docs/MapOverlays.html b/target/classes/help/mapping/mapHelp/docs/MapOverlays.html new file mode 100644 index 00000000..924ef8b0 --- /dev/null +++ b/target/classes/help/mapping/mapHelp/docs/MapOverlays.html @@ -0,0 +1,47 @@ + + + +Map Overlays + + + + +

Map

+

Map Overlays


+ +

+PAMGUARD uses a system of overlays to display data from detectors and other PAMGUARD modules +on the map. Which overlay options are available will depend on which modules are +currently loaded. +

+

Turning overlays on and off

+

The easiest and quickest way to turn overlays on and off is from the map pop up menu, accessed + by clicking with the right mouse button anywhere on the map.
+
+ + Map Overlay Menu
+
+ You may select or de-select each overlay item. Selected items will appear on the map and be listed in + the map key. +

+

+Many types of data now have additional selection options which control exactly which data get displayed. +If additional options are available, the tick mark adjacent to selected items is replaced with a small button +. +

+

+For more advanced options, use the second item on the pop-up menu "Plot Overlay Options..." +to access the overlay options dialog.
+
+Map Overlay Dialog

+This allows the same selection of items as the pop-up menu, but also offers additional options to +specify for how long each type of data should be displayed. Again, data which have additional display options +will have a small button beside them . Click this button for options specific to +that type of data. + +

+

Map

+

Control Panel


+

Control Panel Items

+ + +

+The control panel on the upper right of the map allows the user to pan, zoom and rotate the map. +

+

+The table below provides a description of each button on the map control panel. +

+
+ +
+ + + + + + + + + + + + + + + + +
rotate the map clockwise

rotate map clockwise

zoom in

zoom in

orientate the map to the ship's heading

orientate map to ship's heading

rotate the map anti-clockwise

Pan up-Left

zoom out

zoom out

orientate the map to North

orientate map North

rotate the map anti-clockwise

Pan with mouse

zoom out

Measure with mouse

set map centre on ship

set map centre on ship

+ +


+

+The controls can be displayed or hidden using the map pop-up menu. +
+
+ +

+ +

Map

+

Display


+

Map

+ +

+The map provides a plan view of the survey area. The figure below is an example screen shot of the map in its simplest configuration. +

+

+ +map screenshot


+ +

+The vessel which hosts the GPS is indicated by a red icon and the course of the vessel, as derived from the GPS data, is indicated by the direction of the vessel icon.

+

+By default, when PAMGUARD starts up the vessel icon is placed in the centre of the map. Left clicking on the map allows the user to drag the map in the direction of the cursor. +

+

+The vessels recent track is indicated by a grey line.

+ +

Map Options

+

Selecting Map>Map options or right clicking anywhere on the map and selecting "Map Options" +allows the user to set the map lifetime i.e. + the length (in time) of the vessel track line and whether or not positions of hydrophones should be shown.

+map options

+

Other options include keeping the ship always on the map, keeping it centred and telling the map to rotate so that +the ships heading is always towards to top of the screen.

+

It is also possible to enable rotation of the map in three dimensions. Once enabled, hold the Shift key and drag the map with the +mouse to rotate.

+

+ +

Grid

+

Two grids are now available and can be selected by the user on the 'Grid' tab.

+map options

+ +

The default grid is lines of latitude (red) and longitude (blue). +The resolution of the latitude and longitude lines displayed is automatically set, +dependent on the map zoom factor. In the upper right hand corner of the map, a compass +icon indicates the rotation of the map. +

you can also display concentric rings centred about the ship.

+ +

+

Coast and Contour Files

+

+PAMGuard currently supports display of raster and contour files which can be exported from +the BODC website or the GEBCO software (Click here for information on making maps for PAMGuard).

+

Raster and contour maps can be selected independently and it's quite OK to have both - a raster map overlayed with contours.

+

Map files are selected on the third and fourth tabs of the map options dialog

+map options


+map options


+ + +
+
+

Map

+

Display panel


+

Overview

+ +

+The map information display panel provides the user with geographical position and range information. The figure below gives an example of the display. +

+
+map information display panel

+ +

GPS data

+

+Here, the latitude, longitude, time, date, true course and speed as derived from the ship's GPS are displayed. +

+

+The information area can be displayed or hidden using the map pop-up menu. +

+ +

Cursor Position

+

+The cursor position in latitude and longitude is displayed, by converting screen coordinates to real-world coordinates. +

+

+ The range and bearing from the ship's GPS to the cursor is also shown here. This will allow range estimates, for example, between the ship and areas where bearing lines cross. +

+
+ +

+

Other Measurements

+

+To measure between two arbitrary points on the map, press the 'Measure With Mouse' +button on the map control panel and drag the cursor across the screen. An additional +display panel will appear above the controls showing the range and bearing from where the mouse was +pressed down to where it has been dragged to. +

+Making a measurement with the mouse


+ +

+ + +

Map

+

Making Maps for PAMGUARD

+
+

PAMGuard now supports two types of map, raster maps and contour vector maps.

+
+

Raster Maps

+

Raster maps are the most easily accessible now that the GEBCO contour maps are no +long available (see below).

+

Raster maps can be created and downloaded from the +BODC website in NetCDF format.

+

On the BODC website, DO NOT download the global grid files, Scroll down to where you can select a user defined area, hold the Shift key and use +the mouse to select the area you're interested in then place an order for the data in "2D netCDF" format.

+

The maps typically have about a 400m resolution, so will look a bit grainy if you zoom in. +

You are also advised against making a map that is too large. Maps that are too large will be downsampled by PAMGuard, further +reducing their resolution. + +
+

Contour Maps

+

PAMGuard contour map files are text files that follow the same format for maps used by +the IFAW LOGGER  program.  These are based on the standard export files +from the GEBCO Digital Atlas. 

+

Sadly, the GEBCO digital atlas is no longer available, though many users will have old ascii contour files +or an old copy of the GEBCO CD's or DVD's which they can still use.

+

For more information on GEBCO +click here.

+

PAMGUARD contour map files consist of a series of datablocks each of which defines a +segment of depth contour (or coastline).  Within each  block the first +line specifies the contour identity  and the number of  latitude and +longitude values to follow. Subsequent lines are the latitude and longitude +values for the contour segment

+

      0     3    
+ -10.0261   39.7077
+ -10.0186   39.7119
+ -10.0261   39.7077
+     100     7    
+ -10.0000   39.7211
+ -10.0027   39.7252
+ -10.0186   39.7227
+ -10.0302   39.7177
+ -10.0358   39.7091
+ -10.0286   39.7044
+ -10.0000   39.7119

+

The example above shows two short datablocks
+ The first being three values for a section of coastline and the second being seven values on the 100m depth contour.

+


+ Preparing maps using the GEBCO  Centenary Edition Software

+

Run the GebcoCE program from the CD

+

(Note – some steps, can be very slow, especially if large amounts of data need to be read from he CD so patience may be required)

+

+

On the main panel ensure that decimal degrees DD are chosen

+

 

+

Create a Gebco Map

+

The first task is to create a map with the appropriate coverage and detail

+

Click  >Select>Chart Definition

+

Which will bring up the Chart Definition Dialogue

+

+


+ Open and modify the following tabs:

+

Data Source
+

+
+

Chart Series There are two sources of data on the CD. 
+ GEBCO which covers the whole world and IBCM which provides better detail and precision for the Mediterranean and Black Sea.

+


+ Gebco Coastline Resolution – allows different coastline resolutions to be chosen.  Generally the default (GEBCO) option is adequate

+
+

Contours  Allows the user to select contours to display and export

+

Area Allows the coverage of the chart to be specified.  If you don’t know this in advance click check the Use Zoom button and click Select Area.

+

This will allow the user to select the area from a small scale map using a zoom box

+

Choose an area somewhat larger than your requirements there will be an opportunity to amend this later.

+

 

+

Finer scale choice of area can be made by choosing   

+

Map> Zoom In > From Map
+(choose Map> Zoom Out to return to previous view)

+

Use the Display menu to fine-tune the data to be displayed (and exported)

+

>Display>Bathymetric Contours  to choose contours

+

>Display>Coastline to turn coastline on or off

+

>Display> Gridded Data to turn off display of Gridded Data

+

When you are happy with your map

+

>File> Export Data > Vector Data to export

+

+

In the Export dialogue choose ASCII as the format for export and specify a file name.

+

Cleaning up the ASCII File

+

The final step is to remove all the “>” symbols from the document.  This can be done using "find and replace" in a text editor

+

>     0     3    
+  56.3531   -3.2707
+  56.3573   -3.2443
+  56.3531   -3.2707

+

 

+

Save the file as a text file with an .asc extension and load it within PAMGUARD by clicking

+

Map>Map Options

+

 

+

Previous: Map Controls

+

 

+ + diff --git a/target/classes/help/mapping/mapHelp/docs/overview.html b/target/classes/help/mapping/mapHelp/docs/overview.html new file mode 100644 index 00000000..f967ea42 --- /dev/null +++ b/target/classes/help/mapping/mapHelp/docs/overview.html @@ -0,0 +1,53 @@ + + + +Map Overview + + + + +

Map

+

Overview

+ +

Map purpose

+ +

The primary purpose of the map is to provide detection and +localisation information graphically.
+
+The PAMGuard map should not, on any account, be +used as a tool for navigation.

+
+ +

Map tab panel

+ +

The map is viewed by clicking on the Map tab panel.
+
+map tab panel screenshot
+
+
+ +This tab display consists of the map itself (left), a map control panel +(upper right) and an information display (lower right). The main map +graphics are: labeled lines of latitude and longitude, an icon for the +vessel hosting the PAMGUARD GPS and depth/coast contours.
+
+Detection event graphics can be overlaid on the map by right clicking +and selecting the desired overlay type. Further map options can be set +from the Map menu item.

+ +

Map Comments

+

Annotations can be added to the map by double clicking anywhere with the +mouse.

A dialog will then appear with the time and position (latitude and +longitude) of where the mouse was clicked already filled in.

+
+map comment
+
+

The operator can then type in a comment which will be stored in the database +and a symbol will be displayed on the map, the comment being shown whenever +the mouse is hovered over the symbol.

+

+ +


+ + diff --git a/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/DOCS b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..8c93d0b9 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..f8b09762 --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1,2 @@ +eu_e0 +ª.  «0,®«0몪 ꪯ \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/OFFSETS b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..49a3390b --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +\ք 2ϓL@ \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/POSITIONS b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..5e40fa9f Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/SCHEMA b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..b03c452a --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=441 id2=1 diff --git a/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/TMAP b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..a24a9a4e Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/CopyingPrinting.html b/target/classes/help/overview/PamMasterHelp/docs/CopyingPrinting.html new file mode 100644 index 00000000..aaadf3a8 --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/CopyingPrinting.html @@ -0,0 +1,32 @@ + + + +Copying and Printing + + + + +

PAMGUARD

+

Copying and Printing


+

Copying

+ +

Information from any PAMGUARD display can be copied to the computer clip board in an +image format which can be directly pasted into many desktop publishing applications

+

To copy the contents of any of the tabs on the main display, right click on the tab +and select the 'copy tab content to clipboard' menu item. Then go to the application you want the image to +appear in. for most applications, you can select 'Paste' from the Edit menu or press Ctrl and V simultaneously.

+
+

Move Tabs

+

+ +

Printing

+

Direct printing has only been implemented for the PAMGuard map.

+

right click on the map and select 'Print map ...' at the bottom of the pop-up menu

+ + +

+ + + + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/ImportingModules.html b/target/classes/help/overview/PamMasterHelp/docs/ImportingModules.html new file mode 100644 index 00000000..d97158bd --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/ImportingModules.html @@ -0,0 +1,37 @@ + + + +Importing Modules + + + + +

PAMGuard

+

Importing Modules


+ +

+Settings for individual modules or groups of modules can be imported into a PAMGuard configuration from +other configurations on your system. To import modules from another configuration select +File>Import Modules...

+

A file open dialog will open where you can select the PAMGuard configuration file (.psf file) you wish to import +from.

+

+Once you've selected a psf file, a dialog will appear showing a list of modules in that file and giving you +options for importing those modules and their configurations into your current configuration. +

+ +

Importing Modules

+

+For each module right click on the right hand (Import Options) column for a drop down list of options. These will be to +not import the module, to overwrite the settings for an existing module or to create a new module. +

+

+Make your selections and press Ok. Settings will be imported and modules created. +

+

+ + + + + + diff --git a/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/DOCS b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/DOCS new file mode 100644 index 00000000..ee7f09d3 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/DOCS.TAB b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..54446abc --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +euu_jꪨȿ \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/OFFSETS b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..86fff6cf --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +,̀e+ \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/POSITIONS b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..d3b37183 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/SCHEMA b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..41f45ce5 --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=225 id2=1 diff --git a/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/TMAP b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/TMAP new file mode 100644 index 00000000..4627199c Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/addingRemovingPlugins.html b/target/classes/help/overview/PamMasterHelp/docs/addingRemovingPlugins.html new file mode 100644 index 00000000..d0ea479d --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/addingRemovingPlugins.html @@ -0,0 +1,41 @@ + + + +Adding and Removing Modules + + + + +

PAMGuard

+

Adding and Removing Modules


+

Adding a Module

+ +

+To add a PAMGuard Module, select +File>Add Modules...

+

This provides a drop-down list of the modules available in your version of PAMGuard. Select the module +type that you wish to add using your mouse.

+

+Alternatively, modules can be added using the PAMGuard Data Model view. To access this view, select File>Show data model.... +The data model view opens in a new window.

+

Right-click in an empty area of the this window. Select Add Modules... and the + drop down module selection menu appears. Again, click on the desired module to load it.

+

+After choosing your module, a dialogue box will appear prompting you to choose a name for the module. When you click OK, the +module will be loaded into PAMGuard. You can now view the module in the Data Model view. +

+ +

+

Removing/Re-naming a Module

+

Module removal and re-naming can be carried out using the File>Remove Modules... menu option, or by using the Data Model view. +In this view, right-clicking over the appropriate module's selector button provides a drop-down menu with options to remove or re-name the module.

+
+

Removing and Renaming a Module

+ +

+ + + + + + diff --git a/target/classes/help/overview/PamMasterHelp/docs/datastorage.html b/target/classes/help/overview/PamMasterHelp/docs/datastorage.html new file mode 100644 index 00000000..dcfc639b --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/datastorage.html @@ -0,0 +1,28 @@ + + + +Data Storage + + + + +

Data Storage

+

PAMGuard has two data storage options:

+
    +
  1. The Database
  2. +
  3. The Binary Store
  4. +
+

Each has advantages and disadvantaged.

+

The great advantage of the database is that stored data are generally in a form which is each to read either as a human, +or via some other software.

+

However, the database interface can be slow and the database is very inefficient at handling variable length records, such as the +waveform of a click, or the contour of a whistle.

+

The Binary store is fast and is great at handling any type of data, but the files are impossible to read except +with proprietary computer software

+ + + + + + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/datastorage2.html b/target/classes/help/overview/PamMasterHelp/docs/datastorage2.html new file mode 100644 index 00000000..0c21e08e --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/datastorage2.html @@ -0,0 +1,41 @@ + + + +Data Storage + + + + +

PAMGUARD

+

Data Storage

+

PAMGuard has two data storage options:

+
    +
  1. The Database
  2. +
  3. The Binary Store
  4. +
+

Each has advantages and disadvantages.

+

The great advantage of the database is that stored data are generally in a form which is each to read either as a human, +or via some other software. However, the database interface can be slow and the database is very inefficient at handling variable length records, such as the +waveform of a click, or the contour of a whistle.

+

The Binary store is fast and is great at handling any type of data, but the files are impossible to read except +with proprietary computer software. You can of course work out the format of these files by looking in the source code and we +hope in the future to release a suite of Matlab functions which can read the binary files.

+ +

Some modules can only write to the database and some only to the binary store. Some modules, on the other hand, offer the +choice of writing to both.

+

For all modules, the user can control whether or not data are stored in each location. This is controlled from +the File/Storage options menu. Selecting this menu command will bring up a dialog looking something like this:

+ +

Calibration

+

Although the exact appearance will of course depend on which modules are loaded.

+

Generally, you are advised to make sure that all data are being stored in at least one of the locations and you should +be aware that for data which have both options, it's quite possible that less data will be stored in the database than in the +binary store - for instance,the click detector does not store the click waveform in the database and the whistle detector +does not store the whistle contour in the database.

+ + + + + + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/guiOverview.html b/target/classes/help/overview/PamMasterHelp/docs/guiOverview.html new file mode 100644 index 00000000..62d7024f --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/guiOverview.html @@ -0,0 +1,58 @@ + + + +Graphical User Interface + + + + +

PAMGUARD

+

Graphical User Interface


+

Key Regions of the Graphical User Interface

+ +

+PAMGUARD features a dynamic, multi-panel user interface. The key regions of the interface are: +

+ +

+
+

Main menu

+

+

Main Menu

+

The menus in PAMGUARD are generally dynamic, i.e. items on the menus change +depending on the current user-selected view and/or plugins selected. +Most of the settings are accessible through the main menu items, although some actions are carried out exclusively through +mouse operations. +

+ +

+

Tabbed panel area

+

Tabbed Panel

+

The tabbed panel area gives access to the available plugin module views, by clicking on the appropriate tab. +As you change from one tabbed panel to the next, the menu and side panel items update accordingly. +

+ +

+

Side panel

+

Side Panel

+

The side panel allows you to view information from plugin modules, even when their tabbed panel are not selected.

+ +

+

Status panel

+

+The status panel is by default located at the bottom of the PAMGUARD window. This view provides information on +PAMGUARD's current status, for example, which sound card is running. +

+ + +

+ + +


+ + diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/DataMap.png b/target/classes/help/overview/PamMasterHelp/docs/images/DataMap.png new file mode 100644 index 00000000..8bce3d98 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/DataMap.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/ModelViewer.png b/target/classes/help/overview/PamMasterHelp/docs/images/ModelViewer.png new file mode 100644 index 00000000..fe06ca10 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/ModelViewer.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/MoveTabs.png b/target/classes/help/overview/PamMasterHelp/docs/images/MoveTabs.png new file mode 100644 index 00000000..72b061ab Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/MoveTabs.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/MultiThreadingDialog.png b/target/classes/help/overview/PamMasterHelp/docs/images/MultiThreadingDialog.png new file mode 100644 index 00000000..d2ffc4f8 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/MultiThreadingDialog.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/Observers.png b/target/classes/help/overview/PamMasterHelp/docs/images/Observers.png new file mode 100644 index 00000000..da911fb1 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/Observers.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/Scroller.png b/target/classes/help/overview/PamMasterHelp/docs/images/Scroller.png new file mode 100644 index 00000000..73194876 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/Scroller.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/ScrollerOptions.png b/target/classes/help/overview/PamMasterHelp/docs/images/ScrollerOptions.png new file mode 100644 index 00000000..af78f1af Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/ScrollerOptions.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/SettingsImport.png b/target/classes/help/overview/PamMasterHelp/docs/images/SettingsImport.png new file mode 100644 index 00000000..2de50011 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/SettingsImport.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/mainMenu.png b/target/classes/help/overview/PamMasterHelp/docs/images/mainMenu.png new file mode 100644 index 00000000..14636d45 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/mainMenu.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/removeRenameModule.png b/target/classes/help/overview/PamMasterHelp/docs/images/removeRenameModule.png new file mode 100644 index 00000000..0b82b0df Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/removeRenameModule.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/sidePanel.png b/target/classes/help/overview/PamMasterHelp/docs/images/sidePanel.png new file mode 100644 index 00000000..46fd1a72 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/sidePanel.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/startupDialog.png b/target/classes/help/overview/PamMasterHelp/docs/images/startupDialog.png new file mode 100644 index 00000000..33827f8c Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/startupDialog.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/storageoptions.png b/target/classes/help/overview/PamMasterHelp/docs/images/storageoptions.png new file mode 100644 index 00000000..336ad082 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/storageoptions.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/tabbedPanel.png b/target/classes/help/overview/PamMasterHelp/docs/images/tabbedPanel.png new file mode 100644 index 00000000..cf444fa4 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/tabbedPanel.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/viewTimes.png b/target/classes/help/overview/PamMasterHelp/docs/images/viewTimes.png new file mode 100644 index 00000000..be30bac5 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/viewTimes.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/xmloutput.png b/target/classes/help/overview/PamMasterHelp/docs/images/xmloutput.png new file mode 100644 index 00000000..b5787f55 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/xmloutput.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/images/xmlpreview.png b/target/classes/help/overview/PamMasterHelp/docs/images/xmlpreview.png new file mode 100644 index 00000000..eb13f3e9 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/docs/images/xmlpreview.png differ diff --git a/target/classes/help/overview/PamMasterHelp/docs/mixedMode.html b/target/classes/help/overview/PamMasterHelp/docs/mixedMode.html new file mode 100644 index 00000000..5ede588b --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/mixedMode.html @@ -0,0 +1,68 @@ + + + +Mixed Mode Operation + + + + +

PAMGUARD

+

Mixed Mode Operation

+

Overview

+

+PAMGUARD Mixed Mode is used to re-analyse data stored in audio files off-line.

+When running in mixed mode, the PAMGUARD clock is set from the time in the name of the file and +the current position within a file of audio data.

+GPS data is read back from the database in synch with the PAMGUARD clock and sent into +the PAMGUARD system exactly as though it was being collected in real time.

+Any localisations calculated by PAMGUARD will therefore be based on the correct GPS data +for the time at which the event occurred. +

+The overall look of PAMGUARD is also identical to that experienced during real time operation at sea. +

+New detections and localisations are written to the database. +GPS data recycled through the system are not re-written to the database. + +

Starting PAMGUARD Mixed mode operation

+

+PAMGUARD Mixed mode can be started from the shortcut to PAMGUARD mixed mode placed on your system when +you installed PAMGUARD. +

+If you are using one of the platform independent jar files, then run the jar file with the +program argument -m. For instance, +under Windows, the command line for starting PAMGUARD Beta version 1.3.02 in mixed mode with 1 Gigabyte of memory +is:

+

java -jar -mx1024m PamguardBeta_1_3_02.jar Pamguard -m

+ + +

Running PAMGUARD Mixed Mode

+

When PAMGUARD starts in Mixed mode, it will not ask for a psf file, but will instead ask for +a database file to open.

+You must select a database which was previously filled with data from PAMGUARD. +

+As with Viewer mode, PAMGUARD will read it's configuration settings +from the database and not from a psf file. +

+Configure the sound +acquisition module to take data either from a file or a file +folder. +

+When you start PAMGUARD, there may be a pause of a few seconds as GPS and other data are extracted from +the database. +

+Including a +sound output module in your model will enable you to hear the sounds and will also control the speed +of analysis so that data are analysed in real time. +

+If you do not include a +sound output module, data will be processed as fast as the machine is able. GPS data will however remain +fully synchronised with the audio data. + + +

+

+ +


+ + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/modelViewer.html b/target/classes/help/overview/PamMasterHelp/docs/modelViewer.html new file mode 100644 index 00000000..accdcb5f --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/modelViewer.html @@ -0,0 +1,94 @@ + + + +Model Viewer + + + + +

PAMGUARD

+

PAMGUARD Data Model Viewer

+


+ The user can configure multiple PAMGUARD modules in any number of ways, depending on the application. + To assist the operator to apreciate how the different modules are connected and how data flows between + them, the Data Model Viewer shows a graphical depiction of PAMGUARD Modules and the processes and + data within them.

+

+The model viewer is opened from the File>Show Data Model menu command. +

+

Model Viewer


+

+In this example, eleven modules are being used in the following ways: + +

    + +
  1. NMEA Data Collection
    + Acquires NMEA data from both GPS and AIS receivers (the data are + multiplexed in the AIS receiver).  

  2. + +
  3. AIS Processing
    + Takes NMEA data, identifies AIS strings and unpacks the data in them.  

  4. + +
  5. GPS Processing
    + Takes NMEA data, identifies GPS strings and unpacks the data in them.  

  6. + +
  7. Map
    + The Map display.  

  8. + +
  9. ODBC Database
    + Controls writing of navigation and detector data to a database.  

  10. + +
  11. User Input
    + Provides a form for the user to type in comments.  

  12. + +
  13. Sound Acquisition
    + Acquires audio data in real time from a sound card.  

  14. + +
  15. FFT (Spectrogram) Engine
    + Takes audio data from the Sound Acquisition module, and then computes + FFT's of blocks of data.  

  16. + +
  17. SpectrogramSmoothing
    + Takes the spectrogram data and smoothes it through convolution with a Gaussian kernel.  

  18. + +
  19. Whistle Detector
    + Searches for dolphin whistles in the smoothed spectrogram data.  

  20. + +
  21. Click Detector
    + Searches for sperm whales and other odontocete clicks in teh raw audio data + from the sound acquisition module.  

  22. + +
+ +

For each module, PAMGUARD processes are shown in red. Some modules contain multiple processes. + The percentage of available CPU power being used by each process is shown just to the right of + the red box. Clicking on the red box with the right mouse button will often bring up a menu of + options controlling that process. +

+

+Below each process there are one or more grey boxes. These represent data streams within +PAMGUARD. Data held within data streams may be of many kinds: blocks of raw audio data from +the sound card, units of GPS data, and detected clicks and click trains are just examples. +The number to the right of each grey box shows the number of data units currently held in memory +for each data stream. +

+Only the main data flows from data streams to PAMGUARD processes are shown by the arrows. So for example, although the +database will be monitoring and receiving data from all data streams, yet no arrows are shown going into the +database process. +

+Clicking on one of the grey data streams will bring up a window showing the full list of +subscribers to that data stream. +

+

Subscribers


+

+The window also shows for how long the subscribing module requires the data to be held in memory and also how much CPU the subscriber processes are using. +

+Right clicking on blank space in the Model Viewer brings up a menu from where the user can add and remove PAMGUARD modules. +

+
+

+ +


+ + + diff --git a/target/classes/help/overview/PamMasterHelp/docs/modules.html b/target/classes/help/overview/PamMasterHelp/docs/modules.html new file mode 100644 index 00000000..0ed2e9ed --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/modules.html @@ -0,0 +1,1292 @@ + + + +PAMGUARD Modules + + + + +

PAMGUARD

+

PAMGUARD Modules

+ +

PAMGUARD contains of an ever growing number of plug-in modules, + each of which performs some sort of data handling task. Individual + modules may do anything from acquiring sound data, to managing a + database or searching for a particular sound type. Generally, every + module will acquire data either from another module, or through some + external interface (such as a sound card, GPS or depth sensor + readout). The output of a module may be a display, more data or both. + A single module may have multiple output data streams. For instance, + the sound acquisition module primarily outputs raw audio data to other + PAMGUARD modules, but also outputs data providing a record of when + sound acquisition was started and stopped which can be stored in the + database.

+ +

PAMGUARD currently contains 41 plug-in modules which can be + selected and configured by the user (See the table below). It is + generally possible to create multiple instances of a given module + type. For instance, the operator may wish to incorporate two click + detectors, each optimised for a different species, or have two sound + acquisition modules, one acquiring low frequency data and one high + frequency data. For certain module types (e.g. GPS acquisition), the + user may be restricted to having a single instance.

+ +

We are constantly developing new modules for PAMGuard. The table + also includes some information on modules which we're working on at + the moment. Due to PAMGuard being open source, there may of course be + other modules under development we don't yet know about.

+ +

+ Last updated 27 November, 2014

Maps and + Mapping
Utilities
Sensors
Displays +
Sound Processing
Detectors
Classifiers +
Localisers
Visual Methods +

+

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModuleData InputOutputInstancesFunctionStatus
Maps and + Mapping
+

+ + NMEA data collection +

+
+

Serial port or server

+
+

Strings of NMEA data

+
+

Any

+
+

Acquire NMEA data for use by other modules.

+
+

Core

+
+

+ GPS + Processing +

+
+

NMEA data

+
+

GPS locations

+
+

0-1

+
+

Identified GPS data and unpacks NMEA strings

+
+

Core

+
+

+ Map +

+
+

GPS and all detectors

+
+

+ Map graphics panel
map comments +

+
+

Any

+
+

Displays vessel location and data from other modules.

+
+

Core

+
+

+ AIS + Processing +

+
+

NMEA data

+
+

Ship locations

+
+

0-1

+
+

Unpacks AIS data

+
+

Core

+
+

+ Airgun + display +

+
+

GPS or AIS Data

+
+

Graphic overlay for map

+
+

Any

+
+

Displays the locations of airguns and mitigation zones + referenced to either the PAMGUARD vessel or some other vessel + broadcasting Its position over AIS.

+
+

Core

+
+

Fixed Landmarks

+
+

Manual input

+
+

Fixed points on map

+
+

Any

+
+

Place object symbols on the PAMGUARD map.

+
+

Beta

+
+

+ WILD + ArcGIS Interface +

+
+

None

+
+

NMEA strings

+
+

0-1

+
+

Outputs an NMEA string via the serial port for interfacing + to other software

+
+

Beta

+
Utilities
+

+ Database +

+
+

Multiple modules

+
+

Database

+
+

0-1

+
+

Stores data from multiple modules in a Microsoft Access, + MySQL or ODF(Beta) database

+
+

Core

+
+

+ Binary + Storage +

+
+

Multiple modules

+
+

Binary data files

+
+

0-1

+
+

Stores data from multiple modules in a proprietary data + format

+
+

Core

+
+

+ Data + Map +

+
+

Multiple modules

+
+

None

+
+

0-1

+
+

+ Provides an overview of all data in Viewer + Mode +

+
+

Core

+
+

+ User + Input +

+
+

User comments

+
  +

0-1

+
+

Time stamps and stores any comment entered by the user

+
+

Core

+
+

+ Aural + Listening Form +

+
+

Things heard by the operator

+
  +

Any

+
+

Time stamps and stores lists of things heard by an operator + monitoring hydrophones aurally.

+
+

Core

+
+

+ + Alarms +

+
+

Any

+
+

Multiple possibilities of Actions

+
+

Any

+
+

Alarms can be used to alert the operator to specific events

+
+

Beta

+
Sensors
+

+ Hydrophone Depth + Readout +

+
+

Analogue depth sensors

+
+

Depth data

+
+

0-1

+
+

Depth data are displayed on screen, used in real time to + update hydrophone locations and sent to the database.

+
+

Core

+
+

+ Array Accelerometer +

+
+

Analogue acceleration sensors

+
+

Orientation data

+
+

0-1

+
+

Data from accelerometers are used in real time to + update hydrophone orientations and sent to the database.

+
+

Beta

+
+

Angle Measurement

+
+

Fluxgate World shaft encoder

+
+

Shaft angles

+
+

Any

+
+

Reads angles from a Fluxgate World shaft angle encode. (Can + be used to read angle of binocular stands).

+
+

Beta

+
Displays
+

+ User + Display Panel +

+
  +

Displays

+
+

Any

+
+

Provides a container for spectrogram and radar like + displays. Data from detectors can be overlaid on top of these + displays.

+
+

Core

+
+

+ + Local Time +

+
   +

Any

+
+

Adds a small side panel showing the Local Time from the + computer (all other PAMGuard times are in UTC)

+
+

Beta

+
+

+ + Level Meters +

+
+

Sound Acquisition

+
+

Display in Side-bar

+
+

Any

+
+

Adds a small side panel showing the Level from the Sound + Acquisition Module

+
+

Beta

+
Sound + Processing
+

+ Sound + Acquisition +

+
+

Sound cards, audio files and other acquisition devices.

+
+

Packed chunks of raw audio data

+
+

Any

+
+

Controls a data acquisition device and passes it's data on + to other modules

+
+

Core

+
+

+ Sound + Output +

+
+

Audio data

+
+

Output to the system sound card

+
+

Any

+
+

Outputs audio data through a sound card so it can be + listened to on headphones

+
+

Core

+
+

+ FFT + (Spectrogram) Engine +

+
+

Audio data

+
+

FFT Data

+
+

Any

+
+

Computes spectrograms (Fourier transforms of multiple + overlapping chunks of audio data).

+
+

Core

+
+

+ + Filters (IIR and FIR) +

+
+

Audio data

+
+

Audio data

+
+

Any

+
+

Filters audio data using either Butterworth of Chebyshev + filter.

+
+

Core

+
+

+ Decimator +

+
+

Audio data

+
+

Audio data

+
+

Any

+
+

Filters and reduces the sample data of audio data

+
+

Core

+
+

+ Sound + Recorder +

+
+

Audio data

+
+

Wav of Aif files

+
+

Any

+
+

Writes audio data to file. Recording may be initiated by the + operator or triggered by a detector or make regular recordings + according to some set cycle.

+
+

Core

+
+

+ Clip + Generator +

+
+

Audio data

+
+

Short clips of sound

+
+

Any

+
+

Stores short clips of sound either in wav files or binary + files

+
+

Beta

+
+

+ Signal + Amplifier +

+
+

Audio data

+
+

Audio data

+
+

Any

+
+

Amplifies audio data by some scaling factor (can invert data + if required)

+
+

Core

+
+

+ Patch + Panel +

+
+

Audio data

+
+

Audio data

+
+

Any

+
+

Mixes data between multiple channels, changes channel + ordering, etc.

+
+

Beta

+
+

+ Spectrogram + smoothing kernel +

+
+

FFT Data

+
+

FFT Data

+
+

Any

+
+

Smoothes a spectrogram by convolving it with a Gaussian + smoothing kernel.

+
+

Core

+
+

+ Seismic + Veto +

+
+

FFT and raw data

+
+

FFT and raw data

+
+

Any

+
+

Detects very loud sounds using an in band energy detector + and replaces these with randomly generated coloured noise based on + recent measurements of the local noise field.

+
+

Core

+
+

Noise Monitor

+
+

FFT data

+
+

Noise Measurements

+
+

Any

+
+

Measures noise in predefined frequency bands (e.g. thrid + octave).

+
+

Beta

+
+

+ + Noise Band Monitor +

+
+

Audio data

+
+

Noise Measurements

+
+

Any

+
+

An alternative method of measuring noise in octave and third + octave bands which can work over a wider frequency range than the + Noise Monitor module

+
+

Dev'

+
+

+ + Filtered Noise Measurements +

+
+

Audio data

+
+

Noise Measurements

+
+

Any

+
+

Measures noise relative to an arbitrarily shaped filter band + (e.g. the hearing response of a particular species)

+
+

Dev'

+
+

+ Long + Term Spectral Average +

+
+

FFT Data

+
+

Averaged FFT Data

+
+

Any

+
+

Measures and stores averaged FFT data over extended time + periods (several minutes). USeful for generating a good overview + of a dataaset.

+
+

Dev'

+
+

+ + Envelope Tracing +

+
+

Audio data

+
+

 

+
+

Any

+
+

This module allows you to drop the frequency of ultrasonic + transient sounds into the audio band.

+
+

Dev'

+
Detectors
+

+ Click + Detector +

+
+

Audio Data

+
+

Detected Clicks

+
+

Any

+
+

Searches for transient sounds, attempts to assign species, + measure bearings to source, group into click trains, etc.

+
+

Core

+
+

+ Whistle + and Moan Detector +

+
+

FFT Data

+
+

Whistle and Moan Contours

+
+

Any

+
+

Searches for tonal noises. Measures bearings and locations + of source. Replaces older Whistle Detector

+
+

Core

+
+

+ Whistle + Detector +

+
+

FFT Data

+
+

Detected Whistles

+
+

Any

+
+

Searches for tonal noises. Measures bearings and locations + of source.

+
+

Core

+
+

Ishmael Energy Sum

+
+

FFT Data

+
+

Detected sounds

+
+

Any

+
+

Detects sounds with energy in a specific frequency band

+
+

Core

+
+

Ishmael Spectrogram Correlation

+
+

FFT Data

+
+

Detected sounds

+
+

Any

+
+

Detects sounds matching a user defined 'shape' on a + spectrogram

+
+

Core

+
+

Ishmael Matched Filtering

+
+

Audio Data

+
+

Detected Sounds

+
+

Any

+
+

Detects sounds using a user defined matched filter.

+
+

Core

+
+

+ Likelihood + Detector +

+
+

Audio Data

+
+

Detected Sounds

+
+

Any

+
+

An implementation of a likelihood ratio test. Suitable for + detecting both short duration Odontocete clicks (Sperm, Beaked, + etc.) and moderate duration Mysticete calls (Humpback, Bowhead, + etc.)

+
+

Core

+
+

Right Whale Edge Detector

+
+

FFT Data

+
Right whale detections +

Any

+
+

+ Searches for right whale upsweep calls using methods described in + Gillespie, D. (2004). “Detection and + classification of right whale calls using an edge detector + operating on a smoothed spectrogram,” Canadian Acoustics 32, + 39–47. +

+
+

Dev'

+
Classifiers
+

+ Whistle + Classifier +

+
+

Detected Whistles

+
+

Species probabilities

+
+

Any

+
+

Analyses multiple whistle contours and uses a discriminant + analysis function to assign to species.

+
+

Beta

+
+

+ Rocca +

+
+

FFT Data

+
Species Classes +

Any

+
+

The Rocca species classifier is used to assign dolphin + whistles selected by an operator to species. To do this it uses a + Random Forest classifier trained with known samples from each + species.

+
+

Beta

+
Localisers +
+

Ishmael Locator

+
FFT Data / User inputLocated soundsAnyLocates sounds extracted either from areas marked out on a + spectrogram display or using output from a detectorCore
+

+ + Multipath 3D Localiser +

+
Detected ClicksLocated soundsAnyLocates sounds detected by the click detector using surface + echo's to obtain slant angles and generate a 3-D location.Core
Visual + Methods
+

+ Video + Range +

+
+

Captured video images

+
+

Ranges to Sightings

+
+

Any

+
+

Calculates ranges based on angles measured from video, + observer height and earth radius.

+
+

Core

+
+

+ Logger + Forms +

+
+

None

+
+

Manually input data

+
+

0-1

+
+

+ Replicates the functionality of User Defined Forms in the IFAW + Logger software. +

+
+

Beta

+
+ +

Core = Included in Core and Beta Releases; Beta = Included in + Beta release only; Dev' = Module under development

+
+ + + + +
+
+ + + diff --git a/target/classes/help/overview/PamMasterHelp/docs/multipleDisplays.html b/target/classes/help/overview/PamMasterHelp/docs/multipleDisplays.html new file mode 100644 index 00000000..4dc4c4ec --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/multipleDisplays.html @@ -0,0 +1,43 @@ + + + +Multiple Displays + + + + +

PAMGUARD

+

Multiple Displays


+

Overview

+ +

To make the information displayed by PAMGUARD easier to see you can create multiple graphics frames each + displaying the tab panels from one or more plug in module.

+

+For instance, you may want to put the map onto a separate frame and arrange your desktop so that you can +view detector output in one frame and the map in another. +

+This is particularly useful if you have more than one monitor attached to your computer. +Most Laptops and other computers support multiple monitors. (See your computer's help files or manual for +further information.) + +

Creating frames

+

To create a new graphics frame, simply right click on one of the tabs in the + PAMGUARD GUI and from the menu, either move the tab to another +already existing GUI frame or create a new one. +

+

Move Tabs

+

+If an additional GUI frame is closed, it's tabs will automatically be transferred back to the main GUI frame. +

+If the main GUI frame is closed, PAMGUARD will exit. +

+Additional frame configuration information is not currently stored when PAMGUARD exits. + + + +

+

+ + + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/multithreading.html b/target/classes/help/overview/PamMasterHelp/docs/multithreading.html new file mode 100644 index 00000000..3de0341d --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/multithreading.html @@ -0,0 +1,48 @@ + + + +Multi-threading + + + + +

PAMGUARD

+

Multi-threading

+


+ PAMGUARD can operate in either a single thread mode, or a multi-thread mode. +

+

+ In multi-thread mode, each process within each PAMGUARD module operates in a different + processing thread, which basically allows several processes to take place at once in a multiprocessor computer. +

+

+ In single thread mode, actions take place one at a time as data propagates through PAMGUARD. +

+

+ The advantage of multi-thread operation is that the different tasks will spread between + multiple processing cores on the computer, thereby gaining access to more processing power. +

+

+ In single thread operation, only a single processing core will be used, so less processing + power is available. +

+

+ Multi-threading may introduce instability in some modules, where certain processes have to happen + in a certain sequence, so although multi-threading is usually preferable, single thread + operation is maintained as an option.

+

Turning multi-threading on and off

+

Multi-threading can be turned on and off from the Detection>Multi-threading menu command.

+
+
Main Menu

+

You can also set the amount of "jitter" between threads. This is the maximum amount of data +that can be queued between two threads. If the data queue exceeds this time, then the earlier +thread will wait until the second thread has processed some of the data in the queue.

+

More jitter allows more flexibility between threads which can allow PAMGUARD to use multiple +processor cores more efficiently. However, increased jitter can cause a loss of synchronisation +between the processing, graphics output and sound play back

+

+
+

+ + + diff --git a/target/classes/help/overview/PamMasterHelp/docs/normalMode.html b/target/classes/help/overview/PamMasterHelp/docs/normalMode.html new file mode 100644 index 00000000..09a03329 --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/normalMode.html @@ -0,0 +1,53 @@ + + + +Normal Operation + + + + +

PAMGUARD

+

Normal Operation

+

Overview

+

+During normal operation, PAMGUARD collects data in real time via sound cards, GPS feeds, etc. +

+The data are processed in real time by the PAMGUARD modules and summary information +is displayed on the PAMGUARD GUI and / or written to the PAMGUARD database. + +

+

Running PAMGUARD

+

+(If you're reading this, you've probably already worked this out !) +

+If you've used one of the platform dependent installers, then you should +start PAMGUARD from one of the shortcuts placed in your system menus. This will +check that you have a compatible JAVA virtual machine installed and will allocate +additional memory. +

+If you are running one of the platform independent jar files, then you should +tell the JAVA virtual machine to allocate as much memory as possible. For instance, +under Windows, the command line for starting PAMGUARD Beta version 1.3.02 with 1 Gigabyte of memory +is:

+

java -jar -mx1024m PamguardBeta_1_3_02.jar Pamguard

+ +

The PSF File

+

+PAMGUARD saves it's configuration between runs in PAMGUARD Settings Files (.psf). +

+Each time you start PAMGUARD a dialog will open asking you to select the psf file +you want to use.

+

Start Dialog


+

Either select a recently used psf from the drop down list or press the browse button +to select a psf file stored elsewhere on your system. +

+Sample psf files may be downloaded from the www.pamguard.org web site. + + +

+

+ +
+ + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/pamGuardArchitecture.html b/target/classes/help/overview/PamMasterHelp/docs/pamGuardArchitecture.html new file mode 100644 index 00000000..b599a192 --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/pamGuardArchitecture.html @@ -0,0 +1,57 @@ + + + +PAMGUARD Architecture + + + + +

PAMGUARD

+

PAMGUARD Architecture


+ +

+Central to the software design is a flexible core architecture which allows the integration of a range of additional plugins. +This provides you with flexibility, allowing you to tailor PAMGUARD to your particular PAM operation. +

+

+Key elements of the PAMGUARD Core Functionality are: +

    +
  1. GUI Framework for PAMGUARD displays and configuration options

  2. +PAMGUARD is an interactive cetacean detection and tracking environment with a variety of +displays used both to configure and to display the output of a wide variety of detectors, mapping +tools and sound processing modules.

    +
  3. Data manager and profiler

  4. +

    A typical PAMGUARD configuration will contain many data processing modules which produce many +different types of data. The Data Manager handles all types of data, making data available +to multiple displays and processes and also handling deletion and clean up of data from memory. It +will also tell you how much computer power each process is using

    +

  5. Hydrophone array configuration and location manager

  6. +

    PAMGUARD contains a sophisticated hydrophone array manager, which can manage towed hydrophones, +rigidly mounted hydrophones and fixed (i.e. bottom mounted) arrays.

    +

  7. Configuration and settings manager

  8. +

    The configuration manager offers an easy to use graphical depiction of loaded PAMGUARD modules and +the data flow between them. Configurations are stored in a format which can easily be sent between +users or downloaded from the Internet.

    +

  9. Help manager

  10. +

    PAMGUARD contains comprehensive online help. If you're reading this, then you've already found it, so press on ...

    +

+ + +

The extensible nature of PAMGUARD allows developers to easily add to PAMGUARD's functionalities. For instance, + a developer who wishes to make a detector that requires spectrogram data as input can subscribe to an existing + module that computes FFT's and spectrogram information, which in turn will make use of PAMGUARD's sound acquisition + modules to read data from a sound card, file, or some other input device. The PAMGUARD data manager and GUI will then + display and store output data from their detector with a minimum of programming effort through the use of standardised + detection and data handling class structures. + +

+ + + +

+ + + +


+ + diff --git a/target/classes/help/overview/PamMasterHelp/docs/pamGuardQuickStartGuide.html b/target/classes/help/overview/PamMasterHelp/docs/pamGuardQuickStartGuide.html new file mode 100644 index 00000000..b87e862a --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/pamGuardQuickStartGuide.html @@ -0,0 +1,28 @@ + + + +Quick Start Guide + + + + +

PAMGUARD

+

Quick Start Guide


+

Installation

+ +

+This assumes that you have successfully installed PAMGUARD and started the application. +If this is not the case, please see the PAMGUARD Installation Guide included in the program download. +

+ + + +

TO BE COMPLETED

+ +

+ + + + + + diff --git a/target/classes/help/overview/PamMasterHelp/docs/pamguardBackground.html b/target/classes/help/overview/PamMasterHelp/docs/pamguardBackground.html new file mode 100644 index 00000000..2b0134e3 --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/pamguardBackground.html @@ -0,0 +1,46 @@ + + + +PAMGUARD Background + + + + +

PAMGUARD

+

PAMGUARD Overview


+

Background

+ +

+The PAMGUARD project was established to provide a world standard software infrastructure for acoustic detection, +localisation and classification for use in mitigating against the risk of harm to marine mammals, and for research into their abundance, +distribution and behaviour. Many marine activities involve underwater sound emissions. To mitigate against harm to marine mammals, +observers are often employed to visually scan the sea surface for the presence of animals. +In the event of a sighting, procedures such as suspension/delay of activities may be implemented to avoid harm. +Visual observations play a vital role, but marine mammals are difficult to spot on the sea surface, +especially when weather and light conditions are poor. However, many marine mammals produce loud and distinctive vocalisations, +which can often be detected more reliably than visual cues. +For these species, passive acoustic monitoring (PAM) offers an effective means of detection. +

+

+

The PAMGUARD Approach

+ +

+ +PAMGUARD seeks to provide open-source PAM software based on a platform-independent (e.g. Windows, Linux, Macintosh OS), +flexible, modular architecture. The open-source aspect of software development is facilitated through the project's presence on SourceForge, +where a community of altruistic developers can provide extra resources. This community currently includes developers with proven +PAM experience from both the UK and the USA. Open development means that the software is free and that access to the code is easy and assured. +It also allows the code's copyright to be protected in perpetuity so that it cannot readily be closed and commercialised to the detriment of its users. +It ultimately ensures that more people have easy access for development. +This generally speeds up innovations and improves the performance and maintainability of the code.

+

+It is anticipated that the PAM community will support this initiative and donate their intellect and facilities to assist +PAMGUARD in achieving its goal. Involvement in the PAMGUARD community allows researchers and industry to develop and contribute +to a technology which will provide an important tool for the understanding and protection of the marine environment. + +

+ + + + + diff --git a/target/classes/help/overview/PamMasterHelp/docs/performanceTests.html b/target/classes/help/overview/PamMasterHelp/docs/performanceTests.html new file mode 100644 index 00000000..ac6daa5b --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/performanceTests.html @@ -0,0 +1,39 @@ + + + +Performance Tests + + + +

PAMGUARD

+

Performance Tests


+

PAMGUARD puts a heavy load on the machine it's running on

+

Machine performance is dependent not just on the CPU speed but also on +things like the quality of the graphics card and the types of hard drive

+

The PAMGUARD team are developing a set of performance tests which can be run +from within PAMGUARD to assess the likely performance of different platforms

+ +

Running the performance tests

+

+Open the performance tests dialog from the Help>System performance +Tests menu

+

Press the 'Start tests' button

+ +

Interpreting the output of the performance tests

+

These tests are currently under development and more information will +be provided within the performance tests dialog in the near future

+

As a general guide:

+

Test 3 the Double precision number crunching, should execute in +less than 700 ms.

+

Test 4 directly drawing dots on the screen should take around 400 - 500 ms

+

Test 5 drawing dots using a buffered image should take < 100 ms

+

Test 6 drawing dots using a callback function should take less than 700 ms

+

These numbers are very preliminary and are based on tests carried out on a Dell Latitude D830 +laptop with an Intel Core Duo CPU T9300 @2.5GHz with 3.5 GB of RAM. This machine runs PAMGUARD very well.

+ + +
+ + + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/viewerMode.html b/target/classes/help/overview/PamMasterHelp/docs/viewerMode.html new file mode 100644 index 00000000..3daf824c --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/viewerMode.html @@ -0,0 +1,81 @@ + + + +PAMGUARD Viewer + + + + +

PAMGUARD

+

PAMGUARD Viewer

+

Overview

+

+The PAMGUARD viewer can be used to view data stored in the PAMGUARD +database and the binary storage system

. +

Some viewer operations, such as the spectrogram display also load and re-process small amounts of raw audio data +from sound files (if available).

+ +

Starting PAMGUARD Viewer

+

+The PAMGUARD viewer can be started from the shortcut to PAMGUARD Viewer placed on your system when +you installed PAMGUARD. +

+If you are using one of the platform independent jar files, then run the jar file with the +program argument -v. For instance, +under Windows, the command line for starting PAMGUARD Beta version 1.3.02 in viewer mode with 1 Gigabyte of memory +is:

+

java -jar -mx1024m PamguardBeta_1_3_02.jar Pamguard -v

+ + +

Running PAMGUARD Viewer

+

When PAMGUARD starts in Viewer mode, it will not ask for a psf file, but will instead ask for +a database file to open.

+Normally, you should select a database which was previously filled with data from PAMGUARD. However, if data were +collected using only Binary Storage, then +open a blank database and ignore any warning messages. +

+When running in normal mode, PAMGUARD writes settings to a table in the database and Viewer mode will +read the settings back from the database.

+This ensures that the PAMGUARD configuration you are viewing will be compatible with the data in the +database.

+ +

For more information on how to begin your analysis go to Click Viewer Overview.

+

+

Data Scrolling

+

It is not possible to load entire large data sets into the Viewer since the program will run out of memory. +On the other hand, it is inefficient to continually be loading data for display whenever the operator scrolls back or forth by a +few seconds.

+

The PAMGUARD viewer therefore uses a sophisticated double scroll system in which an outer scroller controls the loading of data into +memory and an inner scroller moves through that data. For example, when viewing clicks with the click detector, an operator will probably want to +load about 30 minutes of data at a time, but may only view minutes or seconds of those loaded data as they make a detailed analysis of the clicks.

+

Exactly which options are available on individual displays with PAMGUARD can vary. However, the functionality will generally be +a subset of that in the click detector:


+ +

Image


+

+

The main part of the scroller (taking up most of the space on the left) +is an ordinary scroll bar which allows you to navigate through loaded data.

To the right are a pair of blue +arrow buttons with a downward arrow button between them. The blue buttons are used to load the next section of data (e.g. to jump forward +or backward half an hour).

+

Click on the downward pointing arrow to display other options:

+

Image


+

+

Options include the start time of the loaded data, the time period of the loaded data and the percentage movement forward +or backward when the blue arrows are pressed. (In the example above, 30 minutes of data are loaded, and there is a 75% step size, so the +blue arrows would move forward or backward by 22.5 minutes).

+

Right click on the downward arrow for an option to couple all scrollers in all PAMGUARD modules.

+ +

The number in the right hand box shows the duration of data actually displayed in the window (120 seconds in the example). This can be changed by typing +a new number or by using the tiny up and down arrow in the right of the edit box.

+ +

To assist in navigating through large data sets, the +Data Map module will +always be added to the PAMGUARD model when operating in Viewer mode.

+ +
+ + +


+ + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/docs/xmloutput.html b/target/classes/help/overview/PamMasterHelp/docs/xmloutput.html new file mode 100644 index 00000000..b5978ac2 --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/docs/xmloutput.html @@ -0,0 +1,58 @@ + + + +XML Configuration Output + + + +

XML Configuration Output

+

Overview

+

The XML settings output functions allow the user to save PAMGuard settings to XML files. for technical reasons, +these do not contain every last setting that controls PAMGuard, so cannot (currently) replace the psf settings system. +the XML files can only be written by PAMGuard and cannot be read back into PAMGuard. They +can however be used to provide a more human readable record of changing configurations during a PAMGuard operation.

+

Future developments may extend this system to write settings to the front of binary files and even to an external +XML based database system. Currently however, it is only possible to create XML files. These can be created manually, +or automatically every time that PAMGuard starts.

+ +

Control

+

XML output is controlled from the File/XML Configuration Output menu command

+ +
Model Viewer


+

Module Selection

+

Select to output all PAMGuard modules, a single module, or 'up to a selected module' (for example +if you selected the click detector, in this case it would write out settings for the acquisition module +as well as the click detector)

+

Output non-module data

+

Not all settings are associated with a PAMguard module, for instance display settings, or the settings controlling +the XML writer itself. Select if you want these settings written as well as module settings

+

Include class constants

+

These are internal parameters used by PAMGuard that cannot be changed by the user. Generally, you'll +probably no want to output these

+

Write parameter names

+

Parameters in the XML output are identified by the variable name used in the JAVA source code. Often it's +easy for the user to work out how these relate to the controls they see in the PAMGuard control dialog. Select +this option to also write out a more user friendly name of the type that would appear in the dialogs. (Note +that this feature has not yet been implemented for most parameters)

+

Write parameter tips

+

Write longer tool tips for each parameter (Note +that this feature has not yet been implemented for most parameters).

+ +

Output Options

+

File Name

+

By default, a manually output XML file will be written to the folder or directory holding the psf file and will +have a datestamp added to it's name. If you want to write to a different location, press the Browse' button

+

Automatic XML file generation

+

The option to 'Write settings file whenever PAMGuard starts. will write all module settings to an XML file +every time that PAMGuard starts. If Binary Storage + is being used, then XML file will be written to the folder containing the binary data. If binary Storage is not used, then the + file will be written to the folder containing the psf file.

+ +

Preview

+

Press the preview button to see the XML output before it is written to file. This is a good +way to see the effect of the various options described above

+
Model Viewer


+

+ + + \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/searchDb/DOCS b/target/classes/help/overview/PamMasterHelp/searchDb/DOCS new file mode 100644 index 00000000..520d416b Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/searchDb/DOCS differ diff --git a/target/classes/help/overview/PamMasterHelp/searchDb/DOCS.TAB b/target/classes/help/overview/PamMasterHelp/searchDb/DOCS.TAB new file mode 100644 index 00000000..71aa501c --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/searchDb/DOCS.TAB @@ -0,0 +1,2 @@ +euuu0/0 +0/껌+ꪾꪪꫪ \ No newline at end of file diff --git a/target/classes/help/overview/PamMasterHelp/searchDb/OFFSETS b/target/classes/help/overview/PamMasterHelp/searchDb/OFFSETS new file mode 100644 index 00000000..0a02184c Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/searchDb/OFFSETS differ diff --git a/target/classes/help/overview/PamMasterHelp/searchDb/POSITIONS b/target/classes/help/overview/PamMasterHelp/searchDb/POSITIONS new file mode 100644 index 00000000..c96c2a17 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/searchDb/POSITIONS differ diff --git a/target/classes/help/overview/PamMasterHelp/searchDb/SCHEMA b/target/classes/help/overview/PamMasterHelp/searchDb/SCHEMA new file mode 100644 index 00000000..0aadc4f7 --- /dev/null +++ b/target/classes/help/overview/PamMasterHelp/searchDb/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=268 id2=1 diff --git a/target/classes/help/overview/PamMasterHelp/searchDb/TMAP b/target/classes/help/overview/PamMasterHelp/searchDb/TMAP new file mode 100644 index 00000000..7fc6f115 Binary files /dev/null and b/target/classes/help/overview/PamMasterHelp/searchDb/TMAP differ diff --git a/target/classes/help/overview/annotations/docs/annotations.html b/target/classes/help/overview/annotations/docs/annotations.html new file mode 100644 index 00000000..25dbd8ff --- /dev/null +++ b/target/classes/help/overview/annotations/docs/annotations.html @@ -0,0 +1,57 @@ + + + +Data Annotation + + + + +

Data Annotation

+

Overview

+ + +

PAMGuard contains many different types of detector, most of which have their own unique set of output data which get stored either + in the Binary Store or in the Database.

+

However, many types of data will have common measurements or manually entered comments associated with them. Since PAMGuard version 2.00.00 + these have been organised into Data Annotations.

+

Annotations are built in as fixed parts of some PAMGuard modules. Within other modules, the user is presented with a list of data annotations + they wish to select for the particular task they are configuring.

+

The selectable data annotations framework is only fully implements for the + Group Detection Localiser but + is likely to extend to other modules in the near future.

+

Modules employing the user selectable annotations framework may only offer a subset of the full list of + annotations, depending on the compatibility of the annotation with the type of data generated by the module.

+
+ +

Annotation Data Storage

+

Most annotations are currently configured to save their data by adding additional columns to pre-existing database tables storing the output of + particular modules in the PAMGuard Database. + Future releases may also add annotation data to the Binary data store.

+ +

Data Annotation Types

+

Sound Measurements

+

There are currently three annotation types which measure or act on sound data. These are:

+
    +
  1. SNR Measurement. Measures Signal to Noise Ratio.
  2. +
  3. SPL Measurement. Measures Sound Pressure Level.
  4. +
  5. WAV File. Creates a WAV file clip.
  6. +
+

These are only currently used built into larger modules

+ +

User Input

+

There are two annotation types which invite the user to enter additional input to describe something they are observing on the PAMGuard Display. These are:

+
    +
  1. Text Annotations. Allows a simple line of text to be entered.
  2. +
  3. User Form Annotations. Allows the design and use of a more complex data entry form.
  4. +
+ +

Localisation

+

There is currently a single annotation type which adds localisation information to data. This is:

+
    +
  1. Target Motion Annotations. .
  2. +
+ + + + diff --git a/target/classes/help/overview/annotations/docs/images/loggerannotation1.png b/target/classes/help/overview/annotations/docs/images/loggerannotation1.png new file mode 100644 index 00000000..231d8781 Binary files /dev/null and b/target/classes/help/overview/annotations/docs/images/loggerannotation1.png differ diff --git a/target/classes/help/overview/annotations/docs/images/loggerannotation2.png b/target/classes/help/overview/annotations/docs/images/loggerannotation2.png new file mode 100644 index 00000000..a800d6ce Binary files /dev/null and b/target/classes/help/overview/annotations/docs/images/loggerannotation2.png differ diff --git a/target/classes/help/overview/annotations/docs/images/textannotation.png b/target/classes/help/overview/annotations/docs/images/textannotation.png new file mode 100644 index 00000000..3ba49f8a Binary files /dev/null and b/target/classes/help/overview/annotations/docs/images/textannotation.png differ diff --git a/target/classes/help/overview/annotations/docs/images/tmoptions1.png b/target/classes/help/overview/annotations/docs/images/tmoptions1.png new file mode 100644 index 00000000..46a316d1 Binary files /dev/null and b/target/classes/help/overview/annotations/docs/images/tmoptions1.png differ diff --git a/target/classes/help/overview/annotations/docs/images/tmoptions2.png b/target/classes/help/overview/annotations/docs/images/tmoptions2.png new file mode 100644 index 00000000..166bc0c6 Binary files /dev/null and b/target/classes/help/overview/annotations/docs/images/tmoptions2.png differ diff --git a/target/classes/help/overview/annotations/docs/loggerannotation.html b/target/classes/help/overview/annotations/docs/loggerannotation.html new file mode 100644 index 00000000..cd7c099b --- /dev/null +++ b/target/classes/help/overview/annotations/docs/loggerannotation.html @@ -0,0 +1,42 @@ + + + + +Logger Form Annotation + + + +

Logger Form Annotation

+

Overview

+ +

Logger Form annotations can be used to design complex data entry forms with multiple input controls in which the user can +enter additional data. For further details see the Help for Logger Forms.

+

Logger forms can be very simple, for instance containing a single drop down list of species for the user to select, or may have many dozens of +different data entry fields.

+

It is not necessary to add a Logger Forms module to PAMGuard in order to use Logger Forms as annotations.

+

Usage

+

Configuring

+

Any module using Logger Forms annotations will offer a way of configuring those forms +(see Detection Group Localiser for an example). +When you enter the configuration for the forms you will first be +presented with a dialog allowing to select and existing form or to create a new one.

+
+
+

One you have selected / created the form of your choice, you can edit the form by pressing the "Edit Form" button. This will display a dialog from the Logger Forms +system which enables you to interactively add and remove controls from the form.

+
+
+

Alternately you can directly edit the Logger UDF_ table in the database.

+

See Designing Logger Forms for further information

+ +

Data entry

+

When required the form will appear on the screen. The user should enter data as required by the form and press Ok, or press Cancel if +they do not wish to add any new data.

+ +

Stored Data

+

Multiple columns will added to output database tables. One for each data entry field in the selected form.

+ + + + \ No newline at end of file diff --git a/target/classes/help/overview/annotations/docs/targetmotionannotation.html b/target/classes/help/overview/annotations/docs/targetmotionannotation.html new file mode 100644 index 00000000..7529fd3a --- /dev/null +++ b/target/classes/help/overview/annotations/docs/targetmotionannotation.html @@ -0,0 +1,35 @@ + + + + +Target Motion Annotation + + + +

Target Motion Annotation

+

Overview

+

The Target Motion annotation can be used with the Detection Group Localiser +to automatically localise detections which +have been grouped by the user by estimating the most likely crossing point of bearing lines from those individual detections.

+

The Target Motion Annotation system uses the same algorithms as the real time Target Motion Analysis system +in the click detector.

+ +

Usage

+ +

Configuring

+

Any module using Target Motion annotations will offer a way of configuring the Target Motion analyser. +(see Detection Group Localiser for an example). +When you enter the configuration for the Target Motion analyser you will be +presented with a dialog allowing to select the Target Motion Algorithm and other options.

+
+
+

When data are added to an "event" or "group" the selected Target Motion Analysis algorithms will run on the data to compute the most likely +crossing point of all the bearing lines. This location or locations will be saved to the database and will also be displayed on the PAMGuard map.

+ +

Stored Data

+

Several columns are added to database tables to provide the results of the Target Motion analysis and an estimate on the errors on resulting locations.

+

If there is a left-right ambiguity in the bearings from the data input to the Target Motion analysis, then two sets of possible localisations will be +generated ans stored.

+ + \ No newline at end of file diff --git a/target/classes/help/overview/annotations/docs/textannotation.html b/target/classes/help/overview/annotations/docs/textannotation.html new file mode 100644 index 00000000..3c80b065 --- /dev/null +++ b/target/classes/help/overview/annotations/docs/textannotation.html @@ -0,0 +1,23 @@ + + + + +Text Annotation + + + +

Text Annotations

+

Overview

+

Text annotations store a single line of text entered by the user. The length of text that can be entered is currently set by the +programmer.

+

Usage

+

When required a small dialog box will appear on the screen. The user should enter text and press Ok, or press Cancel if +they do not wish to add any text.

+
+
+ +

Stored Data

+

A single data field using a name given to the annotation by the programmer (generally 'text' or 'notes') will be added to database tables.

+ + \ No newline at end of file diff --git a/target/classes/help/overview/uid/docs/images/RepairTool.png b/target/classes/help/overview/uid/docs/images/RepairTool.png new file mode 100644 index 00000000..aa7cfe01 Binary files /dev/null and b/target/classes/help/overview/uid/docs/images/RepairTool.png differ diff --git a/target/classes/help/overview/uid/docs/images/RepairWarning.png b/target/classes/help/overview/uid/docs/images/RepairWarning.png new file mode 100644 index 00000000..7ad35ec6 Binary files /dev/null and b/target/classes/help/overview/uid/docs/images/RepairWarning.png differ diff --git a/target/classes/help/overview/uid/docs/uid.html b/target/classes/help/overview/uid/docs/uid.html new file mode 100644 index 00000000..8319354f --- /dev/null +++ b/target/classes/help/overview/uid/docs/uid.html @@ -0,0 +1,55 @@ + + + +Unique Data Identifiers + + + + +

Unique Data Identifiers (UID's)

+

Overview

+ +

A New system of uniquely identifying individual PAMGuard data units was introduced in Version 1.16.00.

+

The system of Unique Identifiers (UID's) makes it easier to identify individual data units on the different + PAMGuard displays and to link to data when manipulating it with other software such as Matlab.

+

Introducing the UID system involved significant changes to both the the PAMGuard binary file system and to + the PAMGuard database. Older datasets will be automatically updated to the new format which is NOT BACKWARDS COMPATIBLE.

+

You are therefore strongly advised to back up databases and binary files before attempting to use the new version.

+ +

Stored Data

+

In the PAMGuard database, all entries will have an additional UID column.

+

In the binary store, all data units will contain an additional UID field in general header data for each data unit.

+

In the binary store the UID's are stored as a 64 bit integer. In the database the UId's will be stored as a 64 bit + integer if the underlying database supports 64 bit integers, otherwise they will be stored as a 32 bit integer. + 32 bit integers allow for up to 2 billion individual UID's which will be more than enough for any reasonable amount of data. There + are a small number of very special circumstances where we think that 64 bit storage will be necessary, for instance the monitoring + of fixed hydrophone installations over periods of many years.

+ +

New data

+

UID's will automatically be added to any new data collected with PAMGuard version 2.00.00 or later.

+ +

Converting old data

+

If older data, collected with versions prior to 1.16.00 are opened with a version supporting UID's, then a + dialog will be shown to inform you that you need to make the data conversion. If you don't want to convert, then + press 'Cancel' and exit PAMGuard immediately.

+
+AUID Warning +
+
+

If you do decide to proceed with the conversion, the the UID Repair tool Dialog will be shown. +For safety, binary data will be copied to a new folder as the conversion takes place. By default, +this will be the old folder name with "_withUID" appended to the folder name. You can change the +new binary storage folder if you wish to at this point. If you still +want to proceed, press OK and wait.

+
+AUID Warning +
+
+

Conversion of a large dataset can take several hours. The time taken will depend on how much data there is, but also + how many click events have been marked in the click detector. These pose a particular problem for conversion since the + same UID has to be written to both the binary files and the OfflineClicks database table.

+

When conversion is complete, it's generally a good idea to restart PAMGuard to ensure that all + datamaps are correct

+ + diff --git a/target/classes/help/pamHelpStylesheet.css b/target/classes/help/pamHelpStylesheet.css new file mode 100644 index 00000000..e2174daf --- /dev/null +++ b/target/classes/help/pamHelpStylesheet.css @@ -0,0 +1,66 @@ +BODY { + BACKGROUND-COLOR: FFFFFF +} +H1 { + FONT-FAMILY: Arial; + FONT-SIZE: 22; + COLOR: #6698FE; + BACKGROUND-COLOR: #DCFEEC; + margin-bottom: 0 +} +H2 { + FONT-FAMILY: Arial; + FONT-SIZE: 20; + COLOR: #6698FE; + BACKGROUND-COLOR: #CBDAEB; + margin-top: 5; +} +H3 { + margin-top: 5; + FONT-FAMILY: Arial; + FONT-SIZE: 18; + COLOR: #6698FE; +} + +H4 { + margin-top: 5; + FONT-FAMILY: Arial; + FONT-SIZE: 14; +} + +H5 { + FONT-FAMILY: Arial; + FONT-SIZE: 14; + font-style: italic; + font-weight: normal; +} + +p { + FONT-FAMILY: Arial; + FONT-SIZE: 14; + margin-top: 0; + margin-left: 0; + margin-bottom: 11 +} +ul { + FONT-FAMILY: Arial; + FONT-SIZE: 14; + +} +ol { + FONT-FAMILY: Arial; + FONT-SIZE: 14; + +} +img.wrap {float: left} + +table, th, td { + border: 1px solid black; + border-collapse: collapse; +} +th, td { + padding: 3px; +} +tr { + text-align: center; +} \ No newline at end of file diff --git a/target/classes/help/sensors/analogarray/docs/analogarray.html b/target/classes/help/sensors/analogarray/docs/analogarray.html new file mode 100644 index 00000000..027a743b --- /dev/null +++ b/target/classes/help/sensors/analogarray/docs/analogarray.html @@ -0,0 +1,63 @@ + + + +Analog Array Sensors + + + + +

Analog Array Sensors

+

Overview

+ + +

The Analog Array Sensors module can be used to measure the depth, pitch, + roll and heading of a hydrophone array.

+ +

With simple line arrays, knowing the precise orientation of the + array is probably not necessary. However as more users move towards + using multi-channel, multi-dimensional hydrophone arrays in order to + determine animal locations in three dimensions, knowing the + orientation of array sections becomes increasingly important.

+ +

+ Three axis accelerometers are readily available at low cost. This module can + be used with any sensors that have an analog voltage or current output. Analog devices have + the advantage over digitital devices in that they don't introduce electrical noise into + the hydrophone signals. If you are interested in digital accelerometers (e.g. in a fully + digital array) then please contact the PAMGuard development team. +

+

+ The system will allow for one set of sensors per hydrophone streamer. Depth and + orientation data will be applied to all hydrophones within that streamer. +

+ +

+ Two different types of data acquisition devices are currently supported:

+ + +

+ Depth, Heading, Picth and Roll information is passed to the + hydrophone array manager which makes it available to other PAMGuard + modules as required. +

+ +

Logging

+

If you are using the PAMGuard Database, + changes to the streamer configuration will automatically be logged + in the hydrophonestreamers database table.

+ +
+ + + diff --git a/target/classes/help/sensors/analogarray/docs/analogarraycalibration.html b/target/classes/help/sensors/analogarray/docs/analogarraycalibration.html new file mode 100644 index 00000000..fd6fc0d3 --- /dev/null +++ b/target/classes/help/sensors/analogarray/docs/analogarraycalibration.html @@ -0,0 +1,42 @@ + + + + +Analog Array Sensors + + + + +

Analog Array Sensors

+

Calibration

+ + +

Go to Settings>Analog Array Sensor Settings... +and click on the calibration tab.

+
+ +
+

For each channel enter calibration constants which will convert the measured voltage or current into a Depth, + Pitch, Roll or Heading. These all follow a simple linear formula:

+

Depth (or heading, or pitch or roll) = (measured value + constant 1) * constant 2 + constant 3

+

There is some redundancy in this formula, but this is intended to make it easier to enter + the correct calibration values. For example, if you were using a 4 - 20mA depth sensor which had a nominal + maximum depth of 100m, the values would be calculated as follows:

+

The first value is simply the 4mA offset on the reading, so set it to -0.04

+

The second value is the range of the sensor (100m) divided by the range of the input device (16mA) so + set it to 100/0.016 = 6250.0.

+

The third value can be left at zero

+

Now consider the consequences of finding that there is a 3.2m offset in the depth readings. You could recalculate + the first two constants, which would become -0.0045 and 6250. Much more simple will be to adjust the third parameter + by the measured offset, leaving the first two alone, i.e. the three parameters become + -.004, 6250 and 3.2.

+
+

If you require a non-linear calibration, please contact the PAMGuard development team.

+ +
+ + + + + \ No newline at end of file diff --git a/target/classes/help/sensors/analogarray/docs/analogarrayconfig.html b/target/classes/help/sensors/analogarray/docs/analogarrayconfig.html new file mode 100644 index 00000000..2639a360 --- /dev/null +++ b/target/classes/help/sensors/analogarray/docs/analogarrayconfig.html @@ -0,0 +1,53 @@ + + + + +Analog Array Sensors + + + + +

Analog Array Sensors

+

Configuration

+ +

Creating an Array Sensors Module

+

From the File>Add modules>Sensors +menu, or from the pop-up menu on the data model display select 'Analog Array +Sensors'. Enter a name for the new module and press Ok.

+ +

The module is not dependent on any other modules +and will automatically find and exchange information with the +Hydrophone Array Manager.

+ +

Configuring the Module

+

Go to Settings>Analog Array Sensor Settings... +and the following dialog will appear.

+
+Accelerometer side panel +
+

The top section of the dialog shows the number of array streamers. The number of different inputs shown in the +bottom section of the dialog will depend on how many streams are present in your array configuration.

+

Enter the readout time in seconds.

+ +

Input Device Settings

+

Select either Measurement Computing Devices or + Brain Boxes ED-549 devices . + Other device types may be added in future releases.

+ +

Channels

+

Select which input channel you wish to use for each parameter. If you do not wish to read a particular parameter, then + select "-" for that channel (in the example, Pitch and Roll are not being read out for the second streamer).

+

For Measurement Computing Devices you will be asked to select a device from a drop down list. This will have had to be + correctly configured using the Measurement Computing InstaCal software.

+

For the Brainboxes device, enter it's IP address. + you may also have to adjust your network adapter settings (or use a separate USB-Ethernet Adapter).

+

Select the input range for each channel. This should match the output of the sensors you are using.

+ +
+ + + + + \ No newline at end of file diff --git a/target/classes/help/sensors/analogarray/docs/analogarraydisplays.html b/target/classes/help/sensors/analogarray/docs/analogarraydisplays.html new file mode 100644 index 00000000..b57fa77e --- /dev/null +++ b/target/classes/help/sensors/analogarray/docs/analogarraydisplays.html @@ -0,0 +1,27 @@ + + + + +Analog Array Sensors + + + + +

Analog Array Sensors

+

Displays

+ + +

For diagnostic purposes, a simple display is available which can be added to any + PAMGuard user display.

+

This will show the configuration and the latest value read from each sensor channel.

+ +
+Accelerometer side panel +
+

Hover the mouse over any item for additional information.

+
+ + + + diff --git a/target/classes/help/sensors/analogarray/docs/images/analogarraycalibration.png b/target/classes/help/sensors/analogarray/docs/images/analogarraycalibration.png new file mode 100644 index 00000000..93d9c01c Binary files /dev/null and b/target/classes/help/sensors/analogarray/docs/images/analogarraycalibration.png differ diff --git a/target/classes/help/sensors/analogarray/docs/images/analogarrayconfiguration.png b/target/classes/help/sensors/analogarray/docs/images/analogarrayconfiguration.png new file mode 100644 index 00000000..16f843fa Binary files /dev/null and b/target/classes/help/sensors/analogarray/docs/images/analogarrayconfiguration.png differ diff --git a/target/classes/help/sensors/analogarray/docs/images/analogarraydisplay.png b/target/classes/help/sensors/analogarray/docs/images/analogarraydisplay.png new file mode 100644 index 00000000..9764af1a Binary files /dev/null and b/target/classes/help/sensors/analogarray/docs/images/analogarraydisplay.png differ diff --git a/target/classes/help/sensors/arrayAccelerometer/docs/accelerometer_configuration.html b/target/classes/help/sensors/arrayAccelerometer/docs/accelerometer_configuration.html new file mode 100644 index 00000000..ba3ffc96 --- /dev/null +++ b/target/classes/help/sensors/arrayAccelerometer/docs/accelerometer_configuration.html @@ -0,0 +1,55 @@ + + + +Array Accelerometer Configuration + + + + + + +

Array Accelerometer Configuration

+

Configuration

+

Creating an Array Accelerometer Module

+

From the File>Add modules>Sensors +menu, or from the pop-up menu on the data model display select 'Array +Accelerometer'. Enter a name for the new module and press Ok.

+ +

The accelerometer module is not dependent on any other modules +and will automatically find and exchange information with the +Hydrophone Array Manager.

+ +

Configuring an Array Accelerometer Module

+

Go to Settings>Array Accelerometer... +and the following dialog will appear.

+
+Accelerometer side panel +
+

The dialog is divided into three sections

+

MCC Device

+

In this section you will find a drop down list of installed MeasurementComputing devices. If +you can't see your device here, refer to the MCC documentation on how to install it

+

Select the smallest voltage range that can cover the range out output values expected from the +sensor (generally +/- 2V)

+ +

Readout

+

Enter the readout interval in seconds. The accelerometer should not be read at a rate > once per second.

+

Select the channels of the MCC device which you wish to read for each of the x,y and z accelerometers.

+

Roll is measured from the x and z accelerometers, Pitch is measured from all three. If you only wish +to read roll, there is no need to read out the y axis, in which case you can enter -1 for this channel +number.

+ +

Calibration

+

Enter the calibration values for each channel. Generally the Zero offset voltage is half the power supply voltage +and the scales (Volts per g) should be the values from the accelerometer data sheet.

+

With the accelerometer on the horizontal, it is possible to automatically set the zero offsets by pressing +the 'Set Zeros' button.

+

If the module has not been mounted square within the hydrophone frame, you may also enter offset values which +will be added to the measured pitch and roll

+ + + + + \ No newline at end of file diff --git a/target/classes/help/sensors/arrayAccelerometer/docs/arrayAccelerometer.html b/target/classes/help/sensors/arrayAccelerometer/docs/arrayAccelerometer.html new file mode 100644 index 00000000..b832cda2 --- /dev/null +++ b/target/classes/help/sensors/arrayAccelerometer/docs/arrayAccelerometer.html @@ -0,0 +1,60 @@ + + + +Array Accelerometer + + + + +

Array Accelerometer

+ +

This module had now been replaced by the new +Analog Array Sensors module.
+We recommend that you switch to the newer module. +

+
+

Overview

+

+The Array Accelerometer module can be used to measure the pitch and roll of a hydrophone array.

+ +

With simple line arrays, knowing the precise orientation of the array is probably not necessary. +However as more users move towards using multi-channel, multi-dimensional hydrophone arrays in order to determine +animal locations in three dimensions, knowing the orientation of array sections becomes increasingly important.

+ +

Three axis accelerometers are readily available at low cost (most of us probably have one in our phone and +another in our camera). The PAMguard Array Accelerometer module has been designed to specifically to work with +the +Analog Devices ADXL335. Users who don't wish to, or don't have the capability to incorporate surface mount IC's into +their hydrophone designs can use the +EVAL-ADXL335Z Evaluation Kit. These are readily available from electronic component suppliers worldwide.

+ +

The system currently only works with MeasurementComputing data acquisition +cards (www.mccdaq.com) but may be extended +to support other devices in the future. It is possible to use the same MeasurementComputing +card with the Array Accelerometer module and the +Hydrophone Depth Module

+

Pith and roll information is passed to the + +hydrophone array manager which makes it available to other +PAMGUARD modules as required.

+ + +hydrophone array configuration dialog.

+ +

A small side panel shows a graph of recent pitch and roll history.

+ +
+Accelerometer side panel +
+

Database output

+

Both the raw voltage data and the calculated pitch and roll are written to the database. +It is therefore possible to recalculate pitch and roll off-line if sensors +are re-calibrated at any point. (PAMGUARD will not currently do +this for you - you'll have to work it out for yourself using your own +software).
+
+

+ + diff --git a/target/classes/help/sensors/arrayAccelerometer/docs/images/AccelSidePanel.png b/target/classes/help/sensors/arrayAccelerometer/docs/images/AccelSidePanel.png new file mode 100644 index 00000000..a0803c27 Binary files /dev/null and b/target/classes/help/sensors/arrayAccelerometer/docs/images/AccelSidePanel.png differ diff --git a/target/classes/help/sensors/arrayAccelerometer/docs/images/ArrayAccelConfig.png b/target/classes/help/sensors/arrayAccelerometer/docs/images/ArrayAccelConfig.png new file mode 100644 index 00000000..71517a9a Binary files /dev/null and b/target/classes/help/sensors/arrayAccelerometer/docs/images/ArrayAccelConfig.png differ diff --git a/target/classes/help/sensors/arrayAccelerometer/docs/images/Thumbs.db b/target/classes/help/sensors/arrayAccelerometer/docs/images/Thumbs.db new file mode 100644 index 00000000..e8aa00c9 Binary files /dev/null and b/target/classes/help/sensors/arrayAccelerometer/docs/images/Thumbs.db differ diff --git a/target/classes/help/sml/gaincontrol/docs/images/Thumbs.db b/target/classes/help/sml/gaincontrol/docs/images/Thumbs.db new file mode 100644 index 00000000..e3953bce Binary files /dev/null and b/target/classes/help/sml/gaincontrol/docs/images/Thumbs.db differ diff --git a/target/classes/help/sml/gaincontrol/docs/images/gainControl.png b/target/classes/help/sml/gaincontrol/docs/images/gainControl.png new file mode 100644 index 00000000..a6d4848e Binary files /dev/null and b/target/classes/help/sml/gaincontrol/docs/images/gainControl.png differ diff --git a/target/classes/help/sml/gaincontrol/docs/smlGainControl.html b/target/classes/help/sml/gaincontrol/docs/smlGainControl.html new file mode 100644 index 00000000..edecbf7b --- /dev/null +++ b/target/classes/help/sml/gaincontrol/docs/smlGainControl.html @@ -0,0 +1,19 @@ + + + +Seiche Measurement Preamp Gain Control + + + + +

Seiche Measurement Preamp Gain Control

+ +

+Help page under development. +

+ +
+Gain control dialog +
+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/DOCS b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..a7bd73e2 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/DOCS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..a3abf64d --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +ej` \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/OFFSETS b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..2141b695 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +@ \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/POSITIONS b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..0be692e0 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/SCHEMA b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..2b5a6e0f --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=98 id2=1 diff --git a/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/TMAP b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..40898138 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionAsioSoundCard.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionAsioSoundCard.html new file mode 100644 index 00000000..e9eb5d18 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionAsioSoundCard.html @@ -0,0 +1,50 @@ + + + +Asio Sound Cards + + +

Asio Sound Cards

+

Many sound cards are provided with two sets of drivers, the 'normal ones' which +make the card operate using the normal system sound card drivers (see +Sound Cards) and ASIO drivers which were +developed by Steinberg for +professional studio applications.

+

The advantages of using ASIO drivers are

+ +


+

Setting up an Asio sound card

+

+In the data acquisition dialog select "Asio Sound Card" +as the Data Source Type and a list of available Asio sound cards will appear in the +drop down list under the title "Select Audio Line". Select the card you with to use. +

+

Channel Configuration

+

Asio sound cards often support data acquisition from more than two channels.

+

The number of available channels (and the quality of the data) will of course +still vary from card to card.

+

Another very important feature is that you can define which channels you want +to read out by mapping the hardware channels on the device to software channels in +PAMGUARD

+

When you select an Asio sound card, the 'Sampling' section of the acquisition +dialog will expand to show a set of drop down boxes, the bumber of boxes corresponding to +the number of channels you are reading out:

+ +

Sound Asio Configuration

+ +

For each software channel, select the hardware channel you wish to use.

+

Note that PAMGUARD channel numbering starts at 0. Your hardware channel numbering may start at 1. +So be aware. If you've put a plug into socket 1, you probably want to select channel 0, etc.

+ + +
+ + + +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionConfiguration.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionConfiguration.html new file mode 100644 index 00000000..8d5c0dc7 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionConfiguration.html @@ -0,0 +1,159 @@ + + + +Sound Acquisition + + + + +

Sound Acquisition Configuration

+

+ To access the module's settings, select Detection>Sound + Acquisition... from the main menu and click on the name of your + module. This will bring up an Audio Data Acquisition dialogue similar + to the one shown below. +

+

+
+ Sound Acquisition Dialogue +
+

+
+

The dialog is divided into four separate regions. the + information in each region may vary depending on the type of input + device you are using.

+ +

Data Source Type

+

From the drop down list, select the type of input device you + wish to use. Different input devices offer different numbers of + channels, sample rates and quality of data. For many applications + using just two channels of data in the human audio band, a standard + sound card is adequate, but for higher sample rates, or higher numbers + of channels, ASIO sound cards or National Instruments Data Acquisition + devices may be required

+

+ Note that not all input types are supported on all platforms.
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Data Source Type

Windows

Mac

Linux

Restrictions / Notes

+ Sound Card +

Yes

Yes

Yes

+ Maximum of two channels.
Considerable variation in quality + between devices +

+ ASIO Sound Card +

Yes

Not yet

No

Some cards allow sampling on > 2 channels

+ Audio File +

Yes

Yes

Yes

Analyse archived data. You should consider using Mixed + Mode for this if you with to correctly localise sounds relative to + GPS data. +

+ Audio File folder
or + multiple files +
+

Yes

Yes

Yes

Batch process many files.

+ National Instruments DAQ Cards +

Yes

No

No

Support for multiple channels at high sample rates

+ SAIL Daq Cards +

Yes

No

No

USB input, high speed sampling on up to 12 channels (four per card).

+ Simulated Sound Sources +

Yes

Yes

Yes

Simulated sources are useful for training, testing + and developing new modules

+ +

Select audio line (or specific input device or file)

+

The information displayed here will vary depending on the type + of Data Source. Please refer to instructions on specific data source + configuration.

+ +

Sampling

+

The information displayed here will vary depending on the type + of Data Source. Please refer to instructions on specific data source + configuration.

+ +

Calibration

+

The peak to peak voltage range of the device and the + preamplifier gain are used by some PAMGUARD modules to calculate + absolute received signal levels in dB re. 1&mu Pa. For some devices, + this information may be filled in automatically, for others you will + need to enter it yourself. If you don't know the input sensitivity of + your device, don't worry, PAMGUARD will run, but amplitudes may not be + accurate.

+

If your sound acquisition system has a DC offset in it (many do), tick +the 'Subtract DC ...' button and enter a time constant. A single pole high pass filter will then be applied to all incoming data.

+ +

(Note that the 'Bandwidth' field has been removed since it was not used in any way)

+ + + +
+ + + +
+
+
+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFile.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFile.html new file mode 100644 index 00000000..caabb5f8 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFile.html @@ -0,0 +1,88 @@ + + + +Audio Files + + + +

Audio Files

+

As well as analysing data from sound cards in real time, PAMGUARD can be used to analyse archived data +from audio filed in WAV or AIF format.

+ +
+

Setting up an Audio File

+

+In the data acquisition dialog select "Audio File" +as the Data Source Type

+

The dialog will then show a panel where you can select a file

+

the +sample rate and the number of channels in the 'Sampling' section of the +dialog will be disabled since these values will be read from the header of the +sound file.

+ +

Sound File Configuration

+ +

Processing Speed and listening while you analyse

+ +

If no Sound Playback + module is included in the PAMGUARD configuration, or if no channels are +selected in the Sound Playback +module, then file data will be analysed as fast as possible, +which could be considerably faster than real time.

+

If a Sound playback +module is present and is in use, then analysis will run in real time and you will +be able to hear the sounds being played back from the computers sound card

. +

If the repeat button is selected, as soon as processing of the file is somplete, processing will start +again at the beginning of the file. This feature can be useful when using PAMGuard to display sounds during +public events, training, etc.

+ + +

Dates and Times

+

If possible, the data and time will be read from the file name.

+

PAMGUARD will strip text from the beginning and end of the file name and +then attempt to match the remaining characters to a number of different +date templates.

+

During analysis, all times displayed on the screen and all times written to the database and binary storage will +be based on the time extracted from the file name and the sample number within the file.

+

If a valid date cannot be extracted from the file name, then times will be based on the time +at which analysis starts and the sample number within the file.

+

Ideally the file times should be in UTC. If they are not, then the time zone of the file data +can be set from the button to the right of the displayed file time.

+

Supported date templates are: +
"yyyy.MM.dd_HH.mm.ss" +
"yyyy.MM.dd-HH.mm.ss" +
"yyyyMMdd_HHmmss" +
"yyyyMMdd-HHmmss" +
"yy.MM.dd_HH.mm.ss" +
"yy.MM.dd-HH.mm.ss" +
"yyMMdd_HHmmss" +
"yyMMdd-HHmmss" +
"yyyy.MM.dd_HH.mm" +
"yyyy.MM.dd-HH.mm" +
"yyyyMMdd_HHmm" +
"yyyyMMdd-HHmm" +
"yy.MM.dd_HH.mm" +
"yy.MM.dd-HH.mm" +
"yyMMdd_HHmm" +
"yyMMdd-HHmm" +
"yy.DDD_HH.mm.ss" +
"yy.DDD-HH.mm.ss" +
"yyDDD_HHmmss" +
"yyDDD-HHmmss" +
"yy.DDD_HH.mm" +
"yy.DDD-HH.mm" +
"yyDDD_HHmm" +
"yyDDD-HHmm" + +

PAMGuard can automatically understand a wide variety of common date formats used in file names. +However, it's not possible to handle every way that people have thought up of representing dates and +the system is confused by additional numbers in file names. Look +here to see how you can define your own file name formats.

+ + +
+ + +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFileFolder - replaced_02_02_2017.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFileFolder - replaced_02_02_2017.html new file mode 100644 index 00000000..081d6893 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFileFolder - replaced_02_02_2017.html @@ -0,0 +1,55 @@ + + + +File Folders + + +

Audio File Folders

+

If you've a whole folder (or many folders) full or archived data than you wish to +re-analyse, then you can set PAMGUARD up to work it's way through the whole lot in one go

+

Processing speed and dates and times operate in the same way as for +single audio file analysis

+ +
+

Setting up Audio File Folders

+ + +

File Folder Configuration

+ + +

Select and entire folder

+

You can select an entire folder by pressing the "Select Folder of Files" button +and browsing for the folder containing the files you want to analyse.

+

Sub folders

+

If you want to analyse multiple sub folders of data, then check the 'Include sub folders' box.

+ +

Select multiple files

+

If you don't want to select all files in a folder, then navigate into the folder and highlight +just file files you want to analyse.

+ +

Merging files

+

Files will be analysed in alphabetical order. It is not uncommon that a single recording session will have +been broken into many short files. You can have PAMGUARD merge files which are part of continuous +recording together by checking the 'Merge contiguous files' box. If this box is not checked, then PAMGUARD +will stop at the end of each file and then restart on the next file.

+ +

Time and Date

+ + +

During analysis, all times displayed on the screen and all times written to the database or binary storage will +be based on the time extracted from the file name and the sample number within the file.

+

If a valid date cannot be extracted from the file name, then times will be based on the time +at which analysis starts and the sample number within the files.

+ +

Ideally the file times should be in UTC. If they are not, then the time zone of the file data +can be set from the button to the right of the displayed file time.

+ + + +
+ + + +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFileFolder.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFileFolder.html new file mode 100644 index 00000000..04bb6b5d --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionFileFolder.html @@ -0,0 +1,74 @@ + + + +File Folders + +

Audio File Folders

+

If you've a whole folder (or many folders) full or archived data than you wish to +re-analyse, then you can set PAMGUARD up to work it's way through the whole lot in one go

+

Processing speed and dates and times operate in the same way as for +single audio file analysis

+ +
+

Setting up Audio File Folders

+ + +

File Folder Configuration

+ + +

Select an entire folder

+

You can select an entire folder by pressing the "Select Folder or Files" button +and browsing for the folder containing the files you want to analyse.

+

Sub folders

+

If you want to analyse multiple sub folders of data, then check the 'Include sub folders' box

Repeating the List

In +order to have PAMGUARD automatically restart processing from the +beginning of the first audio file when the end of the last audio file +is reached, check the 'repeat' box.

+ +

Select multiple files

+

If you don't want to select all files in a folder, then navigate into the folder and highlight +just the files you want to analyse.

+ +

Merging files

+

Files will be analysed in alphabetical order. It is not uncommon that a single recording session will have +been broken into many short files. You can have PAMGUARD merge files which are part of continuous +recording together by checking the 'Merge contiguous files' box. If this box is not checked, then PAMGUARD +will stop at the end of each file and then restart on the next file.

+ +

Time and Date

+ + +

During analysis, all times displayed on the screen and all times written to the database or binary storage will +be based on the time extracted from the file name and the sample number within the file.

+

If a valid date cannot be extracted from the file name, then times will be based on the time +at which analysis starts and the sample number within the files.

+

PAMGuard can automatically understand a wide variety of common date formats used in file names. +However, it's not possible to handle every way that people have thought up of representing dates and +the system is confused by additional numbers in file names. Look +here to see how you can define your own file name formats.

+ +

Ideally the file times should be in UTC. If they are not, then the time zone of the file data +can be set from the button to the right of the displayed file time.

+ +

Starting/Stopping/Restarting Analysis

During +batch processing, when PAMGUARD reaches the end of one audio file it +will automatically begin processing the next file.  In the event +that an audio file cannot be properly loaded, PAMGUARD will move +on to the next audio filerather than halt processing .  Similarly +if the user stops processing by manually pressing the Stop button, +upon restart PAMGUARD will begin processing the next audio file in the +list.  

If the user wishes to restart batch processing at +the beginning of the list, either after manually halting processing or +upon reaching the end of the last audio file, the Sound Acquisition +settings dialog must be opened.  When the OK button is pressed, +the list is reinitialized and processing will proceed from the +beginning.

+ + + +
+ + + +


+ \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionNIDAQ.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionNIDAQ.html new file mode 100644 index 00000000..1f2eb1ea --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionNIDAQ.html @@ -0,0 +1,117 @@ + + + +National Instruments DAQ Cards + + + +

National Instruments DAQ Cards

+ +

National Instruments Data Acquisition devices offer PAMGUARD +users the highest sample rates and the highest numbers of channels.

+

PAMGUARD will work with M-series DAQ cards. In principle, any M-series card should work with +PAMGUARD, but the software has so far only been tested with PCI-6250 and USB-6251 devices.

+

If you plan to use a different device, you are strongly advised to install the National Instruments +software (available from the National Instruments web site) +and set up and test a simulated card prior to purchase. While this is not a 100% guarantee that +the card will work with PAMGUARD, if the simulated device doesn't work, it's very unlikely that the real +one will. The PAMGUARD team welcome any information regarding success or failure with other devices.


+ +

Setting up National Instruments Cards

+

National Instruments cards and software drivers should be installed according to the +instructions provided by National Instruments. +The National Instruments software should be installed before starting PAMGUARD

+

Select "National Instruments DAQ Cards" in the drop down list at the top of the Audio Data Acquisition dialog. +You can then configure the card using the sound acquisition dialog shown below.

+ +

Sound Acquisition Dialog

+ +

Using a single National Instruments device

+

Make sure that "Use Multiple DAQ boards" is not selected and choose the device you wish +to use from the "Master Device" drop down list (there may be several National +Instruments devices installed on a single system).

+

Terminal Configuration

+

The terminal configuration you select will depend on how your hydrophone and pre-amplifiers +have been connected to the National Instruments device. Detailed information on the four +available configurations and how to use them is given in the National Instruments help files +which should be installed on your system.

+
+ + + + + + + + + + + + + + + + + + +

Terminal Configuration

Overview

Referenced single ended

Signals are referenced to a common ground (the AIGND) terminal

Non-referenced single ended

Signals are referenced to a common terminal (AISENSE) which is not necessarily the same as ground

Differential

Differential input signals are used

NB. This may halve the number of available channels

Pseudo Differential

Differential input, but one side of the differential input is tied to ground via a resistor

+ +

Sample rate and number of channels

+

Set the sample rate in Hz and the number of channels. This must be within the limits of the device. With most devices, +the sample rate must be reduced for higher channel numbers, e.g. a PCI-6250 device can sample +two channels at 500 kHz per channels but can only sample four channels at 250 kHz per channel.

+ +

Hardware channels

+

Select the hardware channels you wish to read. Note that it's not possible to read the same channel more than once.

+

Whichever hardware channels are selected, software channel numbering in PAMGUARD will always be 0, 1, 2, etc...

+ +

Range

+

The drop down list of ranges for each channel will be populated with a list of available input ranged for the selected +device.

+

Select the range you wish to use. Note that the Peak to peak voltage range in the Calibration panel at the bottom of the +dialog will automatically set to the range of the first channel. Values used in calculations of sound pressure levels in +PAMGUARD will use the correct values for each channel.

+

If the range list is empty, then it is likely that the device you have selected is not working correctly

+ + +

Using multiple National Instruments devices

+

If you require more channels or higher sample rates than can be achieved using a single National Instruments device, + it is possible to simultaneously sample from multiple devices. e.g. you could use two USB-6251 devices to sample four +channels at 500 kHz sample rate per channel. In principle, you can use as many different devices as you like. In practice you will be limited by the number of +PCI slots and USB ports on your computer and by the rate at which PAMGUARD can process the data

+

To use multiple devices, check the "Use multiple DAQ boards" box on the dialog. The 'Master Device' selection will no +longer be available and individual devices should be selected as shown below.

+ + +

Sound Acquisition Dialog

+ +

Device and Channel Ordering

+

All Channels on each device must me grouped together as shown in the above example which reads channels 0 and 1 on Dev4, then channels +0 and 1 on Dev7. Reading Dev4 Channel 0 / Dev 7 Channel 0 / Dev 4 Channel 1 / Dev 7 Channel 1 is would not be allowed.

+ +

IMPORTANT Timing information when using multiple devices

+

When using a single device all timing (i.e. how often the device acquires samples) is taken from an internal +clock in that one device. These are generally very accurate and the number of samples you expect to acquire in a given time +interval will be very close to that time interval x the sample rate. +However, if multiple devices are used, and each device acquires samples based on it's own internal clock, the exact number +of samples acquired by each device will gradually differ. For example, even if the clocks were 0.0001% accurate, after just +two seconds sampling at 500 kHz sample rate, one device would have acquired one more sample than the other device. +Small timing differences based on sample counts between signals arriving on multiple channels would therefore rapidly become meaningless.

+

When using multiple devices, the internal clock in the first (or master) device is therefore sent to the other devices +which use the master clock signal in preference to their own internal clock.

+

You must physically connect the clock signal from the master device to the other +devices yourself: Using a single wire, connect the PFI 1 terminal of the master device to the PFI 1 +terminals of all the other devices (yes, it is PFI 1 to PFI 1). +

If you fail to do this, the other devices will not acquire data and you will continually receive the message +"NIDaq Error DAQmxReadAnalogF64 code -200284 Measurements: Some or all of the samples requested have not yet been acquired ..." +

+ + + +
+ + +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionOverview.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionOverview.html new file mode 100644 index 00000000..3b59ef65 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionOverview.html @@ -0,0 +1,30 @@ + + + +Sound Acquisition + + + + +

Sound Acquisition Overview

+

+PAMGUARD is designed to analyse data in real time using a sound card or other +data acquisition device or from previously recorded data stored as a hard disk recording. +

+ +

Adding a Sound Acquisition Module

+

Add a Sound Acquisition module using +File>Add Modules>Sound Processing>Sound Acquisition +and enter a name of your choice.

+ +

Using Multiple Sound Acquisition Modules

+

+It is possible to have multiple sound acquisition modules, which is particularly useful if +you want to run detectors at different sample rates. +

+ +

+ + + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionSimulator.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionSimulator.html new file mode 100644 index 00000000..037f3f18 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionSimulator.html @@ -0,0 +1,68 @@ + + + +Audio Files + + + +

Simulated Sources

+

PAMGUARD can simulate data for a variety of different sound types from one or +multiple sources.

+

Simulated data are useful in training and are can be used by developers to +test detection and localisation algorithms.

+ +
+

Setting up simulated sources

+

In the data acquisition dialog select "Simulated Sources" +as the Data Source Type.

+

The dialog will then show a panel where you can create and alter +any number of simulated objects.

+ +

Simulated Sources

+

Background Noise

+

Background noise is simulated with a flat spectrum. Enter the spectrum level +background noise level in dB re.1μPa/√Hz.

+ +

Propagation Model

+

Two very simple propagation models are currently available. These are Spherical Spreading +and Spherical Spreading with a surface echo. If the latter is selected, the sea surface is +assumed to be a perfect reflector.

It is possible that more sophisticated models +will be added in the future.

+ + +

Creating and editing Simulated Objects

+

You can Add, Copy Remove and Edit objects in the simulated objects table +using the buttons situated below the list of simulated objects.

+

If you Add, Copy, or Edit an object, the following dialog will appear

+ +

Simulated Sources

+

The location for a new source is set at the current vessel position. Although it +is possible to edit these positions here, it is easier to drag them to the desired +location on the map display using the mouse.

+

Give the sound source a name, select the sound type and set the signal amplitude in +dB re.1μPa p-p.

+

Set the interval between successive sounds. If you check the 'Randomise' box, intervals +will be selected at random between 0 and twice the Mean Interval. Otherwise, sounds will be regularly +spaced in time. Note that the first one or each sound will always be generated at a random start time +so that regular sounds with the same interval do not always perfectly coincide.

+

You can also set the source depth, course and speed over ground.

+ + + +

Processing speed and listening to simulated data

+

If no Sound Playback + module is included in the PAMGUARD configuration, or if no channels are +selected in the Sound Playback +module, then simulated data will be analysed as fast as possible, +which could be considerably faster than real time.

+

If a Sound playback +module is present and is in use, then analysis will run in real time and you will +be able to hear the sounds being played back from the computers sound card

. + + +
+ + +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionSoundCard.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionSoundCard.html new file mode 100644 index 00000000..5481ed71 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AcquisitionSoundCard.html @@ -0,0 +1,62 @@ + + + +Sound Cards + + +

Sound Cards

+

+Sound Cards are by far the cheapest and most commonly used data acquisition +device since nearly all modern computers are equipped with one. +


+

Setting up a sound card

+

+Setting up a sound card is easy. In the data acquisition dialog select "Sound Card" +as the Data Source Type and a list of available sound cards will appear in the +drop down list under the title "Select Audio Line". Select the card you with to use and the +number of channels (which can only be either 1 or 2).

+

+Note that sound cards which have more than two input channels are likely to appear as multiple +two channel devices and you will not be able to read out more than two channels at a time.

+ +

Notes and Warnings

+

Laptops

+

The audio quality of many sound cards is very poor and some, particularly those built into +laptops which are prone to picking up electrical noise from the motherboard.

+ +

USB

+

Many external sound cards connect using USB. While convenient, we have often experienced problems +with USB sound cards 'dropping' data. This happens more when the computer is busy (which it will be when +you're running PAMGUARD). These drop outs can result in the lost of several percent of your audio input data.

+

If you are using a laptop and need an external sound card, try to get one that connects using Firewire (IEEE 1394).

+ +

Sample Rate Conversions

+

The Windows drivers in particular may make multiple sample rate conversions. this means that your beautiful +high frequency data that you sampled at 96 kHz may be down-sampled to 48kHz and then up-sampled to 96kHz again without +you knowing it. This will of course destroy all data at higher frequencies.

+

Some manufacturers provide alternative Windows drivers which you should use wherever possible.

+

If possible, test your sound card with a signal generator while viewing a spectrogram of +the data to check that the high frequency data are OK

+ +

Unwanted, unexpected and unnecessary filters

+

Most sound cards are designed for human audio. Since we can't hear much above about 15kHz (our children and +pets may be able to do a bit better) some sound card manufacturers include a filter at around 20kHz and even if +the software is allowing you to sample at high sample rates, you may not be getting any data through at high frequencies

+

Ideally use a sound card where the manufacturer has published a technical specification showing a flat frequency response +over the range you're interested in. As with sample rate conversions, test your sound card with a signal generator while viewing a spectrogram of +the data to check that the high frequency data are OK

+ +

Calibration

+

Most sound cards do not come with calibration information.

+

If calibration is important, you'll have to do this yourself. Note though that +settings may change depending on any adjustments made to the computers audio settings +(e.g. from the windows mixer).

+ + + +
+ + +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/AsioHelp.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/AsioHelp.html new file mode 100644 index 00000000..70134eab --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/AsioHelp.html @@ -0,0 +1,52 @@ + + + +ASIO Sound Cards + + + + +

Asio Sound Card Selection

+

Overview

+ +

These instructions guide a user on how to configure the Asio Sound Card module in PAMGUARD.

+

In PAMGUARD users can tell the program to read a certain number of channels e.g 1, 3, 6, 7 ...

+ +

+ + + +

This figure shows how to select 4 channels (0,1,2,4) in the Audio Data Acquisition module.

+ AsioChannelSelection +
+ +

+ + + +

This figure shows to create 4 panels for these selected 4 channels.

+ Pannel Selection +
+ +

+

+ + + +

This figure shows the user display of these 4 channels.

+ 4 Channel Display +
+ +

+

+ + + + +

This figure shows the result of 8 channels.

+ 8ChannelDisplay +
+ +


+ + diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/FileTimeZone.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/FileTimeZone.html new file mode 100644 index 00000000..44d28e11 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/FileTimeZone.html @@ -0,0 +1,488 @@ + + + +Time Zones + + +

File Time Options

+

File Times

+

PAMGuard will attempt to automatically derive a date and time from audio file names. While we have programmed in a large number +of different time and date formats, we cannot capture them all so it's sometimes necessary to tell PAMGuard exactly how to extract date +and time information from a file name. Characters (a-z) and be stripped automatically, but problems arise if other numbers are present.

+

An example of names that can't be unpacked automatically might be

+

1677738025.180912073628.d24.d8.wav

+

The actual date is 12 September 2018 at 07:36:28. however it is impossible for PAMGuard to work out that the date information is between +the second and third '.' characters and that the rest of the name should be ignored.

+

To define your own file format, select 'User defined date format' then in the format field, enter a set of characters that will tell PAMGuard +how to unpack the information.

+

For every character in the file name that is NOT part of the date, enter the # character. The number of # must exactly match +the number of characters preceding the date part of the name. Leading and trailing non numeric characters will also be stripped automatically +after characters corresponding to a # have been removed. +
For the date section, Java lays down strict rules for how each character should be represented details of +which are here and below. +Note that most of these are case sensitive, e.g. MM is for month and mm is for minute. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Letter

+
+

Date or Time + Component

+
+

Presentation

+
+

Examples

+
+

G

+
+

Era designator

+
+

Text

+
+

AD

+
+

y

+
+

Year

+
+

Year

+
+

1996; 96

+
+

Y

+
+

Week year

+
+

Year

+
+

2009; 09

+
+

M

+
+

Month in year (context + sensitive)

+
+

Month

+
+

July; Jul; 07

+
+

L

+
+

Month in year + (standalone form)

+
+

Month

+
+

July; Jul; 07

+
+

w

+
+

Week in year

+
+

Number

+
+

27

+
+

W

+
+

Week in month

+
+

Number

+
+

2

+
+

D

+
+

Day in year

+
+

Number

+
+

189

+
+

d

+
+

Day in month

+
+

Number

+
+

10

+
+

F

+
+

Day of week in month

+
+

Number

+
+

2

+
+

E

+
+

Day name in week

+
+

Text

+
+

Tuesday; Tue

+
+

u

+
+

Day number of week (1 = + Monday, ..., 7 = Sunday)

+
+

Number

+
+

1

+
+

a

+
+

Am/pm marker

+
+

Text

+
+

PM

+
+

H

+
+

Hour in day (0-23)

+
+

Number

+
+

0

+
+

k

+
+

Hour in day (1-24)

+
+

Number

+
+

24

+
+

K

+
+

Hour in am/pm (0-11)

+
+

Number

+
+

0

+
+

h

+
+

Hour in am/pm (1-12)

+
+

Number

+
+

12

+
+

m

+
+

Minute in hour

+
+

Number

+
+

30

+
+

s

+
+

Second in minute

+
+

Number

+
+

55

+
+

S

+
+

Millisecond

+
+

Number

+
+

978

+
+

z

+
+

Time zone

+
+

General time zone

+
+

Pacific Standard Time; PST; GMT-08:00

+
+

Z

+
+

Time zone

+
+

RFC 822 time zone

+
+

-0800

+
+

X

+
+

Time zone

+
+

ISO 8601 time zone

+
+

-08; -0800; -08:00

+
+

The example below shows an appropriate date format string used to correctly unpack the above example file name

+ +

time Zone Dialog

+

+

Time Zone

+

Ideally, all PAMGuard data should be referenced to UTC, this makes it easy to align with GPS data and data from other sources.

+

Sometimes, it is necessary to process audio files which do not have a UTC based time encoded in their file name, but are referenced to some other time zone.

+

The File Date Settings dialog allows you to set the time zone and any additional time offsets for an audio file or set of audio files.

+ + +

The time zone offset and optional daylight saving will be SUBTRACTED from the time value extracted from the file name.

+

The additional time offset will be ADDED to the time value extracted from the file name.

+

Check and double check that the time extracted from the file and corrected for time zone and offset is correct before +processing sound file data.

+ +

+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/SAILDaqCard.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/SAILDaqCard.html new file mode 100644 index 00000000..4c815f24 --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/SAILDaqCard.html @@ -0,0 +1,48 @@ + + + +SAIL Data Acquisition Cards + + +

SAIL Data Acquisition Cards

+

+SAIL Daq Cards have been developed specifically for high speed USB data acquisition from +hydrophones by +St Andrews Instrumentation Ltd. +

+

+Each card can support up to four channels of high speed audio input at sample rates of 62.5, 250, 500 or 1000kHz sample rate. +

+

+The analogue front end has been specifically designed for direct connection to most hydrophones, saving the need for additional + preamplifiers and filter units between the hydrophone and acquisition system. A single high input impedance + channel is suitable for direct connection + to hydrophones which do not have an integral preamplifier. +

+

+Gain and filter settings are all software selectable, with gains of between 0 and 36dB in 6dB steps and second order +Butterworth high pass filters at frequencies of 0, 10, 100, 2000 and 20000Hz. +

+

+Up to three cards can be synchronised for simultaneous data acquisition on up to 12 hydrophone channels.

+
+ +

Setting up SAIL Daq Cards

+

+Setting up a sound card is easy. In the data acquisition dialog select "SAIL Daq Cards" +as the Data Source Type. +

+

SAIL Daq

+

Enable the channels you wish to use +and set the gain and sample rates.

+

If more than one card is present, additional channels will be shown. Note that when multiple cards are +in use, each card is ordered by it's serial number. Press the "Flash LED's" button to assist in identifying individual +cards

+ +
+
+ + +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/4ChannelDisplay.PNG b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/4ChannelDisplay.PNG new file mode 100644 index 00000000..dcf9f1a2 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/4ChannelDisplay.PNG differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/8ChannelDisplay.PNG b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/8ChannelDisplay.PNG new file mode 100644 index 00000000..41cdb62e Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/8ChannelDisplay.PNG differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AcquisitionDialog.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AcquisitionDialog.png new file mode 100644 index 00000000..1ac44999 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AcquisitionDialog.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AcquisitionFileFolder.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AcquisitionFileFolder.png new file mode 100644 index 00000000..9a8c2605 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AcquisitionFileFolder.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AsioChannelSelection.PNG b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AsioChannelSelection.PNG new file mode 100644 index 00000000..a8b213e3 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AsioChannelSelection.PNG differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AsioConfiguration.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AsioConfiguration.png new file mode 100644 index 00000000..1ff2e9f5 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/AsioConfiguration.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/FileConfiguration.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/FileConfiguration.png new file mode 100644 index 00000000..a55ba2b5 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/FileConfiguration.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NIDaqConfig.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NIDaqConfig.png new file mode 100644 index 00000000..e5711bc7 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NIDaqConfig.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NIDaqMultiConfig.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NIDaqMultiConfig.png new file mode 100644 index 00000000..076a1844 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NIDaqMultiConfig.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NewDateOptions.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NewDateOptions.png new file mode 100644 index 00000000..70f0633e Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/NewDateOptions.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/PannelSelection.PNG b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/PannelSelection.PNG new file mode 100644 index 00000000..4922a030 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/PannelSelection.PNG differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SAILDaq.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SAILDaq.png new file mode 100644 index 00000000..dcb8a61a Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SAILDaq.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SimulatedSource.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SimulatedSource.png new file mode 100644 index 00000000..ab271bd3 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SimulatedSource.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SimulatedSources.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SimulatedSources.png new file mode 100644 index 00000000..eb1e61a6 Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/SimulatedSources.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/images/TimeZoneDialog.png b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/TimeZoneDialog.png new file mode 100644 index 00000000..0ff06d2e Binary files /dev/null and b/target/classes/help/sound_processing/AcquisitionHelp/docs/images/TimeZoneDialog.png differ diff --git a/target/classes/help/sound_processing/AcquisitionHelp/docs/soundcardConfig.html b/target/classes/help/sound_processing/AcquisitionHelp/docs/soundcardConfig.html new file mode 100644 index 00000000..0cc6edde --- /dev/null +++ b/target/classes/help/sound_processing/AcquisitionHelp/docs/soundcardConfig.html @@ -0,0 +1,45 @@ + + + +Sound Acquisition + + + + +

PAMGUARD

+

Sound Acquisition


+

Adding a Sound Acquisition Module

+ +

Add a Sound Acquisition module using File>Add modules>Sound Acquisition and enter a name of your choice. +To access the module's settings, select Detection from the main menu and click on the name of your module. +This will bring up an Audio Data Acquisition dialogue, as shown below.


+ +

Audio Data Acquisition Dialogue

+
+ +

Selecting a Device and Audio Line

+ +

Choose Sound Card from the Data Source Type drop down menu. +The Select Audio Line drop down list will then display the available mixer lines. +Choose the line associated with your sound card input(s).

+
+ +

Sampling Settings

+

+

+

+

(Note that the 'Bandwidth' field has been removed since it was not used in any way)

+
+ + +


+ + diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/ClipGenerator.html b/target/classes/help/sound_processing/ClipGenerator/docs/ClipGenerator.html new file mode 100644 index 00000000..7bc33596 --- /dev/null +++ b/target/classes/help/sound_processing/ClipGenerator/docs/ClipGenerator.html @@ -0,0 +1,77 @@ + + + +Clip Generator + + + + +

Clip Generator

+

Overview

+

+The clip generator module can be used to generate short sound clips (typically a second or so long) in response +to either an automatic detection or to the user selecting an area on the spectrogram display. +

+ +

Creating a Clip Generator

+

From the File>Add modules>Sound +Processing menu, or from the pop-up menu on the data model display +select "Clip Generator". Enter a name for the new +amplifier module and press Ok.

+
+ +

Configuring the Clip Generator

+

To configure the clip generator, you will need to set a source of audio data and +also to set up triggers which can initiate clip generation.

+

To set up the clip generator, open the dialog from the "Detectors/Clip Generator" menu

+
+clip dialog +
+

Select an audio data source

+

Select a source of audio data. This will usually be from a sound acquisition module +but it may also be from a decimator or filter module

+ + +

Select an output format

+

Select to store the clips either as wav files or in binary storage. The advantage of +wav files is that it will be possible to open your clips with other software. The binary +storage option stores the clips in a compressed format which uses slightly less disk space +and also loads the clips more efficiently when looking at them with the PAMGuard viewer.

+

Even if you are using wav file storage, you should include the Binary Storge module in +your PAMGuard configuration since some book keeping information will still need to be stored +in binary files

+ +

Setup Data Triggers

+

Select which detectors can trigger clips.

This can be one or more of the detectors +set up in PAMGuard. If using more than one detector though, you might find it easier to +have separate clip generators for each detector so that files / binary data are stored in +different folders.

+

Once you've enabled a trigger, configure it by pressing the adjacent "Settings" button

+
+budget dialog +
+

Select the channels you want to trigger from

+

Select the time in seconds before and after the actual trigger you want to record for.

+

If data are being stored in wav files, also set "file initials" - a few characters which +will be added to the start of each file name

+
Data Budgets
+

You can set the clip generator to respond to every single detection or you +can set a data budget which will limit the amount of recorded data in a given time period.

+

The latter option may be useful if you only want to store a few example sounds from each +encounter for species id check, but also runs the risk of discarding important data !

+ +

Manual clipping

+

To generate clips manually, right click on a +spectrogram display +to open it's settings dialog. Go to the "Mark Observers" tab and select the Clip Generator check box.

+

When the spectrogram display is running, you will now be able to mark out regions with the mouse which +will be used to fire the clip generator.

+
+manual clipping +
+ + +
+ + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/ClipGeneratorBearings.html b/target/classes/help/sound_processing/ClipGenerator/docs/ClipGeneratorBearings.html new file mode 100644 index 00000000..2cb47d21 --- /dev/null +++ b/target/classes/help/sound_processing/ClipGenerator/docs/ClipGeneratorBearings.html @@ -0,0 +1,36 @@ + + + +Clip Generator + + + + +

Clip Generator

+

Clip Bearings

+

+Bearings will be automatically calculated to the sounds in clips if more than one channel of data is included. +

+ +

Manual clip selection and many detectors may only have triggered on one channel. Therefore if you want multiple channels +to be included in the clip it's essential that you select the appropriate Channel Selection in the settings +for each data trigger.

+ +

Bearings are calculated using a cross correlation method which can only estimate time delays between channels of +up to about 200 samples. At a sample rate of 48kHz, this is equates to a hydrophone separation of around 8 m. +If the hydrophones are more widely separated time delays and bearings will not be correctly calculated. +We hope to rectify this in future releases.

+ +

Bearings to clips will be shown as lines on the PAMGuard map. +The length of the lines can be adjusted from +the Display Menu: Display/Clips Display Settings ... .

+ +
+display +
+ + + + + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/ClipGeneratorDisplay.html b/target/classes/help/sound_processing/ClipGenerator/docs/ClipGeneratorDisplay.html new file mode 100644 index 00000000..648cd7d8 --- /dev/null +++ b/target/classes/help/sound_processing/ClipGenerator/docs/ClipGeneratorDisplay.html @@ -0,0 +1,31 @@ + + + +Clip Generator + + + + +

Clip Generator

+

Displaying Clips

+

Clips can be displayed on a User Display Panel.

+

Once you've created your Clip Generator module, an additional menu item will appear in the User Display Panel menu which you can use +to create a display.

+
+display menu +
+

The advantage of incorporating the display into the more general user display panel is that is can be +shown directly alongside spectrogram and radar displays.

+

Each clip is shown as a small spectrogram. A number of controls at the top of the display allow you to change the +time, frequency and amplitude scales of the spectrograms and also control how many are held in memory at any one time.

+

To create more space on the screen it's possible to hide the control panel by clicking on it's left border.

+ +
+display +
+ + + +
+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/images/BudgetDialog.png b/target/classes/help/sound_processing/ClipGenerator/docs/images/BudgetDialog.png new file mode 100644 index 00000000..1155fbfe Binary files /dev/null and b/target/classes/help/sound_processing/ClipGenerator/docs/images/BudgetDialog.png differ diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipBearingsMap.jpg b/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipBearingsMap.jpg new file mode 100644 index 00000000..1faf5431 Binary files /dev/null and b/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipBearingsMap.jpg differ diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipDialog.jpg b/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipDialog.jpg new file mode 100644 index 00000000..7109ed67 Binary files /dev/null and b/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipDialog.jpg differ diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipDialog.png b/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipDialog.png new file mode 100644 index 00000000..0c1aecef Binary files /dev/null and b/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipDialog.png differ diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipGenerator.png b/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipGenerator.png new file mode 100644 index 00000000..e73ac101 Binary files /dev/null and b/target/classes/help/sound_processing/ClipGenerator/docs/images/ClipGenerator.png differ diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/images/DisplayMenu.png b/target/classes/help/sound_processing/ClipGenerator/docs/images/DisplayMenu.png new file mode 100644 index 00000000..1d8921fa Binary files /dev/null and b/target/classes/help/sound_processing/ClipGenerator/docs/images/DisplayMenu.png differ diff --git a/target/classes/help/sound_processing/ClipGenerator/docs/images/MarkObserver.png b/target/classes/help/sound_processing/ClipGenerator/docs/images/MarkObserver.png new file mode 100644 index 00000000..1814eeba Binary files /dev/null and b/target/classes/help/sound_processing/ClipGenerator/docs/images/MarkObserver.png differ diff --git a/target/classes/help/sound_processing/EnvelopeTrace/Docs/EnvelopeOverview.html b/target/classes/help/sound_processing/EnvelopeTrace/Docs/EnvelopeOverview.html new file mode 100644 index 00000000..99278fd8 --- /dev/null +++ b/target/classes/help/sound_processing/EnvelopeTrace/Docs/EnvelopeOverview.html @@ -0,0 +1,71 @@ + + + +Envelope Tracing + + + + +

Envelope Tracing

+

Overview

+
+ +

This module allows you to drop the frequency of ultrasonic + transient sounds into the audio band.

+

For example, if you've a high speed acquisition card set up to + detect harbour porpoises, you won't be able to hear them because the + sounds are several octaves too high for human hearing and you won't be + able to play the sounds back over your sound card because the sound + card won't support those high sample rates

+ +

Envelope tracing takes place in four distinct stages:

+

1. High frequency data are band pass filters. This allows you to + select only the parts of the spectrum that you're interested in.

+

2. The high frequency data are rectified (i.e. all negative + values are made positive).

+

3. The data are smoothed using a low pass filter.

+

4. The data are decimated to a lower frequency.

+ +

In the configuration below, high frequency data are going to a + click detector and also via the envelope tracer to a sound output + module. The output sample rate of the Envelope Tracer is set to 48kHz, + which can be played back easily using a PC sound system

+

+
+ Envelope Model +
+ +

Creating the module

+

+ From the File>Add modules>Sound Processing + menu, or from the pop-up menu on the data model display select "Sound + Processing> Envelope Tracing". Enter a name for the new module and + press Ok. +

+ +

Configuring the module

+

+ To configure the module, open the settings dialog from the Detection>"your + module name" menu: +

+
+ Filters Settings +
+

Raw Data Source

+

+ Select a source of Raw data. This will generally be a Sound + Acquisition module. Check the channels you want to envelope trace on. +

+ +

Filter Band

+

Select the filter band you want to apply before the envelope tracing. This should generally be + matched to the sounds you are most interested in.

+ +

Output

+

Set the output sample rate and smoothing filter. The output filter should generally be a low pass filter + with a cut off frequency at around half the output frequency.

+
+ + diff --git a/target/classes/help/sound_processing/EnvelopeTrace/Docs/Images/EnvelopeDialog.png b/target/classes/help/sound_processing/EnvelopeTrace/Docs/Images/EnvelopeDialog.png new file mode 100644 index 00000000..b7a142ea Binary files /dev/null and b/target/classes/help/sound_processing/EnvelopeTrace/Docs/Images/EnvelopeDialog.png differ diff --git a/target/classes/help/sound_processing/EnvelopeTrace/Docs/Images/EnvelopeModel.png b/target/classes/help/sound_processing/EnvelopeTrace/Docs/Images/EnvelopeModel.png new file mode 100644 index 00000000..e3178067 Binary files /dev/null and b/target/classes/help/sound_processing/EnvelopeTrace/Docs/Images/EnvelopeModel.png differ diff --git a/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_filters.html b/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_filters.html new file mode 100644 index 00000000..976dcc4d --- /dev/null +++ b/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_filters.html @@ -0,0 +1,50 @@ + + + +IIRF Filters + + + + +

IIRF Filters

+

Overview


+ +

+Filters can be used to filter audio data within PAMGUARD. +They can be inserted anywhere in the PAMGUARD data model where there are raw audio data.
+Note that some other modules, such as the + click detector +and the Decimator, use the same +filter modules, built into that module's functionality.

+
+

Creating filters

+

+From the File>Add modules>Sound Processing menu, or from the pop-up menu on the +data model display select "Filters (IIR and FIR)". +Enter a name for the new filter module (e.g. "Low Pass", "2kHz", etc) and press Ok.

+
+ +

Data Source

+

The filers module requires a source of raw data before it can operate. +This may come directly from a Sound Acquisition module (e.g. a sound card or a National Instruments board) +or from processed data such as the output from a decimator or other filter. +

+

+To set the filter data source, go to the Detection>"your filter name"> +Filter Data Source" menu

+
+Filters Data Source
+

+Select the data source and the channels you wish to filter from the checkboxes. +

+ +

Filter Settings

+

+To configure the filter, open the Filter settings dialog from the Detection>"your filter name"> +Filter Settings" menu +and the Filter Design Panel will appear.

+ +


+ + + diff --git a/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_panel.html b/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_panel.html new file mode 100644 index 00000000..f55cd87f --- /dev/null +++ b/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_panel.html @@ -0,0 +1,94 @@ + + + +Filter Design + + + + +

Filter Design

+

Overview

+
+ +

Two main types of filter are available in PAMGuard. IIRF + (Infinite Impulse Response) Filters are generally preferred since they + are faster than the alternative FIR (Finite Impulse Response) filter + types. However there may be circumstances when you prefer to use an + FIR filter, particularly if an unusual filter response is required + (for instance, one mimicking the hearing response of an animal, or + with multiple 'notches' to remove noise).

+

+ Both types of filter can be configured from within PAMGuard's filter + design panel. This is used in the stand alone Filters Module, but also appears in + the configuration for several other modules, including the + click detector, the Decimator + and some noise measurement modules. +

+ +

Configuration

+ + Filters Settings +
+

Filter Type

+

Select the type of filter, which can be one of: "None", + "IIR Butterworth", + "IIR Chebyshev", "FIR Filter (Window Method)", + "Arbitrary FIR Filter".

+ +

Filter Response

+

For Butterworth, Chebychev and FIR Filters using the Window + Method, select either a High pass, Band Pass, Band Stop or Low Pass + response and the filter cut off frequencies in Hz. Note that these + should be greater than 0 and less than half of the sample rate.

+

Also set the filter order - this controls how steeply the filter + will attenuate close to the cut off frequencies. High order filters + use more processing power than low order ones and can also have a long + impulse response which can reduce the time resolution of transient + signals. Note that for FIR filters, the filter order parameter that + you enter is actually the log base 2 of the length of the actual + filter, i.e. a filter order of 6 will generate 64 tap filer, 7 a 128 + tap filter, etc.

+

For Chebychev filters, you can also set the amount of ripple in + the passband and for FIR filters, you can set 'gamma' which alters the + rate of filter attenuation verses ripple in the stop band.

+

For IIR filters, in the lower left part of the dialog, you will + see a pole-zero diagram. For FIR filters, this is replaced by the + filter taps, or impulse response of the filter.

+
+ Filters Settings +
+

If you have selected an FIR Arbitrary filter, the dialog will + change to show a list of frequencies and gains.

+
+ Filters Settings +
+

It's currently only possible to update this list by creating and + editing a text file, which should be a comma separated list of + frequencies and gains, e.g. +

+ 0, -80 +
5000, -80 +
6000, -40 +
7000, 0 +
11000, -5 +
13000, -10 +
15000, 0 +
17000, 0 +
17000, -30 +
18000, -80 +
24000, -80 +
+

Use the import button to import the values from your text file

+
+

Bode Plot

+

The filter dialog displays a bode plot (attenuation verses + frequency) for the chosen filter parameters. You can show this on either a logarithmic + of linear frequency scale. Double clicking the amplitude axis will change the range + of the amplitude scale.

+


+ + diff --git a/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_types.html b/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_types.html new file mode 100644 index 00000000..517f05a7 --- /dev/null +++ b/target/classes/help/sound_processing/FiltersHelp/Docs/Filters_types.html @@ -0,0 +1,14 @@ + + + +Types of Filter + + + + +

Types of Filter

+

Overview


+ +


+ + diff --git a/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FIRArbitrary.png b/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FIRArbitrary.png new file mode 100644 index 00000000..1b3bbcae Binary files /dev/null and b/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FIRArbitrary.png differ diff --git a/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FIRWindow.png b/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FIRWindow.png new file mode 100644 index 00000000..2f2e9c77 Binary files /dev/null and b/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FIRWindow.png differ diff --git a/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FiltersDataSource.png b/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FiltersDataSource.png new file mode 100644 index 00000000..41c5364d Binary files /dev/null and b/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FiltersDataSource.png differ diff --git a/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FiltersSettings.png b/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FiltersSettings.png new file mode 100644 index 00000000..1aa9d03f Binary files /dev/null and b/target/classes/help/sound_processing/FiltersHelp/Docs/Images/FiltersSettings.png differ diff --git a/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/DOCS b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..d8b9254f --- /dev/null +++ b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/DOCS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..734e1a25 --- /dev/null +++ b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +euj \ No newline at end of file diff --git a/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/OFFSETS b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..fded5c04 --- /dev/null +++ b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +@eP \ No newline at end of file diff --git a/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/POSITIONS b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..5a91418b Binary files /dev/null and b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/SCHEMA b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..b46243ea --- /dev/null +++ b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=150 id2=1 diff --git a/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/TMAP b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..f78f185b Binary files /dev/null and b/target/classes/help/sound_processing/FiltersHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/sound_processing/LTSA/Docs/Images/LTSADialog.png b/target/classes/help/sound_processing/LTSA/Docs/Images/LTSADialog.png new file mode 100644 index 00000000..c2cfb9a2 Binary files /dev/null and b/target/classes/help/sound_processing/LTSA/Docs/Images/LTSADialog.png differ diff --git a/target/classes/help/sound_processing/LTSA/Docs/Images/LTSADisplay.png b/target/classes/help/sound_processing/LTSA/Docs/Images/LTSADisplay.png new file mode 100644 index 00000000..7d5b2f29 Binary files /dev/null and b/target/classes/help/sound_processing/LTSA/Docs/Images/LTSADisplay.png differ diff --git a/target/classes/help/sound_processing/LTSA/Docs/LTSA.html b/target/classes/help/sound_processing/LTSA/Docs/LTSA.html new file mode 100644 index 00000000..c0784060 --- /dev/null +++ b/target/classes/help/sound_processing/LTSA/Docs/LTSA.html @@ -0,0 +1,52 @@ + + + +Long Term Spectral Average + + + + +

Long Term Spectral Average

+

Overview

+
+ +

This module allows you to make average measurements of spectrum data over periods + of several seconds.

+

The output of a typical spectrogram (for example a 512 pt FFT with 50% overlap operating on + data sampled at 48kHz) produces around 200 FFT 'slices' per second. Consequently a typical laptop display + 1600 or so pixels wide + can only display around 8s of data if one pixel of the display is used for one 'slice' of FFT data.

+

An LTSA is a great way of viewing large amounts of data. For example, even averaging FFT data over a single second + and displaying the result will mean that 200 time more data (about 20 minutes in this example) are shown on the display.

+ +

Creating the module

+

+ From the File>Add modules>Sound Processing + menu, or from the pop-up menu on the data model display select "Sound Processing> + Long Term Spectral Average". Enter a name for the new module and press Ok. +

+

Since the LTSA module needs to connect to the output of a + FFT (spectrogram) module, if an FFT module + is not already present, you will be prompted to create one.

+ +

Configuring the module

+

+ To configure the module, open the settings dialog from the Detection>"your + module name" menu: +

+
+ Filters Settings +
+

Raw Data Source

+

+ Select a source of FFT data. This will generally be a + FFT (spectrogram) module. Check + the channels you want to measure on. +

+ +
+ +
+ + diff --git a/target/classes/help/sound_processing/LTSA/Docs/LTSADisplays.html b/target/classes/help/sound_processing/LTSA/Docs/LTSADisplays.html new file mode 100644 index 00000000..0203cdaa --- /dev/null +++ b/target/classes/help/sound_processing/LTSA/Docs/LTSADisplays.html @@ -0,0 +1,43 @@ + + + +LTSA Displays and Output + + + + +
+
+

LTSA Displays and Output

+

Displays

+

+ LTSA Data can be displayed using the same spectrogram + display modules that are used for 'normal' FFT data +

+
+ +
+

+ When using the PAMGuard + Viewer, data will be loaded from the Binary + Store and displayed enabling you to scroll through large quantities + of data. +

+
+

Output

+

+ Measurements are written to the Binary + Store if this module is present in the PAMGuard configuration. +

+
+ +
+ + diff --git a/target/classes/help/sound_processing/NoiseBands/Docs/Images/NoiseBandDialog.png b/target/classes/help/sound_processing/NoiseBands/Docs/Images/NoiseBandDialog.png new file mode 100644 index 00000000..e9a9dcd5 Binary files /dev/null and b/target/classes/help/sound_processing/NoiseBands/Docs/Images/NoiseBandDialog.png differ diff --git a/target/classes/help/sound_processing/NoiseBands/Docs/Images/NoiseBandDisplay.png b/target/classes/help/sound_processing/NoiseBands/Docs/Images/NoiseBandDisplay.png new file mode 100644 index 00000000..922fae31 Binary files /dev/null and b/target/classes/help/sound_processing/NoiseBands/Docs/Images/NoiseBandDisplay.png differ diff --git a/target/classes/help/sound_processing/NoiseBands/Docs/NoiseBandDisplays.html b/target/classes/help/sound_processing/NoiseBands/Docs/NoiseBandDisplays.html new file mode 100644 index 00000000..8b79f31f --- /dev/null +++ b/target/classes/help/sound_processing/NoiseBands/Docs/NoiseBandDisplays.html @@ -0,0 +1,30 @@ + + + +Noise Band Displays and Output + + + + +

+

Noise Band Displays and Output

+

Displays

+

The user can select which bands to show on the scrolling display of sound pressure vs. time.

+

In real time operation, the levels in individual bands are shown in the upper display.

+

You can select to show either SPL across each band or spectrum level estimates.

+

Right click on the lower display for display options.

+
+ +
+ +

Output

+

Measurements are written to both the + Database + and the Binary Store + if those modules are present in the PAMGuard configuration.

+
+ +
+ + diff --git a/target/classes/help/sound_processing/NoiseBands/Docs/NoiseBands.html b/target/classes/help/sound_processing/NoiseBands/Docs/NoiseBands.html new file mode 100644 index 00000000..4af34ab6 --- /dev/null +++ b/target/classes/help/sound_processing/NoiseBands/Docs/NoiseBands.html @@ -0,0 +1,80 @@ + + + +Noise Band Measurement + + + + +

Noise Band Measurement

+

Overview

+
+ +

This module allows you to measure noise is a multiple octave or third octave + frequency bands. These measurements are compatible with the ANSI Standard + + ANSI S1.11-2004 American National Standard Specification for +Octave-Band and Fractional-Octave-Band Analog and Digital Filters. +

+

The method works by measuring noise in three third octave (or one octave) band in the highest octave + of the available data using a bank o fband pass filters. The data are then decimated + by a factor 2 and a further three third octave (or one octave) + band measurements made in the highest octave of the decimated data. This process can be repeated for as many decimators / + octaves of data that you wish, reaching lower and lower frequencies. Because the amount of raw data to be processed + is halved in each decimator, each bank of filters requires increasingly less processing power.

+ +

Creating the module

+

+ From the File>Add modules>Sound Processing + menu, or from the pop-up menu on the data model display select " + Noise Band Measurement". Enter a name for the new module and press Ok. +

+ +

Configuring the module

+

+ To configure the module, open the settings dialog from the Detection>"your + module name" menu: +

+
+ Filters Settings +
+

Raw Data Source

+

+ Select a source of raw data. This will generally be a + Sound Acquisition Module or the output of a + Decimator if a lower frequency noise measurement is required. Check + the channels you want to measure noise on. +

+ +
+

Output Interval

+

Enter the interval between measurements in seconds.

+ +
+

Measurement Bands

+

Select Octave or Third Octave bands and the band number of the highest band you wish to measure. Select the + number of decimators, which will in turn control the lowest frequency that the module measures noise at. +

+ +
+

Filters

+

Select Butterworth or IIR Filters. Generally, Butterworth filters will operate much faster than FIR filters on a + desktop computer. Generally 5th order Butterworth or 7th oder (128 tap) FIR filters are more than adequate. + The exact cut off frequencies and filter responses are shown for information only. +

+ +
+

Bode Plots

+

The filter responses and the responses of the decimators are shown in the Bode plot on the right + hand side of the dialog. It is also possible to overlay the various ANSI standards. The scale of the + amplitude axis can be altered by double clicking on it. +

+ +
+ +
+ + diff --git a/target/classes/help/sound_processing/NoiseOneBand/Docs/Images/OneBandDisplay.png b/target/classes/help/sound_processing/NoiseOneBand/Docs/Images/OneBandDisplay.png new file mode 100644 index 00000000..6c1ed8b1 Binary files /dev/null and b/target/classes/help/sound_processing/NoiseOneBand/Docs/Images/OneBandDisplay.png differ diff --git a/target/classes/help/sound_processing/NoiseOneBand/Docs/Images/OneBandNoise.png b/target/classes/help/sound_processing/NoiseOneBand/Docs/Images/OneBandNoise.png new file mode 100644 index 00000000..d61f5ec7 Binary files /dev/null and b/target/classes/help/sound_processing/NoiseOneBand/Docs/Images/OneBandNoise.png differ diff --git a/target/classes/help/sound_processing/NoiseOneBand/Docs/NoiseOneBand.html b/target/classes/help/sound_processing/NoiseOneBand/Docs/NoiseOneBand.html new file mode 100644 index 00000000..526cf342 --- /dev/null +++ b/target/classes/help/sound_processing/NoiseOneBand/Docs/NoiseOneBand.html @@ -0,0 +1,73 @@ + + + +Filtered Noise Measurement + + + + +

Filtered Noise Measurement

+

Overview

+
+ +

This module allows you to measure noise is a single band defined + by a selection of filter types. As well as outputting several + measurements at fixed time intervals it calculates cumulative sound + exposure and also single pulse sound exposure for loud transients.

+ +

Creating the module

+

+ From the File>Add modules>Sound Processing + menu, or from the pop-up menu on the data model display select "Filtered + Noise Measurement". Enter a name for the new module and press Ok. +

+ +

Configuring the module

+

+ To configure the module, open the settings dialog from the Detection>"your + module name" menu: +

+
+ Filters Settings +
+

Raw Data Source

+

+ Select a source of raw data. This will generally be a + Sound Acquisition Module or the output of a + Decimator if a lower frequency noise measurement is required. Check + the channels you want to measure noise on. +

+ +
+

Measurement Interval

+

Enter the interval between measurements in seconds and the + interval for integrated sound exposure measurements.

+ +
+

Pulse Measurement

+

If your want to measure parameters from a single pulse, you + should check the "Detect Pulses" box. Enter a pulse detection + threshold and the maximum duration of a single pulse.

+

If you are using pulse detection, the measurement interval + should be relatively short compared to the pulse interval (e.g. 1s for + piling or seismic). The pulse detection algorithm is very simple and + just requires a jump in received amplitude from one measurement to the + next that is greater than the Detection Threshold. The pulse will end + when the measured levels drop to lower then the maximum measurement + within the pulse minus the threshold. If a pulse continues for too + long, it will be truncated when it reaches the Max Length. This should + generally be set to be between the expected pulse length and the + expected pulse interval.

+ +
+

Filter Design

+

A number of filter options are available. These are described in the + Filter Design section

+
+ +
+ + diff --git a/target/classes/help/sound_processing/NoiseOneBand/Docs/NoiseOneBandDisplays.html b/target/classes/help/sound_processing/NoiseOneBand/Docs/NoiseOneBandDisplays.html new file mode 100644 index 00000000..07c7f7e8 --- /dev/null +++ b/target/classes/help/sound_processing/NoiseOneBand/Docs/NoiseOneBandDisplays.html @@ -0,0 +1,29 @@ + + + +Filtered Noise Displays and Output + + + + +

+

Filtered Noise Displays and Output

+

Displays

+

Measurements are shown on a scrolling display of sound pressure level vs. time.

+

Right click on either the main measurement display or the pulse measurement display + for display options.

+
+ Filters Settings +
+ +

Output

+

Measurements are written to both the + Database + and the Binary Store + if those modules are present in the PAMGuard configuration.

+
+ +
+ + diff --git a/target/classes/help/sound_processing/SpectrogramSmoothing/docs/AddingConfiguring.html b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/AddingConfiguring.html new file mode 100644 index 00000000..9c886c24 --- /dev/null +++ b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/AddingConfiguring.html @@ -0,0 +1,30 @@ + + + +Spectrogram Smoothing Configuration + + + + +

Spectrogram Smoothing Kernel

+

Configuration

+ +

Adding a new smoothing kernel to PAMGUARD

+

To add a new Spectrogram Smoothing Kernel module to PAMGUARD, select the + File>Add Modules>Sound Processing>Spectrogram smoothing kernel menu command.

+

+ If there is not already a + FFT (Spectrogram)) Engine present in the PAMGUARD model, + you will be prompted to create one.

+

Configuring the smoothing kernel

+

To configure the smoothing Kernel, go to the Detection>Kernel Smoothing Settings ... menu command.

+

User Input

+

+From the drop down list, select the data source and select the channels you wish to include +in the output data of the smoothing process. +

+

+ + + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/SpectrogramSmoothing/docs/SpectrogramSmoothing.html b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/SpectrogramSmoothing.html new file mode 100644 index 00000000..a79c1244 --- /dev/null +++ b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/SpectrogramSmoothing.html @@ -0,0 +1,42 @@ + + + +spectrogram Smoothing Overview + + + + +

Spectrogram Smoothing Kernel

+

Overview

+

The spectrogram smoothing kernel filters a spectrogram image in two dimensions + by convolving an existing spectrogram with a 3 x 3 Guassian smoothing kernel +
+

+
User Input

+

+Image smoothing in this way is a standard process in many image processing edge detection applications, +causing edges to become less broken. +

+In signal processing terms, it is analogous to low pass filtering of audio data. +

+The spectrogram images below show a smoothed spectrogram on the left and an un-smoothed +spectrogram of the same data on the right. + +

User Input

+

+The resulting smoothed spectrogram may be used by any PAMGUARD module +that uses spectrogram data. Within PAMGUARD it is useful to +include a spectrogram smoothing kernel before the +Whistle detector. + +

Adding a new smoothing kernel to PAMGUARD

+

To add a new Spectrogram Smoothing Kernel module to PAMGUARD, select the + File>Add Modules>Sound Processing>Spectrogram smoothing kernel menu command.

+

+ + +

+ + + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/Kernel.png b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/Kernel.png new file mode 100644 index 00000000..ca86b362 Binary files /dev/null and b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/Kernel.png differ diff --git a/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/Smoothing.png b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/Smoothing.png new file mode 100644 index 00000000..8ee7e75b Binary files /dev/null and b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/Smoothing.png differ diff --git a/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/SmoothingSettings.png b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/SmoothingSettings.png new file mode 100644 index 00000000..f4452ead Binary files /dev/null and b/target/classes/help/sound_processing/SpectrogramSmoothing/docs/images/SmoothingSettings.png differ diff --git a/target/classes/help/sound_processing/amplifier/docs/amplifier.html b/target/classes/help/sound_processing/amplifier/docs/amplifier.html new file mode 100644 index 00000000..93e64578 --- /dev/null +++ b/target/classes/help/sound_processing/amplifier/docs/amplifier.html @@ -0,0 +1,41 @@ + + + +Signal Amplifier + + + + +

Signal Amplifier

+

+The Signal Amplifier module can be used to increase or reduce the level +of an audio signal and can also be used to invert signals. +

+ +

Creating a Signal Amplifier

+

From the File>Add modules>Sound +Processing menu, or from the pop-up menu on the data model display +select "Signal Amplifier". Enter a name for the new +amplifier module and press Ok.

+
+ +

Configuring the Signal Amplifier

+

+To access the module's settings, select Detection>Signal Amplifier... + from the detection menu. +This will bring up a dialogue similar to the one shown below.

+
+Signal Amplifier +
+

Select the sound source from the drop down list

+

Set the gain for each channel in dB

+

Check the box if you wish to invert the signal on a channel (multiply all +valued by -1).

+ +

Using the Signal Amplifier

+

Other PAMGUARD modules that use raw audio data can then subscribe to the output +of the Signal Amplifier module instead of the +sound acquisition module.

+ + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/amplifier/docs/images/amplifier.png b/target/classes/help/sound_processing/amplifier/docs/images/amplifier.png new file mode 100644 index 00000000..a97b8bb2 Binary files /dev/null and b/target/classes/help/sound_processing/amplifier/docs/images/amplifier.png differ diff --git a/target/classes/help/sound_processing/beamformer/docs/Beamformer_AlgoConfig.html b/target/classes/help/sound_processing/beamformer/docs/Beamformer_AlgoConfig.html new file mode 100644 index 00000000..d356ffa9 --- /dev/null +++ b/target/classes/help/sound_processing/beamformer/docs/Beamformer_AlgoConfig.html @@ -0,0 +1,101 @@ + + + + Beamformer Algorithm Configuration + + + +

Beamformer Module

+

Algorithm Configuration

+
+

Algorithm Dialog Tabs

+

Both the Basic Frequency Domain and MVDR Beamformer Algorithms have the same user-configurable options. The dialog window has 2 tabs: +Individual Beams and Beamogram. The user is able to define either individual +beams, a beamogram, or both, depending on the output desired.

+

+
+
+

Configuring Individual Beams

+

Individual beams can be created to focus the beamformer algorithms in a specific look direction. The output data of a beam can be used with any +module that accepts fft data, such as a spectrogram or the Whistle & Moan detector. When selecting a beam to use, the 'beam number' is used in place of the channel number that is normally +specified in a dialog.

+

+
+ +
    +
  1. +

    Array Information: The type of array as defined by the channels in this group, and the corresponding valid angle ranges. +There are three possible array types: Linear, Planar and Volumetric.

    + +
  2. +
  3. +

    List of Individual Beams: A list of the currently defined beams. Selecting one of the beams will highlight it and display the +beam pattern in the chart to the right (if all beam patterns are being displayed in the chart, the selected beam pattern will be +shown in orange).

    +
  4. +
  5. +

    Beam Generation Tools: To create a new beam, type in the primary angle and secondary angle, select the window type, and press the +Add Beam button. Pressing the Delete Beam button will delete whichever beam is currently selected in the table above. Pressing +the Create Default Beams button will automaticall create n beams, where n is equal to the number of channels +in this group. The beams will be evenly spaced throughout the valid primary angle range.

    +
  6. +
  7. +

    Beam Pattern chart: a chart displaying the beam pattern of the currently selected beam, in orange. If all beams are being displayed, + the other beams will be appear in grey. The beam pattern shows the gain as a function + of primary angle, at the specified secondary angle and frequency. The gain is an indication of the angles at which constructive/destructive + interference will occur between the channels.

    +
  8. +
  9. +

    Beam Configuration Tools: tools to allow the user to modify the beam parameters and immediately see the effect in the chart above. The + parameters are applied only to the beam selected in the table to the left, which will be shown in orange in the chart. Checking the Display + All Beam Patterns box will display all of the beams in the chart, with the selected beam in orange and the remaining beams in grey.

    +
  10. +
+

+
+

Configuring the Beamogram

+

Instead of creating individual beams to identify signals originating from a specific direction, a beamogram can be used to +sweep an entire range of directions. The resultant output is a 'heat-map' of the amplitude of the signal versus primary and secondary angles. +The output can be shown on a User Display tab by selecting New Beamformer Display.

+

A beamogram can be considered as a great number of individual beams, combined into a single output. As such, it is much more computationally-intensive +and care should be taken when selecting the parameters below. Small step sizes and large angle ranges (i.e. fine resolution scanning) will require +appropriate processor speed and memory.

+ +
+
    +
  1. +

    Array Information: The type of array as defined by the channels in this group. Valid angle ranges are given in the appropriate sections below. +There are three possible array types: Linear, Planar and Volumetric. See the Individual Beams Array Information section for details of each.

    +
  2. +

    Checkbox indicating whether or not to calculate the beamogram.

    +
  3. +
  4. +

    Primary angle parameters: the minimum, maximum and step size to use when sweeping the primary angle. The direction and valid range of the primary angle + depends on the type of array. See the Individual Beams Array Information section for details.

    +
  5. +
  6. +

    Secondary angle parameters: the minimum, maximum and step size to use when sweeping the secondary angle. The direction and valid range of the secondary angle + depends on the type of array. See the Individual Beams Array Information section for details.

    +
  7. +
  8. +

    The Frequency range: the beamogram requires much more processing-power than individual beams. In order to speed up the calculations and prevent memory overflow problems, it is recommended that the frequency range over which the + beamogram is calculated be limited to the frequencies containing the signals of interest.

    +
  9. +
+
+
+ + + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/beamformer/docs/Beamformer_Output.html b/target/classes/help/sound_processing/beamformer/docs/Beamformer_Output.html new file mode 100644 index 00000000..d8ddeec3 --- /dev/null +++ b/target/classes/help/sound_processing/beamformer/docs/Beamformer_Output.html @@ -0,0 +1,55 @@ + + + + Beamformer Output + + + +

Beamformer Module

+

Beamformer Output

+
+

Individual Beam Output

+

The output of individually-configured beamformer beams is FFT data, and as such any module that can accept FFT data will be able to use the beamformer as input. For visualisation +purposes, this typically means a Spectrogram.

+

+ +
    +
  1. +

    In the Spectrogram Parameters window, select Beamformer data as the FFT Source

    +
  2. +
  3. +

    The channel numbers here are actually the beam numbers, as defined in the Beam Algorithm Configuration dialog.

    +
  4. +
+

+
+
+

Beamogram Output

+

The beamogram outputs a time-series dataset, and can be displayed on an FX Spectrogram. When a User Display tab is active, +select User Display from the main menu, and then select New Time base Data display FX

+ +

+
+

See the help file for more information about FX displays.

+

Add the beamogram data to the display, and adjust the angle range to view. Although a beamformer can calculate up to 3 different dimensions +of data for each time slice (primary angle, secondary angle and frequency), only primary angle versus time is displayed in the spectrogram. To +do this, the beamformer data is averaged over the frequency and secondary angle for each primary angle bin.

+

+ +
    +
  1. +

    Standard Spectrogram, showing the FFT Engine output.

    +
  2. +
  3. +

    Beamogram Display, showing primary angle versus time with the amplitude represented by the colour.

    +
  4. +
+

The image above shows a simulated right whale call generated 90 degrees from the ship's heading, and captured with a 16 channel array. The +gain is proportional to the number of channels being combined, so with fewer channels the spread in amplitude will decrease. This means that, +with smaller arrays, it may be difficult to visually see the angle with the highest amplitude as the display will look more like vertical bars of the +same (or similar) colour.

+
+
+ + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/beamformer/docs/Beamformer_Overview.html b/target/classes/help/sound_processing/beamformer/docs/Beamformer_Overview.html new file mode 100644 index 00000000..72effcd9 --- /dev/null +++ b/target/classes/help/sound_processing/beamformer/docs/Beamformer_Overview.html @@ -0,0 +1,46 @@ + + + + + Beamformer Overview + + +

Beamformer Module

+

Overview

+ +

Background

+

Time-domain beamforming uses streams of audio input from multiple sensor channels, adds different time delays/advances to these audio streams, +and then differentially weighs and sums them, resulting in one or more acoustic beams. These beams will be most sensitive in only one direction, +the direction providing constructive interference. They will suppress noise coming from other directions, destructive interference, thereby improving +signal-to-noise ratios in the desired direction. In effect, a beamformer is a +spatial filter, filtering out all arriving signals except those in the direction of interest.

+ +

An alternative interpretation is that beamforming +converts data from a multi-sensor/multi-channel array into data from a single directional receiver located at the array phase center. The direction +in which this directional receiver is pointed can be changed via time delays and advances. Time-delay-and-sum beamforming is a phase-coherent array +processing method. Other phase-coherent beamformers operate in the frequency domain, after taking Fourier transforms of the input time series data, +phase delaying/advancing, weighting, and summing, and outputting one or more narrowband beams that can be integrated over a frequency band of interest +for broadband signals.

+ +

More advanced algorithms (e.g., adaptive beamforming) can be used to electronically steer the beams under specified optimization +criteria (e.g., minimize the beamformer's output variance under the constraint of unity gain in the desired look direction), allowing the user to +effectively look or listen in a specific direction while minimizing the interference from noise and sounds in other directions. These data-adaptive +beamforming approaches are effective for maximizing array gain in the presence of interfering noise sources, such as airgun operations or vessel noise.

+

+
+ +

Implementation

+ +

PAMGuard's Beamformer module offers two different types of frequency-domain beamforming algorithms: Basic (aka Conventional or Bartlett), +and Minimum Variance Distortionless Response (aka MVDR). The Conventional beamformer uses a fixed set of weightings to combine signals from different +channels. The MVDR uses uses an adaptive weighting scheme which seeks to minimize the variance of the input signal. +The MVDR is more processor-intensive, but may result in better noise reduction and signal amplification.

+

The beamformer module can be configured two different ways. Individual beams can be defined, which point in a specific direction. Output from these beams +is FFT data which can be used as input to other modules and processes. A beamogram can also be configured, which sweeps over an area/volume to reveal bearing +angles from which higher amplitude signals are originating.

+

+
+
+ + + diff --git a/target/classes/help/sound_processing/beamformer/docs/Beamformer_Settings.html b/target/classes/help/sound_processing/beamformer/docs/Beamformer_Settings.html new file mode 100644 index 00000000..87174c3d --- /dev/null +++ b/target/classes/help/sound_processing/beamformer/docs/Beamformer_Settings.html @@ -0,0 +1,71 @@ + + + + Beamformer Configuration + + + +

Beamformer Module

+

Creation and Configuration

+
+

Creating a Beamformer module

+

From the File > Add Modules +> Sound Processing menu, select "Beamformer". +Enter a descriptive name for the new module and press OK.

+

+
+
+

Configuring a Beamformer module

+

Note: A suitable Source module should be configured before configuring the Beamformer. See below for details of acceptable sources.

+
+

From the Settings menu, select "Beamformer settings". This will open up a new dialog containing 2 tabs: Source and Algorithms.

+ +

+
+
+ +

Source tab

+ +
    +
  1. +

    Data Source: where the Beamformer should get it's input data from. The Beamformer will accept any +module that can output FFT information, such as from an +FFT Engine module or +Decimator module.

    +
  2. +
  3. +

    Channel Group Type: Select how the channels should be grouped, either No Grouping, a Single Group, or multiple (User) Groups.

    +
  4. +
  5. +

    Channel Grouping: When a data source is selected, the dialog will show a series of check boxes - one for each channel available +from that Source. Select the channels you want to use for beamformer calculation, then to the right of each channel check box, +assign the channel to a group. The group numbers themselves are not important - they just need to be different for each group.

    +

    The beamformer algorithm will combine the information from all channels in a group and output the resulting signal. If there are +multiple groups defined, there will be multiple output signals. In such a case, each signal will be identified by the group number +(also termed the Sequence number). +

+

+
+

Algorithms tab

+ +
+

The user is able to select a beamformer algorithm for each group defined on the Channel Groups tab. The window displays the group number, and +the number of channels associated with that group.

+
    +
  1. +

    Algorithm: specify which algorithm to use for this group. There are 2 types of algorithms available: Basic Frequency Domain (Conventional/Bartlett) +and Minimum Variance Distortionless Response (MVDR). The Basic Frequency Domain beamformer algorithm combines the signals from multiple channels into a +single output using a static set of weights. The MVDR also combines the signals from multiple channels into a single output, but uses an adaptive weighting +scheme which continuously seeks to minimize the variance of the recorded signal. The MVDR is more processor-intensive, but may result in better noise reduction +and signal amplification.

    +
  2. +
  3. +

    Settings: press the settings button to open up the settings for the algorithm in a new dialog.

    +
  4. +
+
+
+ + + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/beamformer/docs/images/BF Algo.PNG b/target/classes/help/sound_processing/beamformer/docs/images/BF Algo.PNG new file mode 100644 index 00000000..a277e986 Binary files /dev/null and b/target/classes/help/sound_processing/beamformer/docs/images/BF Algo.PNG differ diff --git a/target/classes/help/sound_processing/beamformer/docs/images/BF Beamogram.PNG b/target/classes/help/sound_processing/beamformer/docs/images/BF Beamogram.PNG new file mode 100644 index 00000000..55c68836 Binary files /dev/null and b/target/classes/help/sound_processing/beamformer/docs/images/BF Beamogram.PNG differ diff --git a/target/classes/help/sound_processing/beamformer/docs/images/BF Individ Beams.PNG b/target/classes/help/sound_processing/beamformer/docs/images/BF Individ Beams.PNG new file mode 100644 index 00000000..cd85c001 Binary files /dev/null and b/target/classes/help/sound_processing/beamformer/docs/images/BF Individ Beams.PNG differ diff --git a/target/classes/help/sound_processing/beamformer/docs/images/BF Output Beamogram.PNG b/target/classes/help/sound_processing/beamformer/docs/images/BF Output Beamogram.PNG new file mode 100644 index 00000000..e100368b Binary files /dev/null and b/target/classes/help/sound_processing/beamformer/docs/images/BF Output Beamogram.PNG differ diff --git a/target/classes/help/sound_processing/beamformer/docs/images/BF Output Individ.PNG b/target/classes/help/sound_processing/beamformer/docs/images/BF Output Individ.PNG new file mode 100644 index 00000000..578b7413 Binary files /dev/null and b/target/classes/help/sound_processing/beamformer/docs/images/BF Output Individ.PNG differ diff --git a/target/classes/help/sound_processing/beamformer/docs/images/BF Source FFT.PNG b/target/classes/help/sound_processing/beamformer/docs/images/BF Source FFT.PNG new file mode 100644 index 00000000..da523e9c Binary files /dev/null and b/target/classes/help/sound_processing/beamformer/docs/images/BF Source FFT.PNG differ diff --git a/target/classes/help/sound_processing/beamformer/docs/images/BF menu select.PNG b/target/classes/help/sound_processing/beamformer/docs/images/BF menu select.PNG new file mode 100644 index 00000000..4563cbd2 Binary files /dev/null and b/target/classes/help/sound_processing/beamformer/docs/images/BF menu select.PNG differ diff --git a/target/classes/help/sound_processing/beamformer/docs/images/FX Display.PNG b/target/classes/help/sound_processing/beamformer/docs/images/FX Display.PNG new file mode 100644 index 00000000..215ee650 Binary files /dev/null and b/target/classes/help/sound_processing/beamformer/docs/images/FX Display.PNG differ diff --git a/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/DOCS b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..60fca21d --- /dev/null +++ b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/DOCS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..67df1725 Binary files /dev/null and b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/DOCS.TAB differ diff --git a/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/OFFSETS b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..f689e25f --- /dev/null +++ b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +@ \ No newline at end of file diff --git a/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/POSITIONS b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..738a7970 Binary files /dev/null and b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/SCHEMA b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..4aca148e --- /dev/null +++ b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=112 id2=1 diff --git a/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/TMAP b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..d3b81e64 Binary files /dev/null and b/target/classes/help/sound_processing/decimatorHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/sound_processing/decimatorHelp/Map.jhm b/target/classes/help/sound_processing/decimatorHelp/Map.jhm new file mode 100644 index 00000000..54367982 --- /dev/null +++ b/target/classes/help/sound_processing/decimatorHelp/Map.jhm @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/decimatorHelp/doc.decimator_decimator b/target/classes/help/sound_processing/decimatorHelp/doc.decimator_decimator new file mode 100644 index 00000000..7843f634 --- /dev/null +++ b/target/classes/help/sound_processing/decimatorHelp/doc.decimator_decimator @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + +
+

Welcome to a new Help Project

+ +

General Remark

+ +

This is a default welcome page that is displayed when + you open your helpset in the viewer without specifying a + target. Change it according to your needs. If you do not + like this template, you can also edit the file + %INSTALLDIR%/templates/index.html.

+ +

Now you can create your HTML content files. Put them + in subdirectories of your project directory.

+
+ + + diff --git a/target/classes/help/sound_processing/decimatorHelp/docs/Images/DecimatorDialog.png b/target/classes/help/sound_processing/decimatorHelp/docs/Images/DecimatorDialog.png new file mode 100644 index 00000000..56667787 Binary files /dev/null and b/target/classes/help/sound_processing/decimatorHelp/docs/Images/DecimatorDialog.png differ diff --git a/target/classes/help/sound_processing/decimatorHelp/docs/decimator_decimator.html b/target/classes/help/sound_processing/decimatorHelp/docs/decimator_decimator.html new file mode 100644 index 00000000..995b277e --- /dev/null +++ b/target/classes/help/sound_processing/decimatorHelp/docs/decimator_decimator.html @@ -0,0 +1,57 @@ + + + +Decimator + + + + +

Decimator

+

Overview

+

Decimators can be used to drop the frequency of raw audio data.

+

For example, you may have a raw audio data stream sampled at 96kHz (you might have sampled at this search for odontocete clicks); you also want to search for baleen whale sounds at +around 100Hz. It would be inefficient to run the baleen whale detector on the 96kHz data. However, by using the Decimator +to produce a new raw data stream at a few 100Hz and running the baleen whale detector on this, the total amount of processing will be reduced, spectrogram +displays will also be more clearer.

+

+A decimator can be inserted anywhere in the PAMGUARD data model where there are raw audio data. +

+
+

Creating a Decimator

+ +

+From the File>Add modules>Sound Processing menu, or from the pop-up menu on the +data model display select "Decimator". +Enter a name for the new decimator module (e.g. "2kHz", etc) and press Ok.

+
+ +

Configure the Decimator

+

The Decimator module requires a source of raw data before it can operate. +This may come directly from a Sound Acquisition module (e.g. a sound card or a National Instruments board) +or from processed data such as the output from a filter, another decimator, etc. +

+

+To configure the decimator, go to the Detection>"your decimator name ..."> +menu

+
+Decimator Dialog
+

+Select the data source and specify the sample rate of the output data. +

+ +

Filter Settings

+

+For a decimator to work correctly, you must correctly +filter the data before it is downsampled. +

+

+Press the filter settings dialog and the filter dialog will appear (see +the IIRF Filter help). +You need to set up the filter so that most of the energy is filtered out below the Nyquist +frequency (half the output sample rate). A low pass 4th or 6th order Chebyshev filter with a cut off frequency +of 0.8 times the Nyquist frequency should be adequate. +

+ +
+ + diff --git a/target/classes/help/sound_processing/decimatorHelp/resources.topic b/target/classes/help/sound_processing/decimatorHelp/resources.topic new file mode 100644 index 00000000..6077227b Binary files /dev/null and b/target/classes/help/sound_processing/decimatorHelp/resources.topic differ diff --git a/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/DOCS b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..3b9618e9 Binary files /dev/null and b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..de10501d --- /dev/null +++ b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +e__@ꪺꪪ \ No newline at end of file diff --git a/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/OFFSETS b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..9969614f --- /dev/null +++ b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +h` \ No newline at end of file diff --git a/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/POSITIONS b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..7d5bd723 Binary files /dev/null and b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/SCHEMA b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..93c9fe20 --- /dev/null +++ b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=107 id2=1 diff --git a/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/TMAP b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..d2fada9a Binary files /dev/null and b/target/classes/help/sound_processing/fftManagerHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Configuring.html b/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Configuring.html new file mode 100644 index 00000000..2997bc93 --- /dev/null +++ b/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Configuring.html @@ -0,0 +1,55 @@ + + + +Configuring an FFT Engine + + + + +

FFT Engine

+

Configuring an FFT Engine


+ +Image

+ +

+The FFT Parameters dialog is shown automatically when a new FFT Engine is created. +It can also be accessed in the two following ways +

1. From the Detection>FFT Parameters menu + 2. From the pop-up menu on the FFT Engine window in the PAMGUARD Data Model display. +

Select a data source

+

From the drop down list select a source of audio data. + When you select a new data source, the channel list will be updated to show the + number of channels in the selected data source. Tick the check boxes for the + channels you wish FFT data to be computed for. +

+

+

+To save processor power, do not +calculate FFT data for channels that are not needed in subsequent PAMGUARD processes. +

Set the FFT Length

+

This must be an exact power of 2. +

+

Set the FFT Hop

+

This is the number of samples between the start of successive FFT blocks - often this is set to half the FFT length to provide overlap. +

+

Set the Window type

+

Select a windowing function from the following options:

+


+ Rectangular
+ Hamming
+ Hanning
+ Bartlett (Triangular)
+ Blackman
+ Blackman-Harris
+ +

+
+
+ + +

+ + +


+ + diff --git a/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Creating.html b/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Creating.html new file mode 100644 index 00000000..2d858f97 --- /dev/null +++ b/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Creating.html @@ -0,0 +1,27 @@ + + + +Creating an FFT Engine + + + + +

FFT Engine

+

Creating a new FFT Engine


+ +

+From either the File>Add Modules menu or the popup menu on the PAMGUARD data model view, +select new FFT (Spectrogram) Engine . +

+You will be prompted to enter a name for the new FFT Engine. +

+The FFT Parameters dialog will then be displayed allowing you to set-up the FFT Engine. +

+
+ + + + + + + diff --git a/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Overview.html b/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Overview.html new file mode 100644 index 00000000..d166caf9 --- /dev/null +++ b/target/classes/help/sound_processing/fftManagerHelp/docs/FFTEngine_Overview.html @@ -0,0 +1,40 @@ + + + +FFT Engine Overview + + + + +

FFT Engine

+

Overview


+ +

+Spectrograms of sound data are used throughout the PAMGUARD system. +They provide the basic data for many detectors and also play an essential role +in the PAMGUARD display. The FFT (spectrogram) Engine in PAMGUARD provides a +powerful tool for generating spectrogram data from a raw data source. +

+Data from a single FFT engine may be shared between multiple displays and detectors +in order that processor intensive calculations are not repeated. +

+
+ +

Output


+

Versions Beta 1.5.00 and later include a number of +noise reduction options as part +of the FFT Engine. The FFT Engine therefore now has two output +data streams which other PAMGUARD modules can subscribe to.

+

The first is the raw FFT data

+

The second is the FFT data after it's passed through the noise reduction processes

+

Both of these data streams should appear automatically in drop down lists of data sources +when you configure other modules.

+

(If no noise reduction is enabled, then the output of the two streams will be identical)

+ + +

+ + + + + diff --git a/target/classes/help/sound_processing/fftManagerHelp/docs/images/FFTParameters.png b/target/classes/help/sound_processing/fftManagerHelp/docs/images/FFTParameters.png new file mode 100644 index 00000000..a1177eb5 Binary files /dev/null and b/target/classes/help/sound_processing/fftManagerHelp/docs/images/FFTParameters.png differ diff --git a/target/classes/help/sound_processing/fftManagerHelp/docs/noise_removal.html b/target/classes/help/sound_processing/fftManagerHelp/docs/noise_removal.html new file mode 100644 index 00000000..a304af4d --- /dev/null +++ b/target/classes/help/sound_processing/fftManagerHelp/docs/noise_removal.html @@ -0,0 +1,61 @@ + + + +Configuring an FFT Engine + + + + +

FFT Engine

+

Noise Removal


+

The FFT Engine contains five different noise removal processes


+ +

Click Removal

+

Median Filter

+

Average Subtraction

+

Gaussian Kernel Smoothing

+

Thresholding


+
+

Each method can be enabled individually

+
+

Click Removal

+

+The click removal method operates on the time series data prior to the FFT calculation +and therefore affects both output streams of the FFT Engine. +

+Click removal measures the standard deviation of + the time series data and then multiplies the signal + by a factor which increases rapidly for large signal + components. This has the effect of reducing the magnitude + of short duration transient signals such as echolocation clicks +

+

Median Filter

+

Within each spectrogram slice, the + median value about each point is + taken and subtracted from that point. +

+

Average Subtraction

+

+A decaying average spectrogram is computed +and subtracted from the current spectrogram value. +

+

Gaussian Kernel Smoothing

+

The spectrogram is smoothed by convolving + the image with a Gaussian smoothing kernel

+ 1 2 1
+ 2 4 2
+ 1 2 1. +

+

Thresholding

+

+A threshold is applied and all data +falling below that threshold set to 0. +

+ + +

+ + + + + \ No newline at end of file diff --git a/target/classes/help/sound_processing/patchPanelHelp/docs/Images/PatchPanel.png b/target/classes/help/sound_processing/patchPanelHelp/docs/Images/PatchPanel.png new file mode 100644 index 00000000..e8285313 Binary files /dev/null and b/target/classes/help/sound_processing/patchPanelHelp/docs/Images/PatchPanel.png differ diff --git a/target/classes/help/sound_processing/patchPanelHelp/docs/patchpanel.html b/target/classes/help/sound_processing/patchPanelHelp/docs/patchpanel.html new file mode 100644 index 00000000..96b458c3 --- /dev/null +++ b/target/classes/help/sound_processing/patchPanelHelp/docs/patchpanel.html @@ -0,0 +1,60 @@ + + + +Patch Panel + + + + +

Patch Panel

+

Overview


+

Patch Panels can be used to re-order channels, duplicate channels and mix data +from multiple channels

+ +

+A patch panel can be inserted anywhere in the PAMGUARD data model +where there are raw audio data. +

+
+

Creating a Patch Panel

+ +

+From the File>Add modules>Sound Processing menu, or from the pop-up menu on the +data model display select "Patch Panel". +Enter a name for the new Patch Panel module (or keep the default "Patch Panel") +and press Ok.

+
+ +

Configure the Patch Panel

+

The Patch Panel module requires a source of raw data before it can operate. +This may come directly from a +Sound Acquisition module (e.g. a sound card +or a National Instruments board) +or from processed data such as the output from a +filter, a +decimator, etc. +

+

+To configure the Patch Panel, go to the Detection>"your patch panel name ..."> +menu

+
+Patch Panel Dialog
+

+Select the data source at the top of the dialog. +

+ +

Patch Panel Settings

+

+Inputs to the patch panel are shown down the left hand side of the matrix. The number +of inputs will be equal to the number of channels in the data source. +

+

Outputs are shown along the top. There will always be 32 output channels available.

+

Check the boxes to link input channels to output channels.

+

In the example, the patch panel has been used to reverse the order of channels 2 and 3.

+ +

Apply Immediately

+

If the "Apply Immediately" box is checked, then changes to the patch panel matrix +become effective immediately.

+


+ + diff --git a/target/classes/help/sound_processing/seismicveto/docs/images/VetoConfiguration.png b/target/classes/help/sound_processing/seismicveto/docs/images/VetoConfiguration.png new file mode 100644 index 00000000..a6c693a3 Binary files /dev/null and b/target/classes/help/sound_processing/seismicveto/docs/images/VetoConfiguration.png differ diff --git a/target/classes/help/sound_processing/seismicveto/docs/images/VetoDataModel.png b/target/classes/help/sound_processing/seismicveto/docs/images/VetoDataModel.png new file mode 100644 index 00000000..9e8907f1 Binary files /dev/null and b/target/classes/help/sound_processing/seismicveto/docs/images/VetoDataModel.png differ diff --git a/target/classes/help/sound_processing/seismicveto/docs/images/VetoSpectrograms.png b/target/classes/help/sound_processing/seismicveto/docs/images/VetoSpectrograms.png new file mode 100644 index 00000000..46190005 Binary files /dev/null and b/target/classes/help/sound_processing/seismicveto/docs/images/VetoSpectrograms.png differ diff --git a/target/classes/help/sound_processing/seismicveto/docs/images/VetoTriggerWindow.png b/target/classes/help/sound_processing/seismicveto/docs/images/VetoTriggerWindow.png new file mode 100644 index 00000000..aaa09bde Binary files /dev/null and b/target/classes/help/sound_processing/seismicveto/docs/images/VetoTriggerWindow.png differ diff --git a/target/classes/help/sound_processing/seismicveto/docs/veto_configuration.html b/target/classes/help/sound_processing/seismicveto/docs/veto_configuration.html new file mode 100644 index 00000000..499e8a5a --- /dev/null +++ b/target/classes/help/sound_processing/seismicveto/docs/veto_configuration.html @@ -0,0 +1,67 @@ + + + +Seismic Veto Configuration + + + + +

Seismic Veto

+

Configuration


+ + +

Creating a Seismic Veto

+

From the File>Add modules>Sound +Processing menu, or from the pop-up menu on the data model display +select "Seismic Veto". Enter a name for the new +seismic veto module and press Ok.

+
+ +

Seismic Veto Configuration

+ +
+Seismic Veto Configuration +
+

FFT Data Source

+

Select a source of FFT data for the seismic veto module. The veto module will +automatically find the input raw data used to create the FFT / Spectrogram data.

+

Select the channels you wish to include in the Veto output data using the check boxes

+ +

Veto Trigger

+

Set the parameters of the veto trigger. To assist in setting the right parameters, you +should view the Seismic Veto Trigger Function plugin on the bottom of a spectrogram display +as shown below.

The lower black horizontal line shows the 0dB (or average noise) level, the upper +line shows the trigger threshold

Clearly, when the signal rises above threshold, the +veto has cut out all data in the spectrogram and replaced it with zeros.

+ +
+Seismic Veto Trigger +
+

This shows the difference between current signal level in a given energy band and the +background noise averaged over a set time period. The Seismic pulses should be clearly visible in the +display window. Set the trigger threshold so that the seismic pulses rise above the threshold, wheras +other sounds do not.

+

Trigger Threshold

+

Is the threshold value in dB between the current signal and the measured background.

+

Background smoothing constant

+

Time in seconds that background noise should be measured over

+

low and high frequencies

+

Frequency limits of background and noise level measurements

+ +

Veto Actions

+

Set the time you want the veto to start at relative to the start of the trigger

Generally +you will want to start the veto a fraction of a second before the onset of the seismic pulse

. +

Set the time you want the veto to continue for after the end of the trigger

Generally +you will want to end the veto a fraction of a second after the end of the seismic pulse

. +

Set whether you want to fill the vetoed data with zeros, or with random generated noise

+

For listening, zeros are generally more pleasant, but some detectors thresholds may adjust +badly during a period of empty data and consequently get a number of false detections immediately +the veto ends

+ + +
+ + +


+ + diff --git a/target/classes/help/sound_processing/seismicveto/docs/veto_overview.html b/target/classes/help/sound_processing/seismicveto/docs/veto_overview.html new file mode 100644 index 00000000..c178a7ed --- /dev/null +++ b/target/classes/help/sound_processing/seismicveto/docs/veto_overview.html @@ -0,0 +1,62 @@ + + + +Seismic Veto Overview + + + + +

Seismic Veto

+

Overview


+

Many of the PAMGUARD detectors set detection thresholds +automatically as a function of background noise. Loud sounds from +airguns can upset this automatic threshold setting. It is of course +extremely unpleasant listening on headphones when airguns are firing +nearby and airgun sounds may even pose a risk to the operators hearing. +

+

During automatic threshold setting, a period of zero signal can +upset threshold levels almost as much as a period of too much signal for +some detector types

+

The seismic veto module detects the airgun pulse automatically +using a simple in-band energy detector operating on spectrogram data. +When the signal level exceeds some threshold, that period of sound is +either taken out and set to zero, or replaced with randomly generated +noise with the same spectral properties as measured in the signal prior +to the airgun pulse. The time window of vetoed data can be set to +continue after the signal has fallen below threshold to ensure the end +of the pulse is discarded. It can also be configured to start the veto +before the onset of the pulse (this is achieved by delaying the signal +slightly in an internal buffer).

+

The seismic veto module has two output streams, the first +containing vetoed FFT data and the second containing vetoed raw audio +data. Other PAMGUARD modules can subscribe to the appropriate output of +the seismic veto module and operate as normal, but without the loud +airgun sounds.

+ +
+Seismic Veto Data Model
+
+ +

The figure above shows a simple PAMGUARD configuration with the output +of the seismic veto connected to a + +sound playback module, a click +detector and a whistle detector. The figure below shows spectrograms and +waveforms of data before and after the seismic veto module.

+
+Seismic Veto Spectrograms
+
+ +

A veto can be inserted anywhere in the PAMGUARD data model +where there is +FFT / Spectrogram data.

+
+ +
+ + + +


+ + diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/DOCS b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..3b2ab53c --- /dev/null +++ b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/DOCS @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..eb59a482 --- /dev/null +++ b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +ej \ No newline at end of file diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/OFFSETS b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..be19e176 --- /dev/null +++ b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +@ \ No newline at end of file diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/POSITIONS b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..81125043 Binary files /dev/null and b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/SCHEMA b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..3f414e29 --- /dev/null +++ b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=0 fl=-1 id1=111 id2=1 diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/TMAP b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..193d80c3 Binary files /dev/null and b/target/classes/help/sound_processing/soundPlaybackHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/DaqCardOutput.png b/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/DaqCardOutput.png new file mode 100644 index 00000000..d3b05ee8 Binary files /dev/null and b/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/DaqCardOutput.png differ diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundCardOutput.png b/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundCardOutput.png new file mode 100644 index 00000000..96ebf629 Binary files /dev/null and b/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundCardOutput.png differ diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundOutput.png b/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundOutput.png new file mode 100644 index 00000000..169ca999 Binary files /dev/null and b/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundOutput.png differ diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundOutputSideBar.png b/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundOutputSideBar.png new file mode 100644 index 00000000..692a86ce Binary files /dev/null and b/target/classes/help/sound_processing/soundPlaybackHelp/docs/Images/SoundOutputSideBar.png differ diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_Config.html b/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_Config.html new file mode 100644 index 00000000..49809267 --- /dev/null +++ b/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_Config.html @@ -0,0 +1,74 @@ + + + +Sound Output Configuration + + + + +

Sound Output

+ + +

Configuration

+

To access the module's settings, select Detection>Sound +Output... from the main menu . This will bring up the Sound Output +dialog.

+ + +

Data Source

+

The sound output module requires a source of raw data before it +can operate. Select a raw data source from the drop down list.

+

Select the data channels. Note that a sound card will only +be able to play back two channels at a time and you will therefore only +be able to check one or two boxes.

+ +

Options

+

The available options will depend on the type of sound acquisition +device.

+ +

Sound Card and ASIO Sound Card Input

+

If using a sound card input, you will only be able to play back out through a sound +card, and should ideally select the same device.

You will be restricted to two +output channels. Once two channels are selected, other channels will be 'grayed out'. De-select +a channel in order to make a fresh selection.

+
Sound Output Dialog
+ +

Other Input Devices

+

If using other input devices, (National Instruments cards, SAIL Daq cards, etc.) you can +play back through any available device, though it is recommended that you use the same +device if at all possible.

The sample rate of the output device does not need to match +the input sample rate and PAMGuard will automatically up-sample or decimate data to convert between +the input sample rate and the output sample rate.

+
Sound Output Dialog
+ +

Audio files and File Folders

+

Select the output device type which can either be a sound card or a National Instruments device.

+

Set the output sample rate. This can be anything so long as it is supported by the output +device you are using.

+

Set the play-back speed. This is how many times real-time the data will play at.

+

PAMGuard will automatically up-sample or decimate data to convert between +the input sample rate and the output sample rate, taking into account the playback speed.

+

If listening on headphones via a sound card, then an output sample rate of 48kHz or 96kHz is recommended. +however, if you're outputting data from PAMGuard for other purposes, such as driving a high frequency sound +source, then you will need to select an appropriately high sample rate and ensure that you are using an +output device that supports that sample rate.

+

Note: During file analysis, if no channels are +selected and there is no play-back, analysis will continue at the maximum +rate possible using all available processor power. If sound play-back is +enabled, then analysis will proceed at the speed governed by the sound +play-back rate. If the processor can't keep up with analysing data at the +play-back rate, then play-back will appear interrupted and 'glitchy'

+

It is possible to re-configure channels during analysis, so if +you are analysing a lot of data, you may want to occasionally turn on +sound output on one or two channels to have a listen, then turn them off +again so that it processes as fast as possible.

+ + +
+ + + +


+ + diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_Control.html b/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_Control.html new file mode 100644 index 00000000..c8636a2e --- /dev/null +++ b/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_Control.html @@ -0,0 +1,62 @@ + + + + + +Sound Output Control + + + + +

Sound Output

+

Control

+
+

Many of the sound output's features can be controlled from the PAMGuard side bar which contains controls to

+ + +
Sound Output Dialog
+ +

High Pass Filter

+

The filter type is currently fixed as a second order high pass Butterworth filter which is suitable +for the removal of unwanted low frequency sound when listening to audio data. Drag the slider to +the required cut off frequency and the filter will automatically adjust.

+ +

Envelope Tracing

+

Many cetacean echolocation clicks are too high frequency to be audible to humans. However, it is possible +to hear these sounds by listening to their outline, or "envelope" which is at a much lower frequency then the +main waveform and is generally audible.

+

The envelope tracer works by first high pass or band pass filtering the data, +then all negative values in the waveform are set positive before the "rectified" waveform is low pass filtered +to smooth it out. The two filters can be adjusted from the drop down menu accessible from the small arrow by the slider.

+

The operator can select how much of the raw audio and how much of the envelope traced signal are mixed together +using the slider. This makes it possible to simultaneously listen to sounds, such as dolphin whistles, which are +in the human audio band and high frequency click trains from species such as harbour porpoise.

+ +

Speed

+

Note that this feature will be hidden and disabled when processing data in real time.

+

When processing data from file, simulated data, or when using the +PAMGuard Viewer, it is possible +to adjust the playback speed. Drag the slider to the desired speed. When adjusting the playback speed, +the frequency of the sounds will change. e.g. when playing at half the true speed, the frequency +of sounds will halve.

+

When speed adjustments are made, the selected sample rate of the output device remains the same. The speed +change is affected by decimating or upsampling the audio data.

+ +

Gain

+

Attenuate or amplify the data.

+

Note that you should also check the sound settings on your computer. Increasing the gain in PAMGuard to a high level when +the system's sound card volume is turned right down may lead to signal distortion, so make sure the sound on the computer +is turned up first.

+ +
+ + +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_soundPlayback.html b/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_soundPlayback.html new file mode 100644 index 00000000..9d6ba89c --- /dev/null +++ b/target/classes/help/sound_processing/soundPlaybackHelp/docs/soundPlayback_soundPlayback.html @@ -0,0 +1,58 @@ + + + +Sound Output Overview + + + + +

Sound Output

+

Overview

+ +

The sound output module can be used to play back sounds from +PAMGUARD through a sound card or other data acquisition device.

+ +

This allows you to aurally monitor sounds after they have been modified by PAMguard +modules such as Filters +or the Seismic Veto

+ +

The availability of the sound output function depends on the type of input +selected in the +Sound Acquisition module.

+ +

Real time play back

+

When processing in real time, it is of course essential that sound output is at the same speed as the +sound input. Ideally, you should select the same device for output as you are using for input to guarantee that +they are running at exactly the same speed. Sometimes this is either impossible (because the input device doesn't +have any outputs) or impractical for other reasons in which case you can use a different device but should be +aware that there may be 'glitches' in the output.

+

If you're using the same device for output as for input, always use the same output sample rate. If using a different +device, then you may need to use a different output sample rate, for example if your input data come from a high speed +acquisition card sampling at 500kHz and you wish to play back through a sound card which can only output at 48kHz. In this case, +PAMGuard will automatically decimate or up-sample the data so that the play-back is in real time. Of course, if you're acquiring +high frequency data, you'll only be able to hear the part of that data that's in the audio band.

+ +

File or PAMGuard Viewer play-back

+

If processing data from file, or using PAMGuard viewer, the speed at which data can play can be varied +by the user via controls in the dialog or side panel.

+

Data will automatically be decimated or up-sampled to match the input sample rate, output sample rate of the +device and the selected play speed.

+ + +

Creating sound output modules

+

From the File>Add +modules>Sound Processing menu, or from the pop-up menu on the data model +display select "Sound Output". Enter a name +for the new module and press Ok.

+

Sound output modules can be inserted anywhere in the PAMGUARD +data model where there are raw audio data such as the output of a +Sound acquisition module, +a Filter module, a +Decimator, a +Seismic Veto, etc.

+
+
+ + + diff --git a/target/classes/help/sound_processing/soundRecorderHelp/docs/RecorderConfiguration.html b/target/classes/help/sound_processing/soundRecorderHelp/docs/RecorderConfiguration.html new file mode 100644 index 00000000..8d3b27c7 --- /dev/null +++ b/target/classes/help/sound_processing/soundRecorderHelp/docs/RecorderConfiguration.html @@ -0,0 +1,103 @@ + + + +Sound Recorder Configuration + + + + + +

Sound Recorder

+

Configuration

+
+ +

+The Sound Recorder display configuration dialog is accessed from the +Settings button on the recorder display panel or from the + Detection>Sound Recorder>Recorder Settings menu command. +
+
+Sound Recorder Settings

+ + +

Raw Data Source

+

Select the data source for the sound recorder. All sources of raw audio data within PAMGuard + will be listed. +

+

Enable Buffer

+

Enter the length of the history buffer that will be added to the start of recordings started by + pressing the Continuous + Buffer button.

+

+Note that buffering audio data can take a lot of memory and that writing large data buffers +at the start of a file can take considerable time, which may make PAMGuard unstable. Buffers of up to +a minute in length at sample rates of 100 kHz are generally Ok.

+ +

PAMGuard Startup Options

+

These options control how the Sound Recorder will behave when PAMGuard starts:

+

Remain Idle

+

The sound recorder will remain idle when PAMGuard starts.

+

Start recording

+

The sound recorder will start continuous recording as soon as PAMGuard starts acquiring audio data.

+

Start recording cycle

+

The sound recorder will start it's recording cycle (see below) as soon as PAMGuard starts acquiring audio data.

+

Automatically return to last state at PAMGuard Stop

+

The sound recorder will go back into whatever state (stopped, recording, cycled recording) it was in when PAMGuard last stopped.

+ +

Automatic Recordings

+

Set the length of automatic recordings in seconds, as well as the time from +the start of one recording to the start of the next (i.e. the duty cycle, +including both recording and non-recording times). In the image above, PAMGuard +would record for 10 seconds and then stop recording for 20 seconds before +starting to record again.

+
+
+

Files and Folders

+
+Sound Recorder Settings

+ +

Select Output Folder

+

Select the folder that recorded files will be stored in. Note that recordings can + take a considerable amount of space, so it may be worth having a dedicated drive for this + purpose. + +

+

Output file location, name and format

+

File names are always based on the current PC clock date (which should have been + set from the GPS). You may also enter +a character string to the start of the file. In the example shown, a recording started at +22:51:40 on 12 January 2007 would have the name PAM20070112_225140_456.wav, where the last three digits are +milliseconds. There is an option to have files written to separate sub folders of the root directory, a +new folder being created each day. +

+

+WAVE (WAV), AU and AIFF (AIF) formats are currently supported with bit depths of either 16 or 24. The bit +depth should ideally match the bit depth of the sound acquisition system. Most acquisition systems are 16 +bit. Exceptions are some audio files and some ASIO sound cards. Note that while the bit depth is correctly +read from sound files, it is not possible to read the bit depth from ASIO devices so they will report +a bit depth of 24 bits even if they are only reading 16. you should consult the devices manual to check for yourself.

+ +

Maximum File Lengths

+

Set the maximum length of single files either as a length in seconds and / or a + size in Megabytes. Although you are likely to store files on hard drives, it is generally + sensible to limit the size of single files such that a single file will fit on a writable CD or DVD. + Never let files become larger than 2 Gigabytes since some systems will be unable to read them. (In principle + the maximum size of a WAV file is 4 Gigabytes, however we have found that some software will be unable + to read files larger 2 Gigabytes). +

+

Round file start times

+

Wherever possible file start times will be controlled to start on hour / 10 minute boundaries, etc.

+ + +
+
+

+ +

Sound Recorder

+

Operation

+
+ +

Off

+

If the Off button is highlighted, then only triggered recordings will be made.

+

Automatic Cycle

+

Pressing the Automatic Cycle button causes the recorder to start recording for specified durations + at predefined time intervals.

+

Continuous

+

Pressing the Continuous button will start continuous recording. File lengths will never exceed + the maximum set in the Options dialog. If a new file is started automatically, then no data will + be lost and there will be no gap if you should join the files together again, or analyse them + as a single file at a later date.

+

Continuous + Buffer

+

Pressing the Continuous + Buffer button will have the same effect as the Continuous button, but the + buffer contents will be written at the start of the file and the file name will reflect the start time + of the recording (i.e. some time before the button was pressed).

+

Triggered Recording

+

Some detectors are capable of automatically triggering recording. The instructions that do + this are hard coded into individual detectors. Detectors that trigger recordings will have a time + to record from prior to the detection (using the buffer system as used with Continuous + + Buffer manual recordings) and a time to record for after the detection. If multiple detections + occur with the set recording times, recording will simply continue. These times may be hard coded + in specific detectors or may be controllable by the user via menu items associated with the + detectors in question. +

+

+Triggered recording may be enabled and disabled for individual detectors using the check boxes +on the main Sound Recorder display panel. + +

Side Panel

+

The four main control buttons and status display are duplicated in a side panel + for ease of operation. +
+
+ Sound Recorder Side Panel
+
+ + If a database module is active in the PAMGUARD model, then AIS data will be logged to the database +
+
+

+ +


+ + \ No newline at end of file diff --git a/target/classes/help/sound_processing/soundRecorderHelp/docs/RecorderOverview.html b/target/classes/help/sound_processing/soundRecorderHelp/docs/RecorderOverview.html new file mode 100644 index 00000000..f7ab7c24 --- /dev/null +++ b/target/classes/help/sound_processing/soundRecorderHelp/docs/RecorderOverview.html @@ -0,0 +1,35 @@ + + + +Sound Recorder Overview + + + + +

Sound Recorder

+

Overview

+
+ +

+The sound recorder may be used to make WAV or AIF file recordings to the computer's +hard drive.
+
+Sound Recorder

+
+Recording can be continuous, or the recorder can be scheduled to make fixed length +recordings at set time intervals. The recorder can also be set up to be triggered +by any PAMGUARD detectors so that recordings are made only when detections occur. +

+The recorder also contains a memory buffer so that sounds heard by the operator, or sounds which trigger +detectors can be captured without having to record continuously. +

+The most obvious source of data for the sound recorder is a sound acquisition module, but it +is also possible to connect a sound recorder to many other PAMGUARD processes that produce +raw data, including Decimators +and Filters. More than one Recorder can be configured if necessary. + + +

Alarms Actions

+

From the alarm configuration +dialog, select the "Actions" tab to chose what will happen when an alarm fires.

+ +
+Alarm Actions
+
+

Three alarm actions are currently available:

+
    +
  1. Playing a sound

  2. +
  3. Sending a message via a serial port

  4. +
  5. Sending an email via SMTP

  6. +
+

Additional alarm actions may be added in future releases

+

Data hold time refers to the amount of time (in seconds) that each trigger of the alarm is held in internal memory. Note the alarm triggers are stored immediately in +the database, and the value entered here does not affect that. It will, however, affect how long the alarm is shown in the User Display Panel

+
+ +

Play a sound

+

Press the settings button to select the sound you want to play. Sounds will be +played back over the default sound output device. Sounds should be in wav file format and +can be anything you want - a beep or even a recorded voice message.

+
+ +

Serial Port Output

+

This option outputs a string of data over a serial (COM) port. Note that the format of the +strings may vary depending on the alarm trigger.

+

Note that if multiple alarms are used, all alarms will share a common serial port.

+
+ +

Send Email

+

Press the settings button to configure the SMTP email client. The following window is displayed:

+Email Parameters

+

The values given for the Host and Port shown above are default for a Gmail account.

+

It is HIGHLY recommended that you create a new Gmail +account for this application, and only use that account for this application. PAMGuard is open source software; as such, anyone with programming experience +and access to your computer could potentially step through the code and find the password associated with the email account. +To minimize this risk, the password is not stored in the psfx file or within PAMGuard - you will be required to enter it every time you start PAMGuard or change the email settings.

+

Enter the email address of the account in the Account Username text box.

+

Enter the email address to send the email to in the To Address text box.

+

Enter the email address which will appear in the From field of the email, in the From Address text box. Note that this is typically the same as what you +enter in the Account Username text box, but it does not have to be.

+

Check whether you want an email sent for an Amber alarm, a Red alarm, or both.

+ + +

+ + + + + diff --git a/target/classes/help/utilities/Alarms/docs/Alarms_Configuration.html b/target/classes/help/utilities/Alarms/docs/Alarms_Configuration.html new file mode 100644 index 00000000..4f53b2a6 --- /dev/null +++ b/target/classes/help/utilities/Alarms/docs/Alarms_Configuration.html @@ -0,0 +1,74 @@ + + + +Alarms Configuration + + + +

Alarms Configuration

+

+To configure an alarm, go to the + Detection>Alarm Settings ...menu command and the alarm +dialog will appear.

+
+Alarm Configuration
+
+

Trigger Source

+

Select the data you want to trigger the alarm. This can be absolutely any data from anywhere within +PAMGuard. Some may make more sense than others, for example, if you were to trigger off data from the +acquisition module, alarms would fire several times a second whenever PAMGuard is running. The choice of +alarm trigger is however your's, so chose wisely !

+

Depending on the data source, it may have additional options. For example, if you select the click detector +it will allow you to select the types of click which will trigger an alarm. This uses the same +system of Data Selectors +that has been developed for the PAMGuard displays and will automatically include +options for detection groups and data annotations.

+ +

Alarm Count

+

The type of alarm count you select will depend on the type of trigger you are using. Three types are +available:

+
    +
  1. Simple Counts
  2. +
  3. Scored Values
  4. +
  5. Single Measurements
  6. +
+

Note that not all count types can be used with all types of data. In future releases we hope to automatically +restrict the count types available for particular data sources, but for now, you'll have to use your intelligence +and pick a rational combination.

+ +

Simple Counts

+

Selecting this option causes the alarm module to simply count up the number of data which arrive from a +data source. For example, it could be used to trigger an alarm if a certain number of whistles were to arrive +in a given time interval.

+ +

Scored Values

+

This is slightly more sophisticated than the simple counts and would generally be used with a data source +such as a noise measurement where you're more interested in the value of the noise measurement rather than the +fact that there has been a measurement.

+

How scored values are added may depend on the data source.

+ +

Single Measurements

+

As the name suggests, this is suitable for assessing single measurements, such as noise levels where the value +of a single measurement is of interest, not the fact that a measurement has been made.

+ +

Count Time

+

This is the number of seconds to count for. This option is not used with Single Measurements.

+ +

Amber and Red Counts

+

These are the thresholds at which amber and red alarms are triggered.

+

For noise alarms, they are likely to be the noise level in Decibels. For detections, you should enter +the number of detections required to trigger the alarm.

+ +

Minimum Gap

+

Alarm status messages are sent every time the alarm status changes. However if the alarm remains in the +same state and more data are arriving which continually trigger that state, alarm messages might start +firing thick and fast. Entering a value of a few seconds here will limit the number of alarm triggers. +For example, you would want to use this on a click based alarm so that if hundreds of clicks were being +detected every minute, you would get occasional reminders of the alarm status, but not one for every click.

+ + + + + + + diff --git a/target/classes/help/utilities/Alarms/docs/Alarms_Display.html b/target/classes/help/utilities/Alarms/docs/Alarms_Display.html new file mode 100644 index 00000000..35b2071b --- /dev/null +++ b/target/classes/help/utilities/Alarms/docs/Alarms_Display.html @@ -0,0 +1,29 @@ + + + +Alarms Display and Storage + + + +

Alarms Display and Storage

+

Side Panel

+

The status of each alarm is shown in the PAMGuard GUI side panel.

+

User Display

+

A list of recent alarms can be shown in a +User Display panel (the same +PAMGuard modules you use for spectrograms).

+

Once you've created a user display panel, from the display menu, select "New Alarm history" and +a panel containing a table of alarm events will appear.

+
+Alarm history
+
+ +

Output

+

Alarm events will be written to the +PAMGuard Database.

+ + + + + + diff --git a/target/classes/help/utilities/Alarms/docs/Alarms_Overview.html b/target/classes/help/utilities/Alarms/docs/Alarms_Overview.html new file mode 100644 index 00000000..584f86c2 --- /dev/null +++ b/target/classes/help/utilities/Alarms/docs/Alarms_Overview.html @@ -0,0 +1,24 @@ + + + +Alarms Overview + + + + +

Alarms

+

Overview

+

+Alarms can be used to alert the operator to specific events

+

Alarms can be triggered by absolutely any type of data within PAMGuard, whether it be +detections, such as whistles or clicks, or a rise in noise levels.

+

To add a new Alarm module to PAMGUARD, select the File>Add Modules>Utilities>Alarm +menu command.

+

Give the alarm a name, e.g. "Whistle Alarm" and click OK.

+

Each alarm can only trigger on one type of data. It is however +possible to add multiple alarms to a single PAMGuard configuration.

+
+ +


+ + diff --git a/target/classes/help/utilities/Alarms/docs/images/AlarmActions.png b/target/classes/help/utilities/Alarms/docs/images/AlarmActions.png new file mode 100644 index 00000000..fed97b81 Binary files /dev/null and b/target/classes/help/utilities/Alarms/docs/images/AlarmActions.png differ diff --git a/target/classes/help/utilities/Alarms/docs/images/AlarmActions2.png b/target/classes/help/utilities/Alarms/docs/images/AlarmActions2.png new file mode 100644 index 00000000..efdbeddf Binary files /dev/null and b/target/classes/help/utilities/Alarms/docs/images/AlarmActions2.png differ diff --git a/target/classes/help/utilities/Alarms/docs/images/AlarmConfig.png b/target/classes/help/utilities/Alarms/docs/images/AlarmConfig.png new file mode 100644 index 00000000..2c848cd6 Binary files /dev/null and b/target/classes/help/utilities/Alarms/docs/images/AlarmConfig.png differ diff --git a/target/classes/help/utilities/Alarms/docs/images/AlarmEmailParams.PNG b/target/classes/help/utilities/Alarms/docs/images/AlarmEmailParams.PNG new file mode 100644 index 00000000..c8211a6d Binary files /dev/null and b/target/classes/help/utilities/Alarms/docs/images/AlarmEmailParams.PNG differ diff --git a/target/classes/help/utilities/Alarms/docs/images/AlarmHistory.png b/target/classes/help/utilities/Alarms/docs/images/AlarmHistory.png new file mode 100644 index 00000000..c4aa144e Binary files /dev/null and b/target/classes/help/utilities/Alarms/docs/images/AlarmHistory.png differ diff --git a/target/classes/help/utilities/Alarms/docs/images/Thumbs.db b/target/classes/help/utilities/Alarms/docs/images/Thumbs.db new file mode 100644 index 00000000..4f157762 Binary files /dev/null and b/target/classes/help/utilities/Alarms/docs/images/Thumbs.db differ diff --git a/target/classes/help/utilities/BinaryStore/docs/CreateBinariesOffline.html b/target/classes/help/utilities/BinaryStore/docs/CreateBinariesOffline.html new file mode 100644 index 00000000..65b0fa58 --- /dev/null +++ b/target/classes/help/utilities/BinaryStore/docs/CreateBinariesOffline.html @@ -0,0 +1,67 @@ + + + +Create binary files offline + +

Pamguard Viewer

+

Create binary files offline

+ + +

The Viewer funtion is new so you probably did not include binary storage module when you collected your data. Also what about older data sets you would like to analyse now with viewer. This brief description shows you the necessary steps +to process your data so you can create binary files offline so you can use Pamguard Viewer. +

First you have collected Rainbow Click Files. +These can be imported and converted directly. +

Secondly, you have collected continous recordings (.wav files) but no binaries. You need to process your .wav files offline to create binaries. Open up Pamguard (online) and add the following modules:Sound Acquisition, +Click detector, Database and +Binary Stoarage. If you are not interested in clicks but whistles the same principle applies. You just have to add the whistle & moan detector. Noise measurments can also be processed this way. + +

Sound Acquisition

+

Go to Detection>Sound Aquistion. Choose either 'Audio file' or 'Audio file folder or multiple files' in the Data Dource Type dropdown list. Choose the appropiate folder where your file/files are stored. Make sure the box 'include subfolders is ticked' so all files get processed. +Check that the box'Repeat: Ant end of file list, start again' is NOT ticked. Press ok. + +

+AudioDataAcquisition
+

+ +

Database selection

+

Before you select your database, you have to create a blank database you can use. If you collected GPS data during the data collection you can import that table in your blank database. +Make sure it is called gpsData and is in the right GPS format. You can also add your GPS table after you processed the data. +
Go to File>database selection and select the appropiate data base. + +

Binary Storage

+

You have to select a folder where the binaries are going to be stored. Go to Go to File>Binary Storage options for your selection. + +

Click Detector

+

Set up the Click detector for your purposes. +You can change some paramters again in Viewer mode with the option Reanalyse click types but as it it time intensive you should set it up correctly. + +

After you set up everything you might as well save the .psf file so you have a template for the future. The data model should look like this. +You can also add some notch filters beforehand if the data is really noisy. + +

+Data_model
+

+ +

The next step is to start processing the data. Go to Detection>Start. Now the .wav files are processed and binary files are created. This can be quite time consuming depending on how much data you process +and how fast your computer is. It could take a couple of hours to a couple of days. Pamguard will tell you approximatley when it is finishing, which file it is processing and how fast real time it is processing (RT). +After it is finished you can open up Pamguard Viewer. + + +

+Running
+

+ +

+ + + + + + +

+ + + \ No newline at end of file diff --git a/target/classes/help/utilities/BinaryStore/docs/binarystore_overview.html b/target/classes/help/utilities/BinaryStore/docs/binarystore_overview.html new file mode 100644 index 00000000..02e59077 --- /dev/null +++ b/target/classes/help/utilities/BinaryStore/docs/binarystore_overview.html @@ -0,0 +1,72 @@ + + + +Binary Storage + + + + +

Binary Storage

+

Overview

+

+The database is not well suited for all types of data, particularly those such as clicks or whistle contours which have +a varying length. The binary storage system stores PAMGUARD output in a proprietary data format which is simple and efficient and +can handle any type of data.

+

Data stored using the binary store can be reviewed with the +PAMGUARD viewer. It is also possible to open the binary files using +your own software written in other programming languages such as Matlab or R.

+ +

+

Adding a Binary Storage module

+

+From the File>Add Modules>Utilities menu select 'Binary Storage' to add binary storage to your +configuration.

+ +

Configuring the Binary Store

+

To configure the binary store, go to the File>Binary Storage... menu to open the Binary Storage dialog.

+ +

+Image


+

+

Select the folder where you want to store the data and optionally set the other three options.

+

Storing data in folders arranged by date can help with data backup and archiving.

+

Some PAMGuard detectors make additional measures of background noise. These can be stored either with the binary data in the pgdf files or in separate pgnf files (see below). +The former has the advantage of creating fewer files, the latter may make it easier to load and process noise data (e.g. to assess detector performance) in +R or Matlab.

+

Automatically starting new files is important in order that individual files do not get excessively large.

+

The binary store can start new files at fixed time intervals, when files reach a certain size or both (i.e. which ever condition +occurs first).

+ +

Output Files

+

Output files are identified by a long name which contains the module type, the module name, the datablock name, the date and the time. e.g. +Clicks from a Click Detector +called "Porpoise Detector" will have a name like "Click_Detector_Porpoise_Detector_Clicks_20100331_142400.pgdf"

+ +

pgdf Files

+

pgdf files are the main files which contain the binary data. All pgdf files have a common header and footer structure (i.e. +the data at the start and at the end of each file). Individual units of data are however different for each module.

+

pgdf files can contain more than one type of data. In particular, some detectors also include regular measurements of background noise +in their binary output.

+ +

pgnf Files

+

Some detectors (currently the Click detector the +Whistle and Moan detector and the +GPL detector) make and store measures of background noise. These +can be important in assessing detector performance. The background data can either be stored with the detection data in the pgdf files or written to +separate pgnf files. In either case, the stored data are the same, it's a choice of fewer files or whether you want to be able to +access noise data relatively quickly without having to load all binary data as well.

+ +

pgdx Files

+

pgdx files are indexing files. They contain headers and footers which are identical to those in the pgdf files, but no data. pgdx files +speed up indexing processes at the start of a PAMGUARD viewer session.

+

psfx Files

+

psfx files contain PAMGUARD configuration data. These are basically the same data are as stored in the standard PAMGUARD configuration files, but +wrapped with a date and other information.

One of these is written each time PAMGUARD is started, providing a permanent record of +PAMGUARD settings. psfx files can be loaded into the PAMGUARD Viewer from the viewer data map +or relaoded as with any other configuration file.

+ +


+ +

+ + diff --git a/target/classes/help/utilities/BinaryStore/docs/images/AudioDataAcquisition.png b/target/classes/help/utilities/BinaryStore/docs/images/AudioDataAcquisition.png new file mode 100644 index 00000000..45db240e Binary files /dev/null and b/target/classes/help/utilities/BinaryStore/docs/images/AudioDataAcquisition.png differ diff --git a/target/classes/help/utilities/BinaryStore/docs/images/BinaryStoreOptions.png b/target/classes/help/utilities/BinaryStore/docs/images/BinaryStoreOptions.png new file mode 100644 index 00000000..eb19eaff Binary files /dev/null and b/target/classes/help/utilities/BinaryStore/docs/images/BinaryStoreOptions.png differ diff --git a/target/classes/help/utilities/BinaryStore/docs/images/Data_model.png b/target/classes/help/utilities/BinaryStore/docs/images/Data_model.png new file mode 100644 index 00000000..2e9ca797 Binary files /dev/null and b/target/classes/help/utilities/BinaryStore/docs/images/Data_model.png differ diff --git a/target/classes/help/utilities/BinaryStore/docs/images/Running.png b/target/classes/help/utilities/BinaryStore/docs/images/Running.png new file mode 100644 index 00000000..9d8afea3 Binary files /dev/null and b/target/classes/help/utilities/BinaryStore/docs/images/Running.png differ diff --git a/target/classes/help/utilities/BinaryStore/docs/matlabandr.html b/target/classes/help/utilities/BinaryStore/docs/matlabandr.html new file mode 100644 index 00000000..07f46f08 --- /dev/null +++ b/target/classes/help/utilities/BinaryStore/docs/matlabandr.html @@ -0,0 +1,45 @@ + + + +Binary Storage + + + + +

Binary Storage

+

Matlab and R

+

While the PAMGuard Viewer provides a powerful tool for +reviewing data offline, many researchers want to wrte their own bespoke algorithms to further analyse PAMGuard detections +or to plot and view the data in ways not available within the viewer.

+

Although PAMGuard is fully open source, modifying the Java source code requires considerable programming expertise and is +not for everyone. The PAMGuard team and our collaborators have therefore made available library functions in both +the Matlab and +R programming languages, which allow users to unpack binary files into those programming environments +for further bespoke analysis.

+

Both the Matlab and R libraries are available for free. However, while the PAMGuard team are always interested in bug reports, both libraries +are provided "as is" and come with no guarantee.

+ +

Matlab

+

The Matlab code is available through the PAMGuard sourceforge site at +https://sourceforge.net/p/pamguard/svn/HEAD/tree/MatlabCode/. You don't need write access to the repository to get the code which can be downloaded from +this link as a "snapshot", or via SVN if you want to get updates. There is direct support for SVN within Matlab, or you can use the free +Tortoise SVN client for Windows. +

+

If you don't have a Matlab license, the library should also be compatible with the free programming language +GNU Octave.

+ + +

R

+

The R interface was developed by colleagues at NOAA's South West Fisheries Science Centre in San Diego and is available on +GitHub at https://github.com/TaikiSan21/PamBinaries. + + + + +


+ +

+

+ + + \ No newline at end of file diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_Configure.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_Configure.html new file mode 100644 index 00000000..213bd100 --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_Configure.html @@ -0,0 +1,47 @@ + + + + + SIDE Module Configuration + + +

SIDE Module

+

Creation and Configuration

+
+

Creating a SIDE Module

+

+ From the File > Add Modules > Utilities + menu, select SIDE Module. Enter a descriptive name for the new module and press OK. +

+

+ Unlike most other modules, the SIDE settings are accessed from a User Display tab. Create a User Display by + selecting File > Add Modules > Displays > User Display. Enter a descriptive + name for the display and press OK. Click on the tab that you just created. In the menu bar, select + User Display > New SIDE Module Display. +

+ +
+
+
+

+ The following panel will be created. The configurable parameters are given along the left hand side. +

+ +
+
+

+ Note that clicking on an arrow () + will show/hide a window panel. Use this feature if you are limited on + screen space and don't need to see all of the parameters. +

+
+
+
+ + +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_InfoTables.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_InfoTables.html new file mode 100644 index 00000000..7d676605 --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_InfoTables.html @@ -0,0 +1,59 @@ + + + + + Information Tables + + +

SIDE Module

+

Information Tables

+

+ Two tables are shown in the middle of the SIDE Module display: the Test History and the Operations State. +

+
+

Test History

+ +
+
+

+ The Test History table documents the tests + that have run or are currently running. The UTC column shows + when the test was started, and the Ops column indicates the + Operations State when the test was started. Version specifies + the Sound Type Generator version being used. Sequences is the + number of sequences that have already been completed. +

+

+ A summary report can be generated any time after a test is complete by + right-clicking on one or more tests listed in the table and + selecting Process Test + ## from the drop down menu. +

+
+
+

Operations State

+ +
+
+

+ The Operations State table shows the changing + operations statuses throughout the day. The current Operations State can + be selected in the Operations Status + panel along the left side of the SIDE Module display, and also in the Sidebar. +

+

+ Items in the table can be edited by right-clicking on the Operational + Status and selecting Edit. +

+
+
+
+ + +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_OpStat.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_OpStat.html new file mode 100644 index 00000000..a580dece --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_OpStat.html @@ -0,0 +1,62 @@ + + + + + Operations Status + + +

SIDE Module

+

Operations Status

+
+

+ The Operations Status window allows the user to specify and log the + current operating conditions or monitoring phase. Test statistics will + be collected separately for each state. Critical + Monitoring and Non-Critical Monitoring + statuses are included by default. The Critical Monitoring state is + intended for periods of active mitigation monitoring, while the + Non-Critical Monitoring state is intended for periods of monitoring that + are not required for compliance or prior to a critical monitoring period. +

+

+ It is recommended that Quick Tests be performed during non-critical + monitoring when possible. Random Drills can be implemented and edited + throughout monitoring periods. +

+
+
+ +
+
+

+ The current operations status can be selected from the drop-down text + box. In order to properly log a status change to the database, a + selection must be made from the text box even if the correct status is + already displayed. When a status is selected, it will be shown in + the Operations State table in the middle of the SIDE Module + display, along with a time stamp to indicate when the status was + changed. +

+

+ Pressing the Edit button will allow the user + to add custom operational status codes. For example, noise conditions + may vary considerably when seismic shooting and not shooting, so it may + be sensible to have separate statuses for each of those conditions. +

+

+ It may also be desirable to avoid Random Drill tests during certain + 'Critical Monitoring' periods such as immediately prior to line start. + Random Drill tests can therefore be allowed or disabled for specific + operations states by checking or unchecking the appropriate box. +

+
+
+
+ + +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_Output.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_Output.html new file mode 100644 index 00000000..4d1a0d2f --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_Output.html @@ -0,0 +1,76 @@ + + + + + SIDE Output + + +

SIDE Module

+

Output

+

+ The SIDE Module saves information to the database, and can also generate summary reports for later review. +

+
+

Database

+

+ Three linked tables are generated in the PAMGuard database: +

+

+

+ Each record in the sounds table cross references back to a record in the + sequences table and each record in the sequences table cross references + back to the tests table. +

+
+
+

Summary Report

+

+ Detection Efficiency Reports (DER) can be generated at any time after a + test by right-clicking on one or more tests listed in the PAMGuard + Test History Information + Table and selecting Process Test from the + drop down menu. The operator can choose whether to show results for both + sounds and sequences, or sequences only. Detection efficiency of separate + detectors can be displayed on a single plot (if there are not too many + detectors) or on separate plots (for multiple detectors). +

+

+ A logistic regression will be conducted for each + Species Cluster / detector (or human) combination and a report + automatically generated as a Microsoft Word document. The + report provides several key outputs: +

+

+

+ The report provides information on detection range probabilities for each + selected species cluster at both the signal and the sequence level. The + logistic regression plots show the number of hits and + misses for the automated detectors or the operator as well as the + detection probability versus range. Additional information regarding the + monitoring period and signal parameters are included in the efficiency + report for each cluster. +

+
+
+
+ +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_Overview.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_Overview.html new file mode 100644 index 00000000..60ebe369 --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_Overview.html @@ -0,0 +1,301 @@ + + + + + + + + SIDE Module Overview + + +

SIDE Module

+

Overview

+

+ The Signal Injection and Detection Evaluator (SIDE) Module offers the + ability to predict detection efficacy and document real-time automated + detector and human operator effectiveness as a function of distance (range) + between a detector and the sound source. Incorporating the SIDE module + into PAMGuard will improve the scientific validity of any monitoring and + mitigation regimes that use PAM as part of their suite of survey methods. + It will serve as a toolkit for performance monitoring on both + commercial and non-commercial projects. +

+

+ It is hoped that the integration of the SIDE module into PAMGuard will + increase the pace of acceptance of PAM methodologies by regulatory + authorities, by allowing an objective evaluation metric for critical + assessment of in situ detection performance within specified monitoring + distances and proposed PAM programs. In addition, the ability to + automatically generate summary evaluation statistics in a standardized + format will support and encourage the development and adoption of PAM + standards throughout the industry. Importantly, use of SIDE will allow + the efficacy and quality of different PAM operations to be objectively + evaluated by non-specialists, and to allow operators to test the system + themselves. +

+
+

Clusters, Signals, and Sequences

+

Species Clusters

+

+ There are over 70 species of marine mammals, and it is impossible to + define a set of test signals for every one of those species. However, + groups of related species often share similar signal properties. This + has led to the definition of a set of species clusters for the + SIDE module. A species cluster is defined as a group of marine mammal + species that share similar acoustic signal characteristics. Each species + cluster is associated with a specific default call type that is expected + to occur over a particular frequency bandwidth, over a range of source + levels (i.e. loudness), and with a particular structure (pulsive, + tonal, frequency sweep, etc.) and repetition rate. There are 9 different + species clusters in the SIDE modules that the operator can test with: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Species Cluster NameSignal Type and BoundsDurationSource Level (pk-pk) [dB re 1 μPa @ 1m]Number of signals in a sequenceDepth distribution of injected signals [m]
Low-frequency baleen whales Random linear sweep between 15-100 Hz. Sweep is + restricted to 1 octave (e.g. can sweep from 15-30 Hz, or from 50-100 Hz, + but not from 15-100 Hz).2 s (± 0.5)192 (± 6)One sound generated per sequence
High-frequency baleen whales Random linear sweep between 50 and 1000 Hz. Restricted to 1.5 octaves.2 s (± 0.5)163 (± 10)One sound generated per sequence
Right whale Based on right whale upcall. Shape is a quadratic + sweep with three points drawn from frequency distributions of 90 ± 15, + 110 ± 20, and 170 ± 30.0.75 s (± 0.25)180 (± 2.5)One sound generated per sequence
Sperm whale 5-6 cycles of sound generated between 5 and 6k Hz. (1 ms duration). Hann windowed.0.001 s with slowly varying ICI (mean ICI = 0.5 s)189 (±2) slowly varying20 clicks per sequence.
Beaked whalesLinear up-sweep from between two distributions start is 20+/-5k Hz, end is 45+/-5k Hz.0.3 s ± 0.003 slowly varying (mean ICI = 0.4 s)182 (± 9)10 clicks per sequence
Dolphin whistlesLinear chirps between 2 and 24k Hz. Restricted to 1.5 octaves. No harmonics.0.5 s (± 0.2)149 (± 13)10 whistles generated per 10 s long cluster, with independent random starts
Dolphin clicks1Single cycle pulse at 60k Hz (gives a click   with a bandwidth of about 30-120k Hz).166ms    (mean ICI = 0.1s, slowly varying) 172 ± 1010 clicks per sequence
Blackfish toneRandom sweep between 4-8 k Hz, restricted to   0.6 octaves. 7 square wave harmonics.0.4 s (± 0.1)125 ± 42 sounds per sequence (2 s gap, but randomised)
Harbor porpoise1Frequency at 130+/- 5k Hz. Raised sin window.77 (± 7) microseconds (mean ICI = 0.4 s, slowly varying)168 ± 1310 clicks per sequence
+
+

Signals

+

+ A signal is defined as a discrete vocalization that has a specific + duration, frequency range, amplitude and depth as described in the table + above. Using these parameters, individual signals are generated and + displayed in PAMGuard spectrograms. +

+

+ A synthetic signal detection should not result in an unnecessary + mitigation event during application of the SIDE module in a commercial + survey. Therefore, the signal generation algorithm uses only key + characteristics of the signal necessary to trigger automated detections. + The simplified signals are suitable for use with the PAMGuard detectors, + which are generally looking for quite a broad range of sound types. + Operators should be able to recognize signals from background noise, but + not mistake them for actual marine mammal vocalizations. They are + not suitable for use with species-specific classifiers (e.g. + the Rocca module, or Whistle classifier), which will reject them as + unknown or make a random classification. +

+

+ Synthetic dolphin whistles are shown in the image below. + +

+
+

Sequences

+

+ With the exception of some baleen whales, few cetaceans will make just + one call over the course of a minute. In practice, PAM systems often + make detection decisions based on an entire call sequence, rather than + by individual signals. A sequence is therefore defined as a series of + signals that are associated with one another in the call repertoire of + the species cluster. +

+

+ The SIDE module generates sequences in a manner relevant to how both + automatic detectors and humans make detection decisions. The module + randomly varies the number of individual calls in a sequence, however + the mean number of signals per sequence for each species cluster remains + consistent. As with the individual synthetic sounds, the intent was not + to generate a series of sounds that represent the actual vocal output of + an animal but to generate enough signal for a detector or alert an + operator to determine that an animal is present. +

+
+
+

Tests

+

+ A Test is defined as a collection of rapidly injected sequences for each + cluster to answer the question Can my system detect calls from a + number of species clusters at specified distances, under the current + noise conditions? In order to achieve this, a number of sequences of + sounds are generated and injected into the current audio stream. The + testing algorithm performs the following series of steps: +

    +
  1. Randomly generates a time to produce a sequence of + signals
  2. +
  3. Generates a range, depth, and bearing of a source. The + detection range of interest (generally the radius of the mitigation + zone) and randomization factor can be set by the operator in the Species Cluster settings + panel
  4. +
  5. Selects the number of sequences to generate based on + parameters provided by the species cluster (see table above).
  6. +
  7. Synthesizes individual signals representative of the + bandwidth and temporal structure specified for that + particular species cluster (see table above).
  8. +
  9. Scales the signals according to the expected received level + implied by the source slant range, source level distribution, and + propagation law.
  10. +
  11. Inserts the appropriately scaled and time-delayed synthesized + sequences into multi-channel real-time (or archived data being + streamed in real-time) data streams. Accurate time delays are + essential since they allow PAMGuard modules to accurately localize + the signals. This is important since operators, and some detectors, + often use the regularity of multiple calls being detected on a + consistent bearing to confirm a detection.
  12. + +
+

+

+ Two types of test are available, a Quick Test (QT) and a Random Test + (Drill). Both operate in almost exactly the same say and generate similar + output, but serve slightly different purposes. + +

+
+

Quick Test

+

+ The goal of a Quick Test is to determine the detection functionality of + the PAM system in the current environmental conditions. The test is not + intended to evaluate operator performance, but primarily to evaluate the + efficacy of the automated detectors. +

+

+ Sequences are run one after the other with little or no delay, in + order to generate sufficient data for evaluation in the shortest + possible amount of time. In the image below, the generated signals of a + Quick Test are shown as blue highlighted contours. +

+ +
+
+

+ Detection matching takes place in real time, with the SIDE module + monitoring data coming from each detector and matching the simulated + sounds with the detections. Since a precise time of detection is + available for automatic detections, a match between an injected signal + and detection is counted if there is overlap in time and frequency of + the simulated sounds (allowing for appropriate propagation time delays) + and the detection. +

+

+ Quick Tests can be particularly useful at the start of a PAM operation + to determine how well the system is operating under the current noise + conditions. This could lead to reconfiguration of the detectors or changes to the + hydrophone deployment in order to improve detection efficiency + (confirmed by further quick tests) before operations start in earnest. + Quick Tests can be repeated whenever conditions change and detector + efficacy is in question. +

+
+

Random Drill

+

+ Random Drills are intended to test both operator alertness and automated + detector efficiency over much longer periods of time and different noise + conditions. Sequences are injected into the audio stream like the Quick + Test, but at an infrequent rate (every few hours) over a period of days + or even weeks. +

+ +
+
+

+ Over an extended period of time Random Drills will generate the same + statistics as the quick tests, but are more likely to capture the full + range of operational (noise) conditions and operator attentiveness. +

+
+
+
+ +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_Process.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_Process.html new file mode 100644 index 00000000..b6fee5fe --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_Process.html @@ -0,0 +1,83 @@ + + + + + SIDE Workflow + + +

SIDE Module

+

Workflow

+

+ There are two different workflows, depending on whether a Quick Test or + a Random Drill is being run. Descriptions of each test can be found in + the Overview. +

+
+

Quick Test

+

+ The goal of a Quick Test is to determine the detection functionality of + the PAM system in the current environmental conditions. The test is not + intended to evaluate operator performance, but primarily to evaluate the + efficacy of the automated detectors. Therefore, once started, the + operator simply needs to wait until the Quick Test is complete. No + further interaction is required. +

+

+ Detection matching takes place in real time, with the SIDE module + monitoring data coming from each detector and matching the simulated + sounds with the detections. A match between an injected signal + and detection is counted if there is overlap in time and frequency of + the simulated sounds and the detection. +

+

+ A summary report can be immediately generated for operator review once the + Quick Test has completed. +

+
+
+

Random Drill

+

+ Random Drills are intended to test both operator alertness and automated + detector efficiency over much longer periods of time and different noise + conditions. Sequences are injected into the audio stream like the Quick + Test, but at an infrequent rate (every few hours) over a period of days + or even weeks. +

+

+ The operator has three different methods to indicate that they have + detected a sound. +

    +
  1. They can draw an annotation box around the signal in the spectrgoram
  2. +
  3. They can hit the Print Screen button in the top-left corner of the PAMGuard window
  4. +
  5. They can click a Things Heard button if they have an Aural Listening Form module loaded
  6. +
+

+

+ In the case of an annotation box, a match between an injected signal and an + operator detection is counted if there is an overlap in time and + frequency of the simulated sound and the annotation box. For the Print + Screen and Things Heard buttons, it is likely that the + operator will have pressed the button at some time after the sound first + becomes visible on the display. For these annotation types therefore, a + match is considered good if the button was pressed within 30s of the + sound reaching the hydrophones. +

+

+ Automated detectors are evaluated the same as in the Quick Tests. +

+

+ Over an extended period of time Random Drills will generate the same + statistics as the quick tests, but are more likely to capture the full + range of operational (noise) conditions and operator attentiveness. +

+
+
+
+ + +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_ReportMatrix.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_ReportMatrix.html new file mode 100644 index 00000000..209d5a49 --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_ReportMatrix.html @@ -0,0 +1,47 @@ + + + + + Reporting Matrix + + +

SIDE Module

+

Reporting Matrix

+

+ The Reporting Matrix links species clusters with detectors, allowing the + user to select which detectors they intend to use so that the SIDE + module can log and assess the detector performance. If the sensitive + bandwidth of a detector does not overlap with the bandwidth of a sound, + then the selection box will be disabled. For each cluster the operator + can select a primary detector, which will appear first in any reports. +

+ +
+
+

+ It is the responsibility of the operator to determine which detectors + (besides the primary) should be selected. Some may not be suitable for + particular sound types, or not used by the operator. For example, if the + operator typically annotates a spectrogram or hits print screen to + record a detection but rarely clicks the things I heard button, + then only the first two options would be selected. There is no detriment + to activating all actions; however, it will require additional analysis + on the operators part to assess detection performance by combining all + the actions, and selecting irrelevant detectors will generate a very + cluttered report. +

+

+ The SIDE module will only report the detection performance based on a + single user action. +

+
+
+
+ + +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_Sidebar.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_Sidebar.html new file mode 100644 index 00000000..529c6d90 --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_Sidebar.html @@ -0,0 +1,43 @@ + + + + + Sidebar + + +

SIDE Module

+

Sidebar

+

+ The Sidebar shows the current operational state, as well as information + about the last test run. +

+ +
+
+

+ The current operations status can be selected from the drop-down text + box. In order to properly log a status change to the database, a + selection must be made from the text box even if the correct status + is already displayed. When a status is selected, it will be shown + in the Operations State table + in the middle of the SIDE Module display, along with a time stamp to + indicate when the status was changed. +

+

+ The test information can be displayed or hidden by clicking on the arrow + (). Use this feature if you are + limited on screen space and don't need to see all of the information. +

+ +

+
+
+
+ + +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_SpClust.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_SpClust.html new file mode 100644 index 00000000..7fcd45ef --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_SpClust.html @@ -0,0 +1,60 @@ + + + + + Species Cluster Selection + + +

SIDE Module

+

Species Cluster Selection

+

Species Cluster

+

+ The Species Clusters panel allows the user to specify which species to test for. +

+ +
+
+
+

+ Species are selected by checking the box next to their name, under the + type of test desired. For descriptions of the Quick Test and Random + Drill Test, please see the + Overview page. The selected clusters should match the species for + which you intend to monitor. +

+

+ The Nominal Range value is + the minimum detection range for the species. This is used as the mean + distance from the receiver for generated signals, and would typically + equal your exclusion zone for that cluster. Signals will be injected + both inside and outside the Nominal Range using the Test + Range Limits (see below) as a modifier. +

+
+

Test Range Limits

+

+ The Test Range Limits window allows the user to specify the dispersion of the generated sounds. +

+ +
+
+

+ Species sounds are randomly distributed between the minimum distance + (Nominal Range/Range Factor) + and the maximum distance + (Nominal Range × Range Factor). To minimize + sequences injected at very close and very far ranges, edit the factor to + 2. To increase the sequences that are injected at very close and very + far ranges, increase the factor above 4 +

+
+
+
+ + +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/SIDE_TestParams.html b/target/classes/help/utilities/SIDEModule/docs/SIDE_TestParams.html new file mode 100644 index 00000000..38c55973 --- /dev/null +++ b/target/classes/help/utilities/SIDEModule/docs/SIDE_TestParams.html @@ -0,0 +1,85 @@ + + + + + Test Parameters + + +

SIDE Module

+

Quick / Random Drill Test Parameters

+

+ For descriptions of the Quick Test and Random + Drill Tests, please see the + Overview page. +

+
+

Quick test

+ +
+
+

+ The Number of Sequences defines how many sequences the SIDE Module will + generate for each of the species checked off under Quick + in the Species Cluster window. + 20 sequences are a recommended minimum to complete a Quick Test. A + 20-sequence Quick Test with all species clusters should take + approximately 15 minutes to complete. If you have enough time, 40 + sequences will provide you with more accuracy. +

+

+ Pressing the Run Quick Tests button starts the Quick Test + process. Note that this button is disabled (as shown in the image above) + until all of the following conditions are met +

+

+

+ Poor results (e.g. poor regressions or all misses) likely indicate + system or noise issues. Rather than increase the number of sequences + injected in the hopes that a more accurate measure will yield better + results, those issues should be investigated and solved first. +

+

+ Checking the Auto generate report box will + cause a report to immediately be created upon completion of the Quick + Test. If this box is left unchecked, a report can be generated any time + after a test by simply right-clicking on one or more tests listed in the + PAMGuard Test History + Information Table and selecting Process Test + ## from the drop down menu. +

+
+
+

Random Drill Tests

+ +
+
+

+ The Random Drill Interval defines the average + amount of time (in minutes) between injected sounds. Actual elapsed time + between sounds will be randomly distributed around this number. The + injection period may be adjusted depending on the monitoring phase. The + following minimum intervals are recommended to reduce the + frequency of injections: +

+

+
+
+
+ + +
+
+
+ + diff --git a/target/classes/help/utilities/SIDEModule/docs/images/Capture.PNG b/target/classes/help/utilities/SIDEModule/docs/images/Capture.PNG new file mode 100644 index 00000000..84fff06e Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/Capture.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEArrow.PNG b/target/classes/help/utilities/SIDEModule/docs/images/SIDEArrow.PNG new file mode 100644 index 00000000..43238135 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEArrow.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDECreateTab.PNG b/target/classes/help/utilities/SIDEModule/docs/images/SIDECreateTab.PNG new file mode 100644 index 00000000..c79fb582 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDECreateTab.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEDisplay.PNG b/target/classes/help/utilities/SIDEModule/docs/images/SIDEDisplay.PNG new file mode 100644 index 00000000..f54c2a17 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEDisplay.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEDisplayWithResults.PNG b/target/classes/help/utilities/SIDEModule/docs/images/SIDEDisplayWithResults.PNG new file mode 100644 index 00000000..b433c112 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEDisplayWithResults.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEDolphinWhist.PNG b/target/classes/help/utilities/SIDEModule/docs/images/SIDEDolphinWhist.PNG new file mode 100644 index 00000000..377db113 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEDolphinWhist.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEDrill.png b/target/classes/help/utilities/SIDEModule/docs/images/SIDEDrill.png new file mode 100644 index 00000000..d37f07d2 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEDrill.png differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEOpStat.png b/target/classes/help/utilities/SIDEModule/docs/images/SIDEOpStat.png new file mode 100644 index 00000000..d81e2b4e Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEOpStat.png differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEOpStatTable.png b/target/classes/help/utilities/SIDEModule/docs/images/SIDEOpStatTable.png new file mode 100644 index 00000000..0f4bc283 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEOpStatTable.png differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEQuick.png b/target/classes/help/utilities/SIDEModule/docs/images/SIDEQuick.png new file mode 100644 index 00000000..82be277d Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEQuick.png differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDEQuickTest.png b/target/classes/help/utilities/SIDEModule/docs/images/SIDEQuickTest.png new file mode 100644 index 00000000..feafcfd1 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDEQuickTest.png differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDERandDrill.PNG b/target/classes/help/utilities/SIDEModule/docs/images/SIDERandDrill.PNG new file mode 100644 index 00000000..6afd0395 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDERandDrill.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDERepMat.PNG b/target/classes/help/utilities/SIDEModule/docs/images/SIDERepMat.PNG new file mode 100644 index 00000000..a124d859 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDERepMat.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDESidebar.PNG b/target/classes/help/utilities/SIDEModule/docs/images/SIDESidebar.PNG new file mode 100644 index 00000000..e7877236 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDESidebar.PNG differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDESpClusters.png b/target/classes/help/utilities/SIDEModule/docs/images/SIDESpClusters.png new file mode 100644 index 00000000..5d5f9139 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDESpClusters.png differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDETestHist.png b/target/classes/help/utilities/SIDEModule/docs/images/SIDETestHist.png new file mode 100644 index 00000000..501b0562 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDETestHist.png differ diff --git a/target/classes/help/utilities/SIDEModule/docs/images/SIDETestRangeLim.png b/target/classes/help/utilities/SIDEModule/docs/images/SIDETestRangeLim.png new file mode 100644 index 00000000..98fc41d1 Binary files /dev/null and b/target/classes/help/utilities/SIDEModule/docs/images/SIDETestRangeLim.png differ diff --git a/target/classes/help/utilities/WILDInterface/docs/WILDOverview.html b/target/classes/help/utilities/WILDInterface/docs/WILDOverview.html new file mode 100644 index 00000000..52f07f30 --- /dev/null +++ b/target/classes/help/utilities/WILDInterface/docs/WILDOverview.html @@ -0,0 +1,87 @@ + + + +WILD ArcGIS Interface + + +

PAMGUARD

+

WILD ArcGIS Interface

+

Overview

+

The WILD ArcGIS Interface module provides the user the ability to +integrate Pamguard with the WILD ArcGIS-based marine mammal survey +software package. The module takes postional data from the GPS module +and couples that with user-inputted information regarding marine mammal +location to create a NMEA string. The string is then output to the WILD +package through a serial port.

+

The NMEA string uses the CPAM format, defined on May 3, 2011 as:

+

$PSOCALPAM, +date,time,lat,long,gyro,speed,dx0,dy0,dz0,animal,signal strength,signal +duration,bearing,azimuth,distance, animal lat,animal long, animal +depth*CS

+

where

+ +

 

+

Creating the Module

+

From the File > Add Modules > Utilities menu, select "WILD ArcGIS Interface". Enter a descriptive name for the new module and press OK.

+

 

+

Configuring the Module

+

Select Detection > WILD ArcGIS Interface on the toolbar to open the parameters dialog, shown below.

+

WILD parameters

+

The GPS Source dropdown box contains a list of GPS modules +that have been previously configured. In order to pass GPS data to the +WILD package, a valid GPS source must be selected. If no source is +selected or the GPS data is not available, blank values will be used in +the NMEA string.

+

The serial port connected to the WILD software package must be configured in order to properly pass the NMEA string.

+

The NMEA strings can also be saved to a csv file, the name and +location of which can be specified by the user. Each string is appended +to the csv file as a new row after being output to the serial port.

+

 

+

Side Bar

+

sidebar displaying bearing, azimuth and distance   sidebar displaying longitude, latitude and depth

+

The side bar displays information from the GPS source, as well as +text fields to allow the operator to locate the animal. The animal +location parameters will be either Bearing Angle, Azimuth and Distance +or Animal Latitude, Animal Longitude and Animal Depth. Pressing the +Switch Parameters button will toggle between the two sets of +parameters. Pressing the Send Data button will compile the NMEA string +and send it to the output serial port.

+

Note that if an invalid value is entered into a text field, such as +a character instead of a number or a number outside the allowable +range, the value is replaced with 0.

+

Note also that the text fields are cleared after sending the data, in preparation of the next detection.

+ \ No newline at end of file diff --git a/target/classes/help/utilities/WILDInterface/docs/images/parameters.png b/target/classes/help/utilities/WILDInterface/docs/images/parameters.png new file mode 100644 index 00000000..446af6bf Binary files /dev/null and b/target/classes/help/utilities/WILDInterface/docs/images/parameters.png differ diff --git a/target/classes/help/utilities/WILDInterface/docs/images/sidebar_bearing-angle-distance.png b/target/classes/help/utilities/WILDInterface/docs/images/sidebar_bearing-angle-distance.png new file mode 100644 index 00000000..e5a0ff47 Binary files /dev/null and b/target/classes/help/utilities/WILDInterface/docs/images/sidebar_bearing-angle-distance.png differ diff --git a/target/classes/help/utilities/WILDInterface/docs/images/sidebar_lat-long-depth.png b/target/classes/help/utilities/WILDInterface/docs/images/sidebar_lat-long-depth.png new file mode 100644 index 00000000..f74059c2 Binary files /dev/null and b/target/classes/help/utilities/WILDInterface/docs/images/sidebar_lat-long-depth.png differ diff --git a/target/classes/help/utilities/WILDInterface/docs/images/topic.gif b/target/classes/help/utilities/WILDInterface/docs/images/topic.gif new file mode 100644 index 00000000..ffce84c1 Binary files /dev/null and b/target/classes/help/utilities/WILDInterface/docs/images/topic.gif differ diff --git a/target/classes/help/utilities/datamap/docs/datamap.html b/target/classes/help/utilities/datamap/docs/datamap.html new file mode 100644 index 00000000..5859a155 --- /dev/null +++ b/target/classes/help/utilities/datamap/docs/datamap.html @@ -0,0 +1,48 @@ + + + +Data Map + + + + +

Data Map

+

Overview

+ +

Key to PAMGUARD viewer +operation is the data map which provides an overview of all data available to the viewer.

+

There is never a need to create a data map since it is created automatically whenever +PAMGUARD is operating in Viewer mode. The data map is not available in other operation modes.

+

+Image


+

+

The data map shows a general overview of all data available to viewer mode, which may be over a time scale of minutes to years.

+

The data map allows you to easily navigate through the data

+ +

Data density graphs

+

Most of the data map is taken up by a series of data density graphs. These show the number of available data units per hour (in the case + of data in the database) or per binary file for data stored in binary files.

You can double click on the title bar of each + data density graph to minimise unwanted graphs (thereby making more room for others). Graphs with no data are minimised by default.

+ +

Loading Settings

+

Each time PAMGUARD is started, settings are stored in the database and in the binary storage system. The times at which settings were + stored are shown by small triangles in the "Settings" strip near the top of the data map. Hover the mouse over any of these triangles to see + a list of modules in use at that time. To load a particular set of PAMGAURD settings, right click on the triangle and execute the pop up menu + command.

+ +

Data Navigation

+

Small pink arrows on the data density graphs show the times of data currently loaded into memory. You can right mouse click at any point on + any of the graphs to navigate to that point in the data. Follow link for more Navigation tips.

+ +

Data Map Scales

+

Use the "scales" slider in the top right corner of the data map to control the horizontal scrolling

+

Use the drop down list to select the vertical scaling of the plots.

+ + + + +
+
+ + + \ No newline at end of file diff --git a/target/classes/help/utilities/datamap/docs/images/DataMap.png b/target/classes/help/utilities/datamap/docs/images/DataMap.png new file mode 100644 index 00000000..8bce3d98 Binary files /dev/null and b/target/classes/help/utilities/datamap/docs/images/DataMap.png differ diff --git a/target/classes/help/utilities/depthreadout/docs/depth_configuration.html b/target/classes/help/utilities/depthreadout/docs/depth_configuration.html new file mode 100644 index 00000000..0e12680c --- /dev/null +++ b/target/classes/help/utilities/depthreadout/docs/depth_configuration.html @@ -0,0 +1,61 @@ + + + +Hydrophone Depth Readout Configuration + + + + +

Hydrophone Depth Readout

+

Configuration

+

Creating a Depth Readout Module

+

From the File>Add modules>Utilities +menu, or from the pop-up menu on the data model display select 'Hydrophone +Depth Readout'. Enter a name for the new module and press Ok.

+

The depth readout module is not dependent on any other modules +and will automatically find and exchange information with the +Hydrophone Array Manager. Go to Detection>Hydrophone Depth Readout Settings... for configuration.

+
+ + +Depth Configuration +
+

Select Measurement Device

+

Select the data acquisition card you wish to use. Depending on +the card type, it may be necessary to first configure the card using +software provided by the card manufacturer. For Measurement Computing +cards, you will need to run their 'instacal' configuration utility. You +should also refer to your device manual.

+

Select the maximum voltage range of the device. Generally, this +should be as small as possible, since this will improve resolution. +Obviously, the range has to be greater than the maximum values you are +expecting from your sensor.

+

Set the number of sensors and the interval between readouts. +After changing the number of sensors, hit 'Enter' and the number of +panels in the lower part of the dialog will change accordingly.

+ +

Sensor Configuration

+

For each sensor, set the data acquisition cards hardware channel, +the position on the cable and the hydrophone channels data from that +sensor should be applied to.

+

If more than one sensor is set to apply data to the same +hydrophone, then the actual hydrophone depth is calculated using linear +interpolation based on the relative positions of the hydrophones and the +depth sensors. This feature would be useful in longer arrays which may +not be towing horizontally and contain more than one depth sensor.

+ +

Calibration

+

The depth is calculated from the measured voltage using a simple +linear model of the form

+

Depth = A * Voltage + B,

+

where A and B are constants.

+
+

+ + +


+ + diff --git a/target/classes/help/utilities/depthreadout/docs/depth_overview.html b/target/classes/help/utilities/depthreadout/docs/depth_overview.html new file mode 100644 index 00000000..d78bf582 --- /dev/null +++ b/target/classes/help/utilities/depthreadout/docs/depth_overview.html @@ -0,0 +1,44 @@ + + + +Hydrophone Depth Readout Overview + + + + +

Hydrophone Depth Readout

+

Overview

+

The Hydrophone depth readout module can be used to read +hydrophone depth information from one or more analogue depth sensors which +output a voltage that changes as hydrophone depth changes.

+

For current loop depth sensors (which output a current +proportional to depth), the current output can be passed through a small +resistor create a voltage.

+

The system currently only works with MeasurementComputing data acquisition +cards (www.mccdaq.com) but may be extended +to support other devices in the future.

+

Time-stamped depth information is passed to the + +hydrophone array manager which makes it available to other +PAMGUARD modules as required, the information from the sensors effectively overriding the +default depth information in the +hydrophone array configuration dialog.

+ +

A small side panel shows a graph of recent depth history.

+ +
+Depth side panel +
+

Database output

+

Both the raw voltage data and the calculated depth for each +sensor are written to the database. +It is therefore possible to recalculate depths off-line if depth sensors +are re-calibrated at any point. (PAMGUARD will not currently do +this for you - you'll have to work it out for yourself using your own +software).
+
+

+ + diff --git a/target/classes/help/utilities/depthreadout/docs/images/DepthConfiguration.png b/target/classes/help/utilities/depthreadout/docs/images/DepthConfiguration.png new file mode 100644 index 00000000..bbce2aea Binary files /dev/null and b/target/classes/help/utilities/depthreadout/docs/images/DepthConfiguration.png differ diff --git a/target/classes/help/utilities/depthreadout/docs/images/DepthSidePanel.png b/target/classes/help/utilities/depthreadout/docs/images/DepthSidePanel.png new file mode 100644 index 00000000..fe521c99 Binary files /dev/null and b/target/classes/help/utilities/depthreadout/docs/images/DepthSidePanel.png differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/DOCS b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..38096bf2 Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..690e5889 Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/DOCS.TAB differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/OFFSETS b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..3b62c080 --- /dev/null +++ b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +У@6`c&L@ \ No newline at end of file diff --git a/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/POSITIONS b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..dd805baa Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/SCHEMA b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..f2f6b1fd --- /dev/null +++ b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=206 id2=1 diff --git a/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/TMAP b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..534f8132 Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/Images/DatabaseMSAccess.png b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/DatabaseMSAccess.png new file mode 100644 index 00000000..0bdb28cd Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/DatabaseMSAccess.png differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/Images/DatabaseOOo.png b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/DatabaseOOo.png new file mode 100644 index 00000000..c1e4fc90 Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/DatabaseOOo.png differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/Images/databaseMySQL.png b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/databaseMySQL.png new file mode 100644 index 00000000..9f33cdd5 Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/databaseMySQL.png differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/Images/databaseSQLite.png b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/databaseSQLite.png new file mode 100644 index 00000000..eb9245c5 Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/databaseSQLite.png differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/Images/import_export.png b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/import_export.png new file mode 100644 index 00000000..671bbb7a Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/docs/Images/import_export.png differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/database_MySQL.html b/target/classes/help/utilities/generalDatabaseHelp/docs/database_MySQL.html new file mode 100644 index 00000000..d33185df --- /dev/null +++ b/target/classes/help/utilities/generalDatabaseHelp/docs/database_MySQL.html @@ -0,0 +1,43 @@ + + + +MySQL Database + + + + +

Database

+

MySQL

+ +

+MySQL can be downloaded for free from www.mysql.com/downloads/. +Conveniently MySQL make a windows installer which contains both MySQL server and a client +to access the data outwith PAMGuard and a nice workbench to easily manage everything. +It is available from www.mysql.com/downloads/installer/ +

+

+

+

One disadvantage of using a MySQL databases is that the database consists of many files +and transferring a database between machines and users is more complicated than for Access and some other +database types.

+ +

Configuring a MySQL database

+MySQL Configuration
+

 

+

+To connect to a MySQL database you will need to have a user name and password +for the MySQL server you are connecting to. You will get this from whoever is +administering MySQL on the machine you are working on. +

+

Once you have successfully connected to the MySQL server, you can either select an +existing database or you can automatically create a new database by pressing the +'Create New' button and filling in the name of the new database.

+

+You do not need to add tables to the database, PAMGUARD will automatically create all of the tables it needs. +

+


+ Back to database main page + +

+ + diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/database_OOo.html b/target/classes/help/utilities/generalDatabaseHelp/docs/database_OOo.html new file mode 100644 index 00000000..ad8c23a1 --- /dev/null +++ b/target/classes/help/utilities/generalDatabaseHelp/docs/database_OOo.html @@ -0,0 +1,37 @@ + + + +OpenOffice databases + + + + +

Database

+

OpenOffice.org (OOo) databases

+ +

The OO Database is not currently working and should not be used

+

+To use a Open Document Format databases no external database software or engine is required however if you would like to view the +database LibreOffice and OpenOffice are good choices. +

+

+PAMGUARD works with OpenOffice databases (.odb). +

+

+Like MS Access, using these Open Databases, all your data ends up in +a single file which is easy to copy and move and send to other users, however while PAMGUARD is open the files are extracted then rebuilt at the end. +

+

Configuring an OpenOffice database

+OOo Database Configuration
+

+PAMGUARD is able to create an OpenOffice database(.odb) at time of selection provided with a location. +

+

+You do not need to add tables to the database, PAMGUARD will automatically create the tables it needs. +

+

+
+Back to database main page +

+ + diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/database_database.html b/target/classes/help/utilities/generalDatabaseHelp/docs/database_database.html new file mode 100644 index 00000000..b9983d0a --- /dev/null +++ b/target/classes/help/utilities/generalDatabaseHelp/docs/database_database.html @@ -0,0 +1,98 @@ + + + +Database + + + + +

Database

+

Overview

+

PAMGuard stores data from many modules in a database. The + database not only stores detector output, but also detector + configuration and settings so that it will effectively form a single + document at the end of the cruise, detailing how PAMGuard was set up + and what was detected.

+

Adding a database module

+

+ From the File>Add Modules>Utilities menu + select 'Database' to add a database to your configuration. +

+

Configuring the database

+

+ PAMGuard can use either MySQL or SQLite databases. Support for + Microsoft Access databases has been removed with the upgrade from Java + 7 to Java 8. See here for information + on how to convert old Access databases to one of the supported + formats. +

+

The setup for each databases type is slightly different, but + operation and integration into the rest of PAMGuard is the same.

+

+ To configure the database, go to the File>Database + Selection... menu to open the Database Selection dialog. At the top + of the dialog, select either MySQL, Microsoft Access or OpenOffice + from the drop down list. Then refer to specific instructions for each + database type below. +

+
+

+ Configure an SQLite database +

+

+ Configure a MySQL database +

+

+ Configure a Microsoft Access + database +

+ +

+

Choosing a database system

+

Which database system you use is largely a matter of personal + choice.

+

+ An excellent article on the advantages and disadvantages of SQLite and + MySQL is available here. +

+

Basically, SQLite is a single file database (rather like MS + Access) which can easily be backed up and copied between machines just + like any other data file. MySQL is a server based database which is + much harder to move between computers but can better handle multiple + users accessing the same data simultaneously. So if you're in the + field collecting data on a laptop, you're almost definitely better off + with SQLite. On the other hand, if you have the technical know how and + want a managed database system back at the lab, you might consider + MySQL as a solution.

+

+ The latest PAMGuard versions contain excellent facilities for moving data between different database + systems. +

+

Adding tables to the database

+

PAMGuard will automatically add the necessary tables to your + database.

+

If a new detector module is added to PAMGuard at any point, the + database module is notified and will add the additional tables + required.

+

If a module is removed and a table is no longer needed, that + table will be left in the database unaltered.

+

Should the definition of a table change due to the new release + of a module which outputs additional information, any additional + columns required will be automatically added to existing tables.

+ +

Other alterations

+

You may add other tables and queries to the database without + affecting PAMGuard operation. Additional tables will be ignored by + PAMGuard.

+

You can even add additional columns to tables which are used by + PAMGuard and these additional columns will also be ignored.

+

However, you should not change the format of any existing + columns and do not create relationships between tables which may not + always be satisfied or PAMGuard may be unable to write data to the + database.

+
+
+
+ + diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/database_msAccess.html b/target/classes/help/utilities/generalDatabaseHelp/docs/database_msAccess.html new file mode 100644 index 00000000..6f317b59 --- /dev/null +++ b/target/classes/help/utilities/generalDatabaseHelp/docs/database_msAccess.html @@ -0,0 +1,54 @@ + + + +Microsoft Access Database + + + + +

Database

+

MS Access

+
+
+ +

+ Please note that PAMGuard is not currently able to connect to + Microsoft Access databases.
This is caused by the + + removal of the JDBC-ODBC bridge in Java 8.
We recommend + that you use SQLite databases
+ Limited connectivity to MS Access for the import and export of data is + provided using the open source UCanAccess library. +

+
+

+ If you are still using Java 7, then the following still apply ... +

+
+ +

+ To use a MS Access database you will need a licensed copy of MS Access + on your computer or the 32-bit MS Access database engine available here + supported on XP sp3, Vista sp1 and Windows 7 +

+

PAMGUARD works with Microsoft 2000, 2003, 2007 and 2010 + databases (.mdb and .accdb).

+

One advantage of using a MS Access databases is that all your + data end up in a single file which is easy to copy and move and send + to other users.

+

Configuring an MS Access database

+ Microsoft Access Configuration +
+

PAMGUARD is able to create an MS access 2007 database(.accdb) at + time of selection provided with a location.

+

You do not need to add tables to the database, PAMGUARD will + automatically create the tables it needs.

+

+
Back to database main + page +

+ + diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/database_sqlite.html b/target/classes/help/utilities/generalDatabaseHelp/docs/database_sqlite.html new file mode 100644 index 00000000..17875ad2 --- /dev/null +++ b/target/classes/help/utilities/generalDatabaseHelp/docs/database_sqlite.html @@ -0,0 +1,39 @@ + + + +SQLite Database + + + + +

Database

+

SQLite Databases

+ +

+ SQLite is a single file database + and is an excellent replacement for Microsoft Access. Data are stored + in a single file which can easily be backed up and copied between + computers. +

+

+ SQLite is cross platform so should work on Mac's and Linux platforms as well as Windows. +

+

+ SQLite is open source and free to use. A number of viewers are + available to enable you to view data directly within the database + file. We have tested and recommend SQLiteStudio which can be + downloaded here. +

+ +

Configuring an SQLite database

+ SQLite Configuration +
+

PAMGuard will automatically create the necessary .sqlite3 + database file on your computer.

+

You do not need to add tables to the database, PAMGuard will + automatically create the tables it needs.

+
+ Back to database main page +

+ + diff --git a/target/classes/help/utilities/generalDatabaseHelp/docs/import_export.html b/target/classes/help/utilities/generalDatabaseHelp/docs/import_export.html new file mode 100644 index 00000000..95ca51cc --- /dev/null +++ b/target/classes/help/utilities/generalDatabaseHelp/docs/import_export.html @@ -0,0 +1,83 @@ + + + +Database + + + + +

Database

+

Importing and Exporting from other Databases

+ +

In Viewer Mode, database tables can be imported or exported from + the current PAMGuard database to and from external databases. This + feature can be used to copy an entire database (for example, you may + need to import and old Microsoft Access database into the newer SQLite + database format) or you could copy data for an subset of tables (for + example, import the UDF_ logger forms definitions from another + database).

+

Currently, in order to avoid duplicating data, it is only + possible to copy entire database tables into entirely empty database + tables. If you wish to transfer data into a table which already + contains data, you will be prompted to delete and recreate that + table prior to importing / exporting data.

+

+ To export or import data, select one of the File>Database>External>Export + to database or Import from database menu + items. +

+

You will then be presented with the database selection dialog + where you chose the database you want to exchange data with. +

+

Once you select a database, you will see the Import / Export + dialog where you can chose which tables to copy between the two + databases. (There may be a short delay while PAMGuard analyses the + external database).

+
+ SQLite Configuration +
+
+

If you are transferring data to a new blank database, then it's + likely that most of the destination tables will show an Error. Hover + the mouse over the buttons to see the error. Most likely it's simply + that the tables need creating. Press the "Create" button near the top + of the screen and the errors will disappear. If tables already contain + data, they will be flagged as "Warning". Again, hover the mouse over + each button to see what's wrong. Click the button for a menu of + possible actions to fix any problems (generally dropping and + recreating tables).

+

Select the tables you wish to export / import and press "Start". +

+

If you are importing data, at the end of the import process, by + default, PAMGuard will load the latest configuration from the imported + configuration tables. Un-check the box if you do not want this to + happen.

+ +

Indexing and Cross Referencing

+

Every PAMGuard database table has an indexed column named "Id". + This number is automatically generated as data are written to the + table and may therefore change when data are copied between databases. +

+

For simple data, where the original data were written by + PAMGuard and nothing was deleted, then it's likely that the Id's will + be the same. However, for data which have been manipulated either by + someone messing with the database or by data being added / deleted in + the Viewer, then it's likely that the copied data will have different + Id's

+

To keep track of data, each copied database table will contain + an additional column with the name "CopyId". This will contain the Id + of the data in the table it was copied from.

+

For most data this is not a problem. However, Click Detector + events marked in the PAMGuard Viewer populate two database tables one + of which cross references to the other. With the possible change of + Id's, these cross references may no longer be correct. PAMGuard will + automatically correct these altered cross references.

+

Otherwise, you will only ever be aware of these Id changes should you have + referred to an event by it's Id - e.g. if you emailed a colleague and event number to + check over.

+

+
+
+Back to database main page
+ + diff --git a/target/classes/help/utilities/generalDatabaseHelp/resources/Thumbs.db b/target/classes/help/utilities/generalDatabaseHelp/resources/Thumbs.db new file mode 100644 index 00000000..c45a9d37 Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/resources/Thumbs.db differ diff --git a/target/classes/help/utilities/generalDatabaseHelp/resources/topic.gif b/target/classes/help/utilities/generalDatabaseHelp/resources/topic.gif new file mode 100644 index 00000000..6077227b Binary files /dev/null and b/target/classes/help/utilities/generalDatabaseHelp/resources/topic.gif differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/DOCS b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/DOCS new file mode 100644 index 00000000..1cbe0fa3 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/DOCS differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/DOCS.TAB b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/DOCS.TAB new file mode 100644 index 00000000..27fb689b --- /dev/null +++ b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/DOCS.TAB @@ -0,0 +1 @@ +euzꪪꪪ` \ No newline at end of file diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/OFFSETS b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/OFFSETS new file mode 100644 index 00000000..614d0081 --- /dev/null +++ b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/OFFSETS @@ -0,0 +1 @@ +kg \ No newline at end of file diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/POSITIONS b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/POSITIONS new file mode 100644 index 00000000..7f6daa94 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/POSITIONS differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/SCHEMA b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/SCHEMA new file mode 100644 index 00000000..ac8238b0 --- /dev/null +++ b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/SCHEMA @@ -0,0 +1,2 @@ +JavaSearch 1.0 +TMAP bs=2048 rt=1 fl=-1 id1=256 id2=1 diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/TMAP b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/TMAP new file mode 100644 index 00000000..3529c834 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/JavaHelpSearch/TMAP differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_Configuration.html b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_Configuration.html new file mode 100644 index 00000000..40943da8 --- /dev/null +++ b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_Configuration.html @@ -0,0 +1,146 @@ + + + +Hydrophone Array Configuration + + + + + +

Hydrophone Array

+

Configuration

+


+The array configuration dialog is now opened from the Settings>Hydrophone +array menu.

+

Hydrophone array dialog
+

+ +

The array dialog is divided into five distinct regions.

+ +

1) Hydrophone Positions
Provides a graphical display of the +hydrophone positions within the array.

+ +

2) Array Configuration
Lists the individual streamers and hydrophone +elements making up the array.

+ +

3) Channel Configuration
Lists the software channels +associated with a Sound Acquisition Module..

+ +

4) Environment
Lists environmental parameters.

+ +

5) Array Management
Allows you to create, import, export and +rename different hydrophone arrays.

+ +

Hydrophone Positions

+

This part of the dialog is for information purposes only and +there are no configuration options. Hydrophone positions are shown relative +to the reference coordinate and heading. Physical hydrophone numbers are +shown in black. Software channel numbers are shown in red. It is +possible, if no software channel is connected to a particular hydrophone +that the software channel will be absent for some hydrophones.

+

Coordinate Frame +
For towed systems it is assumed that the vessel's GPS is at (x,y) = (0,0) and is travelling +in the forward (increasing) y direction. Consequently, for an array +towed astern of the vessel, y coordinates are generally negative +numbers. For a single array in the centre line of the vessel with a +centrally mounted GPS, all x coordinates will be zero, etc. For display +purposes, depth is entered as a positive number, however developers +should be aware that within the PAMGUARD data model, the positive z +coordinate is upwards, therefore depths are stored as negative numbers. +

+

For fixed locations, the diagram is relative to the heading set for that mooring, +which should be an angle relative to True North. If no heading is set, the angles are relative to True North.

+
+

Array Configuration

+

This lists the individual streamers and hydrophone elements making up an array. +

+

Selecting an array +
If more than one array is available within a configuration, a +particular array may be selected using the drop down list. Note that +only one array is loaded at any one time.

+

Hydrophone Streamers
+If you are using a towed array you should define one or more streamers which will +be shown in the Hydrophone Streamers table.

+

A Streamer is used to refer to any cluster of hydrophones which share a common +origin, e.g. a towed array or a buoy of some sort would normally be entered as a single +streamer containing one or more hydrophones.

+

Use the Add, Edit and Delete buttons to add, edit and delete streamers. When you +add or edit a streamer the Streamer Dialog will appear +which allows you to set up the streamer coordinates and other properties.

+

You will not be able to remove the last streamer. You will also only be able to delete a streamer +if no hydrophones are associated with that streamer.

+ +

Hydrophone Elements
+

This area lists individual hydrophone elements. Each hydrophone is given a unique Id which is referred to in the +Channel Configuration section and is also associated with a single hydrophone streamer.

+

Use the Add, Edit and Delete buttons to add, edit and delete hydrophones. When you +add or edit a hydrophone the Hydrophone Dialog will appear.

+ + +

Channel Configuration

+

The first stage of most PAM processes is to acquire the sound +with a digitiser (e.g. a sound +card) or some other Sound Acquisition module within the PAMGUARD model. +

+

It is possible for PAMGUARD to operate with more than one Sound +Acquisition module and a one-to-many relationship can exist between +hydrophones and data channels within the sound acquisition modules. For +instance, a single multi-element array may contain both low and high +frequency hydrophones, some of which are connected to a low frequency +digitiser and other high frequency hydrophones.

+

The drop down list at the top of the Channel Configuration panel +will list all Sound Acquisition Modules currently instantiated in the +PAMGUARD data model. Information on a single Sound Acquisition module is +displayed at any one time.

+

By default, when a sound acquisition module is created, it will +map it's channels 1 to 1 to the PAMGUARD array. To change these +mappings, select the software channel of interest in the Channel +Configuration panel and press 'Change hydrophone' and select the +hydrophone you want to relate to that software channel.

+

Other parameters displayed in the list area of the Channel +Configuration panel are set in the Sound Acquisition dialog and are for +information only.

+
+ +

Environment

+

This currently contains the speed of sound in sea water and an estimate of +the error on the speed of sound measurement.

+

(It is possible that future releases of PAMGUARD will allow entry +of a sound speed profile here ).

+
+ +

Array Management

+

When you have finished with the PAMGUARD Hydrophone Array dialog, +press the OK button.

+

To exit without saving changes, press +Cancel.

+

Other buttons perform the following actions:

+

New Array: Creates a new PAMGUARD +hydrophone array

+

Copy: Copies the currently loaded array

+

Rename: Renames the currently loaded +array

+

Import: Imports a hydrophone array from a +PAMGUARD Array File (.paf)

+

Export: Exports the currently selected +array to a PAMGUARD Array File (.paf)

+

Delete: Deletes the currently selected +array.

+
+
+ + + +


+ + diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_NewHydrophone.html b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_NewHydrophone.html new file mode 100644 index 00000000..bfd01db0 --- /dev/null +++ b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_NewHydrophone.html @@ -0,0 +1,44 @@ + + + +Adding a New Hydrophone + + + + +

Hydrophone Array

+

New Hydrophone Dialog


+ +

+Image

+

+The hydrophone Id will be assigned automatically.

+

+Assign the hydrophone to a streamer from the drop down list.

+

+The hydrophone type is for information only.

+
+

Hydrophone Coordinates

+

Enter the x,y, and depth coordinates and estimates of the errors on those coordinates.

+ +
+

Sensitivity

+

The sensitivity, preamplifier gain and combined bandwidth +(the bandwidth of the hydrophone element and any associated preamplifier +combination) are taken by default from the previously selected hydrophone +(to save you having to repeatedly type them in for multi-element arrays.

+ +
+

Interpolation

+

Things sometimes move ! As we start to incorporate sensors into our arrays, it will be necessary to chose how to pick +a position from a list of evolving positions over time.

These options tell the system to take the latest value entered by the user, +to interpolate between values bracketing the time of an event or to use the values immediately preceding an event.

+ + +Once you have completed the information, press the Ok button and the new +hydrophone will appear in the list. + +

+ + + diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_NewStreamer.html b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_NewStreamer.html new file mode 100644 index 00000000..3612bf77 --- /dev/null +++ b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_NewStreamer.html @@ -0,0 +1,58 @@ + + + +Adding a New Hydrophone + + + + +

Hydrophone Array

+

New Streamer Dialog


+ +The Streamer dialog has changed in release 1.13. +

+Image

+

The Streamer name is for information purposes only.

+ +

Reference Position

+

Streamer locations can be referenced to either the "Ships GPS Data" or to "Fixed location (moorings and buoys)". +If GPS data is selected then the system will automatically connect to data from the +GPS Module. If a fixed location is selected, then +additional options will appear allowing you to enter a reference Latitude and Longitude. +

+Image
+

To change the position, use the menu on the button to the right of the displayed location. It is possible +to enter a new value manually, take the current GPS position or to paste in the last location clicked on the +PAMGuard map. +
+

Hydrophone Locator Method

+

Two methods are available for calculating true hydrophone coordinates from the reference position. These are +the "Threading Streamer" locator and the "Straight / Rigid Streamer" locator.

+

The Threading system is most applicable to towed hydrophone systems referenced to ship GPS data. It assumes that +the streamer cable exactly follows the track of the vessel as it goes round corners. However, for hydrophones mounted +rigidly on the hull of a vessel it would be more sensible to use the Straight / Rigid method.

+

If the reference position is a fixed location, then it only makes sense to use the Straight / Rigid method.

+
+

Hydrophone Coordinates

+

Enter the hydrophone coordinates in metres relative to the reference position.

+

Also enter estimates of the errors on those coordinates.

+ +

Orientation data

+

For GPS referenced locations, if these values are not null, they will override heading values from the GPS data. If they are null, +then the GPS values will be used. +Some users are starting to collect orientation data for hydrophones which can give a more accurate +position than relying on the threading hydrophone model. No systems for collecting these data are yet built +into PAMGuard and have to date only been imported during offline analysis of data. Expect further developments in this +area in the near future !

+ +
+

Interpolation

+

Things sometimes move ! As we start to incorporate sensors into our arrays, it will be necessary to chose how to pick +a position from a list of evolving positions over time.

These options tell the system to take the latest value entered by the user, +to interpolate between values bracketing the time of an event or to use the values immediately preceding an event.

+ +

+ + + + diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_Overview.html b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_Overview.html new file mode 100644 index 00000000..ca92b009 --- /dev/null +++ b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Array_Overview.html @@ -0,0 +1,67 @@ + + + +Hydrophone Array OVerview + + + + +

Hydrophone Array

+

Overview

+ +

NEW Array localisation system !

+

PAMGuard users are deploying more and more complicated arrays and may now be working +with some hydrophones deployed from a vessel while others are on free floating buoys. Other users are adding +heading, pitch and roll sensors to their systems.

+

To cater for these developments the array management and localisation system has been substantially updated +so that arrays containing multiple types of streamer / buoys, etc. can be effectively managed.

+ +

+Within the PAMGuard framework, an "Array" refers to all of the hydrophones +currently in use and only a single "Array" is loaded into memory and used at any one time. +

+An array may contain multiple "Streamers" or clusters of hydrophones. Hydrophones within +each streamer (or cluster) are assumed to be connected to one another in some way and have a common origin. +Within this context a moored or drifting buoy should be considered as a streamer. +The streamer origin will generally be referenced to the vessels GPS position, or a fixed Latitude and Longitude. +

+Each streamer has a Hydrophone Locator system. This tells PAMGuard how to calculate the actual positions +of the individual hydrophones from the streamer origin. Moored hydrophones generally use a rigid locator, whereas towed +hydrophones are usually better off using a threading hydrophone locator which will give more accurate hydrophone +positions as the vessel turns a corner. +

+

A single array can mix streamers of different types.

+

Several different arrays may be managed and stored, although only one is loaded at any one time.

+ +

Each array may contain up to 32 individual hydrophone +elements (transducers).

+ +

A one-to-many relationship exists between hydrophones and +software channels.

+ +

Each hydrophone element must be assigned to a streamer. The +actual coordinates for each hydrophone used by PAMGUARD are the sum of +the streamer coordinates and the individual hydrophone element +coordinates. Although this appears to introduce some redundancy +regarding the coordinates of each hydrophone, streamer assignment is +important for two reasons. Firstly, it allows the errors on the relative +locations of pairs of hydrophones to be more accurately defined (the +errors between hydrophones in different streamers will generally be +greater than the errors on a hydrophone in the same streamer). Secondly, +should a streamer be moved or shortened, it is easier to adjust the +coordinates of a single streamer than to adjust the coordinates of all +hydrophones individually.

+ + + +

The Default Array

+

The first time you run PAMGUARD, a default array consisting of +two hydrophone elements spaced 3m apart at 5m depth, 100m and 103m +astern of the vessel. Channels in the array are mapped 1:1 to ADC +channels 0 and 1.

+ + + + diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/ArrayConfiguration.png b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/ArrayConfiguration.png new file mode 100644 index 00000000..809c4dc2 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/ArrayConfiguration.png differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/ArrayConfiguration_old.png b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/ArrayConfiguration_old.png new file mode 100644 index 00000000..30d4c1b3 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/ArrayConfiguration_old.png differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/FixedStreamer.png b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/FixedStreamer.png new file mode 100644 index 00000000..d92aabf0 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/FixedStreamer.png differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/NewHydrophone.png b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/NewHydrophone.png new file mode 100644 index 00000000..ed15f424 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/NewHydrophone.png differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/NewStreamer.png b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/NewStreamer.png new file mode 100644 index 00000000..c1ff0213 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/NewStreamer.png differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/OldHydrophone.png b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/OldHydrophone.png new file mode 100644 index 00000000..54d619cb Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/OldHydrophone.png differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/OldStreamer.png b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/OldStreamer.png new file mode 100644 index 00000000..c6df7710 Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/OldStreamer.png differ diff --git a/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/StaticArrayconfiguration.png b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/StaticArrayconfiguration.png new file mode 100644 index 00000000..bfb0ebdf Binary files /dev/null and b/target/classes/help/utilities/hydrophoneArrayManagerHelp/docs/Images/StaticArrayconfiguration.png differ diff --git a/target/classes/help/utilities/listening/docs/Listening_Configuration.html b/target/classes/help/utilities/listening/docs/Listening_Configuration.html new file mode 100644 index 00000000..d47f665c --- /dev/null +++ b/target/classes/help/utilities/listening/docs/Listening_Configuration.html @@ -0,0 +1,26 @@ + + + +Aural Listening Configuration + + + + +

Aural Listening

+

Configuration

+

+You can configure the list of species and noise types in a dialog accessed from the + Detection>Aural Listening Settings ...menu command.

+
+Aural Listening

+

Use the Add, Remove and Edit buttons to Add Remove and Edit items in the list of sound types.

+

Use the Move up and Move down buttons to change the order of a selected item in the list

+

Items on the main aural listening tab display will appear in the same order as they do in the list

+

Symbols

+

To set a species specific symbol, double click on the symbol in the right hand column and a dialog will appear from +which you can change both the symbol type, it's size and it's colour

+
+ + + + diff --git a/target/classes/help/utilities/listening/docs/Listening_Overview.html b/target/classes/help/utilities/listening/docs/Listening_Overview.html new file mode 100644 index 00000000..e38e713a --- /dev/null +++ b/target/classes/help/utilities/listening/docs/Listening_Overview.html @@ -0,0 +1,50 @@ + + + +Aural Listening Overview + + + + +

Aural Listening

+

Overview

+

+The Aural listening module can be used to keep a record of when you are listening and +what you are hearing on headphones.

+

To add a new Aural Listening module to PAMGUARD, select the File>Add Modules>Utilities>Aural +Listening +menu command.

+

An Aural Listening tab will be added to the PAMGUARD GUI

+
+Aural Listening

+ +

Effort

+ +

Effort data are recorded in the Effort panel

+

Select when you are on and off listening effort. The times you go on and off listening effort will be +written to the database

+

You can also select the numbers of the hydrophones you are monitoring at any moment.

+
+

Things Heard

+

When you hear things, click on the appropriate button for that species or type of noise and a subjective indication +of how loud it is

+

0 - can no longer hear it

+

...

+

5 - very loud

+

You can also enter text comments with any additional information

+ +
+

History

+

The lower part of the display shows the history of what you've recently heard

+ +

Database Output

+

Both the effort data and the things heard data are written to the PAMGUARD database.

+ +

Map Display

+

Things heard are displayed on the PAMGuard map at the location of the monitored hydrophones at the time a button was +pressed or a comment entered

+
+ +


+ + diff --git a/target/classes/help/utilities/listening/docs/images/ListeningConfig.png b/target/classes/help/utilities/listening/docs/images/ListeningConfig.png new file mode 100644 index 00000000..25ab2f8f Binary files /dev/null and b/target/classes/help/utilities/listening/docs/images/ListeningConfig.png differ diff --git a/target/classes/help/utilities/listening/docs/images/ListeningDisplay.png b/target/classes/help/utilities/listening/docs/images/ListeningDisplay.png new file mode 100644 index 00000000..2bbb7144 Binary files /dev/null and b/target/classes/help/utilities/listening/docs/images/ListeningDisplay.png differ diff --git a/target/classes/help/utilities/listening/docs/images/Thumbs.db b/target/classes/help/utilities/listening/docs/images/Thumbs.db new file mode 100644 index 00000000..4f157762 Binary files /dev/null and b/target/classes/help/utilities/listening/docs/images/Thumbs.db differ diff --git a/target/classes/help/utilities/quickAnnotations/docs/adding.html b/target/classes/help/utilities/quickAnnotations/docs/adding.html new file mode 100644 index 00000000..21a67858 --- /dev/null +++ b/target/classes/help/utilities/quickAnnotations/docs/adding.html @@ -0,0 +1,65 @@ + + + + Spectrogram Annotations + + +

Spectrogram Annotations

+ +

Adding and Configuring Spectrogram Annotations

+ +

Adding

+ +

From the File>Add Modules>Utilities menu select 'Quick Spectrogram Annotation' to add a spectrogram annotation module to your configuration.

+ +

It is wise to only have one Quick Annotation module, since this module can contain a list of user-defined labels that can be automatically applied to new Annotations upon their creation.

+ +

Spectrogram Settings

+ +

Once one or more Quick Annotation modules have been added to a configuration, you will find them listed on the "Mark Observers" tab of the spectrogram display settings (right click on the spectrogram to view these).

+ +

 

+ +

Image

+ +

 

+ +

Check the Quick Annotation modules you wish to associate with that spectrogram panel and close the dialog. The selected annotation modules will now recieve mouse messages when the mouse is dragged across the display.

+ +

Spectrogram Display

+ +

If you wish to see the marks on the display once they have been created, you will also have to right click on the spectrogram panel and select the spectrogram annotation module you wish to be displayed.

+ +

Automatically applied labels

+ +

The Quick Annotation module can automatically apply a user-defined label to new annotations. These labels are configured via the Quick Annotation Settings > Create and edit labels menu.

+ +

 

+ +

Image

+ +

 

+ +

The Code column in the table titled 'Lookup Editor (Quick annotations)' can be automatically applied to the annotations. These Codes will appear in the Quick Annotation sidebar. The code that is selected in the Quick Annotation sidebar will automatically be applied to newly created annotations if the box marked 'Assign Label'  has a check.

+ +

Colour

+ +

Marks will always be drawn in red as the mouse is being dragged across the spectrogram.

+ +

The default colour for annotations once they have been created is black. This can be changed via the Symbol column of the Table that appears when you click on Quick Annotation Settings > Create and edit labels menu. In the symbol dialog only the top (line colour) colour is used, the fill colour and symbol type are ignored.

+ +

Popup dialog

+ +

If the box marked 'Popup annotation dialog' is checked, then the Annotation Dialog Box will popup when new Quick Annotations are created (i.e. the behaviour will be similar to the Spectrogram Annotation module). If this box is left unchecked, the label will be applied automatically, colour-coded spectrogram marks will be shown, but no dialog for further entry of text will be displayed.

+ +

Wav export

+ +

Checking the box labelled 'Export new annotations as wav file' will allow you to select a folder for WAV output. This functionality is similar to the Clip Generator, but Quick Annotations will operate and create WAV files identically in Normal, Mixed, and Viewer Modes (provided Viewer is configured to use Offline files). The names of WAV files will append the Code/Label, if assigned, as a prefix to the timestamp.  

+ +

 

+ +

Previous: Annotations Overview

+ +

Next: Using Annotations

+ + diff --git a/target/classes/help/utilities/quickAnnotations/docs/images/annotations.png b/target/classes/help/utilities/quickAnnotations/docs/images/annotations.png new file mode 100644 index 00000000..02a8ed7e Binary files /dev/null and b/target/classes/help/utilities/quickAnnotations/docs/images/annotations.png differ diff --git a/target/classes/help/utilities/quickAnnotations/docs/images/marktab.png b/target/classes/help/utilities/quickAnnotations/docs/images/marktab.png new file mode 100644 index 00000000..ec93ab4a Binary files /dev/null and b/target/classes/help/utilities/quickAnnotations/docs/images/marktab.png differ diff --git a/target/classes/help/utilities/quickAnnotations/docs/images/settings.png b/target/classes/help/utilities/quickAnnotations/docs/images/settings.png new file mode 100644 index 00000000..2a53403d Binary files /dev/null and b/target/classes/help/utilities/quickAnnotations/docs/images/settings.png differ diff --git a/target/classes/help/utilities/quickAnnotations/docs/images/textinput.png b/target/classes/help/utilities/quickAnnotations/docs/images/textinput.png new file mode 100644 index 00000000..07a75260 Binary files /dev/null and b/target/classes/help/utilities/quickAnnotations/docs/images/textinput.png differ diff --git a/target/classes/help/utilities/quickAnnotations/docs/import.html b/target/classes/help/utilities/quickAnnotations/docs/import.html new file mode 100644 index 00000000..8a2a56a6 --- /dev/null +++ b/target/classes/help/utilities/quickAnnotations/docs/import.html @@ -0,0 +1,43 @@ + + + + Spectrogram Annotations + + +

Quick Annotations

+ +

Importing Quick Annotations

+ +

Import

+ +

In Viewer Mode annotations can be imported into the QuickAnnotation module by selecting Import annotations from the file menu.

+ +

As of 2018-08-02 only CSV files of the following specific format can be imported, however this may change in the future.

+ +

 

+ +

CSV format for importing QuickAnnotations

+ +

The file format for importing QuickAnnotations is headerless CSV with a comma for the field-delimiter and no quote character for strings.

+ +

One annotation should be listed per row, and each row should have seven columns (six commas). Fields marked with an asterisk (*) are required and cannot be blank/null. The fields for each row should be: 

+ +

UTC, Channel, Duration, LowFreq, HighFreq, Label, Note 

+ +

*UTC should be a number in the same format as java.lang.System.currentTimeMillis(), i.e. the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC(coordinated universal time). 

+ +

*Channel is the channel number for the annotation, and is one-indexed.

+ +

*Duration is the duration, in seconds.

+ +

*LowFreq and HighFreq are the lower and upper frequency bounds in Hz.

+ +

Label is a string (without commas) containing the user-designated label for the annotation.

+ +

Note is a string (without commas) containing the user-designated notes for the annotation.

+ +

Previous: Annotations Configuration

+ +

Next: Importing Annotations

+ + diff --git a/target/classes/help/utilities/quickAnnotations/docs/quickAnnotations.html b/target/classes/help/utilities/quickAnnotations/docs/quickAnnotations.html new file mode 100644 index 00000000..9f3fdf87 --- /dev/null +++ b/target/classes/help/utilities/quickAnnotations/docs/quickAnnotations.html @@ -0,0 +1,23 @@ + + + + Spectrogram Annotations + + +

Quick Spectrogram Annotations

+ +

Overview

+ +

Quick Spectrogram Annotations are an extension that builds upon the more basic Spectrogram Annotations and allow the user to make marks on the spectrogram display and add a small amount of text to go with each mark.

+ +

They can be used either in real time or offline using the PAMGuard viewer

+ +

Data from the marks are stored in the PAMGuard Database.

+ +

Next: Annotations Configuration

+ + + + + + diff --git a/target/classes/help/utilities/quickAnnotations/docs/using.html b/target/classes/help/utilities/quickAnnotations/docs/using.html new file mode 100644 index 00000000..c536b50d --- /dev/null +++ b/target/classes/help/utilities/quickAnnotations/docs/using.html @@ -0,0 +1,35 @@ + + + + Spectrogram Annotations + + +

Spectrogram Annotations

+ +

Using Spectrogram Annotations

+ +

Creating

+ +

Once configured, simply select the Label from the side panel and drag the mouse across the relevant spectrogram display panel.

+ +

 

+ +

Image

+ +

 

+ +

If the 'Popup annotation dialog' is enabled, a small dialog will appear where you can enter a short note describing the sound. The Quick Annotation module will also measure signal-to-noise ratio (SNR), and a variety of sound-pressure levels (SPL).

+ +

NB: Accurate measurement of SPL requires a calibrated hydrophone and acquisition board that have been correctly configured in the Array Manager and Sound Acquisition modules.

+ +

Editing and Deleting

+ +

Once a mark is created, you can right click with the mouse close it it's center and a pop-up menu will appear enabling you to edit or delete the mark (this is easier in viewer mode than during real time processing).

+ +

You can also drag the edges of the marks with the mouse to alter the time and frequency limits.

+ +

Previous: Annotations Configuration

+ +

Next: Importing Annotations

+ + diff --git a/target/classes/help/utilities/spectrogramannotations/docs/adding.html b/target/classes/help/utilities/spectrogramannotations/docs/adding.html new file mode 100644 index 00000000..4730d7eb --- /dev/null +++ b/target/classes/help/utilities/spectrogramannotations/docs/adding.html @@ -0,0 +1,41 @@ + + + +Spectrogram Annotations + +

Spectrogram Annotations

+

Adding and Configuring Spectrogram Annotations

+ +

Adding

+

From the File>Add Modules>Utilities menu select 'Spectrogram Annotation' to add a spectrogram +annotation module to your configuration.

+

You can have as many spectrogram annotation modules in your configuration as you like, but it is wise to only have one associated with +each spectrogram panel in your displays.

+

Generally, you should change the name of each spectrogram annotation module to something more meaningful such as "Gunshots" or "Dolphin Whistle"

+ + +

Spectrogram Settings

+

Once one or more spectrogram annotation modules have been added to a configuration, you will find them listed on the "Mark Observers" tab of the +spectrogram display settings (right click on the spectrogram to view these).

+

+Image


+

+

Check the spectrogram annotations you wish to associate with that spectrogram panel and close the dialog. The selected annotation modules +will now recieve mouse messages when the mouse is dragged across the display.

+ +

Spectrogram Display

+

If you wish to see the marks on the display once they have been created, you will also have to right click on the spectrogram panel and +select the spectrogram annotation module you wish to be displayed.

+ + +

Colour

+

Marks will always be drawn in red as the mouse is being dragged across the spectrogram.

+

The default colour for marks once they have been created is black. This can be changed from the Display>Symbols>Your Annotation Module + menu. In the symbol dialog only the top (line colour) colour is used, the fill colour and symbol type are ignored.

+ +
+ + +


+ + \ No newline at end of file diff --git a/target/classes/help/utilities/spectrogramannotations/docs/images/annotations.png b/target/classes/help/utilities/spectrogramannotations/docs/images/annotations.png new file mode 100644 index 00000000..4cbccb44 Binary files /dev/null and b/target/classes/help/utilities/spectrogramannotations/docs/images/annotations.png differ diff --git a/target/classes/help/utilities/spectrogramannotations/docs/images/marktab.png b/target/classes/help/utilities/spectrogramannotations/docs/images/marktab.png new file mode 100644 index 00000000..ec93ab4a Binary files /dev/null and b/target/classes/help/utilities/spectrogramannotations/docs/images/marktab.png differ diff --git a/target/classes/help/utilities/spectrogramannotations/docs/images/textinput.png b/target/classes/help/utilities/spectrogramannotations/docs/images/textinput.png new file mode 100644 index 00000000..47542570 Binary files /dev/null and b/target/classes/help/utilities/spectrogramannotations/docs/images/textinput.png differ diff --git a/target/classes/help/utilities/spectrogramannotations/docs/spectrogramannotations.html b/target/classes/help/utilities/spectrogramannotations/docs/spectrogramannotations.html new file mode 100644 index 00000000..1f5f11ae --- /dev/null +++ b/target/classes/help/utilities/spectrogramannotations/docs/spectrogramannotations.html @@ -0,0 +1,25 @@ + + + +Spectrogram Annotations + + + + +

Spectrogram Annotations

+

Overview

+

Spectrogram Annotations allow the user to make marks on the +spectrogram display and add a small amount of text to go with each mark.

+ +

+Image


+

+ +

They can be used either in real time or offline using the PAMGuard viewer

+

Data from the marks are stored in the PAMGuard Database

+ +
+ +


+ + diff --git a/target/classes/help/utilities/spectrogramannotations/docs/using.html b/target/classes/help/utilities/spectrogramannotations/docs/using.html new file mode 100644 index 00000000..89a62e1f --- /dev/null +++ b/target/classes/help/utilities/spectrogramannotations/docs/using.html @@ -0,0 +1,26 @@ + + + +Spectrogram Annotations + +

Spectrogram Annotations

+

Using Spectrogram Annotations

+ +

Creating

+

Once configured, simply drag the mouse across the relevant spectrogram display panel.

+

When you release the mouse a small dialog will appear where you can enter a short amount of text describing the +sound

+

+Image


+

+

Editing and Deleting

+

Once a mark is created, you can right click with the mouse close it it's center and a pop-up menu +will appear enabling you to edit or delete the mark (this is easier in viewer mode than during real time +processing).

+

You can also drag the edges of the marks with the mouse to alter the time and frequency limits.

+ +
+ +


+ + \ No newline at end of file diff --git a/target/classes/help/utilities/userInputHelp/docs/images/UserInput.png b/target/classes/help/utilities/userInputHelp/docs/images/UserInput.png new file mode 100644 index 00000000..b7caee42 Binary files /dev/null and b/target/classes/help/utilities/userInputHelp/docs/images/UserInput.png differ diff --git a/target/classes/help/utilities/userInputHelp/docs/userInput.html b/target/classes/help/utilities/userInputHelp/docs/userInput.html new file mode 100644 index 00000000..81cbc934 --- /dev/null +++ b/target/classes/help/utilities/userInputHelp/docs/userInput.html @@ -0,0 +1,26 @@ + + + +User Input + + + + +

PAMGUARD

+

User Input

+

Overview

+

The user input utility allows users to type comments into PAMGUARD. These will be time-stamped + and stored in the database. +

+

+To add a new User Input module to PAMGUARD, select the File>Add Modules>Utilities>User Input +menu command. +

User Input

+

+In addition to the main panel which can be used for entering comments of any length, a small input box is provide on the left hand side panel to allow short comments +can be added without needing to tab to the main panel. +

+Long comments written to the database will be broken into shorter sections each less than 255 characters in length and will be +written to multiple rows in the database table. + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/angleMeasurementHelp/docs/angleMeasurement.html b/target/classes/help/visual_methods/angleMeasurementHelp/docs/angleMeasurement.html new file mode 100644 index 00000000..4e1c973e --- /dev/null +++ b/target/classes/help/visual_methods/angleMeasurementHelp/docs/angleMeasurement.html @@ -0,0 +1,15 @@ + + + +Video Range + + + + +

Video Range

+

Automated Bearing Measurement

+
+

to be done

+

 

+ + diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/AUTOALERT.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/AUTOALERT.html new file mode 100644 index 00000000..a2881dad --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/AUTOALERT.html @@ -0,0 +1,24 @@ + + + +AUTOALERT Property + + + + +

AUTOALERT Property

+ +

The AUTOALERT Property is used on a User Defined Form to issue a warning to the user when the form is due to be filled in.

+

Warnings are displayed in the PAMGuard side panel

+ +

Required Fields

+ +

Length +

The time between warnings

+ + + +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/BEARING.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/BEARING.html new file mode 100644 index 00000000..2deef7af --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/BEARING.html @@ -0,0 +1,31 @@ + + + +BEARING Property + + + + +

BEARING Property

+ +

The BEARING Property is used to tell PAMGuard which of the Controls contains bearing information (about a sighting, etc.)

+ +

Required Fields

+ +

Topic +

The title of one of the other controls, which contains numeric data giving a bearing in degrees.

+

Topic +

Must be one of the following:

+
    +
  1. MAGNETIC: Bearing is relative to magnetic North
  2. +
  3. TRUE: Bearing is relative to true North
  4. +
  5. RELATIVE1: Bearing is relative to the vessels heading
  6. +
  7. RELATIVE2: Bearing is relative to the vessels heading, but with left/right ambiguity
  8. +
+ + + +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/CHAR.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/CHAR.html new file mode 100644 index 00000000..68c71ad9 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/CHAR.html @@ -0,0 +1,51 @@ + + + +CHAR Control + + + + +

CHAR Control

+ +

The CHAR Type is used on a User Defined Form to create an input field for character data

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this field is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+ +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

NMEA data will be directly copied into the control.

+ +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/CHECKBOX.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/CHECKBOX.html new file mode 100644 index 00000000..cea740da --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/CHECKBOX.html @@ -0,0 +1,50 @@ + + + +CHECKBOX Control + + + + +

CHECKBOX Control

+ +

The CHECKBOX Type is used to create a check box for entering true/false data on a Logger form

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+ + +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared (deselected) when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this field is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

If this is true (-1 in Access, generally any non zero or non null number) then data from this form can be plotted if + the check box is selected. Note that there are extensive plot options available from the Display / Logger forms menu.

+ +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

The checkbox will be set to true if the NMEA data is a non-null character of any type that is not "0".

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/COUNTER.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/COUNTER.html new file mode 100644 index 00000000..52435f01 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/COUNTER.html @@ -0,0 +1,41 @@ + + + +COUNTER Control + + + + +

COUNTER Control

+ +

The COUNTER Type is used to create an automatically incrementing COUNTER on a Logger form

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this field is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+ + +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/DOUBLE.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/DOUBLE.html new file mode 100644 index 00000000..a0150ad5 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/DOUBLE.html @@ -0,0 +1,56 @@ + + + +DOUBLE Control + + + + +

DOUBLE Control

+ +

The DOUBLE Type is used on a User Defined Form to create an input field for double precision (64 bit) floating point data

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this filed is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

Data from this form can be plotted if + the entered value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

NMEA data will be converted to a double precision number. If the conversion fails, the control value will be set to null.

+ +

Back to form Design

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/HEADING.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/HEADING.html new file mode 100644 index 00000000..1e300fc5 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/HEADING.html @@ -0,0 +1,23 @@ + + + +HEADING Property + + + + +

HEADING Property

+ +

The HEADING Property is used to tell PAMGuard which of the Controls contains heading information (about a sighting, etc.)

+

This can be plotted on the map in the form of a small arrow pointing in that direction.

+ +

Required Fields

+ +

Topic +

The title of one of the other controls, which contains numeric data giving a range.

+ + +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/INTEGER.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/INTEGER.html new file mode 100644 index 00000000..903b19fa --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/INTEGER.html @@ -0,0 +1,54 @@ + + + +INTEGER Control + + + + +

INTEGER Control

+ +

The INTEGER Type is used on a User Defined Form to create an input field for 32 bit integer data

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this field is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

Data from this form can be plotted if + the entered value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

NMEA data will be converted to an integer number. If the conversion fails, the control value will be set to null.

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/LATLONG.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/LATLONG.html new file mode 100644 index 00000000..9ac0f1a6 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/LATLONG.html @@ -0,0 +1,52 @@ + + + +LATLONG Control + + + + +

LATLONG Control

+ +

The LATLONG Type is used on a User Defined Form to create an input field for Latitude and Longitude data

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this field is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+ +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the first (Latitude) data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

Two numbers will in face be read from the NMEA string. It is assumed that Latitude is at the position given by + NMEA_Position and that the next number in the NMEA string (i.e. NMEA_Position+1) is the Longitude. Teh latitude and + longitude should be in decimal degrees. If conversion of either number fails, the values will be set to null.

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/LOOKUP.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/LOOKUP.html new file mode 100644 index 00000000..aeb612c0 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/LOOKUP.html @@ -0,0 +1,84 @@ + + + +LOOKUP Control + + + + +

LOOKUP Control

+ +

The LOOKUP Type is used on a User Defined Form to create a drop +down box of options

+ + +

Logger Forms use a standard user-editable PAMGuard lookup box for +which the contents editing has already been built into the software. To +add items to a lookup table, simply open right click on the LOOKUP +control on the Logger form and select "Edit list ..." from the drop down +menu. The following dialog will then appear which allows to add, edit +and modify lookup items.

+ +

Editing Lookup Contents

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Topic +

The lookup topic

+

Length

+

Length of the input field in characters

+ +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the +Title if this filed is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be +saved

+

Plot

+

Data from this form can be plotted if a lookup item has been +selected. Note that there are extensive plot options available from the +Display / Logger forms menu which will allow you to select what to plot +based in the individual lookup items selected

+ +

Here you can see the TOPIC field noted in the title bar as +SEA_STATES. Add items as you wish with Code, Text, Selectable and +Symbol. Code will be the shortcut able to be entered in the first part +of the control and Text is what shows in the drop-down. A Symbol must be +entered at the moment though as you can see they can be the same and at +the moment only used on map. E.g. would be used for a sighting but for +SEA_STATES it will be unused. +

+ + +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, +the 1'st item the one after that, etc.

+

The NMEA data should ideally be the code of one of the look up items. i.e. you should populate your lookup control + with all possible values. If the NMEA string does not match any of the look up codes, a null value will be selected.

+ + +

+

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEACHAR.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEACHAR.html new file mode 100644 index 00000000..71241103 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEACHAR.html @@ -0,0 +1,56 @@ + + + +NMEACHAR Control + + + + +

NMEACHAR Control

+ +

The NMEACHAR Type is used on a User Defined Form to automatically collect character data from an NMEA string

+

An NMEA module should be included +in the PAMGuard configuration to acquire NMEA data from a serial port

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'th item will be the string name, the 1'st item the one after that, etc.

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoupdate

+

This control will update on a time if a non-null positive integer +value is entered in the Autoupdate column. The number is the number of +seconds between auto-updates

+

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this filed is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

Data from this form can be plotted if + the value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEAFLOAT.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEAFLOAT.html new file mode 100644 index 00000000..58f6a6ff --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEAFLOAT.html @@ -0,0 +1,56 @@ + + + +NMEAFLOAT Control + + + + +

NMEAFLOAT Control

+ +

The NMEAFLOAT Type is used on a User Defined Form to automatically collect floating point data from an NMEA string

+

An NMEA module should be included +in the PAMGuard configuration to acquire NMEA data from a serial port

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Topic +

The name of the NMEA module from which data should be harvested

+

NMEA_String +

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoupdate

+

This control will update on a time if a non-null positive integer +value is entered in the Autoupdate column. The number is the number of +seconds between auto-updates

+

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this filed is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

Data from this form can be plotted if + the value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEAINT.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEAINT.html new file mode 100644 index 00000000..adda5de1 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/NMEAINT.html @@ -0,0 +1,56 @@ + + + +NMEAINT Control + + + + +

NMEAINT Control

+ +

The NMEAINT Type is used on a User Defined Form to automatically collect integer data from an NMEA string

+

An NMEA module should be included +in the PAMGuard configuration to acquire NMEA data from a serial port

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Topic +

The name of the NMEA module from which data should be harvested

+

NMEA_String +

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoupdate

+

This control will update on a time if a non-null positive integer +value is entered in the Autoupdate column. The number is the number of +seconds between auto-updates

+

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this filed is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

Data from this form can be plotted if + the entered value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/NOCANCEL.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/NOCANCEL.html new file mode 100644 index 00000000..52b3376a --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/NOCANCEL.html @@ -0,0 +1,24 @@ + + + +NOCANCEL Property + + + + +

NOCANCEL Property

+ +

The NOCANCEL Property will cause the "Cancel" button not to appear on a form.

+

This would typically be used on subtab forms in which case it would be impossible not +to save a form once it was opened (i.e. the only option would be to complete the form and to save it.

+ +

Required Fields

+ +

None + +

+ +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/NOCLEAR.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/NOCLEAR.html new file mode 100644 index 00000000..30d3ec90 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/NOCLEAR.html @@ -0,0 +1,22 @@ + + + +NOCLEAR Property + + + + +

NOCLEAR Property

+ +

The NOCLEAR Property will cause the "Clear" button not to appear on a form.

+ +

Required Fields

+ +

None + +

+ +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/RANGE.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/RANGE.html new file mode 100644 index 00000000..0b6d90fb --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/RANGE.html @@ -0,0 +1,33 @@ + + + +RANGE Property + + + + +

RANGE Property

+ +

The RANGE Property is used to tell PAMGuard which of the Controls contains range information (about a sighting, etc.)

+ +

Required Fields

+ +

Topic +

The title of one of the other controls, which contains numeric data giving a range.

+

PostTitle +

Must be one of the following:

+
    +
  1. nmi: Range is in nautical miles
  2. +
  3. km: Range is in kilometres
  4. +
  5. m: Range is in metres
  6. +
+ +

Optional Fields

+

Topic - set to FIXED to display data at a fixed range (i.e. if you have bearing data but no range data)

+

Length - Used to specify the range if Topic has been set to FIXED

+ + +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/READONGPS.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/READONGPS.html new file mode 100644 index 00000000..252f240f --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/READONGPS.html @@ -0,0 +1,25 @@ + + + +READONGPS Property + + + + +

READONGPS Property

+ +

The READONGPS Property is used to make a form automatically save it's data every time new GPS data +are collected.

+

Forms using READONGPS should therefore only contain controls which can be updated automatically, such as times and NMEA data.

+

READONGPS is typically used for collecting other NMEA data, such as weather information, each time GPS data are read.

+ +

Required Fields

+ +

None + +

+ +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/READONNMEA.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/READONNMEA.html new file mode 100644 index 00000000..1a7857ca --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/READONNMEA.html @@ -0,0 +1,29 @@ + + + +READONNMEA Property + + + + +

READONNMEA Property

+ +

The READONNMEA Property is used to make a form automatically save every time a specified NMEA string arrives.

+ +

Typically, READONMEA is used if you want to store every instance of a particular string. In this case, you will need to +build a form containing a number of fields of types NMEACHAR, NMEAFLOAT and NMEAINT which will read individual values +from the NMEA string and store them in database columns.

+ +

Note that this is very different to reading on a timer which will only ever store the latest data from a particular string.

+ + +

Required Fields

+ +

Autoupdate +

The time interval in seconds at which the form should be automatically saved

+

+ +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/READONTIMER.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/READONTIMER.html new file mode 100644 index 00000000..fcaf441d --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/READONTIMER.html @@ -0,0 +1,26 @@ + + + +READONTIMER Property + + + + +

READONTIMER Property

+ +

The READONTIMER Property is used to make a form automatically save it's data at regular fixed intervals.

+ +

Forms using READONTIMER should therefore only contain controls which can be updated automatically, such as times and NMEA data.

+

READONTIMER is typically used for collecting analogue data (not yet implemented) or NMEA data +such as weather information at fixed intervals.

+ +

Required Fields

+ +

Autoupdate +

The time interval in seconds at which the form should be automatically saved

+

+ +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/SHORT.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/SHORT.html new file mode 100644 index 00000000..f9eab82f --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/SHORT.html @@ -0,0 +1,55 @@ + + + +SHORT Control + + + + +

SHORT Control

+ +

The SHORT Type is used on a User Defined Form to create an input field for 16 bit integer data

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this field is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

Data from this form can be plotted if + the entered value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ + +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

NMEA data will be converted to a short integer number. If the conversion fails, the control value will be set to null.

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/SINGLE.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/SINGLE.html new file mode 100644 index 00000000..9e76a183 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/SINGLE.html @@ -0,0 +1,54 @@ + + + +SINGLE Control + + + + +

SINGLE Control

+ +

The SINGLE Type is used on a User Defined Form to create an input field for single precision (32 bit) floating point data

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this filed is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

Data from this form can be plotted if + the entered value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

NMEA data will be converted to a single precision number. If the conversion fails, the control value will be set to null.

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/SUBTABS.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/SUBTABS.html new file mode 100644 index 00000000..94b08dbe --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/SUBTABS.html @@ -0,0 +1,27 @@ + + + +SUBTABS Property + + + + +

SUBTABS Property

+ +

The SUBTABS Property is used to change the way forms appear on the display.

+

By default (i.e. if the SUBTABS property is not used) one copy of each form is always visible. +If the SUBTABS property is set, then initially no forms are visible, just an empty space in the main Logger forms layout. You may +then open as many forms as you require simply by double clicking on the tab on the main layout.

+

(Functionality to open SUBTAB forms using buttons, as in Logger 2000 will be added at some future date)

+

SUBTAB forms are great for things like animal sightings, when several things may be happening at once.

+ +

Required Fields

+ +

None + +

+ +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/SYMBOLTYPE.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/SYMBOLTYPE.html new file mode 100644 index 00000000..95d9ce3d --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/SYMBOLTYPE.html @@ -0,0 +1,54 @@ + + + +SYMBOLTYPE Property + + + + +

SYMBOLTYPE Property

+ +

The SYMBOLTYPE Property is used to set the default symbol used by a particular form when data are plotted on +the PAMGuard map.

+

Available symbols are:

+
+
.
+
point
+
o
+
circle
+
x
+
x-mark
+
+
+
plus
+
*
+
star
+
s
+
square
+
d
+
diamond
+
v
+
triangle(down)
+
^
+
triangle (up)
+
<
+
triangle (left)
+
>
+
triangle(right)
+
p
+
pentagon
+
h
+
hexagon
+
+ + +

Required Fields

+ +

Title +

The type of symbol taken from the above list.

+ +

+ +

Back to form Design

+ + + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/TIME.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/TIME.html new file mode 100644 index 00000000..e26e0400 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/TIME.html @@ -0,0 +1,59 @@ + + + +TIME Control + + + + +

TIME Control

+ +

The TIME Type is used on a User Defined Form to create an input +filed for time data

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+

Autoupdate

+

This control will update on a time if a non-null positive integer +value is entered in the Autoupdate column. The number is the number of +seconds between auto-updates

+

Topic

+

The time zone for the data. By default all data are in UTC. Enter +a standard time zone name to collect data in other time zones.

+

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the +Title if this filed is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be +saved

+

Plot

+

Data from this form can be plotted if + the entered value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ + +

+

NMEA Input

+

Not yet implemented for this control type

+ +

+

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/TIMESTAMP.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/TIMESTAMP.html new file mode 100644 index 00000000..177cbe19 --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/TIMESTAMP.html @@ -0,0 +1,63 @@ + + + +TIMESTAMP Control + + + + +

TIMESTAMP Control

+ +

The TIMESTAMP Type is used on a User Defined Form to create an input filed for date and time data

+ +

Required Fields

+ +

Order +

The order in which the controls are read in by the program

+

Title +

The text to be shown on the display

+

Length

+

Length of the input field in characters

+ + + +

+

Optional Fields

+ +

Autoupdate

+

This control will update on a time if a non-null positive integer value is entered in the Autoupdate column. The number + is the number of seconds between auto-updates

+

Topic

+

The time zone for the data. By default all data are in UTC. Enter a standard time zone name to collect data in other + time zones.

+

Autoclear

+

The control is automatically cleared when data is saved

+

DbTitle

+

Column heading for the output database. (This will default to the Title if this filed is not completed)

+

Hint

+

Text for a hint to be displayed when entering data in the control

+

PostTitle

+

Additional text to display after the input box.

+

Required

+

Forces the user to fill in the input box before the form can be saved

+

Plot

+

Data from this form can be plotted if + the entered value is non-zero. + Note that there are extensive plot options available from the Display / Logger forms menu.

+ +

+

NMEA Input

+

NMEA_Module +

The name of the NMEA module from which data should be harvested

+

NMEA_String

+

The name of the NMEA string containing the data

+

NMEA_Position +

The position of the data item in the NMEA string. Strings are comma separated, the 0'the item will be the string name, the 1'st item the one after that, etc.

+

It is assumed that the date and time are in adjacent positions in the NMEA string and that the NMEA_Position is + the position of the first Date field and the the Time is at NMEA_Position+1. Currently it is + also assumed that the date is in the form ddmmyy and that time is in the format hhmmss. + We hope to support other date and time formats in future releases.

+ +

Back to form Design

+ + \ No newline at end of file diff --git a/target/classes/help/visual_methods/loggerFormsHelp/docs/designingForms.html b/target/classes/help/visual_methods/loggerFormsHelp/docs/designingForms.html new file mode 100644 index 00000000..dbef718a --- /dev/null +++ b/target/classes/help/visual_methods/loggerFormsHelp/docs/designingForms.html @@ -0,0 +1,120 @@ + + + +Designing UDF forms + + + + +

Designing PAMGuard Logger Forms

+

Creating a Form

+ +

Key to designing Logger forms in PAMGuard is the generation of one or more UDF_ tables in the PAMGuard database.

+

The easiest way to generate a blank UDF table is to start PAMGuard, ensure that the database and Logger forms modules +have been loaded, then from the Detection menu select "Detection/Logger forms/Create new form ...". A dialog box will then appear asking for the +name of the form. Enter the name of the form you want to appear on the display (i.e. don't include UDF_ at the beginning)

+

PAMGuard will then generate a new UDF table in the PAMGuard database prefixed with the characters "UDF_". +i.e. if you enter a form name "Effort", PAMGuard will create a form UDF_Effort

+

You should then be able to open the database and view the new UDF_ form which will currently be empty

+

At this point, nothing will appear on the display. To see the form on the display, go to the PAMGuard Detection menu +and select "Detection/Logger forms/Regenerate all forms". An empty form should now appear on the display.

+

If you look again in the database, you will see that a new output data table has been created with the table name you +typed in (i.e. without UDF_). This will currently contain the following columns which are included in all data tables:

+
    +
  1. Id
  2. +
  3. UTC
  4. +
  5. UTCMilliseconds
  6. +
  7. PCLocalTime
  8. +
  9. PCTime
  10. +
+

Make sure you now close this table since PAMGuard will need to modify it when you start adding additional controls to the form.

+ + + + +

Adding Controls

+

There are two ways of adding controls to the form. The old method is to edit the UDF table directly. This can be quick and efficient +if you know what you are doing and is useful if you have several similar controls since you can copy and modify entire rows in the UDF table.

+

A much more simple method is to use to the built in form editing functions which can be accessed directly from the logger forms menus: +Settings/Logger Forms/Edit Forms/[]Your form name].

+

The built in form editor is modifying the same underlying information in the UDF tables in the database so it is normally possible to +use a combination of direct editing of the UDF tables and the in built form editor.

+ +

Editing the UDF Table

+

To add controls to the form, you simply type lines of instructions into the UDF_ table. PAMGuard will interpret these and generate the +appropriate input fields on the display and output columns in the output database table.

+

Although there are many different columns in the UDF_ tables, generally only a few of them need to be +filled in for basic functionality with most control types.

+

Now go back to the UDF_ table in the database and start to add controls. Whenever you want to see these changes on the +display simply execute the menu command "Detection/Logger forms/Regenerate all forms"

+ +

Using the Inbuilt Forms Editor

+

To access the forms editor, from the PAMGuard menu select Settings/Logger Forms/Edit Forms/[]Your form name] to show the forms +editing dialog:

+
+
+

Use the buttons to the left of the dialog to add, delete and change the order of controls. When a control is selected in the controls list, it's properties +will appear in th erigh thad side of the dialog. Enter appropriate values as required for each control type.

+

At any point you can preview the form. Pressing OK will cause the dialog to close and the form to be updated on the PAMGuard user interface.

+

Select the "Form Properties" tab to change form properties such as colour, alerts, etc.

+

See below for further informaton on Control and Property types.

+ +

Control Types

+ +

There are two types of control which can be added to the form: Data controls and Property controls.

+

Active controls are something that handles data, i.e. will have something to type into on the display and will have an column +for output data in the output database table.

+

Property controls don't control data in any way, but affect the appearance or general behaviour of the form.

+ +

NMEA Input

+

All controls can now receive NMEA input, no just NMEACHAR, NMEAFLOAT and NMEAINT.

+

To set up NMEA input on a control, fill in the three fields of the UDF_ table NMEA_Module, NMEA_String and +NMEA_Position.

+

NMEA_Moduleshoud be the name of the NMEA module you expect to find data in, e.g. "NMEA Data Collection". If you leave this empty +it will search for data in the first NMEA module it finds.

+

NMEA_String is the name of the NMEA string containing the data, e.g. "GPRMC".

+

NMEA_Position is the index of the data item within the NMEA string (0 is the string name, 1 the first data item, etc).

+

Further details are provided in individual Data Control descriptions below:

+ + +

Data Control Types

+