Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ For comprehensive documentation, see the [**User Guide**](USERGUIDE.md), which i
- Best practices
- Troubleshooting

## Conventions

zarr-java also ships support for Zarr conventions built on top of the core format, under the `dev.zarr.conventions`
namespace. Currently this includes [OME-Zarr](https://ngff.openmicroscopy.org/) (v0.4, v0.5 and v0.6) in
`dev.zarr.conventions.ome`; see the [**OME-Zarr Guide**](USERGUIDE-OME-ZARR.md).

We are open to hosting other conventions as well. If you would like to add one, please open an issue or a pull request
that places it in its own `dev.zarr.conventions.<name>` package.

## Quick Usage Example

```java
Expand Down
20 changes: 10 additions & 10 deletions USERGUIDE-OME-ZARR.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Scope and supported versions

`dev.zarr.zarrjava.experimental.ome` supports:
`dev.zarr.conventions.ome` supports:

- v0.4 (Zarr v2 layout)
- v0.5 (Zarr v3 layout)
Expand Down Expand Up @@ -64,7 +64,7 @@ If you need the raw version-specific metadata model instead of normalized `Multi

## v0.6 Scene metadata

Scene roots (groups with `ome.scene`) are supported via `dev.zarr.zarrjava.experimental.ome.v0_6.Scene`:
Scene roots (groups with `ome.scene`) are supported via `dev.zarr.conventions.ome.v0_6.Scene`:

- `Scene.openScene(StoreHandle)` / `Scene.open(StoreHandle)`
- `Scene.createScene(StoreHandle, SceneMetadata)` / `Scene.create(...)`
Expand All @@ -79,9 +79,9 @@ Notes:
## Read example

```java
import dev.zarr.zarrjava.experimental.ome.MultiscaleImage;
import dev.zarr.zarrjava.experimental.ome.Plate;
import dev.zarr.zarrjava.experimental.ome.Well;
import dev.zarr.conventions.ome.MultiscaleImage;
import dev.zarr.conventions.ome.Plate;
import dev.zarr.conventions.ome.Well;
import dev.zarr.zarrjava.store.FilesystemStore;
import dev.zarr.zarrjava.store.StoreHandle;

Expand All @@ -90,7 +90,7 @@ MultiscaleImage image = MultiscaleImage.open(imageHandle);

int scaleCount = image.getScaleLevelCount();
java.util.List<String> axisNames = image.getAxisNames();
dev.zarr.zarrjava.experimental.ome.metadata.MultiscalesEntry entry0 = image.getMultiscaleNode(0);
dev.zarr.conventions.ome.metadata.MultiscalesEntry entry0 = image.getMultiscaleNode(0);

dev.zarr.zarrjava.core.Array s0 = image.openScaleLevel(0);
ucar.ma2.Array full = s0.read();
Expand All @@ -112,9 +112,9 @@ MultiscaleImage wellImage = well.openImage("0");
Creation is version-specific, but the pattern is the same: create node with version metadata, then append levels/datasets with scale transforms. For example, for v0.5:

```java
import dev.zarr.zarrjava.experimental.ome.metadata.Axis;
import dev.zarr.zarrjava.experimental.ome.metadata.CoordinateTransformation;
import dev.zarr.zarrjava.experimental.ome.metadata.MultiscalesEntry;
import dev.zarr.conventions.ome.metadata.Axis;
import dev.zarr.conventions.ome.metadata.CoordinateTransformation;
import dev.zarr.conventions.ome.metadata.MultiscalesEntry;
import dev.zarr.zarrjava.store.FilesystemStore;
import dev.zarr.zarrjava.store.StoreHandle;
import dev.zarr.zarrjava.v3.Array;
Expand All @@ -128,7 +128,7 @@ MultiscalesEntry ms = new MultiscalesEntry(
Arrays.asList(new Axis("y", "space", "micrometer"), new Axis("x", "space", "micrometer")),
Collections.<Dataset>emptyList());
);
dev.zarr.zarrjava.experimental.ome.v0_5.MultiscaleImage written = dev.zarr.zarrjava.experimental.ome.v0_5.MultiscaleImage.create(out, ms);
dev.zarr.conventions.ome.v0_5.MultiscaleImage written = dev.zarr.conventions.ome.v0_5.MultiscaleImage.create(out, ms);

