PSF Correction#

The point spread function (PSF) of the imagers varies across the field-of-view (FOV) of each imager. The PSFs have to be homogenized to be similar before creating mosaic images. Otherwise, the tails of the PSFs would combine in messy ways and create artifacts. In addition, the pointing refinement algorithm expects a uniform PSF across the FOV.

Concept#

The PSF correction is carried out by the regularizepsf package. The description of the algorithm and code is available here. There’s also an accompanying paper with more rigorous description.

Applying correction#

The correction is carried out primarily in the punchbowl.level1.psf.correct_psf_task function:

punchbowl.level1.psf.correct_psf_task(data_object: NDCube, model_path: str | Callable | None = None, max_workers: int | None = None) NDCube

Prefect Task to correct the PSF of an image.

Parameters:
  • data_object (NDCube) – data to operate on

  • model_path (str) – path to the PSF model to use in the correction

  • max_workers (int) – the maximum number of worker threads to use

Returns:

modified version of the input with the PSF corrected

Return type:

NDCube

If you wish to incorporate this as a Prefect task in a custom pipeline, using something like the punchbowl.level1.psf.correct_psf_task is recommended.