Skip to content
Merged
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
1 change: 1 addition & 0 deletions biomero_importer/utils/importer.py
Original file line number Diff line number Diff line change
Expand Up @@ -523,6 +523,7 @@ def import_to_omero(self, conn, file_path, target_id, target_type, uuid, transfe
@connection
def import_zarr(self, conn, uri, target, target_by_name=None, endpoint=None, nosignrequest=False):
# Using https://github.com/BioNGFF/omero-import-utils/blob/main/metadata/register.py
# Also using updates from https://github.com/ome/omero-cli-zarr/blob/master/src/omero_zarr/zarr_import.py
from .register import (load_attrs, register_image, register_plate, link_to_target, validate_endpoint,
get_omexml_bytes, full_import, parse_image_metadata, set_rendering_settings,
set_external_info)
Expand Down
21 changes: 17 additions & 4 deletions biomero_importer/utils/register.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
from omero.model.enums import PixelsTypeuint16, PixelsTypeint32
from omero.model.enums import PixelsTypeuint32, PixelsTypefloat
from omero.model.enums import PixelsTypecomplex, PixelsTypedouble
from omero.model.enums import UnitsLength

from omero.model import ExternalInfoI
from omero.rtypes import rbool, rdouble, rint, rlong, rstring, rtime
Expand All @@ -69,6 +70,8 @@
'complex_': PixelsTypecomplex,
'complex64': PixelsTypecomplex}

UL = sorted(UnitsLength._enumerators.values())


def get_omexml_bytes(store):
# get() is async. Need to sync to get the bytes
Expand Down Expand Up @@ -403,13 +406,23 @@ def set_rendering_settings(conn, image, image_attrs, pixels_type, families=None,
return rnd_def


def get_unit_length(value):
for unit in UL:
if unit.name.lower() == value:
return unit
return None


def create_length(value_unit):
if len(value_unit) > 1 and value_unit[1]:
try:
return LengthI(value_unit[0], value_unit[1].upper())
except:
unit = get_unit_length(value_unit[1])
if unit is None:
return LengthI(value_unit[0], UnitsLength.PIXEL)
return LengthI(value_unit[0], unit)
except TypeError:
pass
return LengthI(value_unit[0])
return LengthI(value_unit[0], UnitsLength.PIXEL)


def set_pixel_size(image, pixel_size):
Expand All @@ -418,7 +431,7 @@ def set_pixel_size(image, pixel_size):
pixels.setPhysicalSizeX(create_length(pixel_size["x"]))
if "y" in pixel_size:
pixels.setPhysicalSizeY(create_length(pixel_size["y"]))
if "z" in pixel_size:
if "z" in pixel_size and pixel_size["z"] != (1, ''):
pixels.setPhysicalSizeZ(create_length(pixel_size["z"]))


Expand Down