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

Implement abstract base class for approximated or interpolated fields

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Invalid
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: afw

      Description

      The user of an Approximate or Interpolate object doesn't care which of these they have, once the object has been constructed, and we should make these inherit from a common base class that only contains an interface for accessing the interpolated/approximated function while making no assumptions about its functional form.

      The new class will represent a scalar field defined over an integer bounding box, and will have methods for evaluating the field at a point and creating an image of the field. We could also consider giving it arithmetic interoperability with Image. I don't have a strong candidate for the name; I've called it "BoundedField" on the HSC side but would like that to be revisited.

      Adding derived classes to replace the functionality currently in the Approximate and Interpolate classes will be on a separate issue. The main work on this issue is tweaking the design on the HSC side and getting signoff on the final design from LSST developers; the actual coding should be minimal, as it's just an interface and we already have a good starting point for it.

      The HSC-side issue (which also includes work that is part of DM-1124) is here:
      https://hsc-jira.astro.princeton.edu/jira/browse/HSC-796
      and the associated git commits are here:
      https://github.com/HyperSuprime-Cam/afw/compare/releases/S14A_0...tickets/DM-796

        Attachments

          Issue Links

            Activity

            jbosch Jim Bosch created issue -
            jbosch Jim Bosch made changes -
            Field Original Value New Value
            Epic Link DM-85 [ 11339 ]
            jbosch Jim Bosch made changes -
            Rank Ranked higher
            jbosch Jim Bosch made changes -
            Link This issue relates to DM-796 [ DM-796 ]
            jbosch Jim Bosch made changes -
            Link This issue is duplicated by DM-434 [ DM-434 ]
            jbosch Jim Bosch made changes -
            Rank Ranked lower
            jbosch Jim Bosch made changes -
            Rank Ranked higher
            jbosch Jim Bosch made changes -
            Labels Measurement AppsPlanning Measurement
            jbosch Jim Bosch made changes -
            Story Points 4 2
            Team UW [ 10300 ]
            Description The user of an Approximate or Interpolate object doesn't care which of these they have, once the object has been constructed, and we should make these inherit from a common base class that only contains an interface for accessing the interpolated/approximated function while making no assumptions about its functional form.

            The new class will represent a scalar field defined over an integer bounding box, and will have methods for evaluating the field at a point and creating an image of the field. We could also consider giving it arithmetic interoperability with Image. I don't have a strong candidate for the name, but I'll call it "BoundedField" for now.

            Ultimately, I'd like to go further and remove the Approximate and Interpolate classes in their current form; I think it makes more sense from a design perspective to have those be different factories for producing BoundedField instances. But that will not be a part of the work on this ticket, and I'll evaluate that proposal again after I see how this ticket goes.

            The immediate use case for this work is to store aperture corrections, which is why this has been filed with a "Measurement" label. I'm just using the Approximate class in HSC-side prototype of this code, but it's proving to be a bit messy, and I'd like to clean that up before implementing a longer-lived design on the LSST side.
            The user of an Approximate or Interpolate object doesn't care which of these they have, once the object has been constructed, and we should make these inherit from a common base class that only contains an interface for accessing the interpolated/approximated function while making no assumptions about its functional form.

            The new class will represent a scalar field defined over an integer bounding box, and will have methods for evaluating the field at a point and creating an image of the field. We could also consider giving it arithmetic interoperability with Image. I don't have a strong candidate for the name; I've called it "BoundedField" on the HSC side but would like that to be revisited.

            Adding derived classes to replace the functionality currently in the Approximate and Interpolate classes will be on a separate issue. The main work on this issue is tweaking the design on the HSC side and getting signoff on the final design from LSST developers; the actual coding should be minimal, as it's just an interface and we already have a good starting point for it.

            The code on the HSC fork that is relevant to this ticket is here:
            https://github.com/HyperSuprime-Cam/afw/blob/master/include/lsst/afw/math/BoundedField.h
            https://github.com/HyperSuprime-Cam/afw/blob/master/src/math/BoundedField.cc
            https://github.com/HyperSuprime-Cam/afw/blob/master/python/lsst/afw/math/BoundedField.i
            Summary Unify Approximate and Interpolate interfaces Abstract base class for approximated or interpolated fields
            jbosch Jim Bosch made changes -
            Link This issue blocks DM-1124 [ DM-1124 ]
            jbosch Jim Bosch made changes -
            Description The user of an Approximate or Interpolate object doesn't care which of these they have, once the object has been constructed, and we should make these inherit from a common base class that only contains an interface for accessing the interpolated/approximated function while making no assumptions about its functional form.

            The new class will represent a scalar field defined over an integer bounding box, and will have methods for evaluating the field at a point and creating an image of the field. We could also consider giving it arithmetic interoperability with Image. I don't have a strong candidate for the name; I've called it "BoundedField" on the HSC side but would like that to be revisited.

            Adding derived classes to replace the functionality currently in the Approximate and Interpolate classes will be on a separate issue. The main work on this issue is tweaking the design on the HSC side and getting signoff on the final design from LSST developers; the actual coding should be minimal, as it's just an interface and we already have a good starting point for it.

            The code on the HSC fork that is relevant to this ticket is here:
            https://github.com/HyperSuprime-Cam/afw/blob/master/include/lsst/afw/math/BoundedField.h
            https://github.com/HyperSuprime-Cam/afw/blob/master/src/math/BoundedField.cc
            https://github.com/HyperSuprime-Cam/afw/blob/master/python/lsst/afw/math/BoundedField.i
            The user of an Approximate or Interpolate object doesn't care which of these they have, once the object has been constructed, and we should make these inherit from a common base class that only contains an interface for accessing the interpolated/approximated function while making no assumptions about its functional form.

            The new class will represent a scalar field defined over an integer bounding box, and will have methods for evaluating the field at a point and creating an image of the field. We could also consider giving it arithmetic interoperability with Image. I don't have a strong candidate for the name; I've called it "BoundedField" on the HSC side but would like that to be revisited.

            Adding derived classes to replace the functionality currently in the Approximate and Interpolate classes will be on a separate issue. The main work on this issue is tweaking the design on the HSC side and getting signoff on the final design from LSST developers; the actual coding should be minimal, as it's just an interface and we already have a good starting point for it.

            The HSC-side issue (which also includes work that is part of DM-1124) is here:
            https://hsc-jira.astro.princeton.edu/jira/browse/HSC-796
            and the associated git commits are here:
            https://github.com/HyperSuprime-Cam/afw/compare/releases/S14A_0...tickets/DM-796
            jbosch Jim Bosch made changes -
            Labels AppsPlanning Measurement SciencePipelines
            swinbank John Swinbank made changes -
            Assignee Jim Bosch [ jbosch ]
            krughoff Simon Krughoff made changes -
            Epic Link DM-85 [ 11339 ] DM-1987 [ 16076 ]
            jbosch Jim Bosch made changes -
            Epic Link DM-1987 [ 16076 ] DM-1991 [ 16080 ]
            krughoff Simon Krughoff made changes -
            Story Points 2 10
            yusra Yusra AlSayyad made changes -
            Summary Abstract base class for approximated or interpolated fields Implement abstract base class for approximated or interpolated fields
            krughoff Simon Krughoff made changes -
            Rank Ranked lower
            yusra Yusra AlSayyad made changes -
            Assignee Yusra AlSayyad [ yusra ]
            yusra Yusra AlSayyad made changes -
            Sprint Science Pipelines DM-S15-2 [ 151 ]
            yusra Yusra AlSayyad made changes -
            Rank Ranked higher
            yusra Yusra AlSayyad made changes -
            Remote Link This issue links to "Page (Confluence)" [ 12518 ]
            krughoff Simon Krughoff made changes -
            Sprint Science Pipelines DM-S15-2 [ 151 ] Science Pipelines DM-S15-3 [ 155 ]
            krughoff Simon Krughoff made changes -
            Rank Ranked lower
            krughoff Simon Krughoff made changes -
            Sprint Science Pipelines DM-S15-3 [ 155 ]
            krughoff Simon Krughoff made changes -
            Rank Ranked higher
            yusra Yusra AlSayyad made changes -
            Sprint Science Pipelines DM-S15-4 [ 159 ]
            yusra Yusra AlSayyad made changes -
            Rank Ranked lower
            jbosch Jim Bosch made changes -
            Labels SciencePipelines HSC SciencePipelines
            swinbank John Swinbank made changes -
            Sprint Science Pipelines DM-S15-4 [ 159 ] Science Pipelines DM-S15-4, Science Pipelines DM-S15-5 [ 159, 162 ]
            swinbank John Swinbank made changes -
            Rank Ranked higher
            yusra Yusra AlSayyad made changes -
            Link This issue blocks DM-1124 [ DM-1124 ]
            swinbank John Swinbank made changes -
            Sprint Science Pipelines DM-S15-4, Science Pipelines DM-S15-5 [ 159, 162 ] Science Pipelines DM-S15-4, Science Pipelines DM-S15-5, Science Pipelines DM-S15-6 [ 159, 162, 165 ]
            swinbank John Swinbank made changes -
            Rank Ranked higher
            yusra Yusra AlSayyad made changes -
            Sprint Science Pipelines DM-S15-4, Science Pipelines DM-S15-5, Science Pipelines DM-S15-6 [ 159, 162, 165 ] Science Pipelines DM-S15-4, Science Pipelines DM-S15-5 [ 159, 162 ]
            yusra Yusra AlSayyad made changes -
            Rank Ranked lower
            krughoff Simon Krughoff made changes -
            Epic Link DM-1991 [ 16080 ] DM-5054 [ 22714 ]
            swinbank John Swinbank made changes -
            Labels HSC SciencePipelines SciencePipelines
            yusra Yusra AlSayyad made changes -
            Link This issue is triggered by RFC-58 [ RFC-58 ]
            gcomoretto Gabriele Comoretto [X] (Inactive) made changes -
            Remote Link This issue links to "Page (Confluence)" [ 24519 ]
            gcomoretto Gabriele Comoretto [X] (Inactive) made changes -
            Remote Link This issue links to "Page (Confluence)" [ 24716 ]
            jbosch Jim Bosch made changes -
            Resolution Done [ 10000 ]
            Status To Do [ 10001 ] Invalid [ 11005 ]

              People

              Assignee:
              yusra Yusra AlSayyad
              Reporter:
              jbosch Jim Bosch
              Watchers:
              Jim Bosch, John Swinbank, Simon Krughoff, Yusra AlSayyad
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.