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

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

    XMLWordPrintable

    Details

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

      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.

        Attachments

          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:

                  Jenkins

                  No builds found.