Coverage for tests/res/single_resolution_float_5d.py: 100%
27 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-31 11:24 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-31 11:24 +0000
1import tifffile
2import os
3import numpy as np
4from qubalab.images.metadata.image_shape import ImageShape
7def get_name() -> str:
8 return "single_resolution_float_5d.ome.tif"
11def get_path() -> str:
12 return os.path.realpath(os.path.join(os.path.realpath(__file__), os.pardir, get_name()))
15def get_shapes() -> tuple[ImageShape, ...]:
16 return (ImageShape(32, 16, 10, 5, 15),)
19def get_pixel_size_x_y_in_micrometers() -> float:
20 return 0.5
23def get_dtype():
24 return np.float64
27def get_downsamples() -> tuple[float, ...]:
28 return tuple([get_shapes()[0].x / shape.x for shape in get_shapes()])
31def get_pixel_value(x: int, y: int, c: int, z: int, t: int) -> int:
32 return pixels[t, z, c, y, x]
35def _get_pixels() -> np.array:
36 return np.random.rand(get_shapes()[0].t, get_shapes()[0].z, get_shapes()[0].c, get_shapes()[0].y, get_shapes()[0].x)
39def _write_image(pixels: np.array):
40 metadata = {
41 'PhysicalSizeX': get_pixel_size_x_y_in_micrometers(),
42 'PhysicalSizeXUnit': 'µm',
43 'PhysicalSizeY': get_pixel_size_x_y_in_micrometers(),
44 'PhysicalSizeYUnit': 'µm'
45 }
47 with tifffile.TiffWriter(get_path()) as tif:
48 number_of_pixels_per_cm = 1e4 / get_pixel_size_x_y_in_micrometers()
50 tif.write(
51 pixels,
52 metadata=metadata,
53 resolution=(number_of_pixels_per_cm, number_of_pixels_per_cm),
54 resolutionunit=3 # indicate that the resolution above is in cm^-1
55 )
58pixels = _get_pixels()
59_write_image(pixels)