PSFCube

class simcado.psf.PSFCube(lam_bin_centers)[source]

Bases: object

Class holding wavelength dependent point spread function.

Parameters
lam_bin_centersarray

[um] the centre of each wavelength slice

Notes

  • len(self) return the number of layers in the psf

  • self[i] returns the PSF object for layer i. If the __array__ function is called, self[i] will return the array associated with the instance e.g plt.imshow(self[i]) will plot PSF.array from self.psf_slices[i]

  • Maths operators *,+,- act equally on all PSF.arrays in self.psf_slices

Methods Summary

convolve(self, kernel_list)

Convolve a list of PSFs with a list of kernels

export_to_fits(self, filename[, clobber])

Export the psf to a FITS file for later use

nearest(self, lam)

Returns the PSF closest to the desired wavelength, lam [um]

resample(self, new_pix_res)

Resample the the list of PSF array onto a new grid

resize(self, new_size)

Resize the list of PSFs.

Methods Documentation

convolve(self, kernel_list)[source]

Convolve a list of PSFs with a list of kernels

Parameters
kernel_listlist

list of PSF objects of 2D arrays

export_to_fits(self, filename, clobber=True)[source]

Export the psf to a FITS file for later use

Parameters
filenamestr
nearest(self, lam)[source]

Returns the PSF closest to the desired wavelength, lam [um]

Parameters
lamfloat

[um] desired wavelength

Returns
psf_slicePSF
resample(self, new_pix_res)[source]

Resample the the list of PSF array onto a new grid

Not perfect, but conserves flux

Parameters
new_pix_resfloat

[arcsec] the pixel resolution of the returned array

Returns
psf_newPSF

Examples

>>> new_PSF = old_PSF.resample(new_pix_res)
resize(self, new_size)[source]

Resize the list of PSFs. The target shape is (new_size, new_size).

Parameters
new_sizeint

[pixel] the new size of the PSF array in pixels