User Story #11 (closed)
Opened 13 years ago
Closed 11 years ago
Maximum Intensity Projections
| Reported by: | cxallan | Owned by: | cxallan |
|---|---|---|---|
| Priority: | major | Milestone: | 3.0-Beta3.1 |
| Component: | Bin-Services | Keywords: | n.a. |
| Cc: | jburel, dzmacdonald, jamoore, jrswedlow, carlos@… | Story Points: | n.a. |
| Sprint: | n.a. | Importance: | n.a. |
| Total Remaining Time: | n.a. | Estimated Remaining Time: | n.a. |
Description
The rendering engine interface (and underlying code) should be extended to provide support for maximum intensity projections.
Change History (21)
comment:1 Changed 13 years ago by cxallan
- Milestone changed from 3.0-M2 to 3.0-M3
- Version set to 3.0-M3
comment:2 Changed 13 years ago by cxallan
- Keywords iteration5 added
- Status changed from new to assigned
comment:3 Changed 13 years ago by cxallan
- Keywords iteration5 removed
- Milestone changed from 3.0-M3 to 3.0-M4
- Version changed from 3.0-M3 to 3.0-M4
Plopping these in M4.
comment:4 Changed 12 years ago by cxallan
- Milestone changed from 3.0-Beta2 to 3.0-Beta3
- Version 3.0-Beta1 deleted
comment:5 Changed 12 years ago by jrswedlow
- Milestone changed from 3.0-Beta3 to 3.0-Beta4
comment:6 Changed 12 years ago by jrswedlow
- Cc jburel added
Some comments and thoughts on this:
- Standard approach for calculation of projection is maximum intensity, but summed projects are sometimes used, so should have both.
- The calculation of a projection can be relatively easy -- few sections, or (almost infinitely) hard. First, a projection of a 3D image requires reading all the data, so is I/O and compute intensive-- MIP has an 'if' for every pixel x N sections.
- This facility must support timelapse, multi-channel images. 5D images > 1GB are increasingly common, so a 'projection' might really mean 300 projections of 256 x 256 x 20 x 2. Can we burden our rendering engine with that, while 5 other users hit it with other requests?
- It's not clear to me how to present the resulting calculation to the user:
- in a new window?
- in the same window, with a switch to back and forth between 3D data and projection?
- as a TIFF or MPEG dumped to the user's client?
- For multi-channel images, must calculate projection for individual channels and overlays.
- How do we store the result of this calc:
- as a TIFF attached to the 5D image?
- as a new set of Pixels
- as a new Image (probably not)
We really need to define how this will be done, and then decide if we can have the RE do this work, or if this is a next step for the Python system Donald is building (link?), or use something else?
comment:7 Changed 12 years ago by jrswedlow
- Cc donald added
comment:8 Changed 11 years ago by cxallan
- Milestone changed from 3.0-Beta4 to 3.0-Beta3
We're going to try and get an initial version of this into milestone:3.0-Beta3 with the help of the additions of #891 and a new projections service.
comment:9 Changed 11 years ago by jrswedlow
Hey all-
What's the story here? We agreed this has to be in Beta3, and is clear our users need it.
Thanks!
comment:10 Changed 11 years ago by jrswedlow
This from Alexia (email on May 13):
"I am still wondering why we can't do projections from our own computers, which do not usually have problems accessing Zeus. It will allow us to be more productive! I talked with Chris about that a long time ago (probably in November), but it doesn't seem to be a top priority. I know the programmers have a lot of work to do, but I really think that for users, this is a top priority..."
Let's set a date for this so users know what is going on; based on recent discussions, what about July 1? July 15?
comment:11 Changed 11 years ago by jburel
We can always set a date as long as we don't specify the year ;-)
More seriously, July 15 seems reasonable.
The more we wait, the more upset the users will become.
comment:12 Changed 11 years ago by jmoore
- Cc jmoore added
comment:13 Changed 11 years ago by cxallan
- Milestone changed from 3.0-Beta3 to 3.0-Beta3.1
comment:15 Changed 11 years ago by cxallan
- Cc carlos@… added
Full implementation including Blitz mappings, enumerations, services and full pixels set projections now available in r2752.
comment:16 Changed 11 years ago by cxallan
Fixed missing Blitz ServiceFactory method in r2755 and ensured that correct enumerations are used for the Blitz interface.
comment:17 Changed 11 years ago by cxallan
r2764 has now been tested with the RenderingEngine and IProjection interfaces from Blitz and JBoss, should now be feature complete.
comment:18 Changed 11 years ago by jburel
I have an image with 4 channels. Project only one channel (index 2)
The following error occurred:
java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
at java.util.ArrayList.RangeCheck(ArrayList.java:546)
at java.util.ArrayList.get(ArrayList.java:321)
at org.hibernate.collection.PersistentList.get(PersistentList.java:271)
at ome.model.core.Pixels.getChannel(Pixels.java:1174)
at ome.services.projection.ProjectionBean.projectPixels(ProjectionBean.java:273)
comment:19 Changed 11 years ago by jburel
This time I select all the channels and I have the following error:
org.springframework.dao.InvalidDataAccessResourceUsageException: could not insert: [ome.model.stats.StatsInfo]; nested exception is org.hibernate.exception.DataException: could not insert: [ome.model.stats.StatsInfo]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:618)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:886)
... more
Caused by: org.postgresql.util.PSQLException: ERROR: type "double precision" value out of range: underflow
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1512)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1297)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:437)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:307)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252)
comment:20 Changed 11 years ago by cxallan
r2782 should fix the channel index mismatch bug.
comment:21 Changed 11 years ago by cxallan
- Resolution set to fixed
- Status changed from assigned to closed
Completed and signed off from the above change sets.
Scheduling this after the thumbnail service initial work is done in iteration4.