Updates to localiser and sud repo

This commit is contained in:
Jamie Mac 2023-08-04 16:48:53 +01:00
parent 1a6da45413
commit c3ffb84545
67 changed files with 715 additions and 468 deletions

View File

@ -819,9 +819,9 @@ you may need to copy files from your downloaded PAMGuard source code, e.g. C:\Us
C:\Users\*yourusername*\.m2\repository\pamguard\org\x3\2.2.2
-->
<dependency>
<groupId>pamguard.org</groupId>
<groupId>org.pamguard</groupId>
<artifactId>x3</artifactId>
<version>2.2.2</version>
<version>2.2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/it.sauronsoftware/jave -->

Binary file not shown.

Binary file not shown.

View 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.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>

View File

@ -1,4 +1,6 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Fri Aug 14 15:49:24 CEST 2020
x3-1.0.0.pom>=
x3-1.0.0.jar>=
#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>=

View File

@ -0,0 +1,11 @@
#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

View File

@ -0,0 +1,12 @@
#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

View File

@ -0,0 +1,12 @@
#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

View File

@ -1,12 +1,12 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Thu May 04 11:43:09 BST 2023
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1683196988926
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
#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\\dg50\\source\\repos\\PAMGuardDG/repo/.lastUpdated=1683196987083
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=1683196988663
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1683196988452
https\://repo1.maven.org/maven2/.lastUpdated=1683196989198
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:pom\:2.2.2 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.2.2/x3-2.2.2.pom. Error code 401, Unauthorized
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

View File

@ -0,0 +1,16 @@
#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

View File

@ -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>1.0.0</version>
<description>POM was created from install:install-file</description>
</project>

View File

@ -1,4 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Fri Sep 25 10:46:11 CEST 2020
x3-2.0.0.pom>=
x3-2.0.0.jar>=

View File

@ -1,39 +0,0 @@
#Fri Jan 14 08:14:25 GMT 2022
repo|file\:///Users/au671271/pamguard/PAMGuard/repo|sources=1632311094649
central|https\://jmachund.jfrog.io/artifactory/jpam2|javadoc=1641807924466
repo|file\:///Users/au671271/git/PAMGuard/repo|javadoc=1642148065400
github|https\://maven.pkg.github.com/macster110/jpam|sources=1642147913185
repo|file\:///Users/au671271/pamguard/PAMGuard_16_mvn/repo|sources=1625576160247
icm|http\://maven.icm.edu.pl/artifactory/repo|javadoc=1600971368390
talan|https\://nexus.talanlabs.com/content/repositories/releases/|sources=1642147913185
geomajas|http\://maven.geomajas.org/|javadoc=1642148065400
central|https\://repo.maven.apache.org/maven2|javadoc=1642065819015
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|sources=1642147913185
repo|file\:///Users/au671271/pamguard/PAMGuard_12_mvn/repo|sources=1602589977893
jpamutils|https\://raw.github.com/macster110/jpam/mvn-repo/|javadoc=1642065819015
icm|http\://maven.icm.edu.pl/artifactory/repo|sources=1600971300139
geomajas|http\://maven.geomajas.org/|sources=1642147913185
central|https\://repo1.maven.org/maven2|sources=1642147913185
central|https\://repo.maven.apache.org/maven2|sources=1642065813019
github|https\://maven.pkg.github.com/macster110/jpam|javadoc=1642148065400
bintray-jerady-maven|https\://dl.bintray.com/jerady/maven|sources=1602589977893
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|javadoc=1642148065400
jpamutils|https\://raw.github.com/macster110/jpam/mvn-repo/|sources=1642065813019
my-local-repo|file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars|sources=1600949483388
repo|file\:///Users/au671271/git/PAMGuard/repo|sources=1642147913185
bintray-macster110-jtorch4pam|macster110|https\://dl.bintray.com/macster110/jtorch4pam|javadoc=1642148065400
jdl4pam|https\://raw.github.com/macster110/jpam/mvn-repo/|javadoc=1642065819015
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|sources=1642147913185
icm|https\://maven.averbis.com/m2/|sources=1601026887474
bintray-jerady-maven|https\://dl.bintray.com/jerady/maven|javadoc=1602590126606
talan|https\://nexus.talanlabs.com/content/repositories/releases/|javadoc=1642148065400
central|https\://jmachund.jfrog.io/artifactory/jpam2|sources=1641807658592
my-local-repo|file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars|javadoc=1600949605299
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|javadoc=1642148065400
icm|https\://maven.averbis.com/m2/|javadoc=1601027283465
repo|file\:///Users/au671271/pamguard/PAMGuard_12_mvn/repo|javadoc=1602590126606
jdl4pam|https\://raw.github.com/macster110/jpam/mvn-repo/|sources=1642065813019
bintray-macster110-jtorch4pam|macster110|https\://dl.bintray.com/macster110/jtorch4pam|sources=1642147913185
repo|file\:///Users/au671271/pamguard/PAMGuard_16_mvn/repo|javadoc=1625576167973
repo|file\:///Users/au671271/pamguard/PAMGuard/repo|javadoc=1632313121603
central|https\://repo1.maven.org/maven2|javadoc=1642148065400

View File

@ -1,38 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Fri Jan 14 08:14:25 GMT 2022
https\://dl.bintray.com/macster110/jtorch4pam/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars/.error=
https\://jmachund.jfrog.io/artifactory/jpam2/.lastUpdated=1625576167971
file\:///Users/au671271/pamguard/PAMGuard/repo/.error=
file\:///Users/au671271/pamguard/PAMGuard_16_mvn/repo/.lastUpdated=1622023729745
https\://dl.bintray.com/macster110/jtorch4pam/.lastUpdated=1600949601867
file\:///Users/au671271/git/PAMGuard/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=1600949603273
https\://maven.averbis.com/m2/.lastUpdated=1601027283464
file\:///Users/au671271/git/PAMGuard/repo/.lastUpdated=1641807924465
https\://raw.github.com/macster110/jpam/mvn-repo/.lastUpdated=1642065819012
file\:///Users/au671271/pamguard/PAMGuard_16_mvn/repo/.error=
http\://maven.icm.edu.pl/artifactory/repo/.lastUpdated=1600971368389
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1600949604396
http\://maven.icm.edu.pl/artifactory/repo/.error=
https\://repo1.maven.org/maven2/.error=
@default-github-https\://maven.pkg.github.com/macster110/jpam/.lastUpdated=1642148065399
file\:///Users/au671271/pamguard/PAMGuard/repo/.lastUpdated=1632313121601
https\://repo1.maven.org/maven2/.lastUpdated=1642148065192
https\://dl.bintray.com/jerady/maven/.lastUpdated=1600949602327
http\://maven.geomajas.org/.lastUpdated=1600949604068
https\://nexus.talanlabs.com/content/repositories/releases/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/repo/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars/.lastUpdated=1600949601869
https\://repo.maven.apache.org/maven2/.lastUpdated=1600949605299
http\://maven.geomajas.org/.error=
https\://jmachund.jfrog.io/artifactory/jpam2/.error=
https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1600949604877
https\://maven.averbis.com/m2/.error=
https\://repo.maven.apache.org/maven2/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/repo/.lastUpdated=1602590126603
https\://maven.pkg.github.com/macster110/jpam/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.0.0 from/to github (https\://maven.pkg.github.com/macster110/jpam)\: Access denied to https\://maven.pkg.github.com/macster110/jpam/pamguard/org/x3/2.0.0/x3-2.0.0-javadoc.jar. Error code 401,
https\://dl.bintray.com/jerady/maven/.error=
https\://raw.github.com/macster110/jpam/mvn-repo/.error=

