mirror of
https://github.com/PAMGuard/PAMGuard.git
synced 2024-11-22 07:02:29 +00:00
Updates to localiser and sud repo
This commit is contained in:
parent
1a6da45413
commit
c3ffb84545
4
pom.xml
4
pom.xml
@ -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
|
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.2</version>
|
<version>2.2.5</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/it.sauronsoftware/jave -->
|
<!-- https://mvnrepository.com/artifact/it.sauronsoftware/jave -->
|
||||||
|
BIN
repo/org/pamguard/x3/2.2.5/X3-2.2.5-javadoc.jar
Normal file
BIN
repo/org/pamguard/x3/2.2.5/X3-2.2.5-javadoc.jar
Normal file
Binary file not shown.
BIN
repo/org/pamguard/x3/2.2.5/X3-2.2.5-sources.jar
Normal file
BIN
repo/org/pamguard/x3/2.2.5/X3-2.2.5-sources.jar
Normal file
Binary file not shown.
Binary file not shown.
89
repo/org/pamguard/x3/2.2.5/X3-2.2.5.pom
Normal file
89
repo/org/pamguard/x3/2.2.5/X3-2.2.5.pom
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>org.pamguard</groupId>
|
||||||
|
<artifactId>X3</artifactId>
|
||||||
|
<version>2.2.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,4 +1,6 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||||
#Fri Aug 14 15:49:24 CEST 2020
|
#Wed Aug 02 09:25:44 BST 2023
|
||||||
x3-1.0.0.pom>=
|
X3-2.2.5-sources.jar>=
|
||||||
x3-1.0.0.jar>=
|
X3-2.2.5-javadoc.jar>=
|
||||||
|
X3-2.2.5.jar>=
|
||||||
|
X3-2.2.5.pom>=
|
11
repo/org/pamguard/x3/2.2.5/m2e-lastUpdated.properties
Normal file
11
repo/org/pamguard/x3/2.2.5/m2e-lastUpdated.properties
Normal 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
|
12
repo/org/pamguard/x3/2.2.5/x3-2.2.5-javadoc.jar.lastUpdated
Normal file
12
repo/org/pamguard/x3/2.2.5/x3-2.2.5-javadoc.jar.lastUpdated
Normal 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
|
12
repo/org/pamguard/x3/2.2.5/x3-2.2.5-sources.jar.lastUpdated
Normal file
12
repo/org/pamguard/x3/2.2.5/x3-2.2.5-sources.jar.lastUpdated
Normal 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
|
@ -1,12 +1,12 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
||||||
#Thu May 04 11:43:09 BST 2023
|
#Mon Jul 31 15:33:58 BST 2023
|
||||||
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1683196988926
|
file\://C\:\\Users\\Jamie\ Macaulay\\git\\PAMGuard/repo/.lastUpdated=1690813936812
|
||||||
file\://C\:\\Users\\dg50\\source\\repos\\PAMGuardDG/repo/.error=
|
@default-talan-https\://nexus.talanlabs.com/content/repositories/releases/.lastUpdated=1690814037920
|
||||||
https\://repo1.maven.org/maven2/.error=
|
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\://artifacts.unidata.ucar.edu/repository/unidata-all/.error=
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
https\://nexus.bedatadriven.com/content/groups/public/.error=
|
||||||
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1683196988663
|
https\://nexus.bedatadriven.com/content/groups/public/.lastUpdated=1690813937853
|
||||||
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1683196988452
|
https\://artifacts.unidata.ucar.edu/repository/unidata-all/.lastUpdated=1690813937654
|
||||||
https\://repo1.maven.org/maven2/.lastUpdated=1683196989198
|
https\://repo1.maven.org/maven2/.lastUpdated=1690814038162
|
||||||
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.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
|
16
repo/org/pamguard/x3/2.2.5/x3-2.2.5.pom.lastUpdated
Normal file
16
repo/org/pamguard/x3/2.2.5/x3-2.2.5.pom.lastUpdated
Normal 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
|
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>1.0.0</version>
|
|
||||||
<description>POM was created from install:install-file</description>
|
|
||||||
</project>
|
|
@ -1,4 +0,0 @@
|
|||||||
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
|
|
||||||
#Fri Sep 25 10:46:11 CEST 2020
|
|
||||||
x3-2.0.0.pom>=
|
|
||||||
x3-2.0.0.jar>=
|
|
@ -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
|
|
@ -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=
|
|
@ -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=
|
|
Binary file not shown.
@ -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
|
|
@ -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>
|
|
@ -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
|
|
@ -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>=
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
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.1.0</version>
|
|
||||||
<description>POM was created from install:install-file</description>
|
|
||||||
</project>
|
|
@ -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
|
|
@ -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>=
|
|
@ -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
|
|
@ -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
|
|
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.0</version>
|
|
||||||
<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.
|
|
||||||
#Mon Apr 24 10:32:52 BST 2023
|
|
||||||
x3-2.2.1.jar>=
|
|
||||||
x3-2.2.1.pom>=
|
|
@ -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>
|
|
@ -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>=
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
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.2</version>
|
|
||||||
<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.
|
|
||||||
#Mon Jun 19 16:55:00 BST 2023
|
|
||||||
x3-2.2.4.jar>=
|
|
||||||
x3-2.2.4.pom>=
|
|
@ -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
|
|
@ -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=
|
|
@ -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=
|
|
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.4</version>
|
|
||||||
<description>POM was created from install:install-file</description>
|
|
||||||
</project>
|
|
@ -429,6 +429,8 @@ public class FileInputSystem extends DaqSystem implements ActionListener, PamSe
|
|||||||
// acquisitionDialog.NotifyChange();
|
// acquisitionDialog.NotifyChange();
|
||||||
if (file.isFile() && !file.isHidden() && acquisitionDialog != null) {
|
if (file.isFile() && !file.isHidden() && acquisitionDialog != null) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
System.out.println("FileInputSystem - interpretNewFile");
|
||||||
AudioInputStream audioStream = PamAudioFileManager.getInstance().getAudioInputStream(file);
|
AudioInputStream audioStream = PamAudioFileManager.getInstance().getAudioInputStream(file);
|
||||||
|
|
||||||
// // Get additional information from the header if it's a wav 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();
|
audioStream.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
System.out.println("FileInputSystem - prepareInputFile");
|
||||||
|
|
||||||
audioStream = PamAudioFileManager.getInstance().getAudioInputStream(currentFile);
|
audioStream = PamAudioFileManager.getInstance().getAudioInputStream(currentFile);
|
||||||
|
|
||||||
if (audioStream instanceof SudAudioInputStream) {
|
if (audioStream instanceof SudAudioInputStream) {
|
||||||
|
@ -515,8 +515,8 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
|
|||||||
*/
|
*/
|
||||||
public void newFileList(FileListData<WavFileType> fileListData) {
|
public void newFileList(FileListData<WavFileType> fileListData) {
|
||||||
|
|
||||||
// System.out.printf("Wav list recieved with %d files after %d millis\n",
|
System.out.printf("Wav list recieved with %d files after %d millis\n",
|
||||||
// fileListData.getFileCount(), System.currentTimeMillis() - wavListStart);
|
fileListData.getFileCount(), System.currentTimeMillis() - wavListStart);
|
||||||
allFiles = fileListData.getListCopy();
|
allFiles = fileListData.getListCopy();
|
||||||
|
|
||||||
List<WavFileType> asList = allFiles;
|
List<WavFileType> asList = allFiles;
|
||||||
@ -535,6 +535,8 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
|
|||||||
if (file.isFile() && !file.isHidden() && acquisitionDialog != null) {
|
if (file.isFile() && !file.isHidden() && acquisitionDialog != null) {
|
||||||
//Hidden files should not be used in analysis...
|
//Hidden files should not be used in analysis...
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
System.out.println("FolderInputSystem - newFileList");
|
||||||
audioStream = PamAudioFileManager.getInstance().getAudioInputStream(file);
|
audioStream = PamAudioFileManager.getInstance().getAudioInputStream(file);
|
||||||
AudioFormat audioFormat = audioStream.getFormat();
|
AudioFormat audioFormat = audioStream.getFormat();
|
||||||
fileSamples = audioStream.getFrameLength();
|
fileSamples = audioStream.getFrameLength();
|
||||||
@ -917,6 +919,7 @@ public class FolderInputSystem extends FileInputSystem implements PamSettings, D
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
for (int i = 0; i < allFiles.size(); i++) {
|
for (int i = 0; i < allFiles.size(); i++) {
|
||||||
|
System.out.println("Get file start time");
|
||||||
long fileStart = getFileStartTime(allFiles.get(i).getAbsoluteFile());
|
long fileStart = getFileStartTime(allFiles.get(i).getAbsoluteFile());
|
||||||
if (fileStart >= startTime) {
|
if (fileStart >= startTime) {
|
||||||
currentFile = i;
|
currentFile = i;
|
||||||
|
@ -135,6 +135,8 @@ public class StandardFileDate implements FileDate, PamSettings {
|
|||||||
@Override
|
@Override
|
||||||
public long getTimeFromFile(File file) {
|
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 the user wants to force the local PC time, return immediately
|
||||||
if (settings.isForcePCTime()) return 0;
|
if (settings.isForcePCTime()) return 0;
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ public class PamAudioFileManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the audio file filter
|
* Get the audio file filter.
|
||||||
*
|
*
|
||||||
* @return the audio file filter.
|
* @return the audio file filter.
|
||||||
*/
|
*/
|
||||||
@ -164,7 +164,7 @@ public class PamAudioFileManager {
|
|||||||
/**
|
/**
|
||||||
* Get the current audio file
|
* 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() {
|
public ArrayList<PamAudioFileLoader> getAudioFileLoaders() {
|
||||||
return this.pamAudioFileTypes;
|
return this.pamAudioFileTypes;
|
||||||
|
@ -7,6 +7,15 @@ import java.util.Arrays;
|
|||||||
|
|
||||||
import javax.sound.sampled.AudioInputStream;
|
import javax.sound.sampled.AudioInputStream;
|
||||||
import javax.sound.sampled.UnsupportedAudioFileException;
|
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.
|
* Opens a .sud audio file.
|
||||||
@ -24,6 +33,12 @@ import javax.sound.sampled.UnsupportedAudioFileException;
|
|||||||
*/
|
*/
|
||||||
public class SudAudioFile extends WavAudioFile {
|
public class SudAudioFile extends WavAudioFile {
|
||||||
|
|
||||||
|
private Object conditionSync = new Object();
|
||||||
|
|
||||||
|
|
||||||
|
private volatile PamWorker<AudioInputStream> worker;
|
||||||
|
private volatile SudMapWorker sudMapWorker;
|
||||||
|
|
||||||
|
|
||||||
public SudAudioFile() {
|
public SudAudioFile() {
|
||||||
super();
|
super();
|
||||||
@ -38,26 +53,175 @@ public class SudAudioFile extends WavAudioFile {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AudioInputStream getAudioStream(File soundFile) {
|
public AudioInputStream getAudioStream(File soundFile) {
|
||||||
|
|
||||||
|
synchronized(conditionSync) {
|
||||||
|
|
||||||
|
//System.out.println("Get SUD getAudioStream : " + soundFile.getName());
|
||||||
|
|
||||||
if (soundFile.exists() == false) {
|
if (soundFile.exists() == false) {
|
||||||
System.err.println("The sud file does not exist: " + soundFile);
|
System.err.println("The sud file does not exist: " + soundFile);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (soundFile != null) {
|
if (soundFile != null) {
|
||||||
|
|
||||||
|
|
||||||
|
if (new File(soundFile.getAbsolutePath()+"x").exists()) {
|
||||||
|
System.out.println("----NO NEED TO MAP SUD FILE-----" + soundFile);
|
||||||
try {
|
try {
|
||||||
return new SudAudioFileReader().getAudioInputStream(soundFile);
|
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) {
|
catch (UnsupportedAudioFileException e) {
|
||||||
System.err.println("UnsupportedAudioFileException: Could not open sud file: not a supported file " + soundFile.getName());
|
System.err.println("UnsupportedAudioFileException: Could not open sud file: not a supported file " + soundFile.getName());
|
||||||
System.err.println(e.getMessage());
|
System.err.println(e.getMessage());
|
||||||
// e.printStackTrace();
|
// e.printStackTrace();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.err.println("Could not open sud file: IO Exception: " + soundFile.getName());
|
System.err.println("Could not open sud file: IO Exception: " + soundFile.getName());
|
||||||
|
|
||||||
e.printStackTrace();
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -30,21 +30,37 @@ public class SudAudioFileReader {
|
|||||||
sudParams = new SudParams();
|
sudParams = new SudParams();
|
||||||
//set up the sud params for default. i.e. just read files and
|
//set up the sud params for default. i.e. just read files and
|
||||||
//don't save any decompressed or meta data.
|
//don't save any decompressed or meta data.
|
||||||
sudParams.saveWav = false;
|
// sudParams.saveWav = false;
|
||||||
sudParams.saveMeta = false;
|
// sudParams.saveMeta = false;
|
||||||
|
sudParams.setFileSave(false, false, false, false);
|
||||||
sudParams.zeroPad = true;
|
sudParams.zeroPad = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the audio input streamn.
|
* Get the audio input stream for a sud file.
|
||||||
* @param file - the .sud file to open.
|
* @param file - the .sud file to open.
|
||||||
* @return the sud AudioStream.
|
* @return the sud AudioStream.
|
||||||
* @throws UnsupportedAudioFileException
|
* @throws UnsupportedAudioFileException
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, 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 {
|
try {
|
||||||
sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
|
sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, mapListener, false);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String msg = String.format("Corrupt sud file %s: %s", file.getName(), e.getMessage());
|
String msg = String.format("Corrupt sud file %s: %s", file.getName(), e.getMessage());
|
||||||
throw new UnsupportedAudioFileException(msg);
|
throw new UnsupportedAudioFileException(msg);
|
||||||
@ -52,4 +68,7 @@ public class SudAudioFileReader {
|
|||||||
return sudAudioInputStream;
|
return sudAudioInputStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,6 @@ package Acquisition.sud;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
import org.pamguard.x3.sud.SudAudioInputStream;
|
import org.pamguard.x3.sud.SudAudioInputStream;
|
||||||
import org.pamguard.x3.sud.SudFileMap;
|
|
||||||
import org.pamguard.x3.sud.SudParams;
|
|
||||||
|
|
||||||
import PamUtils.PamCalendar;
|
|
||||||
|
|
||||||
public class SUDFileTime {
|
public class SUDFileTime {
|
||||||
|
|
||||||
@ -19,6 +15,9 @@ public class SUDFileTime {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static long getSUDFileTime(File file) {
|
public static long getSUDFileTime(File file) {
|
||||||
|
|
||||||
|
//System.out.println("Get sud file time: " + file.getName());
|
||||||
|
|
||||||
if (file == null || file.exists() == false) {
|
if (file == null || file.exists() == false) {
|
||||||
return Long.MIN_VALUE;
|
return Long.MIN_VALUE;
|
||||||
}
|
}
|
||||||
@ -35,22 +34,28 @@ public class SUDFileTime {
|
|||||||
*/
|
*/
|
||||||
// long t1 = System.currentTimeMillis();
|
// long t1 = System.currentTimeMillis();
|
||||||
sudTime = Long.MIN_VALUE;
|
sudTime = Long.MIN_VALUE;
|
||||||
SudParams sudParams = new SudParams();
|
// SudParams sudParams = new SudParams();
|
||||||
sudParams.saveMeta = false;
|
// sudParams.saveMeta = false;
|
||||||
sudParams.saveWav = false;
|
// sudParams.saveWav = false;
|
||||||
try {
|
try {
|
||||||
SudAudioInputStream sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
|
//
|
||||||
if (sudAudioInputStream == null) {
|
// SudAudioInputStream sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
|
||||||
return Long.MIN_VALUE;
|
// if (sudAudioInputStream == null) {
|
||||||
}
|
// return Long.MIN_VALUE;
|
||||||
SudFileMap sudMap = sudAudioInputStream.getSudMap();
|
// }
|
||||||
if (sudMap == null) {
|
// SudFileMap sudMap = sudAudioInputStream.getSudMap();
|
||||||
return Long.MIN_VALUE;
|
// if (sudMap == null) {
|
||||||
}
|
// return Long.MIN_VALUE;
|
||||||
long t = sudMap.getFirstChunkTimeMillis();
|
// }
|
||||||
|
// long t = sudMap.getFirstChunkTimeMillis();
|
||||||
|
|
||||||
|
long t = SudAudioInputStream.quickFileTime(file);
|
||||||
|
t=t/1000; //turn to milliseconds.
|
||||||
if (t != 0) {
|
if (t != 0) {
|
||||||
sudTime = t;
|
sudTime = t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// sudAudioInputStream.addSudFileListener((chunkID, sudChunk)->{
|
// sudAudioInputStream.addSudFileListener((chunkID, sudChunk)->{
|
||||||
// ChunkHeader chunkHead = sudChunk.chunkHeader;
|
// ChunkHeader chunkHead = sudChunk.chunkHeader;
|
||||||
// if (chunkHead == null || sudTime != Long.MIN_VALUE) {
|
// if (chunkHead == null || sudTime != Long.MIN_VALUE) {
|
||||||
@ -69,7 +74,7 @@ public class SUDFileTime {
|
|||||||
// sudAudioInputStream.read();
|
// sudAudioInputStream.read();
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
sudAudioInputStream.close();
|
// sudAudioInputStream.close();
|
||||||
// long t2 = System.currentTimeMillis();
|
// long t2 = System.currentTimeMillis();
|
||||||
// System.out.printf("SUD file time %s extracted in %d milliseconds\n", PamCalendar.formatDBDateTime(sudTime), t2-t1);
|
// System.out.printf("SUD file time %s extracted in %d milliseconds\n", PamCalendar.formatDBDateTime(sudTime), t2-t1);
|
||||||
|
|
||||||
|
@ -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,
|
* Markov chain Monte Carlo (MCMC) is a minimisation technique used widely in a variety of field, from finding exo planets,
|
||||||
* to solving complex intergals.
|
* to solving complex intergals.
|
||||||
* <p>
|
* <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
|
* The Transit Light Curve (TLC) Project.I. Four Consecutive Transits of the Exoplanet XO-1b Matthew J. Holman1
|
||||||
* <p>
|
* <p>
|
||||||
* This is an abstract class and requires a chi2 function to operate.
|
* A chi2 function is required to define the minimisation problem.
|
||||||
* <p>
|
* <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.
|
* 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.
|
* Even so, a large number of chains or large observation set can result in significant processing times.
|
||||||
* <p>
|
* <p>
|
||||||
* Results are analysed for convergence and final locations packed into an MCMCTDResults class.
|
* Results are analysed for convergence and final locations packed into an MCMCTDResults class.
|
||||||
*
|
*
|
||||||
@ -119,7 +119,7 @@ public class MCMC implements MinimisationAlgorithm {
|
|||||||
double newChi;
|
double newChi;
|
||||||
|
|
||||||
ArrayList<Double> successChi=new ArrayList<Double>(settings.numberOfJumps/5);
|
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());
|
// System.out.println("Start MCMC milliseconds: "+ System.currentTimeMillis());
|
||||||
|
|
||||||
@ -145,7 +145,7 @@ public class MCMC implements MinimisationAlgorithm {
|
|||||||
chainPos=potentialNewJump;
|
chainPos=potentialNewJump;
|
||||||
currentChi=newChi;
|
currentChi=newChi;
|
||||||
successChi.add(newChi);
|
successChi.add(newChi);
|
||||||
successJump.add(chainPos);
|
successJump.add(PamArrayUtils.double2Float(chainPos));
|
||||||
//System.out.println(ChainPos);
|
//System.out.println(ChainPos);
|
||||||
//System.out.println(NewChi);
|
//System.out.println(NewChi);
|
||||||
//System.out.println(ObservedTimeDelays);
|
//System.out.println(ObservedTimeDelays);
|
||||||
@ -155,7 +155,7 @@ public class MCMC implements MinimisationAlgorithm {
|
|||||||
chainPos=potentialNewJump;
|
chainPos=potentialNewJump;
|
||||||
currentChi=newChi;
|
currentChi=newChi;
|
||||||
successChi.add(newChi);
|
successChi.add(newChi);
|
||||||
successJump.add(chainPos);
|
successJump.add(PamArrayUtils.double2Float(chainPos));
|
||||||
//System.out.println(ChainPos);
|
//System.out.println(ChainPos);
|
||||||
//System.out.println(NewChi);
|
//System.out.println(NewChi);
|
||||||
//System.out.println(ObservedTimeDelays);
|
//System.out.println(ObservedTimeDelays);
|
||||||
@ -186,7 +186,7 @@ public class MCMC implements MinimisationAlgorithm {
|
|||||||
* @param successJump - list of successful jumps
|
* @param successJump - list of successful jumps
|
||||||
* @param successChi - list of successful chi2 values.
|
* @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.successJump=successJump;
|
||||||
this.successChi=successChi;
|
this.successChi=successChi;
|
||||||
}
|
}
|
||||||
@ -199,7 +199,7 @@ public class MCMC implements MinimisationAlgorithm {
|
|||||||
/**
|
/**
|
||||||
* A list of points of the successful jumps.
|
* A list of points of the successful jumps.
|
||||||
*/
|
*/
|
||||||
public ArrayList<double[]> successJump;
|
public ArrayList<float[]> successJump;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The number of dimensions.
|
* The number of dimensions.
|
||||||
@ -586,7 +586,7 @@ public class MCMC implements MinimisationAlgorithm {
|
|||||||
//find min value
|
//find min value
|
||||||
int minIndex = chainResult.successChi.indexOf(Collections.min(chainResult.successChi));
|
int minIndex = chainResult.successChi.indexOf(Collections.min(chainResult.successChi));
|
||||||
minChi2=chainResult.successChi.get(minIndex);
|
minChi2=chainResult.successChi.get(minIndex);
|
||||||
minChi2Pos=chainResult.successJump.get(minIndex);
|
minChi2Pos=PamArrayUtils.float2Double(chainResult.successJump.get(minIndex));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -730,19 +730,19 @@ public class MCMC implements MinimisationAlgorithm {
|
|||||||
*/
|
*/
|
||||||
private EllipticalError getLocError(ArrayList<ChainResult> data) {
|
private EllipticalError getLocError(ArrayList<ChainResult> data) {
|
||||||
|
|
||||||
ArrayList<double[]> successJumpAll = new ArrayList<double[]>();
|
ArrayList<float[]> successJumpAll = new ArrayList<float[]>();
|
||||||
List<double[]> successJump;
|
List<float[]> successJump;
|
||||||
for (int i=0; i<data.size(); i++) {
|
for (int i=0; i<data.size(); i++) {
|
||||||
successJump = data.get(i).successJump.subList((int) this.settings.percentageToIgnore*data.get(i).successJump.size(),
|
successJump = data.get(i).successJump.subList((int) this.settings.percentageToIgnore*data.get(i).successJump.size(),
|
||||||
data.get(i).successJump.size()-1);
|
data.get(i).successJump.size()-1);
|
||||||
successJumpAll.addAll(successJump);
|
successJumpAll.addAll(successJump);
|
||||||
}
|
}
|
||||||
|
|
||||||
double[][] results= new double[successJumpAll.size()][3];
|
float[][] results= new float[successJumpAll.size()][3];
|
||||||
results=successJumpAll.toArray(results);
|
results=successJumpAll.toArray(results);
|
||||||
|
|
||||||
//Elliptical error
|
//Elliptical error
|
||||||
EllipticalError ellError= new EllipticalError(results);
|
EllipticalError ellError= new EllipticalError(PamArrayUtils.float2Double(results));
|
||||||
|
|
||||||
return ellError;
|
return ellError;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import javax.vecmath.Point3f;
|
|||||||
|
|
||||||
import Localiser.algorithms.genericLocaliser.MCMC.MCMC.ChainResult;
|
import Localiser.algorithms.genericLocaliser.MCMC.MCMC.ChainResult;
|
||||||
import Localiser.algorithms.locErrors.EllipticalError;
|
import Localiser.algorithms.locErrors.EllipticalError;
|
||||||
|
import PamUtils.PamArrayUtils;
|
||||||
|
|
||||||
public class MCMCResult {
|
public class MCMCResult {
|
||||||
|
|
||||||
@ -122,12 +123,12 @@ public class MCMCResult {
|
|||||||
public ArrayList<ArrayList<Point3f>> getJumps() {
|
public ArrayList<ArrayList<Point3f>> getJumps() {
|
||||||
ArrayList<ArrayList<Point3f>> jumps=new ArrayList<ArrayList<Point3f>>();
|
ArrayList<ArrayList<Point3f>> jumps=new ArrayList<ArrayList<Point3f>>();
|
||||||
ArrayList<Point3f> chainJumps;
|
ArrayList<Point3f> chainJumps;
|
||||||
double[] ajump;
|
float[] ajump;
|
||||||
for (int i=0; i<this.data.size(); i++) {
|
for (int i=0; i<this.data.size(); i++) {
|
||||||
chainJumps= new ArrayList<Point3f>();
|
chainJumps= new ArrayList<Point3f>();
|
||||||
for (int j=0; j<this.data.get(i).successJump.size(); j++) {
|
for (int j=0; j<this.data.get(i).successJump.size(); j++) {
|
||||||
ajump= this.data.get(i).successJump.get(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);
|
jumps.add(chainJumps);
|
||||||
}
|
}
|
||||||
@ -139,6 +140,10 @@ public class MCMCResult {
|
|||||||
return getJumpsd(1);
|
return getJumpsd(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double[][] getJumpsf() {
|
||||||
|
return getJumpsd(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the jumps for the MCMC algorithm in double[][] format. This is for legacy code.
|
* Get the jumps for the MCMC algorithm in double[][] format. This is for legacy code.
|
||||||
@ -149,16 +154,50 @@ public class MCMCResult {
|
|||||||
|
|
||||||
if (div<1) div =1;
|
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;
|
int nJumps = 0;
|
||||||
for (int i=0; i<this.data.size(); i++) {
|
for (int i=0; i<this.data.size(); i++) {
|
||||||
nJumps = nJumps + this.data.get(i).successJump.size();
|
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;
|
int n=0;
|
||||||
for (int i=0; i<this.data.size(); i=i+div) {
|
for (int i=0; i<this.data.size(); i=i++) {
|
||||||
for (int j=0; j<this.data.get(i).successJump.size(); j++) {
|
for (int j=0; j<this.data.get(i).successJump.size(); j=j+div) {
|
||||||
ajump= this.data.get(i).successJump.get(j);
|
ajump= this.data.get(i).successJump.get(j);
|
||||||
jumps[n] = ajump;
|
jumps[n] = ajump;
|
||||||
n++;
|
n++;
|
||||||
@ -167,6 +206,7 @@ public class MCMCResult {
|
|||||||
return jumps;
|
return jumps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,15 +29,20 @@ public class EllipseLocErrorDraw implements LocErrorGraphics {
|
|||||||
*/
|
*/
|
||||||
private EllipticalError ellipticalError;
|
private EllipticalError ellipticalError;
|
||||||
|
|
||||||
|
public EllipticalError getEllipticalError() {
|
||||||
|
return ellipticalError;
|
||||||
|
}
|
||||||
|
|
||||||
public static final int DRAW_LINES = 1;
|
public static final int DRAW_LINES = 1;
|
||||||
public static final int DRAW_OVALS = 2;
|
public static final int DRAW_OVALS = 2;
|
||||||
private int drawType = DRAW_OVALS;
|
private int drawType = DRAW_OVALS;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for drawing an ellipsoid.
|
* Constructor for drawing an ellipsoid.
|
||||||
* @param ellipticalError
|
* @param ellipticalError
|
||||||
*/
|
*/
|
||||||
EllipseLocErrorDraw(EllipticalError ellipticalError){
|
protected EllipseLocErrorDraw(EllipticalError ellipticalError){
|
||||||
this.ellipticalError=ellipticalError;
|
this.ellipticalError=ellipticalError;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,6 +61,8 @@ public class EllipseLocErrorDraw implements LocErrorGraphics {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public TransformShape drawLinesOnMap(Graphics g, PamDataUnit pamDetection, LatLong errorOrigin,
|
public TransformShape drawLinesOnMap(Graphics g, PamDataUnit pamDetection, LatLong errorOrigin,
|
||||||
GeneralProjector generalProjector, Color ellipseColor) {
|
GeneralProjector generalProjector, Color ellipseColor) {
|
||||||
Graphics2D g2d = (Graphics2D) g;
|
Graphics2D g2d = (Graphics2D) g;
|
||||||
@ -103,6 +110,7 @@ public class EllipseLocErrorDraw implements LocErrorGraphics {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TransformShape drawOvalsOnMap(Graphics g, PamDataUnit pamDetection, LatLong errorOrigin,
|
public TransformShape drawOvalsOnMap(Graphics g, PamDataUnit pamDetection, LatLong errorOrigin,
|
||||||
GeneralProjector generalProjector, Color ellipseColor) {
|
GeneralProjector generalProjector, Color ellipseColor) {
|
||||||
|
|
||||||
@ -162,4 +170,8 @@ public class EllipseLocErrorDraw implements LocErrorGraphics {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getDrawType() {
|
||||||
|
return drawType;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ public enum ReprocessStoreChoice {
|
|||||||
case DONTSSTART:
|
case DONTSSTART:
|
||||||
return "Don't start processing";
|
return "Don't start processing";
|
||||||
case OVERWRITEALL:
|
case OVERWRITEALL:
|
||||||
return "Overwrite existing output data";
|
return "Overwrite all existing output data";
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ public enum ReprocessStoreChoice {
|
|||||||
case DONTSSTART:
|
case DONTSSTART:
|
||||||
return "Processing will not start. Select alternative storage locations / databases and try again";
|
return "Processing will not start. Select alternative storage locations / databases and try again";
|
||||||
case OVERWRITEALL:
|
case OVERWRITEALL:
|
||||||
return "Overwrite existing output data. Existing data will be deleted";
|
return "Overwrite existing output data. All existing data will be deleted";
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ public class PamArrayUtils {
|
|||||||
* @param dim - the dimension of the point to calculate the average for
|
* @param dim - the dimension of the point to calculate the average for
|
||||||
* @return the mean of one dimension of the list of the points.
|
* @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;
|
double meanTotal=0;
|
||||||
int n=0;
|
int n=0;
|
||||||
@ -43,13 +43,14 @@ public class PamArrayUtils {
|
|||||||
return mean;
|
return mean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate the standard deviation of an array of doubles, ignoring an 'initialtoIgnorePercentage' percentage of jumps
|
* Calculate the standard deviation of an array of doubles, ignoring an 'initialtoIgnorePercentage' percentage of jumps
|
||||||
* @param array
|
* @param array
|
||||||
* @param initialtoIgnorePercentage- percentage of initial values to ignore.
|
* @param initialtoIgnorePercentage- percentage of initial values to ignore.
|
||||||
* @return standard deviation of array.
|
* @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;
|
double std=0.0;
|
||||||
|
|
||||||
int n=0;
|
int n=0;
|
||||||
@ -855,6 +856,48 @@ public class PamArrayUtils {
|
|||||||
return arr;
|
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
|
* Check if two int arrays contain the same elements
|
||||||
@ -887,5 +930,12 @@ public class PamArrayUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ public class PamWorker<T> {
|
|||||||
|
|
||||||
private BackgroundWorker backgroundWorker;
|
private BackgroundWorker backgroundWorker;
|
||||||
|
|
||||||
|
|
||||||
private volatile boolean running = false;
|
private volatile boolean running = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -86,7 +87,7 @@ public class PamWorker<T> {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected class BackgroundWorker extends SwingWorker<T, PamWorkProgressMessage> {
|
public class BackgroundWorker extends SwingWorker<T, PamWorkProgressMessage> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected T doInBackground() throws Exception {
|
protected T doInBackground() throws Exception {
|
||||||
@ -141,6 +142,12 @@ public class PamWorker<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BackgroundWorker getBackgroundWorker() {
|
||||||
|
return backgroundWorker;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void update(PamWorkProgressMessage progressMessage) {
|
public void update(PamWorkProgressMessage progressMessage) {
|
||||||
backgroundWorker.ppublish(progressMessage);
|
backgroundWorker.ppublish(progressMessage);
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
107
src/group3dlocaliser/algorithm/toadmcmc/MCMCErrorDraw.java
Normal file
107
src/group3dlocaliser/algorithm/toadmcmc/MCMCErrorDraw.java
Normal 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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,7 +1,8 @@
|
|||||||
package group3dlocaliser.algorithm.toadmcmc;
|
package group3dlocaliser.algorithm.toadmcmc;
|
||||||
|
|
||||||
import Localiser.LocaliserPane;
|
import Localiser.LocaliserPane;
|
||||||
|
import Localiser.algorithms.genericLocaliser.MCMC.MCMCParams2;
|
||||||
|
|
||||||
public class MCMCLoclaiserPane implements LocaliserPane {
|
public class MCMCLoclaiserPane implements LocaliserPane<MCMCParams2> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import PamDetection.AbstractLocalisation;
|
|||||||
import PamDetection.LocContents;
|
import PamDetection.LocContents;
|
||||||
import PamUtils.CPUMonitor;
|
import PamUtils.CPUMonitor;
|
||||||
import PamUtils.LatLong;
|
import PamUtils.LatLong;
|
||||||
|
import PamUtils.PamArrayUtils;
|
||||||
import PamguardMVC.PamDataUnit;
|
import PamguardMVC.PamDataUnit;
|
||||||
import generalDatabase.SQLLoggingAddon;
|
import generalDatabase.SQLLoggingAddon;
|
||||||
import group3dlocaliser.Group3DLocaliserControl;
|
import group3dlocaliser.Group3DLocaliserControl;
|
||||||
@ -67,8 +68,7 @@ public class ToadMCMCLocaliser extends TOADBaseAlgorithm {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasParams() {
|
public boolean hasParams() {
|
||||||
// TODO Auto-generated method stub
|
return true;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -81,6 +81,10 @@ public class ToadMCMCLocaliser extends TOADBaseAlgorithm {
|
|||||||
public AbstractLocalisation processTOADs(PamDataUnit groupDataUnit, SnapshotGeometry geometry,
|
public AbstractLocalisation processTOADs(PamDataUnit groupDataUnit, SnapshotGeometry geometry,
|
||||||
TOADInformation toadInformation) {
|
TOADInformation toadInformation) {
|
||||||
|
|
||||||
|
// System.out.println("Run MCMC: ------ " + groupDataUnit.getUID());
|
||||||
|
// PamArrayUtils.printArray(toadInformation.getToadSeconds());
|
||||||
|
|
||||||
|
|
||||||
cpuMCMC.start();
|
cpuMCMC.start();
|
||||||
PamVector centre = geometry.getGeometricCentre();
|
PamVector centre = geometry.getGeometricCentre();
|
||||||
|
|
||||||
@ -95,9 +99,9 @@ public class ToadMCMCLocaliser extends TOADBaseAlgorithm {
|
|||||||
GroupLocalisation groupLocalisation = null;
|
GroupLocalisation groupLocalisation = null;
|
||||||
for (int i=0; i<mcmcResult.size(); i++) {
|
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));
|
LatLong pos = geometry.getReferenceGPS().addDistanceMeters(new PamVector(mcmcResult.get(i).getMeanLoc()).add(centre));
|
||||||
|
@ -82,6 +82,8 @@ public class ToadSimplexLocaliser extends TOADBaseAlgorithm {
|
|||||||
// get the channel geometry.
|
// get the channel geometry.
|
||||||
nCalls++;
|
nCalls++;
|
||||||
|
|
||||||
|
boolean usell = false;
|
||||||
|
|
||||||
|
|
||||||
// /////////////////////////////
|
// /////////////////////////////
|
||||||
// System.out.println("TOADInformation: " + toadInformation);
|
// System.out.println("TOADInformation: " + toadInformation);
|
||||||
@ -125,8 +127,6 @@ public class ToadSimplexLocaliser extends TOADBaseAlgorithm {
|
|||||||
// deal with 2D case
|
// deal with 2D case
|
||||||
start = Arrays.copyOf(start, nDimensions);
|
start = Arrays.copyOf(start, nDimensions);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean usell = false;
|
|
||||||
//MultivariateRealFunction chiFunc;
|
//MultivariateRealFunction chiFunc;
|
||||||
GoalType goal;
|
GoalType goal;
|
||||||
if (usell) {
|
if (usell) {
|
||||||
@ -223,19 +223,21 @@ public class ToadSimplexLocaliser extends TOADBaseAlgorithm {
|
|||||||
// SimpleError cartErr = estimateCartesianError(geometry, toadInformation, posVec);
|
// SimpleError cartErr = estimateCartesianError(geometry, toadInformation, posVec);
|
||||||
|
|
||||||
//FIXME - this return super weird results
|
//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
|
//FIXME - this elliptical error seems to work far better
|
||||||
SimpleMinimisation simpleMin = new SimpleMinimisation(chiFunc, nDimensions, start, firstStep);
|
SimpleMinimisation simpleMin = new SimpleMinimisation(chiFunc, nDimensions, start, firstStep);
|
||||||
LikilihoodError lError = new LikilihoodError(simpleMin, posVec);
|
ellipErr = new LikilihoodError(simpleMin, posVec);
|
||||||
|
}
|
||||||
|
|
||||||
EllipticalError ellipErr = lError;
|
|
||||||
|
|
||||||
|
|
||||||
// System.out.printf(", Chi2 = %3.1f, p=%3.1f, ndf = %d, Err=%s\n",
|
// System.out.printf(", Chi2 = %3.1f, p=%3.1f, ndf = %d, Err=%s\n",
|
||||||
// chiData.getChi2(), cumProb, chiData.getNdf(), cartErr.getJsonErrorString());
|
// chiData.getChi2(), cumProb, chiData.getNdf(), cartErr.getJsonErrorString());
|
||||||
System.out.println(ellipErr.getJsonErrorString());
|
// System.out.println(ellipErr.getJsonErrorString());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculated position was relative to array centre, so now need to add the array
|
* 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);
|
// TargetMotionResult tmResult = new TargetMotionResult(geometry.getTimeMilliseconds(), null, pos, 0, 0);
|
||||||
|
|
||||||
System.out.println("New group localisation: height: " + pos.getHeight() + " ref height: " +
|
// System.out.println("New group localisation: height: " + pos.getHeight() + " ref height: " +
|
||||||
geometry.getReferenceGPS().getHeight() + " posVec: " + posVec[2]);
|
// geometry.getReferenceGPS().getHeight() + " posVec: " + posVec[2]);
|
||||||
|
|
||||||
GroupLocResult glr = new GroupLocResult(pos, 0, chiData.getChi2());
|
GroupLocResult glr = new GroupLocResult(pos, 0, chiData.getChi2());
|
||||||
glr.setError(ellipErr);
|
glr.setError(ellipErr);
|
||||||
|
Loading…
Reference in New Issue
Block a user