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

Create toy composite (AST/GWCS) model with supported components

    Details

    • Type: Story
    • Status: Done
    • Priority: Major
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: afw
    • Templates:
    • Story Points:
      4
    • Sprint:
      Alert Production X16 - 04
    • Team:
      Alert Production

      Description

      To help us evaluate WCS options, we need to create a relatively complicated composite model in AST and GWCS, using a few models currently available within the existing packages. A minimal composite model to test these things would include:

      • FITS linear transform
      • ccd distortion
      • optical model
      • FITS TAN WCS

      The middle steps do not need to be realistic models, just something that we can use to compare AST's and GWCS's respective interfaces and capabilities for creating the composite model, and test for differences in their results. We can then use this model to evaluate performance when run on different numbers of pixels.

        Issue Links

          Activity

          Hide
          Parejkoj John Parejko added a comment - - edited

          Pushed Russell's AST/GWCS comparison modifications, plus something to generate a simple FITS file, to the branch.

          Show
          Parejkoj John Parejko added a comment - - edited Pushed Russell's AST/GWCS comparison modifications, plus something to generate a simple FITS file, to the branch.
          Hide
          rowen Russell Owen added a comment - - edited

          Comparing GWCS and PyAST in Python

          The model is a 2nd order 2D polynomial for actual pixels to mean pixels,
          followed by a pure TAN WCS for mean pixels to sky.

          Times are in ┬Ásec and were measured on a mid 2012 Macbook Pro with a 2.6Ghz Intel Core i7.

          # points    GWCS    PyAST   GWCS    PyAST   ratio
                      time    time    time/pt time/pt
          1e2         15200   62.3    152     0.623   24
          1e4         18900   2610    1.89    0.261   7.2
          1e6         346000  269000  0.346   0.269   1.3
          

          The code can also measure the use of PyAST's tranGrid, which interpolates, but the results are difficult to interpret because the timing, naturally, is dependent on the tolerance. In any case, the timings above are more relevant to warping, since warping does its own interpolation. Warping is especially interesting because it is requires fast WCS for good performance (though interpolation ameliorates this) and because it is not easily vectorized (suggesting it would be difficult to get good performance in python).

          Show
          rowen Russell Owen added a comment - - edited Comparing GWCS and PyAST in Python The model is a 2nd order 2D polynomial for actual pixels to mean pixels, followed by a pure TAN WCS for mean pixels to sky. Times are in ┬Ásec and were measured on a mid 2012 Macbook Pro with a 2.6Ghz Intel Core i7. # points GWCS PyAST GWCS PyAST ratio time time time/pt time/pt 1e2 15200 62.3 152 0.623 24 1e4 18900 2610 1.89 0.261 7.2 1e6 346000 269000 0.346 0.269 1.3 The code can also measure the use of PyAST's tranGrid , which interpolates, but the results are difficult to interpret because the timing, naturally, is dependent on the tolerance. In any case, the timings above are more relevant to warping, since warping does its own interpolation. Warping is especially interesting because it is requires fast WCS for good performance (though interpolation ameliorates this) and because it is not easily vectorized (suggesting it would be difficult to get good performance in python).

            People

            • Assignee:
              rowen Russell Owen
              Reporter:
              Parejkoj John Parejko
              Watchers:
              John Parejko, Russell Owen, Tim Jenness
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development

                  Agile