Ticket #834 (closed design issue: duplicate)

Opened 10 years ago

Last modified 7 years ago

Redesign C++ Source/DIASource/Object classes

Reported by: rhl Owned by: rhl
Priority: normal Milestone:
Component: afw Keywords:
Cc: ktl, dubcovsky, jbosch@…, jbecla, smm Blocked By:
Blocking: Project: LSST
Version Number:
How to repeat:

not applicable


Independent of the question of what should be stored in the DB Source/DIASource/Object tables, we need to think about the design of the C++ classes that we use to measure the properties of detections.

Currently, we have a design where we use a std::bitset to indicate which fields are NULL, but when we persist, at least to boost, this information isn't saved. We also don't have a base class that both Source and DIASource inherit from, mostly due to the way that this is-NULL bitset is implemented.

Another issue is that the Source object in the apps code isn't the same as the Source table in the DB; for example, in the C++ the quantities have units such as DN and pixels, rather than fluxes and (ra, dec).

I'd like to revisit this in DC3b:

  • Define a base class that Source/DIASource (and Object?) can inherit from
  • Consider renaming the Source classes:
    • Detection comes to mind
    • DetectionSet is already in use, but could be modified (it doesn't seem to be a very useful concept --- people seem to always extract the Sources from it, and ignore the parent MaskedImage)
    • We may want a DB-centric Source too, that a calibration step would create from a Detection
  • Decide how to handle non-measured quantities (N.b. even if they're floats, boost::serialize can't handle NaNs)
  • Align names with DB where appropriate, e.g. conventions on error fields

Change History

comment:1 Changed 10 years ago by ktl

Null field information is indeed saved to and retrieved from Boost. What Boost persistence does not provide is portable retrieval of Source/DIASource instances that contain NaN, infinite, or denormalized floating point values.

comment:2 Changed 9 years ago by rhl

  • Status changed from new to closed
  • Resolution set to duplicate

This is being done as part of #1196

comment:3 Changed 7 years ago by robyn

  • Milestone DC3b Apps Framework deleted

Milestone DC3b Apps Framework deleted

Note: See TracTickets for help on using tickets.