Skip to content

Instantly share code, notes, and snippets.

@dstansby
Created April 30, 2024 11:06
Show Gist options
  • Save dstansby/4f79eb6855c35f63fd238290dc9a7569 to your computer and use it in GitHub Desktop.
Save dstansby/4f79eb6855c35f63fd238290dc9a7569 to your computer and use it in GitHub Desktop.
from pathlib import Path
import shutil
import sys
import dask.array as da
import glymur
from numcodecs import Blosc
from loguru import logger
import stack_to_chunk
logger.enable("stack_to_chunk")
logger.add(sys.stdout, level="INFO")
input_dir = Path(
"/Volumes/Media/Data/2.45um_LADAF-2020-27_lung-left_VOI-06-lower-lobe-basal_pag-0.02_0.04_jp2_"
)
output_dir = Path("/Volumes/Media/Data/2.45um_LADAF-2020-27_lung-left_VOI-06-lower-lobe-basal.ome.zarr")
if __name__ == "__main__":
"""print("Constructing Jp2ks...")
slices = sorted(input_dir.glob("*.jp2"))
slices = slices[:256]
j2ks = [glymur.Jp2k(f) for f in slices]
volume = da.stack([da.from_array(j2k) for j2k in j2ks], axis=-1)
print("Finished stacking data")
group = stack_to_chunk.MultiScaleGroup(
output_dir,
name="my_zarr_group",
spatial_unit="micrometer",
voxel_size=(2.45, 2.45, 2.45),
)
group.add_full_res_data(
volume,
chunk_size=128,
compressor=Blosc(cname="zstd", clevel=8, shuffle=1),
n_processes=1,
)"""
group = stack_to_chunk.open_multiscale_group(output_dir)
group.add_downsample_level(1)
# https://github.com/HiPCTProject/stack-to-chunk/pull/26
# time:
# memory:
#
# https://github.com/HiPCTProject/stack-to-chunk/tree/downsample
# time: 2 mins
# memory: not much
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment