c3-time-domain / SeeChange

A time-domain data reduction pipeline (e.g., for handling images->lightcurves) for surveys like DECam and LS4
BSD 3-Clause "New" or "Revised" License
0 stars 4 forks source link

Unified PSF model #242

Open guynir42 opened 3 months ago

guynir42 commented 3 months ago

Right now the only functional model for a PSF that we have is from PSFex.

This works well on the main pipeline but whenever we want to do something like stick the ZOGY PSF in there, or just make a simple gaussian in the simulated test images, it is too complicated to initialize that object, as it requires specific 3D arrays and header format to be able to function as though it came from PSFex.

I suggest we write new formats that are easier to initialize (e.g., using a single image, with some parameters for sampling and header info) and make sure the interfaces (notably get_clip() and fwhm_pixels) are functioning as expected.

rknop commented 2 months ago

This is not a simple thing to do.

If you want your PSF to be any good, you either have to do something like what PSFex does, or you have to oversample your PSF a lot (which leads to a lot of extra data storage, and also slows things down as you do covolution operations). Otherwise, sub-pixel shifts potentially distort the PSF. (PSFEx figures out an "optional" oversampling -- which is sometimes an undersampling! -- to store the PSF at.)

I see the value of having a quick-n-dirty way of creating a gaussian PSF for tests, but I'd be careful before implementing something that has the same interface as what we do with PSFEx right now without making sure that it really supports what we need. PSFEx is complicated... but it's not needlessly complicated.

guynir42 commented 1 month ago

Related to #194