Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-21327

Replace ExposureInfo implementation with homogeneous map

    Details

    • Type: Improvement
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: afw
    • Labels:
      None
    • Story Points:
      8
    • Sprint:
      AP F19-4 (2H September), AP F19-5 (October)
    • Team:
      Alert Production

      Description

      lsst.afw.image.ExposureInfo is currently implemented in terms of a lsst.afw.typehandling.GenericMap. However, this class is brittle and difficult to use (see, e.g., DM-21216 and DM-21268), nor do we use its heterogeneity in ExposureInfo: we are only interested in storing lsst.afw.typehandling.Storable and shared_ptr<Storable>, and the only application for the former is incompatible with Storable due to custom persistence. Thus, GenericMap makes ExposureInfo difficult to use and maintain while not providing any needed functionality.

      Reimplement ExposureInfo in terms of a homogeneous map from strings to shared_ptr<Storable>. This map should have its own class in order to encapsulate strongly-typed handling of Storable (the one form of heterogeneous type support in GenericMap that we do use). Unlike GenericMap, this class need not have a separate interface or a Python API, since it will exist only as an implementation detail of ExposureInfo.

        Attachments

          Issue Links

            Activity

            Hide
            krzys Krzysztof Findeisen added a comment -

            Hi John Parejko, would you be willing to review this 1200-line pure-C++ change? (It's about 400 lines of new code + 400 lines of tests, with most of the rest being file refactoring.)

            Show
            krzys Krzysztof Findeisen added a comment - Hi John Parejko , would you be willing to review this 1200-line pure-C++ change? (It's about 400 lines of new code + 400 lines of tests, with most of the rest being file refactoring.)
            Hide
            Parejkoj John Parejko added a comment -

            Please link the PR(s), as jira isn't seeing them.

            Show
            Parejkoj John Parejko added a comment - Please link the PR(s), as jira isn't seeing them.
            Hide
            krzys Krzysztof Findeisen added a comment -
            Show
            krzys Krzysztof Findeisen added a comment - afw#490
            Hide
            Parejkoj John Parejko added a comment -

            Thank you for the clarifications.

            Show
            Parejkoj John Parejko added a comment - Thank you for the clarifications.

              People

              • Assignee:
                krzys Krzysztof Findeisen
                Reporter:
                krzys Krzysztof Findeisen
                Reviewers:
                John Parejko
                Watchers:
                Jim Bosch, John Parejko, Krzysztof Findeisen
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: