From 0d89150e2118aec712b8a3d482a3fdd398108532 Mon Sep 17 00:00:00 2001 From: John Bogovic Date: Wed, 17 Jan 2024 16:35:36 -0500 Subject: [PATCH 1/4] chore: bump pom, next dev cycle --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 68b4a7b..9baf555 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.janelia.saalfeldlab n5-universe - 1.2.1-SNAPSHOT + 1.3.1-SNAPSHOT N5-Universe Utilities spanning all of the N5 repositories From 2fab540f32eee21950dbb4079948827eb4bca7ce Mon Sep 17 00:00:00 2001 From: John Bogovic Date: Wed, 17 Jan 2024 16:35:57 -0500 Subject: [PATCH 2/4] fix: AffineCT constructor bug --- .../ome/ngff/v05/transformations/AffineCoordinateTransform.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/AffineCoordinateTransform.java b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/AffineCoordinateTransform.java index 57e38cb..3651042 100644 --- a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/AffineCoordinateTransform.java +++ b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/AffineCoordinateTransform.java @@ -42,7 +42,7 @@ public AffineCoordinateTransform( final String name, public AffineCoordinateTransform( final String name, final String path, final String inputSpace, final String outputSpace) { - super(name, path, inputSpace, outputSpace ); + super("affine", name, path, inputSpace, outputSpace ); } public JsonElement getJsonParameter() { From 20266f2336e5476131008070f5c5f6a074b1c2aa Mon Sep 17 00:00:00 2001 From: John Bogovic Date: Wed, 17 Jan 2024 16:36:24 -0500 Subject: [PATCH 3/4] fix: check and return null in convenience methods --- .../n5/universe/metadata/ome/ngff/v05/TransformUtils.java | 7 +++++-- .../v05/transformations/BaseLinearCoordinateTransform.java | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/TransformUtils.java b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/TransformUtils.java index 39d0824..4b88c3c 100644 --- a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/TransformUtils.java +++ b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/TransformUtils.java @@ -31,8 +31,11 @@ public class TransformUtils { - public static double[][] affineToMatrix( final AffineGet affine ) - { + public static double[][] affineToMatrix( final AffineGet affine ) { + + if (affine == null) + return null; + // AffineGets always have numSourceDimensions == numTargetDimensions final int N = affine.numSourceDimensions(); final double[][] mtx = new double[N][N+1]; diff --git a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/BaseLinearCoordinateTransform.java b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/BaseLinearCoordinateTransform.java index dc53d94..55cbc39 100644 --- a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/BaseLinearCoordinateTransform.java +++ b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/BaseLinearCoordinateTransform.java @@ -114,6 +114,9 @@ public T buildTransform(double[] parameters) { @Override public double[] getParameters(N5Reader n5) { + if (n5 == null) + return null; + final double[] paramsFlat = getDoubleArray(n5, getParameterPath()); if (paramsFlat != null) return paramsFlat; From a62d0472e9a19526d24a76fad34fe33ab0e56f57 Mon Sep 17 00:00:00 2001 From: John Bogovic Date: Tue, 30 Jan 2024 14:53:32 -0500 Subject: [PATCH 4/4] fix: AffineCoordinateTransform constructors * io for BaseLinearCoordinateTransform --- .../AffineCoordinateTransform.java | 10 ++--- .../BaseLinearCoordinateTransform.java | 40 +++++++++++++++++-- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/AffineCoordinateTransform.java b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/AffineCoordinateTransform.java index 3651042..1c57725 100644 --- a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/AffineCoordinateTransform.java +++ b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/AffineCoordinateTransform.java @@ -14,14 +14,13 @@ public AffineCoordinateTransform( BaseLinearCoordinateTransform ct ) } public AffineCoordinateTransform( final double[] affine) { - super("affine"); - this.affineFlat = affine; - buildTransform(affine ); + super("affine", affine); + buildTransform(affine); } public AffineCoordinateTransform( final String name, final String inputSpace, final String outputSpace, final double[] affine) { - super("affine", name, inputSpace, outputSpace ); + super("affine", name, inputSpace, outputSpace, affine ); this.affineFlat = affine; buildTransform( affine ); } @@ -36,8 +35,7 @@ public AffineCoordinateTransform(final String name, final N5Reader n5, final Str public AffineCoordinateTransform( final String name, final String[] inputAxes, final String[] outputAxes, final double[] affine ) { - super("affine", name, inputAxes, outputAxes ); - this.affineFlat = affine; + super("affine", name, inputAxes, outputAxes, affine ); } public AffineCoordinateTransform( final String name, final String path, diff --git a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/BaseLinearCoordinateTransform.java b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/BaseLinearCoordinateTransform.java index 55cbc39..1d4be8d 100644 --- a/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/BaseLinearCoordinateTransform.java +++ b/src/main/java/org/janelia/saalfeldlab/n5/universe/metadata/ome/ngff/v05/transformations/BaseLinearCoordinateTransform.java @@ -3,6 +3,7 @@ import org.janelia.saalfeldlab.n5.N5Reader; import org.janelia.saalfeldlab.n5.universe.metadata.ome.ngff.v05.TransformUtils; +import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; @@ -24,6 +25,13 @@ public BaseLinearCoordinateTransform(final String type) { super(type); } + public BaseLinearCoordinateTransform(final String type, final double[] affineFlat) { + + super(type); + this.affineFlat = affineFlat; + buildJsonParameter(); + } + public BaseLinearCoordinateTransform( final BaseLinearCoordinateTransform other ) { super(other.type, other.path); this.affine = other.affine; @@ -32,20 +40,38 @@ public BaseLinearCoordinateTransform( final BaseLinearCoordinateTransform oth this.name = other.name; this.input = other.input; this.output = other.output; + buildJsonParameter(); } - public BaseLinearCoordinateTransform( final String type, final String name, final String inputSpace, final String outputSpace) { - super(type, name, null, inputSpace, outputSpace ); + public BaseLinearCoordinateTransform(final String type, final String name, final String inputSpace, final String outputSpace) { + + super(type, name, null, inputSpace, outputSpace); + } + + public BaseLinearCoordinateTransform(final String type, final String name, final String inputSpace, final String outputSpace, final double[] affineFlat) { + + super(type, name, null, inputSpace, outputSpace); + this.affineFlat = affineFlat; + buildJsonParameter(); } public BaseLinearCoordinateTransform(final String type, final String name, final N5Reader n5, final String path, final String inputSpace, final String outputSpace) { - super(type, name, path, inputSpace, outputSpace ); + + super(type, name, path, inputSpace, outputSpace); } - public BaseLinearCoordinateTransform( final String type, final String name, + public BaseLinearCoordinateTransform(final String type, final String name, final String[] inputAxes, final String[] outputAxes) { + + super(type, name, null, inputAxes, outputAxes); + } + + public BaseLinearCoordinateTransform( final String type, final String name, + final String[] inputAxes, final String[] outputAxes, final double[] affineFlat) { super(type, name, null, inputAxes, outputAxes ); + this.affineFlat = affineFlat; + buildJsonParameter(); } public BaseLinearCoordinateTransform( final String type, final String name, final String path, @@ -58,6 +84,12 @@ public JsonElement getJsonParameter() { return affine; } + protected void buildJsonParameter() { + + if( affineFlat != null ) + affine = new Gson().toJsonTree(affineFlat); + } + public void interpretParameters() { if (!affine.isJsonArray())