Requirement #1950 (closed)
|Reported by:||wmoore||Owned by:||jamoore|
|Cc:||atarkowska, jburel, jrswedlow||Business Value:||n.a.|
|Total Story Points:||n.a.||Roif:||n.a.|
|Mandatory Story Points:||n.a.|
Description (last modified by wmoore)
Maybe we've got this somewhere else, but I can't find it just now, and I need somewhere to put down requirements, thoughts etc.
Big Images is where we have large planes, and is related to 'Tiling' but tiling is a separate issue (different 'Requirement'?).
API wish list for Big Images (one way to start thinking about it):
RawPixelsStore: * getPlaneRegion(int z, int c, int t, int x, int y, int width, int height, zoom) * setPlaneRegion(int z, int c, int t, int x, int y, int width, int height) * getCubeRegion(x,y,z, w,h,d, zoom) - see below RenderingEngine: * renderCompressedRegion(PlaneDef p, int x, int y, int width, int height, float zoom) E.g. zoom = 0.5 to get a region at half normal size. * etc. for other methods.
EXAMPLE USE CASES:
- Catmaid is a "google-maps" (with Z) browse and annotation tool for large images that uses an image pyramid from TrakEM2.
Would be nice if we can support clients like this, either by generating an entire jpeg pyramid when the image is imported or opened, or making each tile on the fly as required?
- Open Astex Viewer, as an applet runs out of memory when rendering a cube over 160 x 160 x 160 (approx). To view larger volumes in 3D, we scale down in 3D. Currently do this in Ingvar's java code and save as a sub-sampled mrc.map, but might be nice to do on the server. Not sure what the API would look like, but I guess it would be: getCubeRegion(x,y,z, w,h,d, zoom).
- The pre-calculated solutions (GMaps, CATMAID) are fine, and very powerful. Our approach has been to allow re-scaling of images, and this is critical for viewing data.
WIDER API IMPLICATIONS:
If we're going to be revamping the ROI to access pixel data that is not necessarily adjacent on disk...? Then there are a bunch of other methods that might be nice:
- getXslice(theX, theC, theT)
- getYslice(theY, theC, theT)
- X & Y projections?