Source code for exosim.tasks.radiometric.aperturePhotometry

from photutils.aperture import (
    EllipticalAperture,
    RectangularAperture,
    aperture_photometry,
)

from exosim.tasks.task import Task


[docs]class AperturePhotometry(Task): """ It performs the aperture photometry using :func:`photutils.aperture.aperture_photometry`. The details of the aperture strongly depends on the configurations set by the user. """ def __init__(self): """ Parameters -------------- table: :class:`astropy.table.QTable` wavelength table with bin edge focal_plane: focal plane """ self.add_task_param( "table", "wavelength table with bin edges and aperture sizes" ) self.add_task_param("focal_plane", "focal plane")
[docs] def execute(self): self.debug("performing aperture photometry") table = self.get_task_param("table") focal_plane = self.get_task_param("focal_plane") aperture_shapes = { "rectangular": RectangularAperture, "elliptical": EllipticalAperture, } photometry = [] for i in range(table["Wavelength"].size): # wavelength position estimated from the focal plane wavelength solution center_spectral = table["spectral_center"][i] spectral_size = table["spectral_size"][i] spatial_size = table["spatial_size"][i] center_spatial = table["spatial_center"][i] shape = table["aperture_shape"][i] aper = aperture_shapes[shape]( (center_spectral, center_spatial), spectral_size, spatial_size, ) phot = aperture_photometry(focal_plane, aper) photometry.append(phot["aperture_sum"].data[0]) self.set_output(photometry)