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

reimplement shapelet PSF approximations

    XMLWordPrintable

    Details

      Description

      The CModel code we want to transfer from HSC in DM-240 currently relies on the old "multishapelet.psf" algorithm in meas_extensions_multiShapelet. That means we either need to convert that PSF-to-shapelets code in meas_extensions_multiShapelet to use the meas_base interface, or we need add new PSF-to-shapelets code in meas_multifit.

      I think the latter is the better choice, even if we delay DM-240 as a result; the heavy algorithmic code is already available as primitives in meas_multifit, so it should just be a matter of packing those into a simple driver, creating a config class for it, and testing it on a few real and simulated PSFs to learn reasonable defaults for the configs.

        Attachments

          Issue Links

            Activity

            Hide
            jbosch Jim Bosch added a comment -

            The new multishapelet PSF fitting code is now on branch u/jbosch/DM-640 of shapelet and meas_multifit (despite my earlier promise to the contrary, there is a small change to shapelet, but it is indeed really small - I changed a std::list to std::vector).

            It all seems to build against the LSST master stack, so DM-641 is at least mostly done, but you may find that the documentation is incomplete (everything that's there was done in the last 20 minutes), and the tests definitely are: there are unit tests for most of the trickier logic, but there actually isn't any test of the actual fitting. Improving that should be a part of DM-641. We should dump a PSF image postage stamp or two in the git repository and then add the following tests to make use of it:

            • test that we can go from fitting simple models to fitting more complex models, using the simple ones as inputs (you can find model configurations that meet those descriptions in the test code already).
            • test that the residuals are small when we're fitting full models.

            I also haven't included any real error checking in the fitting code. I'm hoping we can get this to a state where it basically always succeeds if given a reasonable configuration, but the optimizer does output a lot of flags and we should check them for success before we return. That should be added as part of DM-641 as well.

            Show
            jbosch Jim Bosch added a comment - The new multishapelet PSF fitting code is now on branch u/jbosch/ DM-640 of shapelet and meas_multifit (despite my earlier promise to the contrary, there is a small change to shapelet, but it is indeed really small - I changed a std::list to std::vector). It all seems to build against the LSST master stack, so DM-641 is at least mostly done, but you may find that the documentation is incomplete (everything that's there was done in the last 20 minutes), and the tests definitely are: there are unit tests for most of the trickier logic, but there actually isn't any test of the actual fitting. Improving that should be a part of DM-641 . We should dump a PSF image postage stamp or two in the git repository and then add the following tests to make use of it: test that we can go from fitting simple models to fitting more complex models, using the simple ones as inputs (you can find model configurations that meet those descriptions in the test code already). test that the residuals are small when we're fitting full models. I also haven't included any real error checking in the fitting code. I'm hoping we can get this to a state where it basically always succeeds if given a reasonable configuration, but the optimizer does output a lot of flags and we should check them for success before we return. That should be added as part of DM-641 as well.
            Hide
            yusra Yusra AlSayyad added a comment -

            Is isolating meas_multifit from meas_extensions_multiShapelet also a goal of this ticket? If no, what version of meas_extensions_multiShapelet does DM-640 build with?

            Show
            yusra Yusra AlSayyad added a comment - Is isolating meas_multifit from meas_extensions_multiShapelet also a goal of this ticket? If no, what version of meas_extensions_multiShapelet does DM-640 build with?
            Hide
            jbosch Jim Bosch added a comment - - edited

            Is isolating meas_multifit from meas_extensions_multiShapelet also a goal of this ticket? If no, what version of meas_extensions_multiShapelet does DM-640 build with?

            Good point. It should be part of DM-454, but it was not part of DM-640 (I've just been building against master of meas_extensions_multiShapelet, and none of the new code depends on it at all). I'll add it as another subtask; it shouldn't be too difficult once the other subtasks are done.

            Show
            jbosch Jim Bosch added a comment - - edited Is isolating meas_multifit from meas_extensions_multiShapelet also a goal of this ticket? If no, what version of meas_extensions_multiShapelet does DM-640 build with? Good point. It should be part of DM-454 , but it was not part of DM-640 (I've just been building against master of meas_extensions_multiShapelet , and none of the new code depends on it at all). I'll add it as another subtask; it shouldn't be too difficult once the other subtasks are done.
            Hide
            jbosch Jim Bosch added a comment -

            Deleted (rather than completed) the config-exploration subtask - that should never have been a subtask of this issue, as it really needs to be a story of its own (and we can't just convert Technical Tasks to stories).

            Show
            jbosch Jim Bosch added a comment - Deleted (rather than completed) the config-exploration subtask - that should never have been a subtask of this issue, as it really needs to be a story of its own (and we can't just convert Technical Tasks to stories).
            Hide
            jbosch Jim Bosch added a comment -

            Moving this to review to follow its subtasks (weird that this didn't happen automatically; I think it did in a previous issue I had with subtasks).

            Show
            jbosch Jim Bosch added a comment - Moving this to review to follow its subtasks (weird that this didn't happen automatically; I think it did in a previous issue I had with subtasks).

              People

              Assignee:
              jbosch Jim Bosch
              Reporter:
              jbosch Jim Bosch
              Watchers:
              Jim Bosch, Yusra AlSayyad
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.