Skip to content

OMERO export fails to create OME-TIFF as BigTIFF #6432

@aherbert

Description

@aherbert

Export of the following size image fails:

X=1080
Y=1080
Z=6
C=2
T=144
pixel type = unsigned 16-bit

Size = 1080x1080x6x2x144 x2 = 4,031,078,400 bytes

When exporting through OMERO Insight or using the omero-py CLI there is an error as the combined pixel size and the metadata is above the limit for a TIFF (2^32 = 4,294,967,296):

Relevant stack trace from Insight:

serverStackTrace = "loci.formats.FormatException: File is too large; call setBigTiff(true)
                         at loci.formats.out.TiffWriter.prepareToWriteImage(TiffWriter.java:385)
                         at loci.formats.out.TiffWriter.saveBytes(TiffWriter.java:272)
                         at loci.formats.out.OMETiffWriter.saveBytes(OMETiffWriter.java:219)
                         at loci.formats.out.TiffWriter.saveBytes(TiffWriter.java:212)
                         at ome.services.blitz.impl.ExporterI$2.doWork(ExporterI.java:414)

From omero-py:

omero export --file tmp.ome.tif Image:1430702
...
InternalException: File is too large; call setBigTiff(true)

The offending code that raises the exception appears to be here:

    // loci.formats.out.TiffWriter.prepareToWriteImage(...)
    if (!isBigTiff) {
      isBigTiff = (out.length() + 2
          * (width * height * c * bytesPerPixel)) >= 4294967296L;
      if (isBigTiff) {
        throw new FormatException("File is too large; call setBigTiff(true)");
      }
    }

However it is the code that calls this writer than needs to set the BigTIFF option to enabled as auto detection is not working given the extra metadata size.

The image is one of a plate obtained from a Operetta plate reader. I did not check the BioFormats code to determine whether the export is including the XML for the entire plate in the OME-TIFF. There is enough metadata to exceed the limit for a TIFF.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions