Task #5716 (closed)
Opened 8 years ago
Closed 8 years ago
Bug: channel_offsets fails on set plane of big image.
| Reported by: | jamoore | Owned by: | wmoore |
|---|---|---|---|
| Priority: | major | Milestone: | OMERO-Beta4.3 |
| Component: | Scripting | Version: | n.a. |
| Keywords: | n.a. | Cc: | jburel, cxallan |
| Resources: | n.a. | Referenced By: | n.a. |
| References: | n.a. | Remaining Time: | 0.0d |
| Sprint: | n.a. |
Description
ERROR:blitz_gateway:Failed to setPlane() on rawPixelsStore while creating Image
Traceback (most recent call last):
File "c:\OMERO-CURRENT\lib\python\omero\gateway\__init__.py", line 2443, in createImageFromNumpySeq
uploadPlane(plane, theZ, theC, theT)
File "c:\OMERO-CURRENT\lib\python\omero\gateway\__init__.py", line 2429, in uploadPlane
rawPixelsStore.setPlane(convertedPlane, z, c, t)
File "c:\OMERO-CURRENT\lib\python\omero_api_RawPixelsStore_ice.py", line 254, in setPlane
return _M_omero.api.RawPixelsStore._op_setPlane.invoke(self, ((buf, z, c, t), _ctx))
InternalException: exception ::omero::InternalException
{
serverStackTrace = ome.conditions.InternalException: Wrapped Exception: (java.lang.UnsupportedOperationException):
Non-tile based writing unsupported.
at ome.io.bioformats.BfPyramidPixelBuffer.setPlane(BfPyramidPixelBuffer.java:1055)
at ome.services.RawPixelsBean.setPlane(RawPixelsBean.java:564)
Change History (3)
comment:1 Changed 8 years ago by wmoore
comment:2 Changed 8 years ago by jmoore
- Cc cxallan added
Will, at the moment, getPlane is supported for big images, but will likely be removed in 4.3.1 (#4853). setPlane is completely disallowed. The intent is that all API consumers move away from plane-based methods towards tile-based ones. It may be worth modifying this as an example for others. Chris, thoughts?
comment:3 Changed 8 years ago by Will Moore <will@…>
- Remaining Time set to 0
- Resolution set to fixed
- Status changed from new to closed
(In [289e066f1beb547cf4a0247fb45617cfbe7fe38f/ome.git] on branch develop) Channel_Offsets.py handles Big Images with 'not supported' message. Closes #5716
Interesting that this didn't fail on getPlane() from a 'Big' image (same size as the one you're creating).
Is getPlane() supported for big images?
I'm not sure how to implement createImageFromNumpySeq() using tiles, since it currently takes a sequence of planes. It's possible that uploadPlane() could take a whole plane and upload it as tiles (solves the error above). This would possibly allow server-side scripts to use createImageFromNumpySeq() on big images (largish ones anyway) but this is not likely to be nice for remote clients.
To make the whole script tile-based would require a complete re-write and is not worth doing unless we know someone wants this functionality on big images.