View File

@ -1,38 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Fri Jan 14 08:11:53 GMT 2022
https\://dl.bintray.com/macster110/jtorch4pam/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars/.error=
https\://jmachund.jfrog.io/artifactory/jpam2/.lastUpdated=1625576160246
file\:///Users/au671271/pamguard/PAMGuard/repo/.error=
file\:///Users/au671271/pamguard/PAMGuard_16_mvn/repo/.lastUpdated=1622023729649
https\://dl.bintray.com/macster110/jtorch4pam/.lastUpdated=1600949479758
file\:///Users/au671271/git/PAMGuard/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=1600949481209
https\://maven.averbis.com/m2/.lastUpdated=1601026887474
file\:///Users/au671271/git/PAMGuard/repo/.lastUpdated=1641807658590
https\://raw.github.com/macster110/jpam/mvn-repo/.lastUpdated=1642065813017
file\:///Users/au671271/pamguard/PAMGuard_16_mvn/repo/.error=
http\://maven.icm.edu.pl/artifactory/repo/.lastUpdated=1600971300137
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1600949482388
http\://maven.icm.edu.pl/artifactory/repo/.error=
https\://repo1.maven.org/maven2/.error=
@default-github-https\://maven.pkg.github.com/macster110/jpam/.lastUpdated=1642147913184
file\:///Users/au671271/pamguard/PAMGuard/repo/.lastUpdated=1632311094646
https\://repo1.maven.org/maven2/.lastUpdated=1642147912977
https\://dl.bintray.com/jerady/maven/.lastUpdated=1600949480238
http\://maven.geomajas.org/.lastUpdated=1600949482017
https\://nexus.talanlabs.com/content/repositories/releases/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/repo/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars/.lastUpdated=1600949479759
https\://repo.maven.apache.org/maven2/.lastUpdated=1600949483387
http\://maven.geomajas.org/.error=
https\://jmachund.jfrog.io/artifactory/jpam2/.error=
https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1600949482866
https\://maven.averbis.com/m2/.error=
https\://repo.maven.apache.org/maven2/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/repo/.lastUpdated=1602589977891
https\://maven.pkg.github.com/macster110/jpam/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.0.0 from/to github (https\://maven.pkg.github.com/macster110/jpam)\: Access denied to https\://maven.pkg.github.com/macster110/jpam/pamguard/org/x3/2.0.0/x3-2.0.0-sources.jar. Error code 401,
https\://dl.bintray.com/jerady/maven/.error=
https\://raw.github.com/macster110/jpam/mvn-repo/.error=

View File

@ -1,18 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Thu Sep 24 13:58:55 CEST 2020
https\://dl.bintray.com/macster110/jtorch4pam/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars/.error=
https\://dl.bintray.com/macster110/jtorch4pam/.lastUpdated=1600948677455
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
https\://nexus.bedatadriven.com/content/groups/public/.error=
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1600948714963
https\://dl.bintray.com/jerady/maven/.lastUpdated=1600948680041
http\://maven.geomajas.org/.lastUpdated=1600948729479
https\://nexus.talanlabs.com/content/repositories/releases/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars/.lastUpdated=1600948677498
https\://repo.maven.apache.org/maven2/.lastUpdated=1600948686447
http\://maven.geomajas.org/.error=
https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1600948735430
https\://repo.maven.apache.org/maven2/.error=
https\://dl.bintray.com/jerady/maven/.error=
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1600948734692

View File

@ -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.0.0</version>
<description>POM was created from install:install-file</description>
</project>

View File

@ -1,18 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Thu Sep 24 13:57:29 CEST 2020
https\://dl.bintray.com/macster110/jtorch4pam/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars/.error=
https\://dl.bintray.com/macster110/jtorch4pam/.lastUpdated=1600948647604
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
https\://nexus.bedatadriven.com/content/groups/public/.error=
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1600948648002
https\://dl.bintray.com/jerady/maven/.lastUpdated=1600948647670
http\://maven.geomajas.org/.lastUpdated=1600948648672
https\://nexus.talanlabs.com/content/repositories/releases/.error=
file\:///Users/au671271/pamguard/PAMGuard_12_mvn/src/jars/.lastUpdated=1600948647606
https\://repo.maven.apache.org/maven2/.lastUpdated=1600948649503
http\://maven.geomajas.org/.error=
https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1600948649324
https\://repo.maven.apache.org/maven2/.error=
https\://dl.bintray.com/jerady/maven/.error=
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1600948648816

View File

@ -1,4 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Tue Oct 11 15:59:57 BST 2022
x3-2.1.0.jar>=
x3-2.1.0.pom>=

View File

@ -1,13 +0,0 @@
#Thu Oct 06 15:38:43 BST 2022
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|javadoc=1665067123455
repo|file\:///Users/au671271/git/PAMGuard/repo|javadoc=1665067123455
repo|file\:///Users/au671271/git/PAMGuard/repo|sources=1665067040129
talan|https\://nexus.talanlabs.com/content/repositories/releases/|sources=1665067040129
bintray-macster110-jtorch4pam|macster110|https\://dl.bintray.com/macster110/jtorch4pam|javadoc=1665067123455
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|sources=1665067040129
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|sources=1665067040129
talan|https\://nexus.talanlabs.com/content/repositories/releases/|javadoc=1665067123455
central|https\://repo1.maven.org/maven2|sources=1665067040129
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|javadoc=1665067123455
bintray-macster110-jtorch4pam|macster110|https\://dl.bintray.com/macster110/jtorch4pam|sources=1665067040129
central|https\://repo1.maven.org/maven2|javadoc=1665067123455

View File

@ -1,14 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Thu Oct 06 15:38:43 BST 2022
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1665067122194
https\://dl.bintray.com/macster110/jtorch4pam/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.1.0 from/to bintray-macster110-jtorch4pam (https\://dl.bintray.com/macster110/jtorch4pam)\: Remote host terminated the handshake
https\://repo1.maven.org/maven2/.error=
file\:///Users/au671271/git/PAMGuard/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=1665067121806
https\://repo1.maven.org/maven2/.lastUpdated=1665067123455
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.1.0 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.1.0/x3-2.1.0-javadoc.jar. Error code 401, Unauthorized
file\:///Users/au671271/git/PAMGuard/repo/.lastUpdated=1665067120886
4d1f727a0c17e3b21ef2f6654eed0b3113a4db97@default-bintray-macster110-jtorch4pam-https\://dl.bintray.com/macster110/jtorch4pam/.lastUpdated=1665067120883
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1665067122025

View File

