-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iviewer many ROIs #99
Comments
Do we have any way to query ROIs / shapes and filter by coordinates? Easy enough for e.g. Points and Rectangles (unless they have a crazy transform on them) but what about Polygons & Polylines? Clustering (example: https://openlayers.org/en/latest/examples/cluster.html) is nice but we still need all the shapes loaded in the browser. It might be possible to load a clustered ROI summary from the server for a particular zoom level (like loading tiles for low resolutions) but this would still require a DB query based on coordinates. |
Polygons/polylines are stored as a single strings of coordinates so the only way to query them would be to parse them all... not very efficient. Masks have a bounding box (though that's defined by the user so can include empty space), maybe this could be added to the DB for polygons/polylines? |
Actually, there was an externally coming RFE, which requested that iviewer would show the ROIs whilst hovering with the mouse over the image. The person coming up with the RFE was struggling to find the ROI in the image (large image, small ROIs). Although it is not directly what is being discussed here, it gives a perspective about how the user wants to work with ROIs (and their loading) -> image centric, not table centric (see your second bullet point in "how to request next page" @will-moore ) |
A previously discussed alternative was to make use of postgis for these look ups. |
See ome/omero-iviewer#227 for an investigation of loading shapes by tile for big images. |
After discussing ome/omero-iviewer#227 with @jburel, we considered various stages of support for lots of ROIs:
|
After thinking about this a bit more, I think we can get a long way by:
This means that you can still edit ROIs and Shapes and you can still find Shapes on the image via loading them in the table first.
|
It's good you're pushing the client side: if need be we could even consider a bulk-ROI microservice that would maintain a consistent API for clients while we figure out server-side indexed storage like PostGIS. |
Following the demo of Tiled ROIs ome/omero-iviewer#242 at the team meeting yesterday, I have added the current API query I'm making to the Trello card at https://trello.com/c/Tsv0yVe1/97-query-shapes-by-geometry |
From @chris-allan: see example at https://openlayers.org/en/master/examples/icon-sprite-webgl.html which loads 80k points. Could use this approach to show the centre-point for a similar number of shapes on an image. |
Harald looks at clustering a while back so it might be worth resurrecting some of the investigations work |
We need to be able to handle & browse (and edit?) larger numbers of ROIs in iviewer.
Limitations on large numbers are:
Currently we don't support pagination so we are limited to the max for a single page specified by
$ bin/omero config set omero.web.api.max_limit
which is 500 by default (see https://docs.openmicroscopy.org/omero/5.4.9/developers/json-api.html).We could add pagination support to load more ROIs, but we probably want to keep all loaded ROIs in hand as much as possible instead of a single page at a time. This is similar to thumbnails on left panel - we load 10 at a time but don't discard any so it's possible to load ALL eventually.
How to request "next page"?
What to do when:
What does GS do with Pathviewer?
cc @jburel @joshmoore
The text was updated successfully, but these errors were encountered: