zarr-developers / zarr-specs

Zarr core protocol for storage and retrieval of N-dimensional typed arrays
https://zarr-specs.readthedocs.io/
Creative Commons Attribution 4.0 International
88 stars 28 forks source link

Writer name field #139

Open jakirkham opened 2 years ago

jakirkham commented 2 years ago

For tracking down issues, it would be useful to have field in the metadata that tracks what library was used to write the data. This wouldn't be used to handle anything special on the IO side. Instead it is useful to include when debugging issues with a specific writer.

Thanks @martindurant for this suggestion! 🙏

martindurant commented 2 years ago

Library, language, version, date... and that's just for the creation of the metadata. This is very useful information for diagnostic purposes. Some file types also include HISTORY tags recording updates, but this is somewhat counter to zarr's idea of keeping the data and metadata files separate.

jakirkham commented 2 years ago

cc @joshmoore (in case you have thoughts/experience here 🙂)

joshmoore commented 2 years ago

We certainly added something like that in ome-zarr:

            "metadata": {
                "description": "the fields in metadata depend on the downscaling implementation. Here, the parameters passed to the skimage function are given",
                "method": "skimage.transform.pyramid_gaussian",
                "version": "0.16.1",
                "args": "[true]",
                "kwargs": {"multichannel": true}
            }

from https://ngff.openmicroscopy.org/latest/#multiscale-md

If there were a metadata field (in .zarray, then I assume?) we could migrate to using that natively.