mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2024-11-22 07:02:29 +00:00
Add unit tests to deep learning and remove unwanted X3 libraries
This commit is contained in:
parent
3a74152beb
commit
aa6d289984
@ -1,6 +1,5 @@
|
|||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
encoding//src/rawDeepLearningClassifer/segmenter/SegmenterProcess.java=UTF-8
|
encoding//src/rawDeepLearningClassifer/segmenter/SegmenterProcess.java=UTF-8
|
||||||
encoding//src/test=UTF-8
|
|
||||||
encoding//src/test/resources=UTF-8
|
encoding//src/test/resources=UTF-8
|
||||||
encoding/<project>=UTF-8
|
encoding/<project>=UTF-8
|
||||||
encoding/src=UTF-8
|
encoding/src=UTF-8
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=18
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=21
|
org.eclipse.jdt.core.compiler.compliance=18
|
||||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
@ -13,4 +13,4 @@ org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
|||||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||||
org.eclipse.jdt.core.compiler.release=enabled
|
org.eclipse.jdt.core.compiler.release=enabled
|
||||||
org.eclipse.jdt.core.compiler.source=21
|
org.eclipse.jdt.core.compiler.source=18
|
||||||
|
149
pom.xml
149
pom.xml
@ -19,6 +19,10 @@
|
|||||||
<javafx.version>21</javafx.version>
|
<javafx.version>21</javafx.version>
|
||||||
<maven.compiler.source>11</maven.compiler.source>
|
<maven.compiler.source>11</maven.compiler.source>
|
||||||
<maven.compiler.target>11</maven.compiler.target>
|
<maven.compiler.target>11</maven.compiler.target>
|
||||||
|
<!-- Thethys version control -->
|
||||||
|
<jaxb.runtime.version>2.4.0-b180830.0438</jaxb.runtime.version>
|
||||||
|
<jaxb.api.version>2.4.0-b180830.0359</jaxb.api.version>
|
||||||
|
<jaxb.xjc.version>2.4.0-b180830.0438</jaxb.xjc.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -29,6 +33,7 @@
|
|||||||
<resource>
|
<resource>
|
||||||
<directory>src</directory>
|
<directory>src</directory>
|
||||||
<excludes>
|
<excludes>
|
||||||
|
<exclude>META-INF/*.SF,META-INF/*.DSA,META-INF/*.RSA</exclude>
|
||||||
<exclude>**/*.java</exclude> <!-- don't include any source files -->
|
<exclude>**/*.java</exclude> <!-- don't include any source files -->
|
||||||
<exclude>jars/*.*</exclude> <!-- don't include files in the jars folder -->
|
<exclude>jars/*.*</exclude> <!-- don't include files in the jars folder -->
|
||||||
</excludes>
|
</excludes>
|
||||||
@ -748,6 +753,146 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- From NilusXMLGenerator POM at https://bitbucket.org/tethysacousticmetadata/nilusxmlgenerator/src/master/-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.persistence</groupId>
|
||||||
|
<artifactId>org.eclipse.persistence.moxy</artifactId>
|
||||||
|
<version>2.5.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
<version>${jaxb.api.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.glassfish.jaxb</groupId>
|
||||||
|
<artifactId>jaxb-runtime</artifactId>
|
||||||
|
<version>${jaxb.runtime.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.glassfish.jaxb</groupId>
|
||||||
|
<artifactId>jaxb-xjc</artifactId>
|
||||||
|
<version>${jaxb.xjc.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- dependencies copied from TethysJavaClient -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.jersey.contribs</groupId>
|
||||||
|
<artifactId>jersey-multipart</artifactId>
|
||||||
|
<version>1.18.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-cli</groupId>
|
||||||
|
<artifactId>commons-cli</artifactId>
|
||||||
|
<version>1.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi</artifactId>
|
||||||
|
<version>3.10-beta1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.jersey</groupId>
|
||||||
|
<artifactId>jersey-client</artifactId>
|
||||||
|
<version>1.18.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.jersey.contribs</groupId>
|
||||||
|
<artifactId>jersey-apache-client</artifactId>
|
||||||
|
<version>1.18.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.miglayout</groupId>
|
||||||
|
<artifactId>miglayout</artifactId>
|
||||||
|
<version>3.7.4</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>ca.juliusdavies</groupId>
|
||||||
|
<artifactId>not-yet-commons-ssl</artifactId>
|
||||||
|
<version>0.3.11</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.ws.rs</groupId>
|
||||||
|
<artifactId>javax.ws.rs-api</artifactId>
|
||||||
|
<version>2.1.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
<version>2.2.11</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sun.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-impl</artifactId>
|
||||||
|
<version>2.2.11</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.activation</groupId>
|
||||||
|
<artifactId>activation</artifactId>
|
||||||
|
<version>1.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.glassfish.jaxb</groupId>
|
||||||
|
<artifactId>jaxb-core</artifactId>
|
||||||
|
<version>2.2.11</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.glassfish.jersey.core</groupId>
|
||||||
|
<artifactId>jersey-common</artifactId>
|
||||||
|
<version>2.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-text</artifactId>
|
||||||
|
<version>1.9</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- dependencies copied from TethysJavaClient END -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Thethy library not in Maven central, so you may need to copy the javaclient and nilus folders from
|
||||||
|
e.g. C:\Users\dg50\source\repos\**your projectfolder**\repo\tethys\org
|
||||||
|
to C:\Users\dg50\.m2\repository\tethys\org -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>tethys.org</groupId>
|
||||||
|
<artifactId>nilus</artifactId>
|
||||||
|
<version>3.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>tethys.org</groupId>
|
||||||
|
<artifactId>javaclient</artifactId>
|
||||||
|
<version>3.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
X3 library for decompressing sud files. Not in Maven repository
|
X3 library for decompressing sud files. Not in Maven repository
|
||||||
you may need to copy files from your downloaded PAMGuard source code,
|
you may need to copy files from your downloaded PAMGuard source code,
|
||||||
@ -755,9 +900,9 @@
|
|||||||
C:\Users\*yourusername*\.m2\repository\pamguard\org\x3\2.2.2
|
C:\Users\*yourusername*\.m2\repository\pamguard\org\x3\2.2.2
|
||||||
-->
|
-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>pamguard.org</groupId>
|
<groupId>org.pamguard</groupId>
|
||||||
<artifactId>x3</artifactId>
|
<artifactId>x3</artifactId>
|
||||||
<version>2.2.6</version>
|
<version>2.2.7</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,89 +0,0 @@
|
|||||||
<?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.5</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,12 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
<<<<<<<< HEAD:repo/org/pamguard/x3/2.2.5/_remote.repositories
|
|
||||||
#Wed Aug 02 09:25:44 BST 2023
|
|
||||||
X3-2.2.5-sources.jar>=
|
|
||||||
X3-2.2.5-javadoc.jar>=
|
|
||||||
X3-2.2.5.jar>=
|
|
||||||
X3-2.2.5.pom>=
|
|
||||||
========
|
|
||||||
#Thu Dec 21 11:14:13 GMT 2023
|
|
||||||
nilus-3.0.pom>=
|
|
||||||
nilus-3.0.jar>=
|
|
||||||
>>>>>>>> upstream/main:repo/tethys/org/nilus/3.0/_remote.repositories
|
|
@ -1,11 +0,0 @@
|
|||||||
#Mon Jul 31 15:39:20 BST 2023
|
|
||||||
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|javadoc=1690814360177
|
|
||||||
repo|file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/repo|sources=1690814174968
|
|
||||||
talan|https\://nexus.talanlabs.com/content/repositories/releases/|javadoc=1690814360177
|
|
||||||
central|https\://repo1.maven.org/maven2|sources=1690814174968
|
|
||||||
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|javadoc=1690814360177
|
|
||||||
talan|https\://nexus.talanlabs.com/content/repositories/releases/|sources=1690814174968
|
|
||||||
repo|file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/repo|javadoc=1690814360177
|
|
||||||
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|sources=1690814174968
|
|
||||||
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|sources=1690814174968
|
|
||||||
central|https\://repo1.maven.org/maven2|javadoc=1690814360177
|
|
@ -1,12 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Mon Jul 31 15:39:20 BST 2023
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/repo/.lastUpdated=1690814258163
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1690814359540
|
|
||||||
https\://repo1.maven.org/maven2/.error=
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/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=1690814259502
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1690814259201
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1690814360177
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.2.5 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Connect timed out
|
|
@ -1,12 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Mon Jul 31 15:36:14 BST 2023
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/repo/.lastUpdated=1690814073151
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1690814174749
|
|
||||||
https\://repo1.maven.org/maven2/.error=
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/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=1690814074700
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1690814074514
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1690814174968
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.2.5 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Connect timed out
|
|
@ -1,12 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Mon Jul 31 15:33:58 BST 2023
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/repo/.lastUpdated=1690813936812
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1690814037920
|
|
||||||
https\://repo1.maven.org/maven2/.error=
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/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=1690813937853
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1690813937654
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1690814038162
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:2.2.5 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Connect timed out
|
|
@ -1,16 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Mon Jul 31 15:32:16 BST 2023
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1690813866779
|
|
||||||
https\://repo1.maven.org/maven2/.error=
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard\\target\\classes\\META-INF\\maven\\org.pamguard\\Pamguard/repo/.error=
|
|
||||||
file\://${project.basedir}/repo/.lastUpdated=1690813675129
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard\\target\\classes\\META-INF\\maven\\org.pamguard\\Pamguard/repo/.lastUpdated=1690813936624
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1690813676327
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1690813777090
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:pom\:2.2.5 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Connect timed out
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/repo/.lastUpdated=1690813766739
|
|
||||||
file\://${project.basedir}/repo/.error=
|
|
||||||
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/repo/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1690813676687
|
|
@ -1,10 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/_remote.repositories
|
|
||||||
#Thu Oct 26 14:35:14 BST 2023
|
|
||||||
x3-2.2.3.jar>=
|
|
||||||
x3-2.2.3.pom>=
|
|
||||||
========
|
|
||||||
#Fri Jan 12 10:06:13 GMT 2024
|
|
||||||
x3-2.2.7.jar>=
|
|
||||||
x3-2.2.7.pom>=
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/_remote.repositories
|
|
@ -1,12 +0,0 @@
|
|||||||
#Thu Oct 26 15:50:39 BST 2023
|
|
||||||
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|javadoc=1698327546071
|
|
||||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo|sources=1698327461721
|
|
||||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo|javadoc=1698327546071
|
|
||||||
talan|https\://nexus.talanlabs.com/content/repositories/releases/|javadoc=1698327546071
|
|
||||||
central|https\://repo1.maven.org/maven2|sources=1698331839689
|
|
||||||
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|javadoc=1698327546071
|
|
||||||
talan|https\://nexus.talanlabs.com/content/repositories/releases/|sources=1698331839689
|
|
||||||
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|sources=1698331839689
|
|
||||||
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|sources=1698331839689
|
|
||||||
central|https\://repo1.maven.org/maven2|javadoc=1698327546071
|
|
||||||
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo|sources=1698331839689
|
|
@ -1,25 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/x3-2.2.3-javadoc.jar.lastUpdated
|
|
||||||
#Thu Oct 26 14:39:06 BST 2023
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1698327545863
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1698327544361
|
|
||||||
========
|
|
||||||
#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
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/x3-2.2.7-javadoc.jar.lastUpdated
|
|
||||||
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=
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/x3-2.2.3-javadoc.jar.lastUpdated
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1698327545797
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1698327545616
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1698327546068
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.2.3 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: nexus.talanlabs.com
|
|
||||||
========
|
|
||||||
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
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/x3-2.2.7-javadoc.jar.lastUpdated
|
|
@ -1,28 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/x3-2.2.3-sources.jar.lastUpdated
|
|
||||||
#Thu Oct 26 15:50:39 BST 2023
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1698327461349
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1698327459306
|
|
||||||
https\://repo1.maven.org/maven2/.error=
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1698327460817
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1698327461652
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.2.3 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: nexus.talanlabs.com
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.lastUpdated=1698331839687
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1698327461288
|
|
||||||
========
|
|
||||||
#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
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/x3-2.2.7-sources.jar.lastUpdated
|
|
Binary file not shown.
@ -1,13 +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>
|
|
||||||
<groupId>pamguard.org</groupId>
|
|
||||||
<artifactId>x3</artifactId>
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/x3-2.2.3.pom
|
|
||||||
<version>2.2.3</version>
|
|
||||||
========
|
|
||||||
<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>
|
|
@ -1,4 +0,0 @@
|
|||||||
#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
|
|
||||||
x3-2.2.6.jar>=
|
|
||||||
x3-2.2.6.pom>=
|
|
Binary file not shown.
@ -1,9 +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>
|
|
||||||
<groupId>pamguard.org</groupId>
|
|
||||||
<artifactId>x3</artifactId>
|
|
||||||
<version>2.2.6</version>
|
|
||||||
<description>POM was created from install:install-file</description>
|
|
||||||
</project>
|
|
@ -1,10 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/_remote.repositories
|
|
||||||
#Thu Oct 26 14:35:14 BST 2023
|
|
||||||
x3-2.2.3.jar>=
|
|
||||||
x3-2.2.3.pom>=
|
|
||||||
========
|
|
||||||
#Fri Jan 12 10:06:13 GMT 2024
|
|
||||||
x3-2.2.7.jar>=
|
|
||||||
x3-2.2.7.pom>=
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/_remote.repositories
|
|
@ -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,25 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/x3-2.2.3-javadoc.jar.lastUpdated
|
|
||||||
#Thu Oct 26 14:39:06 BST 2023
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1698327545863
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1698327544361
|
|
||||||
========
|
|
||||||
#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
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/x3-2.2.7-javadoc.jar.lastUpdated
|
|
||||||
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=
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/x3-2.2.3-javadoc.jar.lastUpdated
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1698327545797
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1698327545616
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1698327546068
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.2.3 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: nexus.talanlabs.com
|
|
||||||
========
|
|
||||||
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
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/x3-2.2.7-javadoc.jar.lastUpdated
|
|
@ -1,28 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/x3-2.2.3-sources.jar.lastUpdated
|
|
||||||
#Thu Oct 26 15:50:39 BST 2023
|
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1698327461349
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1698327459306
|
|
||||||
https\://repo1.maven.org/maven2/.error=
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1698327460817
|
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1698327461652
|
|
||||||
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.2.3 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: nexus.talanlabs.com
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.lastUpdated=1698331839687
|
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.error=
|
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1698327461288
|
|
||||||
========
|
|
||||||
#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
|
|
||||||
>>>>>>>> upstream/main:repo/pamguard/org/x3/2.2.7/x3-2.2.7-sources.jar.lastUpdated
|
|
Binary file not shown.
@ -1,13 +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>
|
|
||||||
<groupId>pamguard.org</groupId>
|
|
||||||
<artifactId>x3</artifactId>
|
|
||||||
<<<<<<<< HEAD:repo/pamguard/org/x3/2.2.3/x3-2.2.3.pom
|
|
||||||
<version>2.2.3</version>
|
|
||||||
========
|
|
||||||
<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>
|
|
@ -135,7 +135,7 @@ public class PamAudioFileManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (stream == null) {
|
if (stream == null) {
|
||||||
System.err.println("PamAudioFileManager: unable to open an AudioStream for " + file.getName());
|
System.err.println("PamAudioFileManager: unable to open an AudioStream for " + file.getName() + " size: " + file.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
return stream;
|
return stream;
|
||||||
|
@ -254,7 +254,7 @@ public class WavAudioFile implements PamAudioFileLoader {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AudioInputStream getAudioStream(File soundFile) {
|
public AudioInputStream getAudioStream(File soundFile) {
|
||||||
if (soundFile.exists() == false) return null;
|
if (soundFile.exists() == false || soundFile.length()<44) return null;
|
||||||
if (soundFile != null && isSoundFile(soundFile)) {
|
if (soundFile != null && isSoundFile(soundFile)) {
|
||||||
try {
|
try {
|
||||||
return WavFileInputStream.openInputStream(soundFile);
|
return WavFileInputStream.openInputStream(soundFile);
|
||||||
@ -262,7 +262,7 @@ public class WavAudioFile implements PamAudioFileLoader {
|
|||||||
catch (UnsupportedAudioFileException | IOException e) {
|
catch (UnsupportedAudioFileException | IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
// don't do anything and it will try the built in Audiosystem
|
// don't do anything and it will try the built in Audiosystem
|
||||||
System.err.println("Could not open wav file: trying default audio stream: " + soundFile.getName());
|
System.err.println("Could not open wav file: trying default audio stream: " + soundFile.getName() + " " + soundFile.length());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
@ -276,9 +276,24 @@ public class WavAudioFile implements PamAudioFileLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean isSoundFile(File soundFile) {
|
public static boolean isSoundFile(File soundFile) {
|
||||||
String extension = FileUtils.getExtension(soundFile.getName());
|
String extension = FileUtils.getExtension(soundFile.getName());
|
||||||
return (extension.equals(".wav"));
|
//2023-03-12 - for some reason this was .wav
|
||||||
|
return (extension.equals("wav"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String args[]) {
|
||||||
|
|
||||||
|
File wavFile = new File("E:\\SoundNet\\1chan_analysis\\pamguard\\67150826\\mf_wav\\20180529\\PAM_20180529_055114_000.wav");
|
||||||
|
try {
|
||||||
|
WavFileInputStream.openInputStream(wavFile);
|
||||||
|
System.out.println("Wav file opened successfully: " + isSoundFile(wavFile));
|
||||||
|
|
||||||
|
} catch (UnsupportedAudioFileException | IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,13 +51,15 @@ public class WavFileInputStream extends AudioInputStream {
|
|||||||
if (wavHeader.readHeader(windowsFile) == false) {
|
if (wavHeader.readHeader(windowsFile) == false) {
|
||||||
throw new UnsupportedAudioFileException("Unsupprted wav file format in " + file.getName());
|
throw new UnsupportedAudioFileException("Unsupprted wav file format in " + file.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
long nFrames = wavHeader.getDataSize() / wavHeader.getBlockAlign();
|
long nFrames = wavHeader.getDataSize() / wavHeader.getBlockAlign();
|
||||||
|
|
||||||
//29/03/2017 Found that the block align read from header was wrong in SoundTrap. This solves the problem and is still OK for normal
|
//29/03/2017 Found that the block align read from header was wrong in SoundTrap. This solves the problem and is still OK for normal
|
||||||
//wav files (this is in fact tha standard emthod for calculated blockalign)
|
//wav files (this is in fact tha standard emthod for calculated blockalign)
|
||||||
int blockAlign = wavHeader.getNChannels() * (wavHeader.getBitsPerSample() / 8);
|
int blockAlign = wavHeader.getNChannels() * (wavHeader.getBitsPerSample() / 8);
|
||||||
|
|
||||||
//System.out.println("NFRAMES: " + nFrames + " "+ wavHeader.getDataSize() + " " + wavHeader.getBlockAlign() + " "+blockAlign );
|
System.out.println("NFRAMES: " + nFrames + " "+ wavHeader.getDataSize() + " " + wavHeader.getBlockAlign() + " "+blockAlign );
|
||||||
|
|
||||||
Encoding encoding = getEncoding(wavHeader.getFmtTag());
|
Encoding encoding = getEncoding(wavHeader.getFmtTag());
|
||||||
if (encoding == null) {
|
if (encoding == null) {
|
||||||
|
@ -170,7 +170,12 @@ public class PamConfiguration {
|
|||||||
public PamDataBlock getDataBlock(Class blockType, String name) {
|
public PamDataBlock getDataBlock(Class blockType, String name) {
|
||||||
if (name == null) return null;
|
if (name == null) return null;
|
||||||
ArrayList<PamDataBlock> blocks = getDataBlocks(blockType, true);
|
ArrayList<PamDataBlock> blocks = getDataBlocks(blockType, true);
|
||||||
|
|
||||||
|
System.out.println(name);
|
||||||
|
|
||||||
for (PamDataBlock dataBlock:blocks) {
|
for (PamDataBlock dataBlock:blocks) {
|
||||||
|
// System.out.println(dataBlock.getLongDataName() + " ||| " + dataBlock.toString());
|
||||||
|
|
||||||
if (name.equals(dataBlock.getLongDataName())) { // check for a long name match first
|
if (name.equals(dataBlock.getLongDataName())) { // check for a long name match first
|
||||||
return dataBlock;
|
return dataBlock;
|
||||||
}
|
}
|
||||||
@ -184,6 +189,27 @@ public class PamConfiguration {
|
|||||||
return dataBlock;
|
return dataBlock;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return tryShortDataName(blockType, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For when the function calling with longdataname fails!
|
||||||
|
* @param blockType
|
||||||
|
* @param name
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private PamDataBlock tryShortDataName(Class blockType, String name) {
|
||||||
|
if (name == null) return null;
|
||||||
|
ArrayList<PamDataBlock> blocks = getDataBlocks(blockType, true);
|
||||||
|
|
||||||
|
System.out.println(name);
|
||||||
|
|
||||||
|
for (PamDataBlock dataBlock:blocks) {
|
||||||
|
|
||||||
|
if (name.equals(dataBlock.getDataName())) { // check for a long name match first
|
||||||
|
return dataBlock;
|
||||||
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -937,34 +937,4 @@ public abstract class PamControlledUnit implements SettingsNameProvider {
|
|||||||
this.pamConfiguration = pamConfiguration;
|
this.pamConfiguration = pamConfiguration;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The PamConfiguration holds the master list of modules which form part of a
|
|
||||||
* configuration. It should be accessed to find list of datablocks, etc. rather than
|
|
||||||
* doing everything through PAMController whenever possible.
|
|
||||||
* @return the pamConfiguration
|
|
||||||
*/
|
|
||||||
public PamConfiguration getPamConfiguration() {
|
|
||||||
if (pamConfiguration == null) {
|
|
||||||
pamConfiguration = PamController.getInstance().getPamConfiguration();
|
|
||||||
}
|
|
||||||
return pamConfiguration;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Is this module in the main configuration. If it isn't then it's probably a dummy config
|
|
||||||
* used in the batch processor or for importing / exporting configs, so it should be stopped from
|
|
||||||
* doing too much !
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public boolean isInMainConfiguration() {
|
|
||||||
return pamConfiguration == PamController.getInstance().getPamConfiguration();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param pamConfiguration the pamConfiguration to set
|
|
||||||
*/
|
|
||||||
public void setPamConfiguration(PamConfiguration pamConfiguration) {
|
|
||||||
this.pamConfiguration = pamConfiguration;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1004,18 +1004,47 @@ public class PamArrayUtils {
|
|||||||
return newArray;
|
return newArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if two Long arrays contain the same elements
|
||||||
|
* @param shape - the array to compare to.
|
||||||
|
* @param shape2 - the array to be compared.
|
||||||
|
*/
|
||||||
|
public static boolean arrEquals(Long[] shape, Long[] shape2) {
|
||||||
|
if (shape.length!=shape2.length) return false;
|
||||||
|
|
||||||
|
for (int i =0 ;i<shape.length; i++) {
|
||||||
|
if (shape[i]!=shape2[i]) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if two int arrays contain the same elements
|
* Check if two int arrays contain the same elements
|
||||||
* @param arr1 - the array to compare to.
|
* @param shape - the array to compare to.
|
||||||
* @param arr2 - the array to be compared.
|
* @param shape2 - the array to be compared.
|
||||||
*/
|
*/
|
||||||
public static boolean arrEquals(int[] arr1, int[] arr2) {
|
public static boolean arrEquals(int[] shape, int[] shape2) {
|
||||||
if (arr1.length!=arr2.length) return false;
|
if (shape.length!=shape2.length) return false;
|
||||||
|
|
||||||
for (int i =0 ;i<arr1.length; i++) {
|
for (int i =0 ;i<shape.length; i++) {
|
||||||
if (arr1[i]!=arr2[i]) return false;
|
if (shape[i]!=shape2[i]) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if two long arrays contain the same elements
|
||||||
|
* @param shape - the array to compare to.
|
||||||
|
* @param shape2 - the array to be compared.
|
||||||
|
*/
|
||||||
|
public static boolean arrEquals(long[] shape, long[] shape2) {
|
||||||
|
if (shape.length!=shape2.length) return false;
|
||||||
|
|
||||||
|
for (int i =0 ;i<shape.length; i++) {
|
||||||
|
if (shape[i]!=shape2[i]) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -1132,6 +1161,7 @@ public class PamArrayUtils {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,8 +20,10 @@ import userDisplayFX.UserDisplayNodeFX;
|
|||||||
import userDisplayFX.UserDisplayNodeParams;
|
import userDisplayFX.UserDisplayNodeParams;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pane which shows users all data currently stored in binary files and databases within PAMGuard. Also allows for navigation to
|
* Pane which shows users all data currently stored in binary files and
|
||||||
* different part of the data time series.
|
* databases within PAMGuard. Also allows for navigation to different part of
|
||||||
|
* the data time series.
|
||||||
|
*
|
||||||
* @author Jamie Macaulay
|
* @author Jamie Macaulay
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -204,7 +204,7 @@ public class DataStreamPaneFX extends PamBorderPane {
|
|||||||
/**
|
/**
|
||||||
* The wheel scroll factor.
|
* The wheel scroll factor.
|
||||||
*/
|
*/
|
||||||
private double wheelScrollFactor = 0.2;
|
private double wheelScrollFactor = 0.1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writable image for 3D datagram.
|
* Writable image for 3D datagram.
|
||||||
@ -370,16 +370,24 @@ public class DataStreamPaneFX extends PamBorderPane {
|
|||||||
if (timeline!=null) timeline.stop();
|
if (timeline!=null) timeline.stop();
|
||||||
timeline = new Timeline(new KeyFrame(
|
timeline = new Timeline(new KeyFrame(
|
||||||
Duration.millis(tm),
|
Duration.millis(tm),
|
||||||
ae -> paintCanvas(0)));
|
ae -> {
|
||||||
|
// System.out.println("Paint Canvas zero");
|
||||||
|
paintCanvas(0);
|
||||||
|
}));
|
||||||
timeline.play();
|
timeline.play();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
lastTime=currentTime;
|
lastTime=currentTime;
|
||||||
|
|
||||||
|
long time1 = System.currentTimeMillis();
|
||||||
paintPlotCanvas(plotCanvas.getGraphicsContext2D());
|
paintPlotCanvas(plotCanvas.getGraphicsContext2D());
|
||||||
paintDrawCanvas(drawCanvas.getGraphicsContext2D());
|
paintDrawCanvas(drawCanvas.getGraphicsContext2D());
|
||||||
|
|
||||||
|
long time2 = System.currentTimeMillis();
|
||||||
|
|
||||||
|
System.out.println("Paint Canvas: " + this + " " + System.currentTimeMillis() + " " + (time2-time1));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,14 +605,16 @@ public class DataStreamPaneFX extends PamBorderPane {
|
|||||||
}
|
}
|
||||||
datagramImage = new WritableImage(imageData.length, imageData[0].length);
|
datagramImage = new WritableImage(imageData.length, imageData[0].length);
|
||||||
PixelWriter writableRaster = datagramImage.getPixelWriter();
|
PixelWriter writableRaster = datagramImage.getPixelWriter();
|
||||||
|
g.setFill(Color.LIGHTGRAY);
|
||||||
|
g.fillRect(0, 0, nXPoints, nYPoints);
|
||||||
for (int i = 0; i < nXPoints; i++) {
|
for (int i = 0; i < nXPoints; i++) {
|
||||||
for (int j = 0; j < nYPoints; j++) {
|
for (int j = 0; j < nYPoints; j++) {
|
||||||
y = nYPoints-j-1;
|
y = nYPoints-j-1;
|
||||||
if (imageData[i][j] < 0) {
|
if (imageData[i][j] < 0) {
|
||||||
writableRaster.setColor(i,y,Color.LIGHTGRAY);
|
//writableRaster.setColor(i,y,Color.LIGHTGRAY);
|
||||||
}
|
}
|
||||||
else if (imageData[i][j] == 0) {
|
else if (imageData[i][j] == 0) {
|
||||||
writableRaster.setColor(i,y, Color.LIGHTGRAY);
|
//writableRaster.setColor(i,y, Color.LIGHTGRAY);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
iCol = (int) (NCOLOURPOINTS * (Math.log(imageData[i][j]) - minMaxValue[0]) / scaleRange);
|
iCol = (int) (NCOLOURPOINTS * (Math.log(imageData[i][j]) - minMaxValue[0]) / scaleRange);
|
||||||
@ -1032,10 +1042,6 @@ public class DataStreamPaneFX extends PamBorderPane {
|
|||||||
repaint(ScrollingDataPaneFX.REPAINTMILLIS); //update at 10 frames per second
|
repaint(ScrollingDataPaneFX.REPAINTMILLIS); //update at 10 frames per second
|
||||||
}
|
}
|
||||||
|
|
||||||
private void repaint() {
|
|
||||||
this.repaint(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the pane which sits at the top of the datagraph and contains a label showing the datablock being displayed.
|
* Get the pane which sits at the top of the datagraph and contains a label showing the datablock being displayed.
|
||||||
* @return the pane which sits at the top of the datagraph
|
* @return the pane which sits at the top of the datagraph
|
||||||
|
@ -29,8 +29,9 @@ public class ScrollingDataPaneFX extends PamBorderPane {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard millis to wait for repaint.
|
* Standard millis to wait for repaint.
|
||||||
|
* Do not ake this too high i.e. above 50 or the display gets very jerky
|
||||||
*/
|
*/
|
||||||
public static final long REPAINTMILLIS = 200;
|
public static final long REPAINTMILLIS = 50;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The default expanded hieght for each pane.
|
* The default expanded hieght for each pane.
|
||||||
|
@ -237,7 +237,7 @@ public class ModuleConnectionNode extends StandardConnectionNode implements PAMC
|
|||||||
removeButton.setGraphic(PamGlyphDude.createPamIcon("mdi2m-minus", Color.WHITE, PamGuiManagerFX.iconSize));
|
removeButton.setGraphic(PamGlyphDude.createPamIcon("mdi2m-minus", Color.WHITE, PamGuiManagerFX.iconSize));
|
||||||
removeButton.setMaxSize(Double.MAX_VALUE,Double.MAX_VALUE);
|
removeButton.setMaxSize(Double.MAX_VALUE,Double.MAX_VALUE);
|
||||||
removeButton.setOnAction((change)->{
|
removeButton.setOnAction((change)->{
|
||||||
if (this.pamControlledUnit.getPamModuleInfo().canRemove()){
|
if (this.pamControlledUnit.getPamModuleInfo()== null || this.pamControlledUnit.getPamModuleInfo().canRemove()){
|
||||||
connectionPane.removeModuleNode(this);
|
connectionPane.removeModuleNode(this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -620,7 +620,7 @@ public class ModuleConnectionNode extends StandardConnectionNode implements PAMC
|
|||||||
//add tool tip
|
//add tool tip
|
||||||
if (pamControlledUnit!=null){
|
if (pamControlledUnit!=null){
|
||||||
|
|
||||||
//sometimes seems to cause an issue woith dialogs disappearing.
|
//sometimes seems to cause an issue with dialogs disappearing.
|
||||||
// Tooltip tp = new Tooltip(pamControlledUnit.getUnitType());
|
// Tooltip tp = new Tooltip(pamControlledUnit.getUnitType());
|
||||||
// tp.getStyleClass().removeAll(tp.getStyleClass());
|
// tp.getStyleClass().removeAll(tp.getStyleClass());
|
||||||
// Tooltip.install(this, tp);
|
// Tooltip.install(this, tp);
|
||||||
@ -637,19 +637,19 @@ public class ModuleConnectionNode extends StandardConnectionNode implements PAMC
|
|||||||
removeConnectionPlug(getConnectionPlugs().get(i),false);
|
removeConnectionPlug(getConnectionPlugs().get(i),false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pamControlledUnit.getPamModuleInfo()!=null) {
|
||||||
Node icon = ModuleIconFactory.getInstance().
|
Node icon = ModuleIconFactory.getInstance().
|
||||||
getModuleNode(pamControlledUnit.getPamModuleInfo().getClassName());
|
getModuleNode(pamControlledUnit.getPamModuleInfo().getClassName());
|
||||||
if (pamControlledUnit.getPamModuleInfo()!=null && icon!=null){
|
if (icon!=null){
|
||||||
StackPane iconPane = new StackPane(icon);
|
StackPane iconPane = new StackPane(icon);
|
||||||
iconPane.setPrefSize(DataModelStyle.iconSize, DataModelStyle.iconSize);
|
iconPane.setPrefSize(DataModelStyle.iconSize, DataModelStyle.iconSize);
|
||||||
iconPane.setAlignment(Pos.CENTER);
|
iconPane.setAlignment(Pos.CENTER);
|
||||||
StackPane.setAlignment(iconPane, Pos.CENTER); //make sure the image or node is centered.
|
StackPane.setAlignment(iconPane, Pos.CENTER); //make sure the image or node is centered.
|
||||||
this.getConnectionNodeBody().getChildren().add(iconPane);
|
this.getConnectionNodeBody().getChildren().add(iconPane);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
moduleNodeParams = new ModuleNodeParams(this);
|
moduleNodeParams = new ModuleNodeParams(this);
|
||||||
|
@ -236,6 +236,9 @@ public class NoiseBandControl extends PamControlledUnit implements PamSettings {
|
|||||||
@Override
|
@Override
|
||||||
public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings) {
|
public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings) {
|
||||||
noiseBandSettings = ((NoiseBandSettings)pamControlledUnitSettings.getSettings()).clone();
|
noiseBandSettings = ((NoiseBandSettings)pamControlledUnitSettings.getSettings()).clone();
|
||||||
|
System.out.println("********************************************************");
|
||||||
|
System.out.println("NOISE BAND SETTINGS: " + noiseBandSettings.rawDataSource);
|
||||||
|
System.out.println("********************************************************");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,6 +231,9 @@ public class NoiseBandDialog extends PamDialog {
|
|||||||
singleInstance = new NoiseBandDialog(parentFrame, noiseBandControl);
|
singleInstance = new NoiseBandDialog(parentFrame, noiseBandControl);
|
||||||
}
|
}
|
||||||
singleInstance.setupComplete = false;
|
singleInstance.setupComplete = false;
|
||||||
|
// System.out.println("********************************************************");
|
||||||
|
// System.out.println("NOISE BAND DIALOG: " + singleInstance.noiseBandSettings.rawDataSource);
|
||||||
|
// System.out.println("********************************************************");
|
||||||
singleInstance.noiseBandSettings = noiseBandControl.noiseBandSettings.clone();
|
singleInstance.noiseBandSettings = noiseBandControl.noiseBandSettings.clone();
|
||||||
singleInstance.setParams();
|
singleInstance.setParams();
|
||||||
singleInstance.setVisible(true);
|
singleInstance.setVisible(true);
|
||||||
@ -287,7 +290,7 @@ public class NoiseBandDialog extends PamDialog {
|
|||||||
if (dataBlock == null) {
|
if (dataBlock == null) {
|
||||||
return showWarning("You must select a source of raw audio data");
|
return showWarning("You must select a source of raw audio data");
|
||||||
}
|
}
|
||||||
noiseBandSettings.rawDataSource = dataBlock.getDataName();
|
noiseBandSettings.rawDataSource = dataBlock.getLongDataName();
|
||||||
noiseBandSettings.channelMap = sourcePanel.getChannelList();
|
noiseBandSettings.channelMap = sourcePanel.getChannelList();
|
||||||
if (noiseBandSettings.channelMap == 0) {
|
if (noiseBandSettings.channelMap == 0) {
|
||||||
return showWarning("You must select at least one data channel");
|
return showWarning("You must select at least one data channel");
|
||||||
|
@ -63,6 +63,10 @@ public class NoiseBandProcess extends PamProcess {
|
|||||||
public void setupProcess() {
|
public void setupProcess() {
|
||||||
super.setupProcess();
|
super.setupProcess();
|
||||||
PamDataBlock sourceData = noiseBandControl.getPamConfiguration().getDataBlock(RawDataUnit.class, noiseBandControl.noiseBandSettings.rawDataSource);
|
PamDataBlock sourceData = noiseBandControl.getPamConfiguration().getDataBlock(RawDataUnit.class, noiseBandControl.noiseBandSettings.rawDataSource);
|
||||||
|
|
||||||
|
System.out.println("********************************************************");
|
||||||
|
System.out.println("NOISE BAND PROCESS: " + sourceData + " " + noiseBandControl.noiseBandSettings.rawDataSource);
|
||||||
|
System.out.println("********************************************************");
|
||||||
if (sourceData == null) {
|
if (sourceData == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
|||||||
import org.jamdev.jdl4pam.transforms.DLTransform.DLTransformType;
|
import org.jamdev.jdl4pam.transforms.DLTransform.DLTransformType;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
|
|
||||||
|
import PamUtils.PamArrayUtils;
|
||||||
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
|
import rawDeepLearningClassifier.dlClassification.animalSpot.StandardModelParams;
|
||||||
import rawDeepLearningClassifier.layoutFX.exampleSounds.ExampleSoundFactory.ExampleSoundType;
|
import rawDeepLearningClassifier.layoutFX.exampleSounds.ExampleSoundFactory.ExampleSoundType;
|
||||||
|
|
||||||
@ -116,16 +117,22 @@ public class GenericModelParams extends StandardModelParams implements Cloneable
|
|||||||
//both transforms must be null and so can still be equal
|
//both transforms must be null and so can still be equal
|
||||||
}
|
}
|
||||||
|
|
||||||
// System.out.println("TRANSFORMS ARE EQUAL");
|
|
||||||
//check the rest.
|
//check the rest.
|
||||||
|
|
||||||
boolean isEqual =
|
boolean isEqual =
|
||||||
this.useDefaultSegLen == params.useDefaultSegLen &&
|
this.useDefaultSegLen == params.useDefaultSegLen &&
|
||||||
this.defaultSegmentLen.equals(params.defaultSegmentLen) &&
|
this.defaultSegmentLen.equals(params.defaultSegmentLen) &&
|
||||||
this.shape.equals(params.shape) &&
|
PamArrayUtils.arrEquals(this.shape, params.shape) &&
|
||||||
this.outputShape.equals(params.outputShape);
|
PamArrayUtils.arrEquals(this.outputShape, params.outputShape);
|
||||||
//Arrays.equals( this.classNames, params.classNames);
|
//Arrays.equals( this.classNames, params.classNames);
|
||||||
|
|
||||||
|
// System.out.println("Other bits are equal:?" + isEqual
|
||||||
|
// + " use defult seg len " + (this.useDefaultSegLen == params.useDefaultSegLen)
|
||||||
|
// + " defaultSegmentLen " + (this.defaultSegmentLen.equals(params.defaultSegmentLen)
|
||||||
|
// + " input shape " + this.shape.equals(params.shape)
|
||||||
|
// + " output shape " + this.shape.equals(params.shape)));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return isEqual;
|
return isEqual;
|
||||||
|
|
||||||
|
@ -377,6 +377,7 @@ public class SegmenterProcess extends PamProcess {
|
|||||||
//create a new data unit - should only be called once after initial start.
|
//create a new data unit - should only be called once after initial start.
|
||||||
currentRawChunks[i] = new GroupedRawData(timeMilliseconds, getSourceParams().getGroupChannels(i),
|
currentRawChunks[i] = new GroupedRawData(timeMilliseconds, getSourceParams().getGroupChannels(i),
|
||||||
startSampleTime, dlControl.getDLParams().rawSampleSize, dlControl.getDLParams().rawSampleSize);
|
startSampleTime, dlControl.getDLParams().rawSampleSize, dlControl.getDLParams().rawSampleSize);
|
||||||
|
|
||||||
currentRawChunks[i].setParentDataUnit(unit);;
|
currentRawChunks[i].setParentDataUnit(unit);;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -653,7 +654,7 @@ public class SegmenterProcess extends PamProcess {
|
|||||||
* @author Jamie Macaulay
|
* @author Jamie Macaulay
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class GroupedRawData extends PamDataUnit implements PamDetection, Cloneable {
|
public static class GroupedRawData extends PamDataUnit implements PamDetection, Cloneable {
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -18,7 +18,7 @@ import rawDeepLearningClassifier.dlClassification.genericModel.GenericModelParse
|
|||||||
class DLJSONParserTest {
|
class DLJSONParserTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test() {
|
public void testDLJsonParser() {
|
||||||
|
|
||||||
|
|
||||||
//load an old file
|
//load an old file
|
||||||
|
@ -0,0 +1,92 @@
|
|||||||
|
package test.rawDeepLearningClassifier;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import javax.sound.sampled.UnsupportedAudioFileException;
|
||||||
|
|
||||||
|
import org.jamdev.jdl4pam.utils.DLUtils;
|
||||||
|
import org.jamdev.jpamutils.wavFiles.AudioData;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import rawDeepLearningClassifier.defaultModels.RightWhaleModel1;
|
||||||
|
import rawDeepLearningClassifier.dlClassification.genericModel.GenericModelParams;
|
||||||
|
import rawDeepLearningClassifier.dlClassification.genericModel.GenericModelWorker;
|
||||||
|
import rawDeepLearningClassifier.dlClassification.genericModel.GenericPrediction;
|
||||||
|
import rawDeepLearningClassifier.segmenter.SegmenterProcess.GroupedRawData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the generic classifier.
|
||||||
|
*
|
||||||
|
* @author Jamie Macaulay
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class GenericDLClassifierTest {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run a test on the Generic DL Classifier. This tests the worker can open and run a model
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void rightWhaleDLWorker() {
|
||||||
|
//relative paths to the resource folders.
|
||||||
|
String relModelPath = "./src/test/resources/rawDeepLearningClassifier/Generic/right_whale/model_lenet_dropout_input_conv_all/saved_model.pb";
|
||||||
|
String relWavPath = "./src/test/resources/rawDeepLearningClassifier/Generic/right_whale/right_whale_example.wav";
|
||||||
|
|
||||||
|
Path path = Paths.get(relModelPath);
|
||||||
|
|
||||||
|
GenericModelWorker genericModelWorker = new GenericModelWorker();
|
||||||
|
|
||||||
|
GenericModelParams genericModelParams = new GenericModelParams();
|
||||||
|
|
||||||
|
genericModelParams.modelPath = path.toAbsolutePath().normalize().toString();
|
||||||
|
|
||||||
|
RightWhaleModel1 rightWhaleModel = new RightWhaleModel1();
|
||||||
|
rightWhaleModel.setParams(genericModelParams);
|
||||||
|
|
||||||
|
//prep the model
|
||||||
|
genericModelWorker.prepModel(genericModelParams, null);
|
||||||
|
|
||||||
|
/****Now run a file ***/
|
||||||
|
path = Paths.get(relWavPath);
|
||||||
|
String wavFilePath = path.toAbsolutePath().normalize().toString();
|
||||||
|
|
||||||
|
AudioData soundData;
|
||||||
|
try {
|
||||||
|
soundData = DLUtils.loadWavFile(wavFilePath);
|
||||||
|
|
||||||
|
long duration = (long) ((genericModelParams.defaultSegmentLen/1000)*soundData.sampleRate);
|
||||||
|
|
||||||
|
GroupedRawData groupedRawData = new GroupedRawData(0, 1, 0, duration, (int) duration);
|
||||||
|
groupedRawData.copyRawData(soundData.getScaledSampleAmplitudes(), 0, soundData.getScaledSampleAmplitudes().length, 0);
|
||||||
|
|
||||||
|
ArrayList<GroupedRawData> groupedData = new ArrayList<GroupedRawData>();
|
||||||
|
|
||||||
|
|
||||||
|
groupedData.add(groupedRawData);
|
||||||
|
|
||||||
|
ArrayList<GenericPrediction> gwenericPrediciton = genericModelWorker.runModel(groupedData, soundData.sampleRate, 0);
|
||||||
|
|
||||||
|
float[] output = gwenericPrediciton.get(0).getPrediction();
|
||||||
|
|
||||||
|
System.out.println("Right whale network output: " + output[0] + " " + output[1]);
|
||||||
|
|
||||||
|
//test the predicitons are true.
|
||||||
|
assertTrue( output[0]<0.01 ); //noise
|
||||||
|
assertTrue( output[1]>0.98 ); //right whale
|
||||||
|
|
||||||
|
genericModelWorker.closeModel();
|
||||||
|
|
||||||
|
} catch (IOException | UnsupportedAudioFileException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
assertEquals(false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -1,67 +0,0 @@
|
|||||||
package test.rawDeepLearningClassifier;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
||||||
import rawDeepLearningClassifier.DLControl;
|
|
||||||
import rawDeepLearningClassifier.dlClassification.ketos.KetosClassifier;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
public class KetosClassifierTest {
|
|
||||||
|
|
||||||
// /**
|
|
||||||
// * Reference to the DL Control
|
|
||||||
// *
|
|
||||||
// */
|
|
||||||
// private DLControl testDLControl;
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// private KetosClassifier ketosClassifier_test;
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
// public KetosClassifierTest() {
|
|
||||||
// System.out.println("hello unit test start");
|
|
||||||
|
|
||||||
// try {
|
|
||||||
//
|
|
||||||
// if (PamController.getInstance()==null || PamController.getInstance().getRunMode() != PamController.RUN_NORMAL) {
|
|
||||||
// PamGUIManager.setType(PamGUIManager.NOGUI);
|
|
||||||
// PamController.create(PamController.RUN_NORMAL, null);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// testDLControl = new DLControl("Test_deep_learning");
|
|
||||||
//
|
|
||||||
// ketosClassifier_test = (KetosClassifier) testDLControl.getDLModel(KetosClassifier.MODEL_NAME);
|
|
||||||
//
|
|
||||||
// //set the ketos model as the correct model in the test.
|
|
||||||
// testDLControl.getDLParams().modelSelection= testDLControl.getDLModels().indexOf(ketosClassifier_test);
|
|
||||||
//
|
|
||||||
// System.out.println("hello unit test complete");
|
|
||||||
// }
|
|
||||||
// catch (Exception e) {
|
|
||||||
// e.printStackTrace();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test the ketos classifier and tests are working properly.
|
|
||||||
*/
|
|
||||||
@Test
|
|
||||||
public void ketosClassifierTest() {
|
|
||||||
System.out.println("hello unit test complete b");
|
|
||||||
|
|
||||||
// this.ketosClassifier_test.checkModelOK();
|
|
||||||
assertEquals(2, 1+1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test that the whole process chain works with ketos i.e. test the segmenter etc. is performing properly.
|
|
||||||
*/
|
|
||||||
@Test
|
|
||||||
public void ketosProcessTest() {
|
|
||||||
System.out.println("hello unit test complete");
|
|
||||||
|
|
||||||
assertEquals(2, 2);
|
|
||||||
}
|
|
||||||
}
|
|
154
src/test/rawDeepLearningClassifier/KetosDLClassifierTest.java
Normal file
154
src/test/rawDeepLearningClassifier/KetosDLClassifierTest.java
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
package test.rawDeepLearningClassifier;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import javax.sound.sampled.UnsupportedAudioFileException;
|
||||||
|
|
||||||
|
import org.jamdev.jdl4pam.utils.DLUtils;
|
||||||
|
import org.jamdev.jpamutils.wavFiles.AudioData;
|
||||||
|
|
||||||
|
import rawDeepLearningClassifier.dlClassification.genericModel.GenericPrediction;
|
||||||
|
import rawDeepLearningClassifier.dlClassification.ketos.KetosDLParams;
|
||||||
|
import rawDeepLearningClassifier.dlClassification.ketos.KetosWorker2;
|
||||||
|
import rawDeepLearningClassifier.segmenter.SegmenterProcess.GroupedRawData;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public class KetosDLClassifierTest {
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * Reference to the DL Control
|
||||||
|
// *
|
||||||
|
// */
|
||||||
|
// private DLControl testDLControl;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// private KetosClassifier ketosClassifier_test;
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
// public KetosClassifierTest() {
|
||||||
|
// System.out.println("hello unit test start");
|
||||||
|
|
||||||
|
// try {
|
||||||
|
//
|
||||||
|
// if (PamController.getInstance()==null || PamController.getInstance().getRunMode() != PamController.RUN_NORMAL) {
|
||||||
|
// PamGUIManager.setType(PamGUIManager.NOGUI);
|
||||||
|
// PamController.create(PamController.RUN_NORMAL, null);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// testDLControl = new DLControl("Test_deep_learning");
|
||||||
|
//
|
||||||
|
// ketosClassifier_test = (KetosClassifier) testDLControl.getDLModel(KetosClassifier.MODEL_NAME);
|
||||||
|
//
|
||||||
|
// //set the ketos model as the correct model in the test.
|
||||||
|
// testDLControl.getDLParams().modelSelection= testDLControl.getDLModels().indexOf(ketosClassifier_test);
|
||||||
|
//
|
||||||
|
// System.out.println("hello unit test complete");
|
||||||
|
// }
|
||||||
|
// catch (Exception e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test the ketos classifier and tests are working properly.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void ketosClassifierTest() {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of the predicitons
|
||||||
|
* Start time (seconds), Length of the segment (seconds), prediciton
|
||||||
|
*/
|
||||||
|
double[][] ketosPredicitons = {
|
||||||
|
{0, 5.0176, 0.1565524},
|
||||||
|
{5, 5.0176, 0.99999917},
|
||||||
|
{10, 5.0176, 0.99999917},
|
||||||
|
{15, 5.0176, 0.97594243},
|
||||||
|
{20, 5.0176, 0.8802458},
|
||||||
|
{25, 5.0176, 0.9999999},
|
||||||
|
{30, 5.0176, 0.999993},
|
||||||
|
{35, 5.0176, 0.9998863},
|
||||||
|
{40, 5.0176, 0.99998367},
|
||||||
|
{45, 5.0176, 0.21531366},
|
||||||
|
{50, 5.0176, 0.9999987},
|
||||||
|
{55, 5.0176, 1},
|
||||||
|
{60, 5.0176, 0.9999989},
|
||||||
|
{65, 5.0176, 0.9999993},
|
||||||
|
{70, 5.0176, 0.99999845},
|
||||||
|
{75, 5.0176, 1},
|
||||||
|
{80, 5.0176, 0.20126265},
|
||||||
|
{85, 5.0176, 0.9797412},
|
||||||
|
{90, 5.0176, 1}};
|
||||||
|
|
||||||
|
//relative paths to the resource folders.
|
||||||
|
String relModelPath = "./src/test/resources/rawDeepLearningClassifier/Ketos/hallo-kw-det_v1/hallo-kw-det_v1.ktpb";
|
||||||
|
String relWavPath = "./src/test/resources/rawDeepLearningClassifier/Ketos/hallo-kw-det_v1/jasco_reduced.wav";
|
||||||
|
|
||||||
|
Path path = Paths.get(relModelPath);
|
||||||
|
|
||||||
|
KetosWorker2 ketosWorker2 = new KetosWorker2();
|
||||||
|
|
||||||
|
KetosDLParams genericModelParams = new KetosDLParams();
|
||||||
|
genericModelParams.modelPath = path.toAbsolutePath().normalize().toString();
|
||||||
|
|
||||||
|
//prep the model - all setting are included within the model
|
||||||
|
ketosWorker2.prepModel(genericModelParams, null);
|
||||||
|
System.out.println("seglen: " + genericModelParams.defaultSegmentLen);
|
||||||
|
|
||||||
|
/****Now run a file ***/
|
||||||
|
path = Paths.get(relWavPath);
|
||||||
|
String wavFilePath = path.toAbsolutePath().normalize().toString();
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
|
||||||
|
AudioData soundData = DLUtils.loadWavFile(wavFilePath);
|
||||||
|
double[] soundDataD = soundData.getScaledSampleAmplitudes();
|
||||||
|
|
||||||
|
long duration = (long) Math.ceil((genericModelParams.defaultSegmentLen/1000)*soundData.sampleRate);
|
||||||
|
System.out.println("duration: " + duration + " " + soundData.sampleRate + " " + genericModelParams.defaultSegmentLen);
|
||||||
|
|
||||||
|
//dont't
|
||||||
|
for (int i=1; i<ketosPredicitons.length; i++) {
|
||||||
|
|
||||||
|
|
||||||
|
GroupedRawData groupedRawData = new GroupedRawData(0, 1, 0, duration, (int) duration);
|
||||||
|
int startChunk =(int) (ketosPredicitons[i][0]*soundData.sampleRate);
|
||||||
|
|
||||||
|
|
||||||
|
groupedRawData.copyRawData(soundDataD, startChunk, (int) duration, 0);
|
||||||
|
|
||||||
|
ArrayList<GroupedRawData> groupedData = new ArrayList<GroupedRawData>();
|
||||||
|
groupedData.add(groupedRawData);
|
||||||
|
|
||||||
|
ArrayList<GenericPrediction> genericPrediciton = ketosWorker2.runModel(groupedData, soundData.sampleRate, 0);
|
||||||
|
float[] output = genericPrediciton.get(0).getPrediction();
|
||||||
|
|
||||||
|
boolean testPassed= output[1]> ketosPredicitons[i][2]-0.1 && output[1]< ketosPredicitons[i][2]+0.1;
|
||||||
|
System.out.println( i+ " : Ketos whale network output: " + output[0] + " " + output[1] + " " + testPassed);
|
||||||
|
|
||||||
|
//assertTrue(output[1]> ketosPredicitons[i][2]-0.1 && output[1]< ketosPredicitons[i][2]+0.1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ketosWorker2.closeModel();
|
||||||
|
|
||||||
|
} catch (IOException | UnsupportedAudioFileException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
assertEquals(false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,20 @@
|
|||||||
|
filename,start,duration,score
|
||||||
|
jasco_reduced.wav,0.0,5.0176,0.1565524
|
||||||
|
jasco_reduced.wav,5.0,5.0176,0.99999917
|
||||||
|
jasco_reduced.wav,10.0,5.0176,0.99999917
|
||||||
|
jasco_reduced.wav,15.0,5.0176,0.97594243
|
||||||
|
jasco_reduced.wav,20.0,5.0176,0.8802458
|
||||||
|
jasco_reduced.wav,25.0,5.0176,0.9999999
|
||||||
|
jasco_reduced.wav,30.0,5.0176,0.9999932
|
||||||
|
jasco_reduced.wav,35.0,5.0176,0.9998863
|
||||||
|
jasco_reduced.wav,40.0,5.0176,0.99998367
|
||||||
|
jasco_reduced.wav,45.0,5.0176,0.21531366
|
||||||
|
jasco_reduced.wav,50.0,5.0176,0.9999987
|
||||||
|
jasco_reduced.wav,55.0,5.0176,1.0
|
||||||
|
jasco_reduced.wav,60.0,5.0176,0.9999989
|
||||||
|
jasco_reduced.wav,65.0,5.0176,0.9999993
|
||||||
|
jasco_reduced.wav,70.0,5.0176,0.99999845
|
||||||
|
jasco_reduced.wav,75.0,5.0176,1.0
|
||||||
|
jasco_reduced.wav,80.0,5.0176,0.20126265
|
||||||
|
jasco_reduced.wav,85.0,5.0176,0.9797412
|
||||||
|
jasco_reduced.wav,90.0,5.0176,1.0
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user