Autostronomy / AstroPhot

A fast, flexible, automated, and differentiable astronomical image 2D forward modelling tool for precise parallel multi-wavelength photometry
https://astrophot.readthedocs.io
GNU General Public License v3.0
87 stars 9 forks source link

Add SIP to WCS class #118

Open wmwv opened 1 year ago

wmwv commented 1 year ago

Is your feature request related to a problem? Please describe. Current WCS support doesn't support SIP

Describe the solution you'd like Add a SIP option to the WCS class. Either add option to PPCS, creating an alternate PPCS_SIP class, or restructure the WCS class to make it more natural to add another [optional] SIP class. There are some nomenclature changes. Standard WCS transforms from "pixel" to "sky", while SIP transforms from "pixel" -> "focal plane" -> "sky". So SIP somewhat changes the meaning of pixel.

I'm leaning toward trying out an alternate PPCS_SIP class enabled if a SIP WCS is passed.

Describe alternatives you've considered Having SIP as another transform matrix that defaults to identity is aesthetically tempting, but not the most obvious way to do it in the current hierarchy. I suggest getting something working through the most straightforward, even if somewhat inelegant, path, writing good tests, and then consider re-architecting options.

SIP is defined in this ADAS paper: https://irsa.ipac.caltech.edu/data/SPITZER/docs/files/spitzer/shupeADASS.pdf