.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/run_update_ome_zarr.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_run_update_ome_zarr.py: Update OME-Zarr Version ======================= This script shows how to write the same OME-Zarr image using a new version. .. GENERATED FROM PYTHON SOURCE LINES 10-17 .. code-block:: Python from pathlib import Path from tempfile import TemporaryDirectory import numpy as np from iohub.ngff import TransformationMeta, open_ome_zarr .. GENERATED FROM PYTHON SOURCE LINES 18-19 Set storage path .. GENERATED FROM PYTHON SOURCE LINES 19-23 .. code-block:: Python tmp_dir = TemporaryDirectory() old_store_path = Path(tmp_dir.name) / "old.zarr" new_store_path = Path(tmp_dir.name) / "new.zarr" .. GENERATED FROM PYTHON SOURCE LINES 24-25 Create a version 0.4 OME-Zarr dataset .. GENERATED FROM PYTHON SOURCE LINES 25-46 .. code-block:: Python random_image = np.random.randint( 0, np.iinfo(np.uint16).max, size=(10, 2, 32, 128, 128), dtype=np.uint16 ) scale = [2.0, 3.0, 4.0, 5.0, 6.0] with open_ome_zarr( old_store_path, layout="hcs", mode="w-", channel_names=["DAPI", "GFP"], version="0.4", ) as old_dataset: position = old_dataset.create_position("A", "1", "0") image = position.create_image( "0", random_image, chunks=(1, 1, 4, 32, 32), transform=[TransformationMeta(type="scale", scale=scale)], ) .. GENERATED FROM PYTHON SOURCE LINES 47-48 Write the same image with version 0.5 and sharding .. GENERATED FROM PYTHON SOURCE LINES 48-71 .. code-block:: Python with open_ome_zarr(old_store_path, mode="r", layout="hcs") as old_dataset: with open_ome_zarr( new_store_path, layout="hcs", mode="w", channel_names=old_dataset.channel_names, version="0.5", ) as new_dataset: for name, old_position in old_dataset.positions(): row, col, fov = name.split("/") new_position = new_dataset.create_position(row, col, fov) old_image = old_position["0"] new_image = new_position.create_image( "0", data=old_image.numpy(), chunks=(1, 1, 4, 32, 32), shards_ratio=(2, 1, 8, 4, 4), transform=old_position.metadata.multiscales[0] .datasets[0] .coordinate_transformations, ) .. GENERATED FROM PYTHON SOURCE LINES 72-73 Read the new FOV to verify it was written correctly .. GENERATED FROM PYTHON SOURCE LINES 73-79 .. code-block:: Python with open_ome_zarr(new_store_path / "A/1/0", mode="r") as dataset: assert dataset.scale == scale image = dataset["0"] assert image.shards == (2, 1, 32, 128, 128) assert np.array_equal(image.numpy(), random_image) .. GENERATED FROM PYTHON SOURCE LINES 80-81 Clean up .. GENERATED FROM PYTHON SOURCE LINES 81-82 .. code-block:: Python tmp_dir.cleanup() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 6.408 seconds) .. _sphx_glr_download_auto_examples_run_update_ome_zarr.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: run_update_ome_zarr.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: run_update_ome_zarr.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: run_update_ome_zarr.zip `