mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2024-11-25 00:22:27 +00:00
MacOS version of PAMGuard and minor UI updates (#170)
* Update exporter_help.md Updated help for exporter * Update .gitignore * Bug fixes for deep learning classifier. Updated the symbol options to make sure opacity is passed through the symbol chooser. * Updates to the data map FX display * Updates to DelphinID and Data ModelFX Used a new writable image for much faster drawing in FX * bb * Delete C:\Users\Jamie Macaulay\MATLAB Drive\MATLAB\PAMGUARD\deep_learning\delphinID\whistle_image_example_java.mat * Updates to DelphinID * Updates to ReadMe and JavaFX GUI * Update readme.md Updates to ReadMe * Updates to CPOD module and also delphinID classifier * Fix colour scaling in FX data map * Create cpod_help.md * Update cpod_help.md * Update cpod_help.md * Updates to CPOD module Added ability to export CPOD clicks Added some extra features to data selector Swing GUI for data selector (in progress) * Updates to data map FX GUI * Updates to CPOD module * Added help files resources for CPOD * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Update cpod_help.md * Update cpod_help.md * Bug fixes for deep learning classifier. Updated the symbol options to make sure opacity is passed through the symbol chooser. * Updates to the data map FX display * Updates to DelphinID and Data ModelFX Used a new writable image for much faster drawing in FX * Updates to ReadMe and JavaFX GUI * bb * Delete C:\Users\Jamie Macaulay\MATLAB Drive\MATLAB\PAMGUARD\deep_learning\delphinID\whistle_image_example_java.mat * Updates to DelphinID * Update readme.md Updates to ReadMe * Fix colour scaling in FX data map * Updates to CPOD module and also delphinID classifier * Updates to CPOD module Added ability to export CPOD clicks Added some extra features to data selector Swing GUI for data selector (in progress) * Create cpod_help.md * Update cpod_help.md * Update cpod_help.md * Updates to data map FX GUI * Updates to CPOD module * Added help files resources for CPOD * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Update cpod_help.md * Update cpod_help.md * Bug fix to BT display The BT display was not selecting clicks properly. * Import bug fix * Updates to data map FX GUI * Updates to datamap FX * Got date axis working properly. * Added some arrows to the scroll bar for data map FX pane. * Working on getting datagrams in FX saving * Updates to DataMapFX and exporting annotations * Update MLAnnotationsManager.java * Working on adding annotations to exporter * Bug fix for processing files and annotations for exporter Rebase with main Bug fix for processing files - stops only the last file processing when "Start normally" selected on data processing R and MATLAB export of data annotation added. * Add a ttoltip to the exporter * Minor text change * X3 fix and building for MACOS * Update PAMGuard to build installer for MacOS * Some fixes to Sound Acquisition dialog layout. * Squashed commit of the following: commit1acddb4cc6
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Oct 8 15:03:32 2024 +0100 MErge from DG (#168) * Localization output * update localiser output * Start effort management system * Start of Effort plotting Strat of effort plotting on map. Framework for using Effort data in other areas (such as Tethys output). * Logger forms update Effort and Symbol selectors working with Logger forms. Also functions to add, edit and delete form rows in Viewer mode. * Update LoggerFormGraphics.java add in correct symbol managemet to forms graphics. * Effort lines on map Sort of working OK in real time mode. * Working effort system Currently only for map, but seems to work OK * Update Tethys to latest nilus schema * Raven importer Start of a system for a raven importer. Not quite working yet. * Raven import Basic functionality working. Not nice to use though. * Tethys Localization work Abstracting out writing of localization objects and document header information so that individual localisers can give fine scale control of this stuff. * updated Nilus A few updates around track and target motion measures. * FX Plot for raven data Also sorted out symbols a bit and improved symbol selector in Generic plots. * Update spectrogram mark bearing display Remove the 90-angle bit * Raven extra columns Logging of data from additional Raven table columns * Start effort management system * Start of Effort plotting Strat of effort plotting on map. Framework for using Effort data in other areas (such as Tethys output). * Logger forms update Effort and Symbol selectors working with Logger forms. Also functions to add, edit and delete form rows in Viewer mode. * Effort lines on map Sort of working OK in real time mode. * Update Tethys to latest nilus schema * Tethys Localization work Abstracting out writing of localization objects and document header information so that individual localisers can give fine scale control of this stuff. * Ishmael Tethys output Added necessaries for Tethys output from Ishmael detectors. Also found a pretty major bug in the spectrogram correlation detector, where for each block of data it was only testing the first sample of each block, not all samples, for being over threshold. * Speed and algorithm improvements to Ish matched filter Seems to be errors in correlation, didn't support multiple channels and also used very old and slow FFT, so working to fix all three issues. * Updated matched filter Updated and working Matched filter, though still some thinking to do about how the scaling of this works, since currently scaled by the template, so whole thing is dependent on the input. Need to think of a better way to do this. * Update match filt normalisation Normalisation now correctly using both the template and the signal for normalisation so that it will be data amplitude independent. * invFFT improvements Use faster inverse FFT of real data in correlation / delay functions. * Improve ifft's in other modules to improve TDOA speeds * Sorting mess of spec plugin graphics Have got the Ishmael ones scrolling, but when scrolling, there is an offset in the data due to the lag of the correlation functions. Quite hard to fix with available timing data * Improve ish spectrogram plugin Sorted scaling and scrollling problems. * Improve startup checks Rethread startup checks so that a progress bar shows when PAMGuard is checking input and output files at start up. Also include single file processing in checks. * Apply all spectrogram overlays Apply to all function on spectrogram overlays so changes to overlays affect all panels. commitf2f9870b6f
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Wed Oct 2 15:13:12 2024 +0100 V2.02.13c Release for installation on teaching lab machines. commit7533a7cfbe
Author: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com> Date: Tue Oct 1 15:00:51 2024 +0100 Tethys output of Group3DLocalisations Output of Group3D localiser data. Localisations only, no Detections output for this one commitef494c0d0e
Author: Jamie Mac <macster110@gmail.com> Date: Mon Sep 30 13:10:59 2024 +0100 Sud bug fix and updates to CPOD module. (#162) * Update exporter_help.md Updated help for exporter * Update .gitignore * Bug fixes for deep learning classifier. Updated the symbol options to make sure opacity is passed through the symbol chooser. * Updates to the data map FX display * Updates to DelphinID and Data ModelFX Used a new writable image for much faster drawing in FX * bb * Delete C:\Users\Jamie Macaulay\MATLAB Drive\MATLAB\PAMGUARD\deep_learning\delphinID\whistle_image_example_java.mat * Updates to DelphinID * Updates to ReadMe and JavaFX GUI * Update readme.md Updates to ReadMe * Updates to CPOD module and also delphinID classifier * Fix colour scaling in FX data map * Create cpod_help.md * Update cpod_help.md * Update cpod_help.md * Updates to CPOD module Added ability to export CPOD clicks Added some extra features to data selector Swing GUI for data selector (in progress) * Updates to data map FX GUI * Updates to CPOD module * Added help files resources for CPOD * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Update cpod_help.md * Update cpod_help.md * Bug fixes for deep learning classifier. Updated the symbol options to make sure opacity is passed through the symbol chooser. * Updates to the data map FX display * Updates to DelphinID and Data ModelFX Used a new writable image for much faster drawing in FX * Updates to ReadMe and JavaFX GUI * bb * Delete C:\Users\Jamie Macaulay\MATLAB Drive\MATLAB\PAMGUARD\deep_learning\delphinID\whistle_image_example_java.mat * Updates to DelphinID * Update readme.md Updates to ReadMe * Fix colour scaling in FX data map * Updates to CPOD module and also delphinID classifier * Updates to CPOD module Added ability to export CPOD clicks Added some extra features to data selector Swing GUI for data selector (in progress) * Create cpod_help.md * Update cpod_help.md * Update cpod_help.md * Updates to data map FX GUI * Updates to CPOD module * Added help files resources for CPOD * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Add CPOD resources for help * Update cpod_help.md * Update cpod_help.md * Bug fix to BT display The BT display was not selecting clicks properly. * Import bug fix * Updates to data map FX GUI * Updates to datamap FX * Got date axis working properly. * Added some arrows to the scroll bar for data map FX pane. * Working on getting datagrams in FX saving * Updates to DataMapFX and exporting annotations * Update MLAnnotationsManager.java * Working on adding annotations to exporter * Bug fix for processing files and annotations for exporter Rebase with main Bug fix for processing files - stops only the last file processing when "Start normally" selected on data processing R and MATLAB export of data annotation added. * Add a ttoltip to the exporter * Minor text change * Small UI improvements for Sound Acquisition and MacOS * Bug fix to exporter * Update to help points Updated help points for following modules Deep learning CPOD Matched click classifier Exporter --------- Co-authored-by: Douglas Gillespie <50671166+douggillespie@users.noreply.github.com>
This commit is contained in:
parent
0bab2a01c7
commit
211ca7ab91
@ -4,7 +4,7 @@
|
|||||||
<groupId>org.pamguard</groupId>
|
<groupId>org.pamguard</groupId>
|
||||||
<artifactId>Pamguard</artifactId>
|
<artifactId>Pamguard</artifactId>
|
||||||
<name>Pamguard</name>
|
<name>Pamguard</name>
|
||||||
<version>2.02.13b</version>
|
<version>2.02.13c</version>
|
||||||
<description>Pamguard using Maven to control dependencies</description>
|
<description>Pamguard using Maven to control dependencies</description>
|
||||||
<url>www.pamguard.org</url>
|
<url>www.pamguard.org</url>
|
||||||
<organization>
|
<organization>
|
||||||
@ -137,6 +137,49 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>de.perdian.maven.plugins</groupId>
|
||||||
|
<artifactId>macosappbundler-maven-plugin</artifactId>
|
||||||
|
<version>1.21.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>bundle</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<plist>
|
||||||
|
<JVMMainClassName>pamguard.Pamguard</JVMMainClassName>
|
||||||
|
<CFBundleIconFile>src/Resources/PamguardIcon2.icns</CFBundleIconFile>
|
||||||
|
<CFBundleDisplayName>PAMGuard</CFBundleDisplayName>
|
||||||
|
<CFBundleDevelopmentRegion>English</CFBundleDevelopmentRegion>
|
||||||
|
<CFBundleURLTypes>
|
||||||
|
<string>msa</string>
|
||||||
|
</CFBundleURLTypes>
|
||||||
|
<JVMVersion>21+</JVMVersion>
|
||||||
|
<JVMArguments>
|
||||||
|
<string>-v</string>
|
||||||
|
</JVMArguments>
|
||||||
|
</plist>
|
||||||
|
<dmg>
|
||||||
|
<generate>true</generate>
|
||||||
|
<additionalResources>
|
||||||
|
<additionalResource>
|
||||||
|
<directory>src/target/macos/</directory>
|
||||||
|
</additionalResource>
|
||||||
|
</additionalResources>
|
||||||
|
</dmg>
|
||||||
|
<jdk>
|
||||||
|
<include>true</include>
|
||||||
|
<location>/Library/Java/JavaVirtualMachines/amazon-corretto-21.jdk</location>
|
||||||
|
</jdk>
|
||||||
|
<codesign>
|
||||||
|
<identity>3rd Party Mac Developer Application: PAMGuard</identity>
|
||||||
|
</codesign>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
<repositories>
|
<repositories>
|
||||||
|
60
pom.xml
60
pom.xml
@ -183,6 +183,56 @@
|
|||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Plugin which creates a .dmg file for MacOS. -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>de.perdian.maven.plugins</groupId>
|
||||||
|
<artifactId>macosappbundler-maven-plugin</artifactId>
|
||||||
|
<version>1.21.1</version>
|
||||||
|
<configuration>
|
||||||
|
<plist>
|
||||||
|
<JVMMainClassName>pamguard.Pamguard</JVMMainClassName>
|
||||||
|
<CFBundleIconFile>src/Resources/PamguardIcon2.icns</CFBundleIconFile>
|
||||||
|
<CFBundleDisplayName>PAMGuard</CFBundleDisplayName>
|
||||||
|
<CFBundleDevelopmentRegion>English</CFBundleDevelopmentRegion>
|
||||||
|
<CFBundleURLTypes>
|
||||||
|
<string>msa</string>
|
||||||
|
</CFBundleURLTypes>
|
||||||
|
<JVMVersion>21+</JVMVersion>
|
||||||
|
<!--<JVMOptions>
|
||||||
|
<string>-Dfoo=bar</string>
|
||||||
|
<string>-Dx=y</string>
|
||||||
|
</JVMOptions>-->
|
||||||
|
<JVMArguments>
|
||||||
|
<string>-v</string>
|
||||||
|
</JVMArguments>
|
||||||
|
</plist>
|
||||||
|
<dmg>
|
||||||
|
<generate>true</generate>
|
||||||
|
<additionalResources>
|
||||||
|
<additionalResource>
|
||||||
|
<directory>src/target/macos/</directory>
|
||||||
|
</additionalResource>
|
||||||
|
</additionalResources>
|
||||||
|
</dmg>
|
||||||
|
<jdk>
|
||||||
|
<include>true</include>
|
||||||
|
<location>/Library/Java/JavaVirtualMachines/amazon-corretto-21.jdk</location>
|
||||||
|
</jdk>
|
||||||
|
<codesign>
|
||||||
|
<identity>3rd Party Mac Developer Application: PAMGuard</identity>
|
||||||
|
</codesign>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>bundle</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
||||||
|
|
||||||
@ -373,6 +423,13 @@
|
|||||||
<version>${javafx.version}</version>
|
<version>${javafx.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Swing theme for MacOS -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.formdev</groupId>
|
||||||
|
<artifactId>flatlaf</artifactId>
|
||||||
|
<version>3.5.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- Decorates JavaFX components with error icons if inputs are incorrect-->
|
<!-- Decorates JavaFX components with error icons if inputs are incorrect-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.synedra</groupId>
|
<groupId>net.synedra</groupId>
|
||||||
@ -907,7 +964,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.pamguard</groupId>
|
<groupId>org.pamguard</groupId>
|
||||||
<artifactId>x3</artifactId>
|
<artifactId>x3</artifactId>
|
||||||
<version>2.2.7</version>
|
<version>2.2.8</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
@ -995,5 +1052,6 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
BIN
repo/org/pamguard/x3/2.2.8/X3-2.2.8-javadoc.jar
Normal file
BIN
repo/org/pamguard/x3/2.2.8/X3-2.2.8-javadoc.jar
Normal file
Binary file not shown.
BIN
repo/org/pamguard/x3/2.2.8/X3-2.2.8-sources.jar
Normal file
BIN
repo/org/pamguard/x3/2.2.8/X3-2.2.8-sources.jar
Normal file
Binary file not shown.
Binary file not shown.
89
repo/org/pamguard/x3/2.2.8/X3-2.2.8.pom
Normal file
89
repo/org/pamguard/x3/2.2.8/X3-2.2.8.pom
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.pamguard</groupId>
|
||||||
|
<artifactId>X3</artifactId>
|
||||||
|
<version>2.2.8</version>
|
||||||
|
<description>Tools for opening X3 files</description>
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<id>macster110</id>
|
||||||
|
<name>Jamie Macaulay</name>
|
||||||
|
<roles>
|
||||||
|
<role>Developer</role>
|
||||||
|
</roles>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>Apache-2.0</name>
|
||||||
|
<url>https://opensource.org/licenses/apache-2.0</url>
|
||||||
|
<distribution>repo</distribution>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
<scm>
|
||||||
|
<url>https://github.com/PAMGuard/x3.git</url>
|
||||||
|
</scm>
|
||||||
|
<build>
|
||||||
|
<sourceDirectory>src</sourceDirectory>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.8.1</version>
|
||||||
|
<configuration>
|
||||||
|
<release>11</release>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
<version>3.4.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shade</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration />
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
|
<version>3.2.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>attach-sources</id>
|
||||||
|
<goals>
|
||||||
|
<goal>jar-no-fork</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
|
<version>3.3.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>attach-javadocs</id>
|
||||||
|
<goals>
|
||||||
|
<goal>jar</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<failOnError>false</failOnError>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
<distributionManagement>
|
||||||
|
<repository>
|
||||||
|
<id>ossrh</id>
|
||||||
|
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||||
|
</repository>
|
||||||
|
<snapshotRepository>
|
||||||
|
<id>ossrh</id>
|
||||||
|
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
|
||||||
|
</snapshotRepository>
|
||||||
|
</distributionManagement>
|
||||||
|
</project>
|
@ -1,4 +1,6 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||||
#Wed Nov 15 12:43:42 GMT 2023
|
#Tue Oct 08 09:15:12 BST 2024
|
||||||
x3-2.2.6.jar>=
|
X3-2.2.8-sources.jar>=
|
||||||
x3-2.2.6.pom>=
|
X3-2.2.8.pom>=
|
||||||
|
X3-2.2.8.jar>=
|
||||||
|
X3-2.2.8-javadoc.jar>=
|
@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<<<<<<<< HEAD:repo/tethys/org/javaclient/3.0/javaclient-3.0.pom
|
|
||||||
<groupId>tethys.org</groupId>
|
|
||||||
<artifactId>javaclient</artifactId>
|
|
||||||
<version>3.0</version>
|
|
||||||
========
|
|
||||||
<groupId>pamguard.org</groupId>
|
|
||||||
<artifactId>x3</artifactId>
|
|
||||||
<version>2.2.6</version>
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.6/x3-2.2.6.pom
|
|
||||||
<description>POM was created from install:install-file</description>
|
|
||||||
</project>
|
|
@ -1,4 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Fri Jan 12 10:06:13 GMT 2024
|
|
||||||
x3-2.2.7.jar>=
|
|
||||||
x3-2.2.7.pom>=
|
|
@ -1,11 +0,0 @@
|
|||||||
#Fri Jan 12 10:09:16 GMT 2024
|
|
||||||
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|javadoc=1705054156349
|
|
||||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo|sources=1705054009341
|
|
||||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo|javadoc=1705054156349
|
|
||||||
talan|https\://nexus.talanlabs.com/content/repositories/releases/|javadoc=1705054156349
|
|
||||||
central|https\://repo1.maven.org/maven2|sources=1705054009341
|
|
||||||
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|javadoc=1705054156349
|
|
||||||
talan|https\://nexus.talanlabs.com/content/repositories/releases/|sources=1705054009341
|
|
||||||
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|sources=1705054009341
|
|
||||||
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|sources=1705054009341
|
|
||||||
central|https\://repo1.maven.org/maven2|javadoc=1705054156349
|
|
@ -1,12 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Fri Jan 12 10:09:16 GMT 2024
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1705054156080
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1705054154613
|
|
||||||
https\://repo1.maven.org/maven2/.error=
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.error=
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1705054156060
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1705054155868
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1705054156344
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.2.7 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: nexus.talanlabs.com
|
|
@ -1,12 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Fri Jan 12 10:06:49 GMT 2024
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1705054009062
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1705054007956
|
|
||||||
https\://repo1.maven.org/maven2/.error=
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.error=
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1705054008945
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1705054008751
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1705054009308
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.2.7 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: nexus.talanlabs.com
|
|
Binary file not shown.
@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<<<<<<<< HEAD:repo/tethys/org/nilus/3.0/nilus-3.0.pom
|
|
||||||
<groupId>tethys.org</groupId>
|
|
||||||
<artifactId>nilus</artifactId>
|
|
||||||
<version>3.0</version>
|
|
||||||
========
|
|
||||||
<groupId>pamguard.org</groupId>
|
|
||||||
<artifactId>x3</artifactId>
|
|
||||||
<version>2.2.7</version>
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/x3-2.2.7.pom
|
|
||||||
<description>POM was created from install:install-file</description>
|
|
||||||
</project>
|
|
@ -242,12 +242,20 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
constraints.gridy++;
|
constraints.gridy++;
|
||||||
constraints.gridx = 0;
|
constraints.gridx = 0;
|
||||||
constraints.gridwidth = 1;
|
constraints.gridwidth = 1;
|
||||||
addComponent(p, new JLabel("Skip initial"), constraints);
|
|
||||||
|
PamPanel skipPanel = new PamPanel(new GridBagLayout());
|
||||||
|
|
||||||
|
addComponent(skipPanel, new JLabel("Skip initial "), constraints);
|
||||||
constraints.gridx++;
|
constraints.gridx++;
|
||||||
addComponent(p, skipSecondsField = new JTextField(4), constraints);
|
addComponent(skipPanel, skipSecondsField = new JTextField(4), constraints);
|
||||||
constraints.gridx++;
|
constraints.gridx++;
|
||||||
addComponent(p, new JLabel("seconds"), constraints);
|
addComponent(skipPanel, new JLabel("seconds"), constraints);
|
||||||
constraints.anchor = GridBagConstraints.EAST;
|
constraints.anchor = GridBagConstraints.EAST;
|
||||||
|
|
||||||
|
constraints.gridwidth = 3;
|
||||||
|
constraints.gridx = 0;
|
||||||
|
addComponent(p, skipPanel, constraints);
|
||||||
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// addComponent(p, new JLabel("File date :"), constraints);
|
// addComponent(p, new JLabel("File date :"), constraints);
|
||||||
|
@ -252,13 +252,21 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
|
|||||||
constraints.gridy++;
|
constraints.gridy++;
|
||||||
constraints.gridx = 0;
|
constraints.gridx = 0;
|
||||||
constraints.gridwidth = 1;
|
constraints.gridwidth = 1;
|
||||||
addComponent(p, new JLabel("Skip initial :"), constraints);
|
|
||||||
constraints.gridx++;
|
|
||||||
addComponent(p, skipSecondsField = new JTextField(4), constraints);
|
|
||||||
constraints.gridx++;
|
|
||||||
addComponent(p, new JLabel("seconds"), constraints);
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
//panel which allows the users to skip the first section of a file.
|
||||||
|
PamPanel skipPanel = new PamPanel(new GridBagLayout());
|
||||||
|
|
||||||
|
constraints.insets = new Insets(0,0,0,5);
|
||||||
|
addComponent(skipPanel, new JLabel("Skip initial "), constraints);
|
||||||
|
constraints.gridx++;
|
||||||
|
addComponent(skipPanel, skipSecondsField = new JTextField(4), constraints);
|
||||||
|
constraints.gridx++;
|
||||||
|
addComponent(skipPanel, new JLabel("seconds"), constraints);
|
||||||
|
constraints.anchor = GridBagConstraints.WEST;
|
||||||
|
|
||||||
|
constraints.gridwidth = 3;
|
||||||
|
constraints.gridx = 0;
|
||||||
|
addComponent(p, skipPanel, constraints);
|
||||||
|
|
||||||
//panel to show bespoke settings for certain audio loaders.
|
//panel to show bespoke settings for certain audio loaders.
|
||||||
constraints.anchor = GridBagConstraints.WEST;
|
constraints.anchor = GridBagConstraints.WEST;
|
||||||
@ -570,6 +578,9 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
|
|||||||
acquisitionDialog.setSampleRate(audioFormat.getSampleRate());
|
acquisitionDialog.setSampleRate(audioFormat.getSampleRate());
|
||||||
acquisitionDialog.setChannels(fudgeNumChannels(audioFormat.getChannels()));
|
acquisitionDialog.setChannels(fudgeNumChannels(audioFormat.getChannels()));
|
||||||
audioStream.close();
|
audioStream.close();
|
||||||
|
//prevent the dialog from going nuts when components are resized.
|
||||||
|
acquisitionDialog.validate();
|
||||||
|
acquisitionDialog.pack();
|
||||||
}
|
}
|
||||||
catch (Exception Ex) {
|
catch (Exception Ex) {
|
||||||
// Ex.printStackTrace();
|
// Ex.printStackTrace();
|
||||||
|
@ -5,6 +5,7 @@ import java.awt.Color;
|
|||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.GridBagConstraints;
|
import java.awt.GridBagConstraints;
|
||||||
import java.awt.GridBagLayout;
|
import java.awt.GridBagLayout;
|
||||||
|
import java.awt.Insets;
|
||||||
import java.awt.Window;
|
import java.awt.Window;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
@ -22,6 +23,7 @@ import org.kordamp.ikonli.swing.FontIcon;
|
|||||||
import PamUtils.PamCalendar;
|
import PamUtils.PamCalendar;
|
||||||
import PamView.component.PamSettingsIconButton;
|
import PamView.component.PamSettingsIconButton;
|
||||||
import PamView.dialog.PamGridBagContraints;
|
import PamView.dialog.PamGridBagContraints;
|
||||||
|
import PamView.panel.PamPanel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simpel dialog component which can interact with a file date.
|
* Simpel dialog component which can interact with a file date.
|
||||||
@ -41,7 +43,7 @@ public class FileDateDialogStrip {
|
|||||||
private JButton settingsButton;
|
private JButton settingsButton;
|
||||||
|
|
||||||
// private ImageIcon settingsIcon = new ImageIcon(ClassLoader.getSystemResource("Resources/SettingsButtonSmall2.png"));
|
// private ImageIcon settingsIcon = new ImageIcon(ClassLoader.getSystemResource("Resources/SettingsButtonSmall2.png"));
|
||||||
public static FontIcon settingsIcon = FontIcon.of(PamSettingsIconButton.SETTINGS_IKON, PamSettingsIconButton.NORMAL_SIZE, Color.DARK_GRAY);
|
public static FontIcon settingsIcon = FontIcon.of(PamSettingsIconButton.SETTINGS_IKON, PamSettingsIconButton.NORMAL_SIZE);
|
||||||
|
|
||||||
|
|
||||||
private Window parent;
|
private Window parent;
|
||||||
@ -55,16 +57,30 @@ public class FileDateDialogStrip {
|
|||||||
formatLabel = new JLabel(" ");
|
formatLabel = new JLabel(" ");
|
||||||
fileTime = new JTextField(20);
|
fileTime = new JTextField(20);
|
||||||
|
|
||||||
|
|
||||||
mainPanel = new JPanel(new BorderLayout());
|
mainPanel = new JPanel(new BorderLayout());
|
||||||
JPanel centPanel = new JPanel(new BorderLayout());
|
|
||||||
centPanel.add(BorderLayout.NORTH, formatLabel);
|
GridBagConstraints c = new GridBagConstraints();
|
||||||
centPanel.add(BorderLayout.SOUTH, fileTime);
|
|
||||||
mainPanel.add(BorderLayout.CENTER, centPanel);
|
PamPanel centPanel = new PamPanel(new GridBagLayout());
|
||||||
mainPanel.add(BorderLayout.EAST, settingsButton);
|
|
||||||
JPanel westPanel = new JPanel(new BorderLayout());
|
c.gridx = 0;
|
||||||
westPanel.add(BorderLayout.NORTH, new JLabel(" "));
|
c.insets = new Insets(0,0,0,5);
|
||||||
westPanel.add(BorderLayout.CENTER, new JLabel("File date : "));
|
|
||||||
mainPanel.add(BorderLayout.WEST, westPanel);
|
JLabel fileDateLabel = new JLabel("File date ");
|
||||||
|
PamPanel.addComponent(centPanel,fileDateLabel, c);
|
||||||
|
c.gridx ++;
|
||||||
|
PamPanel.addComponent(centPanel, fileTime, c);
|
||||||
|
c.gridx++;
|
||||||
|
PamPanel.addComponent(centPanel, settingsButton, c);
|
||||||
|
|
||||||
|
//keep the lable below the text box
|
||||||
|
c.gridx = 1;
|
||||||
|
|
||||||
|
PamPanel.addComponent(centPanel, formatLabel, c);
|
||||||
|
|
||||||
|
mainPanel.add(BorderLayout.WEST, centPanel);
|
||||||
|
|
||||||
|
|
||||||
// mainPanel = new JPanel(new GridBagLayout());
|
// mainPanel = new JPanel(new GridBagLayout());
|
||||||
// GridBagConstraints c = new PamGridBagContraints();
|
// GridBagConstraints c = new PamGridBagContraints();
|
||||||
|
@ -29,6 +29,8 @@ import javax.swing.ImageIcon;
|
|||||||
import javax.swing.JInternalFrame;
|
import javax.swing.JInternalFrame;
|
||||||
import javax.swing.border.EmptyBorder;
|
import javax.swing.border.EmptyBorder;
|
||||||
|
|
||||||
|
import PamView.PamIcon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Doug Gillespie
|
* @author Doug Gillespie
|
||||||
* <p>
|
* <p>
|
||||||
@ -84,10 +86,7 @@ public class PamInternalFrame extends JInternalFrame implements ComponentListene
|
|||||||
|
|
||||||
pamFramePlots.setFrame(this);
|
pamFramePlots.setFrame(this);
|
||||||
|
|
||||||
if (!System.getProperty("os.name").equals("Linux")) {
|
setFrameIcon(PamIcon.getPAMGuardImageIcon(PamIcon.SMALL));
|
||||||
setFrameIcon(new ImageIcon(ClassLoader
|
|
||||||
.getSystemResource("Resources/pamguardIcon.png")));
|
|
||||||
}
|
|
||||||
|
|
||||||
graphLayout = new PamGraphLayout(framePlots);
|
graphLayout = new PamGraphLayout(framePlots);
|
||||||
|
|
||||||
|
167
src/PamController/PamRunModeDialog.java
Normal file
167
src/PamController/PamRunModeDialog.java
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
package PamController;
|
||||||
|
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Font;
|
||||||
|
import java.awt.GridBagConstraints;
|
||||||
|
import java.awt.GridBagLayout;
|
||||||
|
import java.awt.Insets;
|
||||||
|
import java.awt.Toolkit;
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.awt.Window;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
import javax.swing.AbstractButton;
|
||||||
|
import javax.swing.ButtonGroup;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.JToggleButton;
|
||||||
|
import javax.swing.SwingConstants;
|
||||||
|
import javax.swing.border.TitledBorder;
|
||||||
|
|
||||||
|
import PamView.PamIcon;
|
||||||
|
import PamView.dialog.PamDialog;
|
||||||
|
import PamView.panel.PamPanel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple dialog which allows the user to select which mode to run PAMGuard in.
|
||||||
|
*/
|
||||||
|
public class PamRunModeDialog extends PamDialog {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private static PamRunModeDialog singleInstance;
|
||||||
|
|
||||||
|
private JPanel mainPanel;
|
||||||
|
|
||||||
|
private PamRunModeParams runbModeParams = new PamRunModeParams();
|
||||||
|
|
||||||
|
private AbstractButton normalMode;
|
||||||
|
|
||||||
|
private AbstractButton viewerMode;
|
||||||
|
|
||||||
|
public PamRunModeDialog(Window parentFrame) {
|
||||||
|
super(parentFrame, "Storage Options", false);
|
||||||
|
|
||||||
|
mainPanel = new JPanel();
|
||||||
|
mainPanel.setBorder(new TitledBorder("Select PAMGuard mode"));
|
||||||
|
mainPanel.setLayout(new GridBagLayout());
|
||||||
|
|
||||||
|
//toggle buttonb
|
||||||
|
normalMode = new JToggleButton("Normal");
|
||||||
|
normalMode.setFont(normalMode.getFont().deriveFont(Font.BOLD));
|
||||||
|
normalMode.addItemListener((a)->{
|
||||||
|
// event is generated in button
|
||||||
|
int state = a.getStateChange();
|
||||||
|
});
|
||||||
|
normalMode.setToolTipText(
|
||||||
|
"<html>Run PAMGuard in normal mode. <p>"
|
||||||
|
+ "Normal mode allows users to use PAMGuard in real time or processing <br>"
|
||||||
|
+ "raw acoustic data from recorders.</html>");
|
||||||
|
|
||||||
|
|
||||||
|
viewerMode = new JToggleButton("Viewer");
|
||||||
|
viewerMode.setFont(viewerMode.getFont().deriveFont(Font.BOLD));
|
||||||
|
viewerMode.addItemListener((a)->{
|
||||||
|
// event is generated in button
|
||||||
|
int state = a.getStateChange();
|
||||||
|
});
|
||||||
|
|
||||||
|
viewerMode.setToolTipText(
|
||||||
|
"<html>Run PAMGuard in viewer mode. <p>"
|
||||||
|
+"Viewer mode is used to view processed data from normal mode</html>");
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
Image img = ImageIO.read(getClass().getResource(File.separator+PamIcon.getPAMGuardIconPath(PamIcon.NORMAL)));
|
||||||
|
normalMode.setIcon(new ImageIcon(img));
|
||||||
|
normalMode.setHorizontalAlignment(SwingConstants.TRAILING);
|
||||||
|
viewerMode.setIcon(new ImageIcon(img));
|
||||||
|
viewerMode.setHorizontalAlignment(SwingConstants.TRAILING);
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
ButtonGroup buttonGroup = new ButtonGroup();
|
||||||
|
buttonGroup.add(normalMode);
|
||||||
|
buttonGroup.add(viewerMode);
|
||||||
|
|
||||||
|
GridBagConstraints gridBagConstrints = new GridBagConstraints();
|
||||||
|
gridBagConstrints.gridy = 0;
|
||||||
|
gridBagConstrints.gridx = 0;
|
||||||
|
gridBagConstrints.insets = new Insets(5,5,5,5);
|
||||||
|
|
||||||
|
// PamPanel.addComponent(mainPanel, new JLabel("Select PAMGuard mode"), gridBagConstrints);
|
||||||
|
// gridBagConstrints.gridwidth=2;
|
||||||
|
//
|
||||||
|
// gridBagConstrints.gridwidth=1;
|
||||||
|
gridBagConstrints.gridy ++;
|
||||||
|
PamPanel.addComponent(mainPanel, normalMode, gridBagConstrints);
|
||||||
|
gridBagConstrints.gridx ++;
|
||||||
|
PamPanel.addComponent(mainPanel, viewerMode, gridBagConstrints);
|
||||||
|
|
||||||
|
setDialogComponent(mainPanel);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the run mode dialog.
|
||||||
|
* @param parentFrame - the parent frame - usually null.
|
||||||
|
* @param center - true to show the dialog in the center of the screen.
|
||||||
|
* @return run mode params.
|
||||||
|
*/
|
||||||
|
public static PamRunModeParams showDialog(JFrame parentFrame, boolean center) {
|
||||||
|
if (singleInstance == null || singleInstance.getOwner() != parentFrame) {
|
||||||
|
singleInstance = new PamRunModeDialog(parentFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (center) {
|
||||||
|
final Toolkit toolkit = Toolkit.getDefaultToolkit();
|
||||||
|
final Dimension screenSize = toolkit.getScreenSize();
|
||||||
|
final int x = (screenSize.width - singleInstance.getWidth()) / 2;
|
||||||
|
final int y = (screenSize.height - singleInstance.getHeight()) / 2;
|
||||||
|
System.out.println("Set dialog location: " + x + " " + y);
|
||||||
|
singleInstance.setLocation(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
singleInstance.setVisible(true);
|
||||||
|
|
||||||
|
return singleInstance.runbModeParams;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getParams() {
|
||||||
|
if (normalMode.isSelected()) {
|
||||||
|
runbModeParams.runMode=PamController.RUN_NORMAL;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (viewerMode.isSelected()) {
|
||||||
|
runbModeParams.runMode=PamController.RUN_PAMVIEW;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PamDialog.showWarning(singleInstance, "No PAMGuard mode selected", "You must select which mode to run PAMGuard in");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancelButtonPressed() {
|
||||||
|
runbModeParams.runMode=-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreDefaultSettings() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
34
src/PamController/PamRunModeParams.java
Normal file
34
src/PamController/PamRunModeParams.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package PamController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parameters for choosing pAMGuard run mode.
|
||||||
|
*/
|
||||||
|
public class PamRunModeParams {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The mode to run.
|
||||||
|
*/
|
||||||
|
public int runMode = PamController.RUN_PAMVIEW;
|
||||||
|
|
||||||
|
public String getRunString() {
|
||||||
|
return getRunString(runMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getRunString(int runbModeParams) {
|
||||||
|
String runMode =null;
|
||||||
|
switch (runbModeParams) {
|
||||||
|
case PamController.RUN_NORMAL:
|
||||||
|
runMode = "";
|
||||||
|
break;
|
||||||
|
case PamController.RUN_PAMVIEW:
|
||||||
|
runMode ="-v";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return runMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getRunString(PamRunModeParams runbModeParams) {
|
||||||
|
return getRunString(runbModeParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -20,7 +20,7 @@ public class KillCommand extends ExtCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHint() {
|
public String getHint() {
|
||||||
return "kill PAMguard, don't necessarily stop detectors or clean anything up";
|
return "kill PAMGuard, don't necessarily stop detectors or clean anything up";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
59
src/PamView/PamIcon.java
Normal file
59
src/PamView/PamIcon.java
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
package PamView;
|
||||||
|
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the PAMGuard icon.
|
||||||
|
* <p>
|
||||||
|
* Handles the PAMGuard icon depending on operating system.
|
||||||
|
*/
|
||||||
|
public class PamIcon {
|
||||||
|
|
||||||
|
public final static int SMALL = 1;
|
||||||
|
public final static int NORMAL = 2;
|
||||||
|
public final static int LARGE = 3;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the path to the default icon for PAMGuard.
|
||||||
|
* @param sizeFlag - the size flag.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getPAMGuardIconPath(int sizeFlag) {
|
||||||
|
|
||||||
|
//Note: whether the there is a / in front of resource is very important here
|
||||||
|
//putting a / in front of the Resources will mean the class loader will not work
|
||||||
|
|
||||||
|
|
||||||
|
//the default is windows. Icon automatically resize on Windows.
|
||||||
|
String path = "Resources/pamguardIcon.png";
|
||||||
|
|
||||||
|
if (System.getProperty("os.name").equals("Linux") || System.getProperty("os.name").startsWith("Mac")) {
|
||||||
|
switch (sizeFlag) {
|
||||||
|
case SMALL:
|
||||||
|
path = "Resources/PAMGuardIcon2small.png";
|
||||||
|
break;
|
||||||
|
case NORMAL:
|
||||||
|
path = "Resources/PAMGuardIcon2medium.png";
|
||||||
|
break;
|
||||||
|
case LARGE:
|
||||||
|
path = "Resources/PAMGuardIcon2.png";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return path;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ImageIcon getPAMGuardImageIcon(int sizeFlag) {
|
||||||
|
return new ImageIcon(ClassLoader.getSystemResource(getPAMGuardIconPath(sizeFlag)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static ImageIcon getPAMGuardImageIcon() {
|
||||||
|
return getPAMGuardImageIcon(NORMAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -416,9 +416,7 @@ public class PamObjectViewer implements PamViewInterface, ComponentListener,
|
|||||||
setTitle("Pamguard Data Model");
|
setTitle("Pamguard Data Model");
|
||||||
|
|
||||||
// fixed case of Resources 17/8/08 DG.
|
// fixed case of Resources 17/8/08 DG.
|
||||||
setIconImage(new ImageIcon(ClassLoader
|
setIconImage(PamIcon.getPAMGuardImageIcon(PamIcon.SMALL).getImage());
|
||||||
.getSystemResource("Resources/pamguardIcon.png"))
|
|
||||||
.getImage());
|
|
||||||
// setIconImages(getOwner().getIconImages());
|
// setIconImages(getOwner().getIconImages());
|
||||||
|
|
||||||
setSize(new Dimension(800, 700));
|
setSize(new Dimension(800, 700));
|
||||||
|
@ -25,8 +25,7 @@ public class PopupTextField {
|
|||||||
private PopupTextField(String title) {
|
private PopupTextField(String title) {
|
||||||
// frame = new JFrame();
|
// frame = new JFrame();
|
||||||
frame = new JDialog();
|
frame = new JDialog();
|
||||||
frame.setIconImage(new ImageIcon(ClassLoader
|
frame.setIconImage(PamIcon.getPAMGuardImageIcon(PamIcon.SMALL).getImage());
|
||||||
.getSystemResource("Resources/pamguardIcon.png")).getImage());
|
|
||||||
frame.setModalityType(Dialog.ModalityType.DOCUMENT_MODAL);
|
frame.setModalityType(Dialog.ModalityType.DOCUMENT_MODAL);
|
||||||
frame.setIconImage(null);
|
frame.setIconImage(null);
|
||||||
frame.setLayout(new BorderLayout());
|
frame.setLayout(new BorderLayout());
|
||||||
|
@ -42,6 +42,7 @@ import PamView.ClipboardCopier;
|
|||||||
import PamView.PamColors;
|
import PamView.PamColors;
|
||||||
import PamView.ScreenSize;
|
import PamView.ScreenSize;
|
||||||
import PamView.help.PamHelp;
|
import PamView.help.PamHelp;
|
||||||
|
import PamView.PamIcon;
|
||||||
import gpl.GPLParameters;
|
import gpl.GPLParameters;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -133,6 +134,12 @@ abstract public class PamDialog extends JDialog {
|
|||||||
this.setResizable(false);
|
this.setResizable(false);
|
||||||
setAlwaysOnTop(parentFrame == null);
|
setAlwaysOnTop(parentFrame == null);
|
||||||
|
|
||||||
|
|
||||||
|
String icon = PamIcon.getPAMGuardIconPath(PamIcon.SMALL);
|
||||||
|
//
|
||||||
|
// System.out.println("Get icon: " + ClassLoader
|
||||||
|
// .getSystemResource(PamIcon.getPAMGuardIconPath(PamIcon.SMALL)));
|
||||||
|
|
||||||
setIconImage(new ImageIcon(ClassLoader
|
setIconImage(new ImageIcon(ClassLoader
|
||||||
.getSystemResource("Resources/pamguardIcon.png")).getImage());
|
.getSystemResource("Resources/pamguardIcon.png")).getImage());
|
||||||
|
|
||||||
|
BIN
src/Resources/PAMGuardIcon2.icns
Normal file
BIN
src/Resources/PAMGuardIcon2.icns
Normal file
Binary file not shown.
BIN
src/Resources/PAMGuardIcon2.png
Normal file
BIN
src/Resources/PAMGuardIcon2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 99 KiB |
BIN
src/Resources/PAMGuardIcon2medium.png
Normal file
BIN
src/Resources/PAMGuardIcon2medium.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.0 KiB |
BIN
src/Resources/PAMGuardIcon2small.png
Normal file
BIN
src/Resources/PAMGuardIcon2small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
@ -29,6 +29,7 @@ import PamModel.parametermanager.PamParameterSet;
|
|||||||
import PamModel.parametermanager.PamParameterSet.ParameterSetType;
|
import PamModel.parametermanager.PamParameterSet.ParameterSetType;
|
||||||
import PamModel.parametermanager.PrivatePamParameterData;
|
import PamModel.parametermanager.PrivatePamParameterData;
|
||||||
import PamView.MenuItemEnabler;
|
import PamView.MenuItemEnabler;
|
||||||
|
import PamView.PamIcon;
|
||||||
import clickDetector.offlineFuncs.OfflineEventDataUnit;
|
import clickDetector.offlineFuncs.OfflineEventDataUnit;
|
||||||
|
|
||||||
public class ClickDisplayManager implements PamSettings {
|
public class ClickDisplayManager implements PamSettings {
|
||||||
@ -166,9 +167,8 @@ public class ClickDisplayManager implements PamSettings {
|
|||||||
|
|
||||||
pf = new PamInternalFrame(newClickDisplay, false);
|
pf = new PamInternalFrame(newClickDisplay, false);
|
||||||
|
|
||||||
if (!System.getProperty("os.name").equals("Linux")) {
|
if (!System.getProperty("os.name").equals("Linux") && !System.getProperty("os.name").startsWith("Mac")) {
|
||||||
newClickDisplay.getFrame().setFrameIcon(new ImageIcon(ClassLoader
|
newClickDisplay.getFrame().setFrameIcon(PamIcon.getPAMGuardImageIcon(PamIcon.SMALL));
|
||||||
.getSystemResource("Resources/pamguardIcon.png")));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
newClickDisplay.getFrame().setClosable(true);
|
newClickDisplay.getFrame().setClosable(true);
|
||||||
|
@ -251,6 +251,7 @@ public class CPODControl2 extends PamControlledUnit implements PamSettings {
|
|||||||
SettingsPane<CPODParams> setPane = (SettingsPane<CPODParams>) getSettingsPane();
|
SettingsPane<CPODParams> setPane = (SettingsPane<CPODParams>) getSettingsPane();
|
||||||
setPane.setParams(this.cpodParams);
|
setPane.setParams(this.cpodParams);
|
||||||
settingsDialog = new PamDialogFX2AWT<CPODParams>(parentFrame, setPane, false);
|
settingsDialog = new PamDialogFX2AWT<CPODParams>(parentFrame, setPane, false);
|
||||||
|
settingsDialog.setHelpPoint("sensors.cpod.docs.cpod");
|
||||||
settingsDialog.setResizable(true);
|
settingsDialog.setResizable(true);
|
||||||
}
|
}
|
||||||
CPODParams newParams = settingsDialog.showDialog(cpodParams);
|
CPODParams newParams = settingsDialog.showDialog(cpodParams);
|
||||||
|
@ -47,6 +47,8 @@ public class MLAnnotationsManager {
|
|||||||
//even if they don't exist- otherwise we may get dissimilar structure exceptions.
|
//even if they don't exist- otherwise we may get dissimilar structure exceptions.
|
||||||
PamDataBlock parentblock = dataUnit.getParentDataBlock();
|
PamDataBlock parentblock = dataUnit.getParentDataBlock();
|
||||||
|
|
||||||
|
if (parentblock.getAnnotationHandler()==null) return;
|
||||||
|
|
||||||
DataAnnotationType annotType;
|
DataAnnotationType annotType;
|
||||||
List<DataAnnotationType<?>> annotationTypes = parentblock.getAnnotationHandler().getAvailableAnnotationTypes();
|
List<DataAnnotationType<?>> annotationTypes = parentblock.getAnnotationHandler().getAvailableAnnotationTypes();
|
||||||
|
|
||||||
@ -227,8 +229,6 @@ public class MLAnnotationsManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Struct dlAnnoation2MAT(DLAnnotation dlAnnotation) {
|
private Struct dlAnnoation2MAT(DLAnnotation dlAnnotation) {
|
||||||
float[][] predictions = new float[dlAnnotation.getModelResults().size()][];
|
float[][] predictions = new float[dlAnnotation.getModelResults().size()][];
|
||||||
boolean[] decision = new boolean[dlAnnotation.getModelResults().size()];
|
boolean[] decision = new boolean[dlAnnotation.getModelResults().size()];
|
||||||
|
@ -42,6 +42,8 @@ public class RAnnotationManager {
|
|||||||
//even if they don't exist- otherwise we may get dissimilar structure exceptions.
|
//even if they don't exist- otherwise we may get dissimilar structure exceptions.
|
||||||
PamDataBlock parentblock = dataUnit.getParentDataBlock();
|
PamDataBlock parentblock = dataUnit.getParentDataBlock();
|
||||||
|
|
||||||
|
if (parentblock.getAnnotationHandler()==null) return rData;
|
||||||
|
|
||||||
DataAnnotationType annotType;
|
DataAnnotationType annotType;
|
||||||
List<DataAnnotationType<?>> annotationTypes = parentblock.getAnnotationHandler().getAvailableAnnotationTypes();
|
List<DataAnnotationType<?>> annotationTypes = parentblock.getAnnotationHandler().getAvailableAnnotationTypes();
|
||||||
|
|
||||||
|
Binary file not shown.
@ -58,7 +58,7 @@ public class ExportProcessDialog {
|
|||||||
private OfflineTaskGroup dlOfflineGroup;
|
private OfflineTaskGroup dlOfflineGroup;
|
||||||
|
|
||||||
|
|
||||||
private ExportOLDialog mtOfflineDialog;
|
private ExportOLDialog exportDialog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reference to the export manager.
|
* Reference to the export manager.
|
||||||
@ -74,6 +74,7 @@ public class ExportProcessDialog {
|
|||||||
//create the offline task group.
|
//create the offline task group.
|
||||||
this.exportManager=exportManager;
|
this.exportManager=exportManager;
|
||||||
dlOfflineGroup = new ExportTaskGroup("Export data");
|
dlOfflineGroup = new ExportTaskGroup("Export data");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -97,14 +98,16 @@ public class ExportProcessDialog {
|
|||||||
createExportGroup();
|
createExportGroup();
|
||||||
|
|
||||||
//if null open the dialog- also create a new offlineTask group if the datablock has changed.
|
//if null open the dialog- also create a new offlineTask group if the datablock has changed.
|
||||||
if (mtOfflineDialog == null) {
|
if (exportDialog == null) {
|
||||||
mtOfflineDialog = new ExportOLDialog(parentFrame,
|
exportDialog = new ExportOLDialog(parentFrame,
|
||||||
dlOfflineGroup, "Export Data");
|
dlOfflineGroup, "Export Data");
|
||||||
//batchLocaliseDialog.setModalityType(Dialog.ModalityType.MODELESS);
|
//batchLocaliseDialog.setModalityType(Dialog.ModalityType.MODELESS);
|
||||||
}
|
}
|
||||||
mtOfflineDialog.setParams(params);
|
exportDialog.setHelpPoint("overview.dataexport.docs.dataexport");
|
||||||
mtOfflineDialog.enableControls();
|
|
||||||
mtOfflineDialog.setVisible(true);
|
exportDialog.setParams(params);
|
||||||
|
exportDialog.enableControls();
|
||||||
|
exportDialog.setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -478,7 +481,7 @@ public class ExportProcessDialog {
|
|||||||
this.setPrimaryDataBlock(getTask(i).getDataBlock());
|
this.setPrimaryDataBlock(getTask(i).getDataBlock());
|
||||||
if (i<getNTasks()-1) {
|
if (i<getNTasks()-1) {
|
||||||
//will start a new thread after this one has finished
|
//will start a new thread after this one has finished
|
||||||
this.setTaskMonitor(mtOfflineDialog.newExportTaskMonitor(i, this));
|
this.setTaskMonitor(exportDialog.newExportTaskMonitor(i, this));
|
||||||
}
|
}
|
||||||
super.runTasks();
|
super.runTasks();
|
||||||
}
|
}
|
||||||
|
@ -131,6 +131,7 @@ public class MTClassifierControl extends PamControlledUnit implements PamSetting
|
|||||||
SettingsPane<MatchedTemplateParams> setPane = (SettingsPane<MatchedTemplateParams>) getSettingsPane();
|
SettingsPane<MatchedTemplateParams> setPane = (SettingsPane<MatchedTemplateParams>) getSettingsPane();
|
||||||
setPane.setParams(this.matchedTemplateParams);
|
setPane.setParams(this.matchedTemplateParams);
|
||||||
settingsDialog = new PamDialogFX2AWT<MatchedTemplateParams>(parentFrame, setPane, false);
|
settingsDialog = new PamDialogFX2AWT<MatchedTemplateParams>(parentFrame, setPane, false);
|
||||||
|
settingsDialog.setHelpPoint("classifiers.matchedtemplate.mathchedtemplate"); //spelling mistake in path - careful
|
||||||
settingsDialog.setResizable(true);
|
settingsDialog.setResizable(true);
|
||||||
}
|
}
|
||||||
MatchedTemplateParams newParams = settingsDialog.showDialog(matchedTemplateParams);
|
MatchedTemplateParams newParams = settingsDialog.showDialog(matchedTemplateParams);
|
||||||
|
@ -547,6 +547,7 @@ public class MTClassifierPane extends SettingsPane<MTClassifier> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double[][] getWaveform(RawDataUnit pamDetection) {
|
public double[][] getWaveform(RawDataUnit pamDetection) {
|
||||||
|
if (pamDetection==null) return null;
|
||||||
//just return the waveform.
|
//just return the waveform.
|
||||||
//System.out.println("Getting the waveform for the waveform plot: " + pamDetection.getRawData().length);
|
//System.out.println("Getting the waveform for the waveform plot: " + pamDetection.getRawData().length);
|
||||||
return new double[][]{pamDetection.getRawData()};
|
return new double[][]{pamDetection.getRawData()};
|
||||||
|
@ -38,9 +38,13 @@ import java.util.TimeZone;
|
|||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.FlatLightLaf;
|
||||||
|
|
||||||
import Acquisition.FolderInputSystem;
|
import Acquisition.FolderInputSystem;
|
||||||
import PamController.PamController;
|
import PamController.PamController;
|
||||||
import PamController.PamGUIManager;
|
import PamController.PamGUIManager;
|
||||||
|
import PamController.PamRunModeDialog;
|
||||||
|
import PamController.PamRunModeParams;
|
||||||
import PamController.PamSettingManager;
|
import PamController.PamSettingManager;
|
||||||
import PamController.PamguardVersionInfo;
|
import PamController.PamguardVersionInfo;
|
||||||
import PamController.pamBuoyGlobals;
|
import PamController.pamBuoyGlobals;
|
||||||
@ -100,8 +104,7 @@ public class Pamguard {
|
|||||||
else {
|
else {
|
||||||
//do not use the mac version...it's awful
|
//do not use the mac version...it's awful
|
||||||
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
|
UIManager.setLookAndFeel(new FlatLightLaf() );
|
||||||
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
|
|
||||||
}
|
}
|
||||||
// for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
|
// for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
|
||||||
// if ("Nimbus".equals(info.getName())) {
|
// if ("Nimbus".equals(info.getName())) {
|
||||||
@ -120,7 +123,9 @@ public class Pamguard {
|
|||||||
// System.out.println(keys.nextElement() + ": " + ui.get(nxt));
|
// System.out.println(keys.nextElement() + ": " + ui.get(nxt));
|
||||||
// }
|
// }
|
||||||
// PamColors.getInstance().setColors();
|
// PamColors.getInstance().setColors();
|
||||||
} catch (Exception e) { }
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
int runMode = PamController.RUN_NORMAL;
|
int runMode = PamController.RUN_NORMAL;
|
||||||
String InputPsf = "NULL";
|
String InputPsf = "NULL";
|
||||||
@ -162,6 +167,20 @@ public class Pamguard {
|
|||||||
String anArg;
|
String anArg;
|
||||||
while (iArg < nArgs) {
|
while (iArg < nArgs) {
|
||||||
anArg = args[iArg++];
|
anArg = args[iArg++];
|
||||||
|
|
||||||
|
if (anArg.equalsIgnoreCase("-c")) {
|
||||||
|
//the user chooses which run mode
|
||||||
|
PamRunModeParams runbModeParams = PamRunModeDialog.showDialog(null, true);
|
||||||
|
if (runbModeParams==null || runbModeParams.runMode<0) {
|
||||||
|
//use cancelled
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//set anArg to whatever the user chose
|
||||||
|
anArg = runbModeParams.getRunString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (anArg.equalsIgnoreCase("-v")) {
|
if (anArg.equalsIgnoreCase("-v")) {
|
||||||
runMode = PamController.RUN_PAMVIEW;
|
runMode = PamController.RUN_PAMVIEW;
|
||||||
System.out.println("PAMGUARD Viewer");
|
System.out.println("PAMGUARD Viewer");
|
||||||
|
@ -430,6 +430,7 @@ public class DLControl extends PamControlledUnit implements PamSettings {
|
|||||||
SettingsPane<RawDLParams> setPane = (SettingsPane<RawDLParams>) getSettingsPane();
|
SettingsPane<RawDLParams> setPane = (SettingsPane<RawDLParams>) getSettingsPane();
|
||||||
setPane.setParams(this.rawDLParmas);
|
setPane.setParams(this.rawDLParmas);
|
||||||
settingsDialog = new PamDialogFX2AWT<RawDLParams>(parentFrame, setPane, false);
|
settingsDialog = new PamDialogFX2AWT<RawDLParams>(parentFrame, setPane, false);
|
||||||
|
settingsDialog.setHelpPoint("classifiers.rawDeepLearningHelp.docs.rawDeepLearning");
|
||||||
settingsDialog.setResizable(true);
|
settingsDialog.setResizable(true);
|
||||||
}
|
}
|
||||||
RawDLParams newParams = settingsDialog.showDialog(rawDLParmas);
|
RawDLParams newParams = settingsDialog.showDialog(rawDLParmas);
|
||||||
|
@ -221,11 +221,10 @@ public class DelphinIDTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static double[] whistle2AverageArray(double[][] whistleValues, double startseg, double seglen) {
|
private static double[] whistle2AverageArray(double[][] whistleValues, double startseg, double seglen, double[] freqLimits) {
|
||||||
|
|
||||||
//now perform the image transform in Java
|
//now perform the image transform in Java
|
||||||
double[] freqLimits = new double[] {2000., 20000.};
|
// double[] freqLimits = new double[] {2000., 20000.};
|
||||||
double[] size = new double[] {496., 369.};
|
|
||||||
|
|
||||||
double freqBin = 100.;
|
double freqBin = 100.;
|
||||||
|
|
||||||
@ -262,15 +261,16 @@ public class DelphinIDTest {
|
|||||||
return peakBins;
|
return peakBins;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This test runs delphinID on one 4 second window from whistle contours saved
|
* This test runs delphinID on a single 4 second window from whistle contours saved
|
||||||
* in a mat file. The mat file also contains an image from Python. The test
|
* in a mat file. The mat file also contains an image from Python. The test
|
||||||
* compares the Python image to to the image generated by exporting both images
|
* compares the Python image to to the image generated by exporting both images
|
||||||
* to a .mat file. The model is run on both images and results are compared
|
* to a .mat file. The model is run on both images and results are compared
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static boolean testDelphinIDImage(String imagePathOut) {
|
public static boolean testDelphin2DImage(String imagePathOut) {
|
||||||
|
|
||||||
System.out.println("------DelphinID image comparison test---------");
|
System.out.println("------DelphinID image comparison test---------");
|
||||||
|
|
||||||
@ -352,6 +352,7 @@ public class DelphinIDTest {
|
|||||||
.addArray("imageJava",DLMatFile.array2Matrix(pamguardWhistleImage));
|
.addArray("imageJava",DLMatFile.array2Matrix(pamguardWhistleImage));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Mat5.writeToFile(matFileWrite, imagePathOut);
|
Mat5.writeToFile(matFileWrite, imagePathOut);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -371,7 +372,7 @@ public class DelphinIDTest {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This test runs delphinID on one 4 second window from whistle contours saved
|
* This test runs delphinID on one 4 second window from whistle contours saved
|
||||||
* in a mat file
|
* in a mat file.
|
||||||
*
|
*
|
||||||
* @return true if the test is passed.
|
* @return true if the test is passed.
|
||||||
*/
|
*/
|
||||||
@ -380,7 +381,6 @@ public class DelphinIDTest {
|
|||||||
System.out.println("------DelphinID 1D array comparison test---------");
|
System.out.println("------DelphinID 1D array comparison test---------");
|
||||||
|
|
||||||
double seglen = 4;
|
double seglen = 4;
|
||||||
|
|
||||||
//test the model
|
//test the model
|
||||||
//String modelPath = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Dde415/whistle_4s_415_model.zip";
|
//String modelPath = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Dde415/whistle_4s_415_model.zip";
|
||||||
String modelPath = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/whistleclassifier.zip";
|
String modelPath = "/Users/au671271/Library/CloudStorage/Dropbox/PAMGuard_dev/Deep_Learning/delphinID/delphinIDmodels/Ggr242/whistleclassifier.zip";
|
||||||
@ -408,8 +408,27 @@ public class DelphinIDTest {
|
|||||||
//the values for the whistle detector.
|
//the values for the whistle detector.
|
||||||
double[][] whistleValues = DLMatFile.matrix2array(array);
|
double[][] whistleValues = DLMatFile.matrix2array(array);
|
||||||
|
|
||||||
|
double[] freqLimits = new double[] {2000., 20000.};
|
||||||
|
|
||||||
|
//Create spectrum
|
||||||
//the values for the whistle detector.
|
//the values for the whistle detector.
|
||||||
double[] whistleArray = whistle2AverageArray(whistleValues, array.getDouble(0), seglen);
|
double[] whistleArray = whistle2AverageArray(whistleValues, array.getDouble(0), seglen, freqLimits);
|
||||||
|
|
||||||
|
System.out.println("Whistle spectrum size: " + whistleArray.length);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
float[] whistleSpectrumF = PamArrayUtils.double2Float(whistleArray);
|
||||||
|
|
||||||
|
//generate model input
|
||||||
|
float[][] input = new float[1][];
|
||||||
|
input[0] = whistleSpectrumF;
|
||||||
|
|
||||||
|
float[] outputJava = model.runModel(input);
|
||||||
|
|
||||||
|
System.out.println("Whistle spectrum output: ");
|
||||||
|
PamArrayUtils.printArray(outputJava);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (MalformedModelException | IOException e) {
|
catch (MalformedModelException | IOException e) {
|
||||||
|
@ -142,9 +142,9 @@ public class DelphinIDTest {
|
|||||||
public static void modelInputTest() {
|
public static void modelInputTest() {
|
||||||
|
|
||||||
//test whether a single segment gives the correct answer.
|
//test whether a single segment gives the correct answer.
|
||||||
boolean result = rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDTest.testDelphinIDImage(null);
|
// boolean result = rawDeepLearningClassifier.dlClassification.delphinID.DelphinIDTest.testDelphinIDImage(null);
|
||||||
|
|
||||||
assertTrue(result);
|
// assertTrue(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,8 @@ package userDisplay;
|
|||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
import javax.swing.JInternalFrame;
|
import javax.swing.JInternalFrame;
|
||||||
|
|
||||||
|
import PamView.PamIcon;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Frames for general purpose user displays.
|
* Frames for general purpose user displays.
|
||||||
* Doesn't do much apart from use the normal frame functions, but
|
* Doesn't do much apart from use the normal frame functions, but
|
||||||
@ -28,8 +30,9 @@ public class UserDisplayFrame extends JInternalFrame {
|
|||||||
// getLayeredPane().add(userDisplayComponent.getComponent(), JLayeredPane.DEFAULT_LAYER);
|
// getLayeredPane().add(userDisplayComponent.getComponent(), JLayeredPane.DEFAULT_LAYER);
|
||||||
add(userDisplayComponent.getComponent());
|
add(userDisplayComponent.getComponent());
|
||||||
setTitle(userDisplayComponent.getFrameTitle());
|
setTitle(userDisplayComponent.getFrameTitle());
|
||||||
setFrameIcon(new ImageIcon(ClassLoader
|
|
||||||
.getSystemResource("Resources/pamguardIcon.png")));
|
setFrameIcon(PamIcon.getPAMGuardImageIcon(PamIcon.SMALL));
|
||||||
|
|
||||||
setSize(900, 400);
|
setSize(900, 400);
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user