• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Ticket
  • Next Ticket →

Ticket #11 (assigned story)

Opened 2 years ago

Last modified 8 days ago

Maximum Intensity Projections

Reported by: callan Owned by: callan
Priority: major Milestone: 3.0-Beta3.1
Component: Bin-Services Version:
Keywords: Cc: jburel, donald, jmoore, jason, carlos@…

Description

The rendering engine interface (and underlying code) should be extended to provide support for maximum intensity projections.

Change History

Changed 2 years ago by callan

  • version set to 3.0-M3
  • milestone changed from 3.0-M2 to 3.0-M3

Changed 2 years ago by callan

  • keywords iteration5 added
  • status changed from new to assigned

Scheduling this after the thumbnail service initial work is done in iteration4.

Changed 2 years ago by callan

  • keywords iteration5 removed
  • version changed from 3.0-M3 to 3.0-M4
  • milestone changed from 3.0-M3 to 3.0-M4

Plopping these in M4.

Changed 15 months ago by callan

  • version deleted
  • milestone changed from 3.0-Beta2 to 3.0-Beta3

Changed 10 months ago by jason

  • milestone changed from 3.0-Beta3 to 3.0-Beta4

Changed 10 months ago by jason

  • 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?

Changed 10 months ago by jason

  • cc donald added

Changed 6 months ago by callan

  • 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.

Changed 4 months ago by jason

Hey all-

What's the story here? We agreed this has to be in Beta3, and is clear our users need it.

Thanks!

Changed 4 months ago by jason

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?

Changed 4 months 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.

Changed 4 months ago by jmoore

  • cc jmoore added

Changed 2 months ago by callan

  • milestone changed from 3.0-Beta3 to 3.0-Beta3.1

Changed 2 months ago by callan

  • cc jason added

Initial implementation in r2588.

Changed 10 days ago by callan

  • cc carlos@… added

Full implementation including Blitz mappings, enumerations, services and full pixels set projections now available in r2752.

Changed 10 days ago by callan

Fixed missing Blitz ServiceFactory method in r2755 and ensured that correct enumerations are used for the Blitz interface.

Changed 10 days ago by callan

r2764 has now been tested with the RenderingEngine and IProjection interfaces from Blitz and JBoss, should now be feature complete.

Changed 9 days 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)

Changed 9 days 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)

Changed 8 days ago by callan

r2782 should fix the channel index mismatch bug.

Note: See TracTickets for help on using tickets.

Download in other formats:

  • Comma-delimited Text
  • Tab-delimited Text
  • RSS Feed

Trac Powered

Powered by Trac 0.11
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/