mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2024-11-25 16:42:27 +00:00
small updates to Rocca (#84)
* allow Rocca to run without classifiers Fixed bug that threw an error if no classifier files were specified in Rocca Params dialog * add rocca switch to enable dev mode currently only shows/hides extra buttons in the Params dialog, but will extend to more options in the future
This commit is contained in:
parent
ea32c5cdcb
commit
ccd0fc7965
@ -6,7 +6,7 @@
|
|||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/Java 17">
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="module" value="true"/>
|
<attribute name="module" value="true"/>
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -39,3 +39,4 @@ settings.xml
|
|||||||
.classpath
|
.classpath
|
||||||
.classpath
|
.classpath
|
||||||
.classpath
|
.classpath
|
||||||
|
.classpath
|
||||||
|
@ -23,17 +23,14 @@ package pamguard;
|
|||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
|
||||||
import Acquisition.AcquisitionControl;
|
|
||||||
import Acquisition.FolderInputSystem;
|
import Acquisition.FolderInputSystem;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
import PamController.PamGUIManager;
|
import PamController.PamGUIManager;
|
||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamguardVersionInfo;
|
import PamController.PamguardVersionInfo;
|
||||||
import PamController.pamBuoyGlobals;
|
import PamController.pamBuoyGlobals;
|
||||||
import PamController.command.TerminalController;
|
|
||||||
import PamModel.SMRUEnable;
|
import PamModel.SMRUEnable;
|
||||||
import PamUtils.FileFunctions;
|
import PamUtils.FileFunctions;
|
||||||
import PamUtils.PamCalendar;
|
|
||||||
import PamUtils.PamExceptionHandler;
|
import PamUtils.PamExceptionHandler;
|
||||||
import PamUtils.PlatformInfo;
|
import PamUtils.PlatformInfo;
|
||||||
import PamUtils.Splash;
|
import PamUtils.Splash;
|
||||||
@ -45,6 +42,7 @@ import PamguardMVC.debug.Debug;
|
|||||||
import binaryFileStorage.BinaryStore;
|
import binaryFileStorage.BinaryStore;
|
||||||
import dataPlotsFX.JamieDev;
|
import dataPlotsFX.JamieDev;
|
||||||
import generalDatabase.DBControl;
|
import generalDatabase.DBControl;
|
||||||
|
import rocca.RoccaDev;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -190,6 +188,10 @@ public class Pamguard {
|
|||||||
JamieDev.setEnabled(true);
|
JamieDev.setEnabled(true);
|
||||||
System.out.println("Enabling Jamie Macaulay modifications.");
|
System.out.println("Enabling Jamie Macaulay modifications.");
|
||||||
}
|
}
|
||||||
|
else if (anArg.equalsIgnoreCase("-rocca")) {
|
||||||
|
RoccaDev.setEnabled(true);
|
||||||
|
System.out.println("Enabling Rocca development mode");
|
||||||
|
}
|
||||||
else if (anArg.equalsIgnoreCase(Debug.flag)) {
|
else if (anArg.equalsIgnoreCase(Debug.flag)) {
|
||||||
Debug.setPrintDebug(true);
|
Debug.setPrintDebug(true);
|
||||||
Debug.out.println("Enabling debug terminal output.");
|
Debug.out.println("Enabling debug terminal output.");
|
||||||
|
@ -408,6 +408,10 @@ public class RoccaClassifier {
|
|||||||
|
|
||||||
// load the whistle classifier
|
// load the whistle classifier
|
||||||
if (roccaControl.roccaParameters.isClassifyWhistles()) {
|
if (roccaControl.roccaParameters.isClassifyWhistles()) {
|
||||||
|
if (roccaControl.roccaParameters.roccaClassifierModelFilename==null) {
|
||||||
|
roccaControl.roccaParameters.setClassifyWhistles(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
String fname = roccaControl.roccaParameters.roccaClassifierModelFilename.getAbsolutePath();
|
String fname = roccaControl.roccaParameters.roccaClassifierModelFilename.getAbsolutePath();
|
||||||
File f = new File(fname);
|
File f = new File(fname);
|
||||||
if (f.exists() == false) {
|
if (f.exists() == false) {
|
||||||
@ -450,9 +454,14 @@ public class RoccaClassifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// serialVersionUID=24 2016/08/10 added to load click classifier
|
// serialVersionUID=24 2016/08/10 added to load click classifier
|
||||||
if (roccaControl.roccaParameters.isClassifyClicks()) {
|
if (roccaControl.roccaParameters.isClassifyClicks()) {
|
||||||
|
if (roccaControl.roccaParameters.roccaClickClassifierModelFilename==null) {
|
||||||
|
roccaControl.roccaParameters.setClassifyClicks(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
String fname = roccaControl.roccaParameters.roccaClickClassifierModelFilename.getAbsolutePath();
|
String fname = roccaControl.roccaParameters.roccaClickClassifierModelFilename.getAbsolutePath();
|
||||||
File f = new File(fname);
|
File f = new File(fname);
|
||||||
if (f.exists() == false) {
|
if (f.exists() == false) {
|
||||||
@ -495,6 +504,7 @@ public class RoccaClassifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if we didn't load either classifier, don't bother loading trying to load an encounter
|
// if we didn't load either classifier, don't bother loading trying to load an encounter
|
||||||
// classifier because it relies on the species. Just reset the side panel and return
|
// classifier because it relies on the species. Just reset the side panel and return
|
||||||
@ -505,6 +515,10 @@ public class RoccaClassifier {
|
|||||||
|
|
||||||
// serialVersionUID=24 2016/08/10 added to load event classifier
|
// serialVersionUID=24 2016/08/10 added to load event classifier
|
||||||
if (roccaControl.roccaParameters.isClassifyEvents()) {
|
if (roccaControl.roccaParameters.isClassifyEvents()) {
|
||||||
|
if (roccaControl.roccaParameters.roccaEventClassifierModelFilename==null) {
|
||||||
|
roccaControl.roccaParameters.setClassifyEvents(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
String fname = roccaControl.roccaParameters.roccaEventClassifierModelFilename.getAbsolutePath();
|
String fname = roccaControl.roccaParameters.roccaEventClassifierModelFilename.getAbsolutePath();
|
||||||
File f = new File(fname);
|
File f = new File(fname);
|
||||||
if (f.exists() == false) {
|
if (f.exists() == false) {
|
||||||
@ -543,6 +557,7 @@ public class RoccaClassifier {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
resetSidePanel();
|
resetSidePanel();
|
||||||
return true;
|
return true;
|
||||||
|
27
src/rocca/RoccaDev.java
Normal file
27
src/rocca/RoccaDev.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package rocca;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Global flag set at runtime for Rocca development flags.
|
||||||
|
* @author mo55
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class RoccaDev {
|
||||||
|
|
||||||
|
|
||||||
|
private static boolean enabled = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the enabled
|
||||||
|
*/
|
||||||
|
public static boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param enabled the enabled to set
|
||||||
|
*/
|
||||||
|
public static void setEnabled(boolean enabled) {
|
||||||
|
RoccaDev.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -26,7 +26,6 @@ import java.awt.Frame;
|
|||||||
import java.awt.GridBagConstraints;
|
import java.awt.GridBagConstraints;
|
||||||
import java.awt.GridBagLayout;
|
import java.awt.GridBagLayout;
|
||||||
import java.awt.GridLayout;
|
import java.awt.GridLayout;
|
||||||
import java.awt.Point;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
@ -48,8 +47,6 @@ import PamUtils.PamFileChooser;
|
|||||||
import PamView.dialog.PamDialog;
|
import PamView.dialog.PamDialog;
|
||||||
import PamView.dialog.SourcePanel;
|
import PamView.dialog.SourcePanel;
|
||||||
import PamguardMVC.PamDataBlock;
|
import PamguardMVC.PamDataBlock;
|
||||||
import PamguardMVC.PamDataUnit;
|
|
||||||
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
@ -60,20 +57,14 @@ import java.io.BufferedInputStream;
|
|||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import javax.swing.Box;
|
import javax.swing.Box;
|
||||||
import javax.swing.BoxLayout;
|
import javax.swing.BoxLayout;
|
||||||
import javax.swing.ButtonGroup;
|
|
||||||
import javax.swing.DefaultComboBoxModel;
|
import javax.swing.DefaultComboBoxModel;
|
||||||
import javax.swing.GroupLayout;
|
import javax.swing.GroupLayout;
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.JCheckBox;
|
import javax.swing.JCheckBox;
|
||||||
import javax.swing.JComboBox;
|
import javax.swing.JComboBox;
|
||||||
import javax.swing.JComponent;
|
|
||||||
import javax.swing.JFrame;
|
|
||||||
import javax.swing.JRadioButton;
|
import javax.swing.JRadioButton;
|
||||||
import javax.swing.JFileChooser;
|
import javax.swing.JFileChooser;
|
||||||
import javax.swing.JScrollPane;
|
import javax.swing.JScrollPane;
|
||||||
@ -87,7 +78,6 @@ import javax.swing.border.EtchedBorder;
|
|||||||
import clickDetector.ClickControl;
|
import clickDetector.ClickControl;
|
||||||
import clickDetector.ClickDetection;
|
import clickDetector.ClickDetection;
|
||||||
import clickDetector.NoiseDataBlock;
|
import clickDetector.NoiseDataBlock;
|
||||||
import weka.classifiers.AbstractClassifier;
|
|
||||||
import weka.core.Attribute;
|
import weka.core.Attribute;
|
||||||
import weka.core.Instances;
|
import weka.core.Instances;
|
||||||
import weka.core.SerializationHelper;
|
import weka.core.SerializationHelper;
|
||||||
@ -523,7 +513,13 @@ public class RoccaParametersDialog extends PamDialog implements ActionListener,
|
|||||||
reclassifyButton.addActionListener(this);
|
reclassifyButton.addActionListener(this);
|
||||||
reclassifyButton.setToolTipText("Load the whistle data from the contour stats output file, and run it through the current Classifier");
|
reclassifyButton.setToolTipText("Load the whistle data from the contour stats output file, and run it through the current Classifier");
|
||||||
reclassifyButton.setVisible(true);
|
reclassifyButton.setVisible(true);
|
||||||
extraButtonsSubPanel.setVisible(true); // ******** THIS LINES CONTROLS THE VISIBILITY ********
|
|
||||||
|
// ******** THIS LINES CONTROLS THE VISIBILITY ********
|
||||||
|
if (RoccaDev.isEnabled()) {
|
||||||
|
extraButtonsSubPanel.setVisible(true);
|
||||||
|
} else {
|
||||||
|
extraButtonsSubPanel.setVisible(false);
|
||||||
|
}
|
||||||
GroupLayout extraPanelLayout = new GroupLayout(extraButtonsSubPanel);
|
GroupLayout extraPanelLayout = new GroupLayout(extraButtonsSubPanel);
|
||||||
extraButtonsSubPanel.setLayout(extraPanelLayout);
|
extraButtonsSubPanel.setLayout(extraPanelLayout);
|
||||||
extraPanelLayout.setAutoCreateGaps(true);
|
extraPanelLayout.setAutoCreateGaps(true);
|
||||||
|
Loading…
Reference in New Issue
Block a user