@ -1,14 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Thu Oct 06 15:37:20 BST 2022
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1665067039941
https\://dl.bintray.com/macster110/jtorch4pam/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.1.0 from/to bintray-macster110-jtorch4pam (https\://dl.bintray.com/macster110/jtorch4pam)\: Remote host terminated the handshake
https\://repo1.maven.org/maven2/.error=
file\:///Users/au671271/git/PAMGuard/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=1665067039627
https\://repo1.maven.org/maven2/.lastUpdated=1665067040128
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.1.0 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.1.0/x3-2.1.0-sources.jar. Error code 401, Unauthorized
file\:///Users/au671271/git/PAMGuard/repo/.lastUpdated=1665067038933
4d1f727a0c17e3b21ef2f6654eed0b3113a4db97@default-bintray-macster110-jtorch4pam-https\://dl.bintray.com/macster110/jtorch4pam/.lastUpdated=1665067038929
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1665067039782

View File

@ -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.1.0</version>
<description>POM was created from install:install-file</description>
</project>

View File

@ -1,16 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Thu Oct 06 15:51:34 BST 2022
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1665067894494
https\://dl.bintray.com/macster110/jtorch4pam/.error=Could not transfer artifact pamguard.org\:x3\:pom\:2.1.0 from/to bintray-macster110-jtorch4pam (https\://dl.bintray.com/macster110/jtorch4pam)\: Remote host terminated the handshake
@default-repo-file\://${project.basedir}/repo/.lastUpdated=1665067029837
https\://repo1.maven.org/maven2/.error=
file\:///Users/au671271/git/PAMGuard/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=1665067032579
https\://repo1.maven.org/maven2/.lastUpdated=1665067036872
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:pom\:2.1.0 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.1.0/x3-2.1.0.pom. Error code 401, Unauthorized
file\://${project.basedir}/repo/.error=Could not transfer artifact pamguard.org\:x3\:pom\:2.1.0 from/to repo (file\://${project.basedir}/repo)\: Repository path /repo does not exist, and cannot be created.
file\:///Users/au671271/git/PAMGuard/repo/.lastUpdated=1665067033714
4d1f727a0c17e3b21ef2f6654eed0b3113a4db97@default-bintray-macster110-jtorch4pam-https\://dl.bintray.com/macster110/jtorch4pam/.lastUpdated=1665067894257
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1665067034011

View File

@ -1,4 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Mon Nov 14 09:57:39 GMT 2022
x3-2.2.0.jar>=
x3-2.2.0.pom>=

View File

@ -1,7 +0,0 @@
#Fri Nov 11 13:38:50 GMT 2022
central|https\://repo1.maven.org/maven2|sources=1668173930657
repo|file\:///Users/au671271/git/PAMGuard/repo|sources=1668173930657
talan|https\://nexus.talanlabs.com/content/repositories/releases/|sources=1668173930657
bintray-macster110-jtorch4pam|macster110|https\://dl.bintray.com/macster110/jtorch4pam|sources=1668173930657
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|sources=1668173930657
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|sources=1668173930657

View File

@ -1,14 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Fri Nov 11 13:38:50 GMT 2022
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1668173930381
https\://dl.bintray.com/macster110/jtorch4pam/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.2.0 from/to bintray-macster110-jtorch4pam (https\://dl.bintray.com/macster110/jtorch4pam)\: Remote host terminated the handshake
https\://repo1.maven.org/maven2/.error=
file\:///Users/au671271/git/PAMGuard/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=1668173930064
https\://repo1.maven.org/maven2/.lastUpdated=1668173930657
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.2.0 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.2.0/x3-2.2.0-sources.jar. Error code 401, Unauthorized
file\:///Users/au671271/git/PAMGuard/repo/.lastUpdated=1668173929099
4d1f727a0c17e3b21ef2f6654eed0b3113a4db97@default-bintray-macster110-jtorch4pam-https\://dl.bintray.com/macster110/jtorch4pam/.lastUpdated=1668173929096
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1668173930217

View File

@ -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.0</version>
<description>POM was created from install:install-file</description>
</project>

View File

@ -1,4 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Mon Apr 24 10:32:52 BST 2023
x3-2.2.1.jar>=
x3-2.2.1.pom>=

View File

@ -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.1</version>
<description>POM was created from install:install-file</description>
</project>

View File

@ -1,4 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Mon May 08 15:05:07 BST 2023
x3-2.2.2.jar>=
x3-2.2.2.pom>=

View File

@ -1,15 +0,0 @@
#Sat May 06 19:10:45 BST 2023
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|javadoc=1683396645122
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo|javadoc=1683137958887
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo|javadoc=1683137015763
talan|https\://nexus.talanlabs.com/content/repositories/releases/|sources=1683368185314
bedatadriven|https\://nexus.bedatadriven.com/content/groups/public/|sources=1683368185314
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|sources=1683368185314
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo|sources=1683368185314
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo|sources=1683136978098
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo|sources=1683137602295
talan|https\://nexus.talanlabs.com/content/repositories/releases/|javadoc=1683396645122
central|https\://repo1.maven.org/maven2|sources=1683368185314
unidata-all|https\://artifacts.unidata.ucar.edu/repository/unidata-all/|javadoc=1683396645122
repo|file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo|javadoc=1683396645122
central|https\://repo1.maven.org/maven2|javadoc=1683396645122

View File

@ -1,16 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Sat May 06 19:10:45 BST 2023
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1683137015553
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
https\://repo1.maven.org/maven2/.error=
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1683137958884
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo/.lastUpdated=1683396645119
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
https\://nexus.bedatadriven.com/content/groups/public/.error=
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo/.error=
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1683137015146
https\://repo1.maven.org/maven2/.lastUpdated=1683137015762
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:javadoc\:2.2.2 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.2.2/x3-2.2.2-javadoc.jar. Error code 401, Unauthorized
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.lastUpdated=1683137014154
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.error=
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1683137015343

View File

@ -1,16 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Sat May 06 11:16:25 BST 2023
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1683136977699
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
https\://repo1.maven.org/maven2/.error=
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.lastUpdated=1683137602291
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo/.lastUpdated=1683368185312
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
https\://nexus.bedatadriven.com/content/groups/public/.error=
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardTethys/repo/.error=
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1683136976818
https\://repo1.maven.org/maven2/.lastUpdated=1683136978096
https\://nexus.talanlabs.com/content/repositories/releases/.error=Could not transfer artifact pamguard.org\:x3\:jar\:sources\:2.2.2 from/to talan (https\://nexus.talanlabs.com/content/repositories/releases/)\: Access denied to https\://nexus.talanlabs.com/content/repositories/releases/pamguard/org/x3/2.2.2/x3-2.2.2-sources.jar. Error code 401, Unauthorized
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.lastUpdated=1683136975590
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardPAMGuard/repo/.error=
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1683136977227

View File

@ -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.2</version>
<description>POM was created from install:install-file</description>
</project>

View File

@ -1,4 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Mon Jun 19 16:55:00 BST 2023
x3-2.2.4.jar>=
x3-2.2.4.pom>=

View File

@ -1,3 +0,0 @@
#Mon Jun 19 16:37:23 BST 2023
central|https\://repo.maven.apache.org/maven2|sources=1687189039093
central|https\://repo.maven.apache.org/maven2|javadoc=1687189043557

View File

@ -1,4 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Mon Jun 19 16:37:23 BST 2023
https\://repo.maven.apache.org/maven2/.lastUpdated=1687189043557
https\://repo.maven.apache.org/maven2/.error=

View File

@ -1,4 +0,0 @@
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Mon Jun 19 16:37:19 BST 2023
https\://repo.maven.apache.org/maven2/.lastUpdated=1687189039093
https\://repo.maven.apache.org/maven2/.error=

View File

@ -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.4</version>
<description>POM was created from install:install-file</description>
</project>

View File

@ -429,6 +429,8 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
// acquisitionDialog.NotifyChange();
if (file.isFile() && !file.isHidden() && acquisitionDialog != null) {
try {
System.out.println("FileInputSystem - interpretNewFile");
AudioInputStream audioStream = PamAudioFileManager.getInstance().getAudioInputStream(file);
// // Get additional information from the header if it's a wav file.
@ -600,6 +602,8 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
audioStream.close();
}
System.out.println("FileInputSystem - prepareInputFile");
audioStream = PamAudioFileManager.getInstance().getAudioInputStream(currentFile);
if (audioStream instanceof SudAudioInputStream) {

View File

@ -515,8 +515,8 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
*/
public void newFileList(FileListData<WavFileType> fileListData) {
// System.out.printf("Wav list recieved with %d files after %d millis\n",
// fileListData.getFileCount(), System.currentTimeMillis() - wavListStart);
System.out.printf("Wav list recieved with %d files after %d millis\n",
fileListData.getFileCount(), System.currentTimeMillis() - wavListStart);
allFiles = fileListData.getListCopy();
List<WavFileType> asList = allFiles;
@ -535,6 +535,8 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
if (file.isFile() && !file.isHidden() && acquisitionDialog != null) {
//Hidden files should not be used in analysis...
try {
System.out.println("FolderInputSystem - newFileList");
audioStream = PamAudioFileManager.getInstance().getAudioInputStream(file);
AudioFormat audioFormat = audioStream.getFormat();
fileSamples = audioStream.getFrameLength();
@ -917,6 +919,7 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
return true;
}
for (int i = 0; i < allFiles.size(); i++) {
System.out.println("Get file start time");
long fileStart = getFileStartTime(allFiles.get(i).getAbsoluteFile());
if (fileStart >= startTime) {
currentFile = i;

View File

@ -135,6 +135,8 @@ public class StandardFileDate implements FileDate, PamSettings {
@Override
public long getTimeFromFile(File file) {
// System.out.println("Get time from file: getTimeFromFile" );
// if the user wants to force the local PC time, return immediately
if (settings.isForcePCTime()) return 0;

View File

@ -153,7 +153,7 @@ public class PamAudioFileManager {
}
/**
* Get the audio file filter
* Get the audio file filter.
*
* @return the audio file filter.
*/
@ -164,7 +164,7 @@ public class PamAudioFileManager {
/**
* Get the current audio file
*
* @return a list oif the current audio loaders.
* @return a list of the current audio loaders.
*/
public ArrayList<PamAudioFileLoader> getAudioFileLoaders() {
return this.pamAudioFileTypes;

View File

@ -7,6 +7,15 @@ import java.util.Arrays;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.SwingUtilities;
import org.pamguard.x3.sud.ChunkHeader;
import org.pamguard.x3.sud.SudMapListener;
import PamController.PamController;
import PamUtils.worker.PamWorkProgressMessage;
import PamUtils.worker.PamWorkWrapper;
import PamUtils.worker.PamWorker;
/**
* Opens a .sud audio file.
@ -24,7 +33,13 @@ import javax.sound.sampled.UnsupportedAudioFileException;
*/
public class SudAudioFile extends WavAudioFile {
private Object conditionSync = new Object();
private volatile PamWorker<AudioInputStream> worker;
private volatile SudMapWorker sudMapWorker;
public SudAudioFile() {
super();
fileExtensions = new ArrayList<String>(Arrays.asList(new String[]{".sud"}));
@ -34,30 +49,179 @@ public class SudAudioFile extends WavAudioFile {
public String getName() {
return "SUD";
}
@Override
public AudioInputStream getAudioStream(File soundFile) {
synchronized(conditionSync) {
//System.out.println("Get SUD getAudioStream : " + soundFile.getName());
if (soundFile.exists() == false) {
System.err.println("The sud file does not exist: " + soundFile);
return null;
}
if (soundFile != null) {
try {
return new SudAudioFileReader().getAudioInputStream(soundFile);
if (new File(soundFile.getAbsolutePath()+"x").exists()) {
System.out.println("----NO NEED TO MAP SUD FILE-----" + soundFile);
try {
return new SudAudioFileReader().getAudioInputStream(soundFile);
} catch (UnsupportedAudioFileException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else {
System.out.println("----MAP SUD FILE ON OTHER THREAD-----" + soundFile);
/**
* We need to map the sud file. But we don't want this o just freeze the current GUI thread. Therefore
* add a listener to the mapping process and show a blocking dialog to indicate that something is happening.
* The mapping is put on a separate thread and blocks stuff from happening until the mapping process has completed.
*/
if (sudMapWorker==null || !sudMapWorker.getSudFile().equals(soundFile)) {
sudMapWorker = new SudMapWorker(soundFile);
worker = new PamWorker<AudioInputStream>(sudMapWorker, PamController.getInstance().getMainFrame(),1, "Mapping sud file: " + soundFile.getName());
// System.out.println("Sud Audio Stream STARTED: " + soundFile.getName());
SwingUtilities.invokeLater(()->{
worker.start();
});
//this should block AWT thread but won't block if called on another thread..
}
//this is only ever called if this function is called on another thread other than the event dispatch thread.
while (sudMapWorker==null || !sudMapWorker.isDone()) {
//do nothing
System.out.println("Waiting for the SUD file map: " + soundFile.getName() + " worker: " + worker);
try {
// Thread.sleep(100);
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
AudioInputStream stream = sudMapWorker.getSudAudioStream();
// sudMapWorker= null;
// worker = null;
System.out.println("----RETURN SUD FILE ON OTHER THREAD-----" + stream);
return stream;
}
}
}
return null;
}
public class SudMapProgress implements SudMapListener {
PamWorker<AudioInputStream> sudMapWorker;
public SudMapProgress(PamWorker<AudioInputStream> sudMapWorker) {
this.sudMapWorker=sudMapWorker;
}
@Override
public void chunkProcessed(ChunkHeader chunkHeader, int count) {
//System.out.println("Sud Map Progress: " + count);
if (count%500 == 0) {
//don't update too often or everything just freezes
sudMapWorker.update(new PamWorkProgressMessage(-1, ("Mapped " +count + " sud file chunks")));
}
if (count == -1) {
sudMapWorker.update(new PamWorkProgressMessage(-1, ("Mapping sud file finished")));
}
}
}
/**
* Opens an sud file on a different thread and adds a listener for a mapping. This allows
* a callback to show map progress.
* @author Jamie Macaulay
*
*/
public class SudMapWorker implements PamWorkWrapper<AudioInputStream>{
private File soundFile;
private SudMapProgress sudMapListener;
private volatile boolean done = false;
private AudioInputStream result;
public SudMapWorker(File soundFile) {
this.soundFile = soundFile;
}
public File getSudFile() {
return soundFile;
}
public AudioInputStream getSudAudioStream() {
return result;
}
@Override
public AudioInputStream runBackgroundTask(PamWorker<AudioInputStream> pamWorker) {
AudioInputStream stream;
try {
System.out.println("START OPEN SUD FILE:");
this.sudMapListener = new SudMapProgress(pamWorker);
stream = new SudAudioFileReader().getAudioInputStream(soundFile, sudMapListener);
System.out.println("END SUD FILE:");
//for some reason - task finished may not be called on other
//thread so put this here.
this.result = stream;
this.done = true;
return stream;
}
// don't do anything and it will try the built in Audiosystem
catch (UnsupportedAudioFileException e) {
System.err.println("UnsupportedAudioFileException: Could not open sud file: not a supported file " + soundFile.getName());
System.err.println(e.getMessage());
// e.printStackTrace();
// e.printStackTrace();
} catch (IOException e) {
System.err.println("Could not open sud file: IO Exception: " + soundFile.getName());
e.printStackTrace();
}
return null;
}
return null;
@Override
public void taskFinished(AudioInputStream result) {
System.out.println("TASK FINSIHED:");
this.result = result;
this.done = true;
}
public boolean isDone() {
return done;
}
}
}

View File

@ -30,26 +30,45 @@ public class SudAudioFileReader {
sudParams = new SudParams();
//set up the sud params for default. i.e. just read files and
//don't save any decompressed or meta data.
sudParams.saveWav = false;
sudParams.saveMeta = false;
// sudParams.saveWav = false;
// sudParams.saveMeta = false;
sudParams.setFileSave(false, false, false, false);
sudParams.zeroPad = true;
}
/**
* Get the audio input streamn.
* Get the audio input stream for a sud file.
* @param file - the .sud file to open.
* @return the sud AudioStream.
* @throws UnsupportedAudioFileException
* @throws IOException
*/
public AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException {
return getAudioInputStream( file, null);
}
/**
* Get the audio input stream for a sud file.
* @param file - the .sud file to open.
* @param mapListener- a listener for the sud file maps - can be null.
* @return the sud AudioStream.
* @throws UnsupportedAudioFileException
* @throws IOException
*/
public AudioInputStream getAudioInputStream(File file, SudMapListener mapListener) throws UnsupportedAudioFileException, IOException {
// System.out.println("Get SUD getAudioInputStream");
try {
sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, mapListener, false);
} catch (Exception e) {
String msg = String.format("Corrupt sud file %s: %s", file.getName(), e.getMessage());
throw new UnsupportedAudioFileException(msg);
}
return sudAudioInputStream;
}
}

View File

@ -3,10 +3,6 @@ package Acquisition.sud;
import java.io.File;
import org.pamguard.x3.sud.SudAudioInputStream;
import org.pamguard.x3.sud.SudFileMap;
import org.pamguard.x3.sud.SudParams;
import PamUtils.PamCalendar;
public class SUDFileTime {
@ -19,6 +15,9 @@ public class SUDFileTime {
* @return
*/
public static long getSUDFileTime(File file) {
//System.out.println("Get sud file time: " + file.getName());
if (file == null || file.exists() == false) {
return Long.MIN_VALUE;
}
@ -35,22 +34,28 @@ public class SUDFileTime {
*/
// long t1 = System.currentTimeMillis();
sudTime = Long.MIN_VALUE;
SudParams sudParams = new SudParams();
sudParams.saveMeta = false;
sudParams.saveWav = false;
// SudParams sudParams = new SudParams();
// sudParams.saveMeta = false;
// sudParams.saveWav = false;
try {
SudAudioInputStream sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
if (sudAudioInputStream == null) {
return Long.MIN_VALUE;
}
SudFileMap sudMap = sudAudioInputStream.getSudMap();
if (sudMap == null) {
return Long.MIN_VALUE;
}
long t = sudMap.getFirstChunkTimeMillis();
//
// SudAudioInputStream sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
// if (sudAudioInputStream == null) {
// return Long.MIN_VALUE;
// }
// SudFileMap sudMap = sudAudioInputStream.getSudMap();
// if (sudMap == null) {
// return Long.MIN_VALUE;
// }
// long t = sudMap.getFirstChunkTimeMillis();
long t = SudAudioInputStream.quickFileTime(file);
t=t/1000; //turn to milliseconds.
if (t != 0) {
sudTime = t;
}
// sudAudioInputStream.addSudFileListener((chunkID, sudChunk)->{
// ChunkHeader chunkHead = sudChunk.chunkHeader;
// if (chunkHead == null || sudTime != Long.MIN_VALUE) {
@ -69,7 +74,7 @@ public class SUDFileTime {
// sudAudioInputStream.read();
// }
//
sudAudioInputStream.close();
// sudAudioInputStream.close();
// long t2 = System.currentTimeMillis();
// System.out.printf("SUD file time %s extracted in %d milliseconds\n", PamCalendar.formatDBDateTime(sudTime), t2-t1);

View File

@ -59,7 +59,7 @@ public class SUDNotificationManager implements SUDNotificationHandler {
@Override
public void interpretNewFile(String newFile, SudAudioInputStream sudAudioStream) {
for (SUDNotificationHandler handler : handlers) {
handler.interpretNewFile(newFile, sudAudioStream);
handler.interpretNewFile(newFile, sudAudioStream);
}
}

View File

@ -24,13 +24,13 @@ import org.apache.commons.math3.ml.clustering.KMeansPlusPlusClusterer;
* Markov chain Monte Carlo (MCMC) is a minimisation technique used widely in a variety of field, from finding exo planets,
* to solving complex intergals.
* <p>
* This is an advanced and highly computationally intensive localisation algorithm based on MCMC methods. For a good description see;
* This is a highly computationally intensive localisation algorithm based on MCMC methods. For a good description see;
* The Transit Light Curve (TLC) Project.I. Four Consecutive Transits of the Exoplanet XO-1b Matthew J. Holman1
* <p>
* This is an abstract class and requires a chi2 function to operate.
* A chi2 function is required to define the minimisation problem.
* <p>
* Multiple MCMC chains can and should be run. These are executed on different threads to take advantage of multi-core processing as much as possible.
* Even so a large number of chains or large observation set can result in significant processing times.
* Multiple MCMC chains can and should be run. These are executed on different threads to take advantage of multi-core processing if possible.
* Even so, a large number of chains or large observation set can result in significant processing times.
* <p>
* Results are analysed for convergence and final locations packed into an MCMCTDResults class.
*
@ -119,7 +119,7 @@ public class MCMC implements MinimisationAlgorithm {
double newChi;
ArrayList<Double> successChi=new ArrayList<Double>(settings.numberOfJumps/5);
ArrayList<double[]> successJump=new ArrayList<double[]>(settings.numberOfJumps/5);
ArrayList<float[]> successJump=new ArrayList<float[]>(settings.numberOfJumps/5);
// System.out.println("Start MCMC milliseconds: "+ System.currentTimeMillis());
@ -145,7 +145,7 @@ public class MCMC implements MinimisationAlgorithm {
chainPos=potentialNewJump;
currentChi=newChi;
successChi.add(newChi);
successJump.add(chainPos);
successJump.add(PamArrayUtils.double2Float(chainPos));
//System.out.println(ChainPos);
//System.out.println(NewChi);
//System.out.println(ObservedTimeDelays);
@ -155,7 +155,7 @@ public class MCMC implements MinimisationAlgorithm {
chainPos=potentialNewJump;
currentChi=newChi;
successChi.add(newChi);
successJump.add(chainPos);
successJump.add(PamArrayUtils.double2Float(chainPos));
//System.out.println(ChainPos);
//System.out.println(NewChi);
//System.out.println(ObservedTimeDelays);
@ -186,7 +186,7 @@ public class MCMC implements MinimisationAlgorithm {
* @param successJump - list of successful jumps
* @param successChi - list of successful chi2 values.
*/
public ChainResult(ArrayList<double[]> successJump, ArrayList<Double> successChi) {
public ChainResult(ArrayList<float[]> successJump, ArrayList<Double> successChi) {
this.successJump=successJump;
this.successChi=successChi;
}
@ -199,7 +199,7 @@ public class MCMC implements MinimisationAlgorithm {
/**
* A list of points of the successful jumps.
*/
public ArrayList<double[]> successJump;
public ArrayList<float[]> successJump;
/**
* The number of dimensions.
@ -586,7 +586,7 @@ public class MCMC implements MinimisationAlgorithm {
//find min value
int minIndex = chainResult.successChi.indexOf(Collections.min(chainResult.successChi));
minChi2=chainResult.successChi.get(minIndex);
minChi2Pos=chainResult.successJump.get(minIndex);
minChi2Pos=PamArrayUtils.float2Double(chainResult.successJump.get(minIndex));
break;
}
@ -730,19 +730,19 @@ public class MCMC implements MinimisationAlgorithm {
*/
private EllipticalError getLocError(ArrayList<ChainResult> data) {
ArrayList<double[]> successJumpAll = new ArrayList<double[]>();
List<double[]> successJump;
ArrayList<float[]> successJumpAll = new ArrayList<float[]>();
List<float[]> successJump;
for (int i=0; i<data.size(); i++) {
successJump = data.get(i).successJump.subList((int) this.settings.percentageToIgnore*data.get(i).successJump.size(),
data.get(i).successJump.size()-1);
successJumpAll.addAll(successJump);
}
double[][] results= new double[successJumpAll.size()][3];
float[][] results= new float[successJumpAll.size()][3];
results=successJumpAll.toArray(results);
//Elliptical error
EllipticalError ellError= new EllipticalError(results);
EllipticalError ellError= new EllipticalError(PamArrayUtils.float2Double(results));
return ellError;
}

View File

@ -6,6 +6,7 @@ import javax.vecmath.Point3f;
import Localiser.algorithms.genericLocaliser.MCMC.MCMC.ChainResult;
import Localiser.algorithms.locErrors.EllipticalError;
import PamUtils.PamArrayUtils;
public class MCMCResult {
@ -122,12 +123,12 @@ public class MCMCResult {
public ArrayList<ArrayList<Point3f>> getJumps() {
ArrayList<ArrayList<Point3f>> jumps=new ArrayList<ArrayList<Point3f>>();
ArrayList<Point3f> chainJumps;
double[] ajump;
float[] ajump;
for (int i=0; i<this.data.size(); i++) {
chainJumps= new ArrayList<Point3f>();
for (int j=0; j<this.data.get(i).successJump.size(); j++) {
ajump= this.data.get(i).successJump.get(j);
chainJumps.add(new Point3f((float) ajump[0], (float) ajump[1], (float) ajump[2]));
chainJumps.add(new Point3f(ajump[0], ajump[1], ajump[2]));
}
jumps.add(chainJumps);
}
@ -138,6 +139,10 @@ public class MCMCResult {
public double[][] getJumpsd() {
return getJumpsd(1);
}
public double[][] getJumpsf() {
return getJumpsd(1);
}
/**
@ -149,16 +154,50 @@ public class MCMCResult {
if (div<1) div =1;
// int nJumps = 0;
// for (int i=0; i<this.data.size(); i++) {
// nJumps = (int) (nJumps + Math.floor(this.data.get(i).successJump.size()/div)+1);
// }
//
int nJumps = 0;
for (int i=0; i<this.data.size(); i++) {
for (int j=0; j<this.data.get(i).successJump.size(); j=j+div) {
nJumps++;
}
}
double[][] jumps = new double[nJumps][];
double[] ajump;
int n=0;
for (int i=0; i<this.data.size(); i++) {
for (int j=0; j<this.data.get(i).successJump.size(); j=j+div) {
ajump= PamArrayUtils.float2Double(this.data.get(i).successJump.get(j));
jumps[n] = ajump;
n++;
}
}
return jumps;
}
/**
* Get the jumps for the MCMC algorithm in double[][] format. This is for legacy code.
* @param div - reduce the data by div times (e.g. for plotting).
* @return the MCMC jumps from all chains.
*/
public float[][] getJumpsf(int div) {
if (div<1) div =1;
int nJumps = 0;
for (int i=0; i<this.data.size(); i++) {
nJumps = nJumps + this.data.get(i).successJump.size();
}
double[][] jumps = new double[(int) Math.floor(nJumps/div)][];
float[][] jumps = new float[(int) Math.floor(nJumps/div)][];
double[] ajump;
float[] ajump;
int n=0;
for (int i=0; i<this.data.size(); i=i+div) {
for (int j=0; j<this.data.get(i).successJump.size(); j++) {
for (int i=0; i<this.data.size(); i=i++) {
for (int j=0; j<this.data.get(i).successJump.size(); j=j+div) {
ajump= this.data.get(i).successJump.get(j);
jumps[n] = ajump;
n++;
@ -167,6 +206,7 @@ public class MCMCResult {
return jumps;
}
}

View File

@ -29,15 +29,20 @@ public class EllipseLocErrorDraw implements LocErrorGraphics {
*/
private EllipticalError ellipticalError;
public EllipticalError getEllipticalError() {
return ellipticalError;
}
public static final int DRAW_LINES = 1;
public static final int DRAW_OVALS = 2;
private int drawType = DRAW_OVALS;
/**
* Constructor for drawing an ellipsoid.
* @param ellipticalError
*/
EllipseLocErrorDraw(EllipticalError ellipticalError){
protected EllipseLocErrorDraw(EllipticalError ellipticalError){
this.ellipticalError=ellipticalError;
}
@ -56,6 +61,8 @@ public class EllipseLocErrorDraw implements LocErrorGraphics {
}
return null;
}
public TransformShape drawLinesOnMap(Graphics g, PamDataUnit pamDetection, LatLong errorOrigin,
GeneralProjector generalProjector, Color ellipseColor) {
Graphics2D g2d = (Graphics2D) g;
@ -103,6 +110,7 @@ public class EllipseLocErrorDraw implements LocErrorGraphics {
return null;
}
public TransformShape drawOvalsOnMap(Graphics g, PamDataUnit pamDetection, LatLong errorOrigin,
GeneralProjector generalProjector, Color ellipseColor) {
@ -162,4 +170,8 @@ public class EllipseLocErrorDraw implements LocErrorGraphics {
}
public int getDrawType() {
return drawType;
}
}

View File

@ -24,7 +24,7 @@ public enum ReprocessStoreChoice {
case DONTSSTART:
return "Don't start processing";
case OVERWRITEALL:
return "Overwrite existing output data";
return "Overwrite all existing output data";
default:
break;
}
@ -42,7 +42,7 @@ public enum ReprocessStoreChoice {
case DONTSSTART:
return "Processing will not start. Select alternative storage locations / databases and try again";
case OVERWRITEALL:
return "Overwrite existing output data. Existing data will be deleted";
return "Overwrite existing output data. All existing data will be deleted";
default:
break;
}

View File

@ -27,7 +27,7 @@ public class PamArrayUtils {
* @param dim - the dimension of the point to calculate the average for
* @return the mean of one dimension of the list of the points.
*/
public static double mean(ArrayList<double[]> array, double InitialtoIgnorePercentage, int dim){
public static double mean(ArrayList<float[]> array, double InitialtoIgnorePercentage, int dim){
double meanTotal=0;
int n=0;
@ -42,6 +42,7 @@ public class PamArrayUtils {
double mean=meanTotal/n;
return mean;
}
/**
* Calculate the standard deviation of an array of doubles, ignoring an 'initialtoIgnorePercentage' percentage of jumps
@ -49,7 +50,7 @@ public class PamArrayUtils {
* @param initialtoIgnorePercentage- percentage of initial values to ignore.
* @return standard deviation of array.
*/
public static double std(ArrayList<double[]> array, double initialtoIgnorePercentage, int dim){
public static double std(ArrayList<float[]> array, double initialtoIgnorePercentage, int dim){
double std=0.0;
int n=0;
@ -855,6 +856,48 @@ public class PamArrayUtils {
return arr;
}
/**
* Convert a 2D float array to a 2D double array.
* @param arrf - the float array
* @return a double array containing the same numbers as arrf.
*/
public static double[][] float2Double(float[][] arrf) {
double[][] newArray = new double[arrf.length][];
for (int i=0; i<arrf.length; i++) {
newArray[i] = float2Double(arrf[i]);
}
return newArray;
}
/**
* Convert a float array to a double array.
* @param arrd - the double array
* @return a double array containing the same numbers as arrf.
*/
public static float[] double2Float(double[] arrd) {
float[] arr = new float[arrd.length];
for (int i=0; i<arr.length; i++) {
arr[i] = (float) arrd[i];
}
return arr;
}
/**
* Convert a 2D float array to a 2D double array.
* @param arrd - the double array
* @return a double array containing the same numbers as arrf.
*/
public static float[][] double2Float(double[][] arrd) {
float[][] newArray = new float[arrd.length][];
for (int i=0; i<arrd.length; i++) {
newArray[i] = double2Float(arrd[i]);
}
return newArray;
}
/**
* Check if two int arrays contain the same elements
@ -887,5 +930,12 @@ public class PamArrayUtils {
}
}

View File

@ -33,6 +33,7 @@ public class PamWorker<T> {
private BackgroundWorker backgroundWorker;
private volatile boolean running = false;
/**
@ -82,11 +83,11 @@ public class PamWorker<T> {
*/
public boolean start() {
if (backgroundWorker.isCancelled() || backgroundWorker.isDone() || running) return false;
backgroundWorker.execute();
backgroundWorker.execute();
return true;
}
protected class BackgroundWorker extends SwingWorker<T, PamWorkProgressMessage> {
public class BackgroundWorker extends SwingWorker<T, PamWorkProgressMessage> {
@Override
protected T doInBackground() throws Exception {
@ -139,6 +140,12 @@ public class PamWorker<T> {
}
}
public BackgroundWorker getBackgroundWorker() {
return backgroundWorker;
}

View File

@ -0,0 +1,59 @@
package group3dlocaliser.algorithm.toadmcmc;
import Array.SnapshotGeometry;
import Localiser.algorithms.locErrors.EllipseLocErrorDraw;
import Localiser.algorithms.locErrors.EllipticalError;
import Localiser.algorithms.locErrors.LocErrorGraphics;
import PamUtils.PamArrayUtils;
/**
* Elliptical error for MCMC.
*
* @author Jamie Macaulay
*
*/
public class MCMCEllipticalError extends EllipticalError {
/**
* Class for drawing the error.
*/
private EllipseLocErrorDraw ellipseLocErrorDraw = new MCMCErrorDraw(this);
private float[][] points;
private double[] meanLoc;
public double[] getMeanLoc() {
return meanLoc;
}
public MCMCEllipticalError(double[][] points, double[] meanLoc) {
super(points);
this.points = PamArrayUtils.double2Float(points);
this.meanLoc = meanLoc;
}
public float[][] getPoints() {
return points;
}
public void setPoints(float[][] points) {
this.points = points;
}
@Override
public LocErrorGraphics getErrorDraw() {
return ellipseLocErrorDraw;
}
}

View File

@ -0,0 +1,107 @@
package group3dlocaliser.algorithm.toadmcmc;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Point2D;
import Localiser.algorithms.locErrors.EllipseLocErrorDraw;
import Localiser.algorithms.locErrors.EllipticalError;
import Localiser.algorithms.locErrors.ErrorEllipse;
import PamUtils.LatLong;
import PamUtils.PamArrayUtils;
import PamView.GeneralProjector;
import PamView.TransformShape;
import PamguardMVC.PamDataUnit;
import pamMaths.PamVector;
/**
* Plots some point son the map
* @author Jamie Macaulay
*
*/
public class MCMCErrorDraw extends EllipseLocErrorDraw {
private MCMCEllipticalError ellipticalErr;
MCMCErrorDraw(MCMCEllipticalError ellipticalError) {
super(ellipticalError);
this.ellipticalErr = ellipticalError;
}
@Override
public TransformShape drawOnMap(Graphics g, PamDataUnit pamDetection, LatLong errorOrigin,
GeneralProjector generalProjector, Color ellipseColor) {
if (getEllipticalError() == null) {
return null;
}
if (ellipticalErr.getPoints()!=null) {
drawMCMCCloudOnMap(g, pamDetection, errorOrigin, generalProjector, ellipseColor);
}
switch(getDrawType()) {
case DRAW_LINES:
return drawLinesOnMap(g, pamDetection, errorOrigin, generalProjector, ellipseColor);
case DRAW_OVALS:
return drawOvalsOnMap(g, pamDetection, errorOrigin, generalProjector, ellipseColor);
}
return null;
}
public TransformShape drawMCMCCloudOnMap(Graphics g, PamDataUnit pamDetection, LatLong errorOrigin,
GeneralProjector generalProjector, Color ellipseColor) {
//System.out.println("Plot errors: perp: "+ perpError+ " horz: "+horzError+ " " + errorDirection);
Graphics2D g2d = (Graphics2D)g;
ellipticalErr.getPoints();
LatLong point1 = null;
LatLong point2 = null;
Point point1xy = null;
Point point2xy = null;
for (int i=0; i<ellipticalErr.getPoints().length-1; i++) {
/**
* Need to do all the error dimension calculation in true latlong coorinates, or it simply won't
* work with a rotated map.
*/
Point errorOriginXY=generalProjector.getCoord3d(errorOrigin).getXYPoint();
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f));
g2d.setPaint(ellipseColor.brighter().brighter());
PamVector meanLoc = new PamVector(ellipticalErr.getMeanLoc());
if (point1==null) {
point1 = errorOrigin.addDistanceMeters(new PamVector(PamArrayUtils.float2Double(ellipticalErr.getPoints()[i])).sub(meanLoc));
point1xy=generalProjector.getCoord3d(point1).getXYPoint();
}
point2 = errorOrigin.addDistanceMeters(new PamVector(PamArrayUtils.float2Double(ellipticalErr.getPoints()[i+1])).sub(meanLoc));
point2xy=generalProjector.getCoord3d(point2).getXYPoint();
//pixel points
g2d.drawLine((int) point2xy.getX(), (int) point2xy.getY(), (int) point1xy.getX(), (int) point1xy.getY());
point1=point2; //no need to recalculate that.
point1xy=point2xy; //no need to recalculate that.
}
return null;
}
}

View File

@ -1,7 +1,8 @@
package group3dlocaliser.algorithm.toadmcmc;
import Localiser.LocaliserPane;
import Localiser.algorithms.genericLocaliser.MCMC.MCMCParams2;
public class MCMCLoclaiserPane implements LocaliserPane {
public class MCMCLoclaiserPane implements LocaliserPane<MCMCParams2> {
}

View File

@ -17,6 +17,7 @@ import PamDetection.AbstractLocalisation;
import PamDetection.LocContents;
import PamUtils.CPUMonitor;
import PamUtils.LatLong;
import PamUtils.PamArrayUtils;
import PamguardMVC.PamDataUnit;
import generalDatabase.SQLLoggingAddon;
import group3dlocaliser.Group3DLocaliserControl;
@ -67,8 +68,7 @@ public class ToadMCMCLocaliser extends TOADBaseAlgorithm {
@Override
public boolean hasParams() {
// TODO Auto-generated method stub
return false;
return true;
}
@Override
@ -81,6 +81,10 @@ public class ToadMCMCLocaliser extends TOADBaseAlgorithm {
public AbstractLocalisation processTOADs(PamDataUnit groupDataUnit, SnapshotGeometry geometry,
TOADInformation toadInformation) {
// System.out.println("Run MCMC: ------ " + groupDataUnit.getUID());
// PamArrayUtils.printArray(toadInformation.getToadSeconds());
cpuMCMC.start();
PamVector centre = geometry.getGeometricCentre();
@ -95,9 +99,9 @@ public class ToadMCMCLocaliser extends TOADBaseAlgorithm {
GroupLocalisation groupLocalisation = null;
for (int i=0; i<mcmcResult.size(); i++) {
double[][] jumps = mcmcResult.get(i).getJumpsd();
double[][] jumps = mcmcResult.get(i).getJumpsd(10); //we don't need all the jumps to calculate an error.
EllipticalError ellipErr = new EllipticalError(jumps);
EllipticalError ellipErr = new MCMCEllipticalError(jumps, mcmcResult.get(i).getMeanLoc());
LatLong pos = geometry.getReferenceGPS().addDistanceMeters(new PamVector(mcmcResult.get(i).getMeanLoc()).add(centre));

View File

@ -82,7 +82,9 @@ public class ToadSimplexLocaliser extends TOADBaseAlgorithm {
// get the channel geometry.
nCalls++;
boolean usell = false;
// /////////////////////////////
// System.out.println("TOADInformation: " + toadInformation);
// PamArrayUtils.printArray(toadInformation.getToadSeconds());
@ -125,8 +127,6 @@ public class ToadSimplexLocaliser extends TOADBaseAlgorithm {
// deal with 2D case
start = Arrays.copyOf(start, nDimensions);
}
boolean usell = false;
//MultivariateRealFunction chiFunc;
GoalType goal;
if (usell) {
@ -223,19 +223,21 @@ public class ToadSimplexLocaliser extends TOADBaseAlgorithm {
// SimpleError cartErr = estimateCartesianError(geometry, toadInformation, posVec);
//FIXME - this return super weird results
//EllipticalError ellipErr = estimateEllipticalError(geometry, toadInformation, posVec);
EllipticalError ellipErr;
if (usell) {
ellipErr = estimateEllipticalError(geometry, toadInformation, posVec);
}
else {
//FIXME - this elliptical error seems to work far better
SimpleMinimisation simpleMin = new SimpleMinimisation(chiFunc, nDimensions, start, firstStep);
ellipErr = new LikilihoodError(simpleMin, posVec);
}
//FIXME - this elliptical error seems to work far better
SimpleMinimisation simpleMin = new SimpleMinimisation(chiFunc, nDimensions, start, firstStep);
LikilihoodError lError = new LikilihoodError(simpleMin, posVec);
EllipticalError ellipErr = lError;
// System.out.printf(", Chi2 = %3.1f, p=%3.1f, ndf = %d, Err=%s\n",
// chiData.getChi2(), cumProb, chiData.getNdf(), cartErr.getJsonErrorString());
System.out.println(ellipErr.getJsonErrorString());
// chiData.getChi2(), cumProb, chiData.getNdf(), cartErr.getJsonErrorString());
// System.out.println(ellipErr.getJsonErrorString());
/**
* Calculated position was relative to array centre, so now need to add the array
@ -246,8 +248,8 @@ public class ToadSimplexLocaliser extends TOADBaseAlgorithm {
// TargetMotionResult tmResult = new TargetMotionResult(geometry.getTimeMilliseconds(), null, pos, 0, 0);
System.out.println("New group localisation: height: " + pos.getHeight() + " ref height: " +
geometry.getReferenceGPS().getHeight() + " posVec: " + posVec[2]);
// System.out.println("New group localisation: height: " + pos.getHeight() + " ref height: " +
// geometry.getReferenceGPS().getHeight() + " posVec: " + posVec[2]);
GroupLocResult glr = new GroupLocResult(pos, 0, chiData.getChi2());
glr.setError(ellipErr);

View File

@ -76,7 +76,7 @@ public class GenericModelWorker extends DLModelWorker<GenericPrediction> {
// System.out.println(Paths.get(genericParams.modelPath));
// System.out.println(Paths.get(genericModel.getModel().getName()).equals(Paths.get(genericParams.modelPath)));
// }
//first open the model and get the correct parameters.
//21/11/2022 - Added a null and filename check here to stop the model reloading everytime PAMGuard hits a new file or
//is stopped or started - this was causing a memory leak.