written.createScaleLevel(
"s0",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.zarr.zarrjava.experimental.ome;
package dev.zarr.conventions.ome;

import dev.zarr.zarrjava.ZarrException;
import dev.zarr.zarrjava.core.Node;
import dev.zarr.zarrjava.experimental.ome.metadata.MultiscalesEntry;
import dev.zarr.zarrjava.experimental.ome.metadata.OmeroMetadata;
import dev.zarr.conventions.ome.metadata.MultiscalesEntry;
import dev.zarr.conventions.ome.metadata.OmeroMetadata;
import dev.zarr.zarrjava.store.StoreHandle;
import dev.zarr.zarrjava.utils.Utils;

Expand Down Expand Up @@ -57,7 +57,7 @@ public interface MultiscaleImage {
default List<String> getAxisNames() throws ZarrException {
MultiscalesEntry entry = getMultiscaleNode(0);
List<String> names = new ArrayList<>();
for (dev.zarr.zarrjava.experimental.ome.metadata.Axis axis : entry.axes) {
for (dev.zarr.conventions.ome.metadata.Axis axis : entry.axes) {
names.add(axis.name);
}
return names;
Expand Down Expand Up @@ -129,9 +129,9 @@ static MultiscaleImage open(StoreHandle storeHandle) throws IOException, ZarrExc
com.fasterxml.jackson.databind.JsonNode omeNode = attrs.get("ome");
String version = omeNode.has("version") ? omeNode.get("version").asText() : "";
if (version.startsWith("0.6")) {
return dev.zarr.zarrjava.experimental.ome.v0_6.MultiscaleImage.openMultiscaleImage(storeHandle);
return dev.zarr.conventions.ome.v0_6.MultiscaleImage.openMultiscaleImage(storeHandle);
}
return dev.zarr.zarrjava.experimental.ome.v0_5.MultiscaleImage.openMultiscaleImage(storeHandle);
return dev.zarr.conventions.ome.v0_5.MultiscaleImage.openMultiscaleImage(storeHandle);
}
}

Expand All @@ -142,7 +142,7 @@ static MultiscaleImage open(StoreHandle storeHandle) throws IOException, ZarrExc
byte[] bytes = Utils.toArray(zattrs.readNonNull());
com.fasterxml.jackson.databind.JsonNode root = mapper.readTree(bytes);
if (root.has("multiscales")) {
return dev.zarr.zarrjava.experimental.ome.v0_4.MultiscaleImage.openMultiscaleImage(storeHandle);
return dev.zarr.conventions.ome.v0_4.MultiscaleImage.openMultiscaleImage(storeHandle);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.zarr.zarrjava.experimental.ome;
package dev.zarr.conventions.ome;

import dev.zarr.zarrjava.ZarrException;
import dev.zarr.zarrjava.experimental.ome.metadata.transform.CoordinateTransformation;
import dev.zarr.zarrjava.experimental.ome.metadata.MultiscalesEntry;
import dev.zarr.conventions.ome.metadata.transform.CoordinateTransformation;
import dev.zarr.conventions.ome.metadata.MultiscalesEntry;

import java.io.IOException;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome;
package dev.zarr.conventions.ome;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome;
package dev.zarr.conventions.ome;

import com.fasterxml.jackson.core.type.TypeReference;
import dev.zarr.zarrjava.ZarrException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome;
package dev.zarr.conventions.ome;

import com.fasterxml.jackson.core.type.TypeReference;
import dev.zarr.zarrjava.ZarrException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.zarr.zarrjava.experimental.ome;
package dev.zarr.conventions.ome;

import dev.zarr.zarrjava.ZarrException;
import dev.zarr.zarrjava.core.Node;
import dev.zarr.zarrjava.experimental.ome.metadata.PlateMetadata;
import dev.zarr.conventions.ome.metadata.PlateMetadata;
import dev.zarr.zarrjava.store.StoreHandle;
import dev.zarr.zarrjava.utils.Utils;

Expand Down Expand Up @@ -43,9 +43,9 @@ static Plate open(StoreHandle storeHandle) throws IOException, ZarrException {
com.fasterxml.jackson.databind.JsonNode omeNode = attrs.get("ome");
String version = omeNode.has("version") ? omeNode.get("version").asText() : "";
if (version.startsWith("0.6")) {
return dev.zarr.zarrjava.experimental.ome.v0_6.Plate.openPlate(storeHandle);
return dev.zarr.conventions.ome.v0_6.Plate.openPlate(storeHandle);
}
return dev.zarr.zarrjava.experimental.ome.v0_5.Plate.openPlate(storeHandle);
return dev.zarr.conventions.ome.v0_5.Plate.openPlate(storeHandle);
}
}

Expand All @@ -56,7 +56,7 @@ static Plate open(StoreHandle storeHandle) throws IOException, ZarrException {
byte[] bytes = Utils.toArray(zattrs.readNonNull());
com.fasterxml.jackson.databind.JsonNode root = mapper.readTree(bytes);
if (root.has("plate")) {
return dev.zarr.zarrjava.experimental.ome.v0_4.Plate.openPlate(storeHandle);
return dev.zarr.conventions.ome.v0_4.Plate.openPlate(storeHandle);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.zarr.zarrjava.experimental.ome;
package dev.zarr.conventions.ome;

import dev.zarr.zarrjava.ZarrException;
import dev.zarr.zarrjava.core.Node;
import dev.zarr.zarrjava.experimental.ome.metadata.WellMetadata;
import dev.zarr.conventions.ome.metadata.WellMetadata;
import dev.zarr.zarrjava.store.StoreHandle;
import dev.zarr.zarrjava.utils.Utils;

Expand Down Expand Up @@ -43,9 +43,9 @@ static Well open(StoreHandle storeHandle) throws IOException, ZarrException {
com.fasterxml.jackson.databind.JsonNode omeNode = attrs.get("ome");
String version = omeNode.has("version") ? omeNode.get("version").asText() : "";
if (version.startsWith("0.6")) {
return dev.zarr.zarrjava.experimental.ome.v0_6.Well.openWell(storeHandle);
return dev.zarr.conventions.ome.v0_6.Well.openWell(storeHandle);
}
return dev.zarr.zarrjava.experimental.ome.v0_5.Well.openWell(storeHandle);
return dev.zarr.conventions.ome.v0_5.Well.openWell(storeHandle);
}
}

Expand All @@ -56,7 +56,7 @@ static Well open(StoreHandle storeHandle) throws IOException, ZarrException {
byte[] bytes = Utils.toArray(zattrs.readNonNull());
com.fasterxml.jackson.databind.JsonNode root = mapper.readTree(bytes);
if (root.has("well")) {
return dev.zarr.zarrjava.experimental.ome.v0_4.Well.openWell(storeHandle);
return dev.zarr.conventions.ome.v0_4.Well.openWell(storeHandle);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.zarr.zarrjava.experimental.ome.metadata.transform.CoordinateTransformation;
import dev.zarr.conventions.ome.metadata.transform.CoordinateTransformation;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import dev.zarr.zarrjava.experimental.ome.metadata.transform.CoordinateTransformation;
import dev.zarr.conventions.ome.metadata.transform.CoordinateTransformation;

import javax.annotation.Nullable;
import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata;
package dev.zarr.conventions.ome.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata.transform;
package dev.zarr.conventions.ome.metadata.transform;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonSubTypes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata.transform;
package dev.zarr.conventions.ome.metadata.transform;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonAnySetter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata.transform;
package dev.zarr.conventions.ome.metadata.transform;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata.transform;
package dev.zarr.conventions.ome.metadata.transform;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.zarr.zarrjava.experimental.ome.metadata.transform;
package dev.zarr.conventions.ome.metadata.transform;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package dev.zarr.zarrjava.experimental.ome.v0_4;
package dev.zarr.conventions.ome.v0_4;

import com.fasterxml.jackson.core.type.TypeReference;
import dev.zarr.zarrjava.ZarrException;
import dev.zarr.zarrjava.core.Attributes;
import dev.zarr.zarrjava.experimental.ome.OmeV2Group;
import dev.zarr.zarrjava.experimental.ome.MultiscalesMetadataImage;
import dev.zarr.zarrjava.experimental.ome.metadata.transform.CoordinateTransformation;
import dev.zarr.zarrjava.experimental.ome.metadata.Dataset;
import dev.zarr.zarrjava.experimental.ome.metadata.MultiscalesEntry;
import dev.zarr.zarrjava.experimental.ome.metadata.OmeroMetadata;
import dev.zarr.conventions.ome.OmeV2Group;
import dev.zarr.conventions.ome.MultiscalesMetadataImage;
import dev.zarr.conventions.ome.metadata.transform.CoordinateTransformation;
import dev.zarr.conventions.ome.metadata.Dataset;
import dev.zarr.conventions.ome.metadata.MultiscalesEntry;
import dev.zarr.conventions.ome.metadata.OmeroMetadata;
import dev.zarr.zarrjava.store.StoreHandle;
import dev.zarr.zarrjava.v2.Array;
import dev.zarr.zarrjava.v2.Group;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.zarr.zarrjava.experimental.ome.v0_4;
package dev.zarr.conventions.ome.v0_4;

import dev.zarr.zarrjava.ZarrException;
import dev.zarr.zarrjava.experimental.ome.OmeV2Group;
import dev.zarr.zarrjava.experimental.ome.metadata.PlateMetadata;
import dev.zarr.conventions.ome.OmeV2Group;
import dev.zarr.conventions.ome.metadata.PlateMetadata;
import dev.zarr.zarrjava.store.StoreHandle;
import dev.zarr.zarrjava.v2.Group;
import dev.zarr.zarrjava.v2.GroupMetadata;
Expand All @@ -13,7 +13,7 @@
/**
* OME-Zarr v0.4 HCS plate backed by a Zarr v2 group.
*/
public final class Plate extends OmeV2Group implements dev.zarr.zarrjava.experimental.ome.Plate {
public final class Plate extends OmeV2Group implements dev.zarr.conventions.ome.Plate {

private PlateMetadata plateMetadata;

Expand Down Expand Up @@ -53,7 +53,7 @@ public PlateMetadata getPlateMetadata() throws ZarrException {
}

@Override
public dev.zarr.zarrjava.experimental.ome.Well openWell(String rowColPath) throws IOException, ZarrException {
public dev.zarr.conventions.ome.Well openWell(String rowColPath) throws IOException, ZarrException {
return Well.openWell(storeHandle.resolve(rowColPath));
}

Expand Down
Loading
Loading