opticam.photometers
Classes
Base class for performing photometry on OPTICAM catalogues. |
|
A photometer for performing aperture photometry. |
|
A photometer that implements the optimal photometry method described in Naylor 1998, MNRAS, 296, 339-346. |
Functions
|
Perform photometry on a file. |
|
Compute the growth curve for a point in an image. |
Module Contents
- class opticam.photometers.BasePhotometer(forced=False, source_matching_tolerance=5.0, local_background_estimator=None)
Bases:
abc.ABCBase class for performing photometry on OPTICAM catalogues.
- Parameters:
forced (bool)
source_matching_tolerance (float)
local_background_estimator (opticam.background.local_background.BaseLocalBackground | Callable | None)
- forced = False
- source_matching_tolerance = 5.0
- local_background_estimator = None
- abstractmethod compute(image, dark_flux, background_rms, source_coords, image_coords, psf_params)
Compute the fluxes of the catalogued sources from the given image.
Parameters
- imageNDArray
The image. If self.local_background_estimator is undefined, this image will be background subtracted.
- dark_fluxfloat
The dark current’s “flux” contribution.
- background_rmsNDArray | None
The background RMS. May be None if self.local_background_estimator is defined.
- source_coordsNDArray
The source coordinates in the catalogue.
- image_coordsNDArray | None
The source coordinates in the image. If match_sources is True, this will be used to match sources in the image to sources in the catalogue.
- psf_paramsDict[str, float]
The PSF parameters for the camera used to take the image. This parameter is defined in the catalogue and has the following keys: ‘semimajor_sigma’ (in pixels), ‘semiminor_sigma’ (in pixels), and ‘orientation’ (in degrees).
Returns
- Dict[str, List]
The photometry results.
- Parameters:
image (numpy.typing.NDArray)
dark_flux (float)
background_rms (numpy.typing.NDArray | None)
source_coords (numpy.typing.NDArray)
image_coords (numpy.typing.NDArray | None)
psf_params (Dict[str, float])
- Return type:
Dict[str, List]
- get_position(source_coords, image_coords, source_index, psf_params)
Get the position of a source in an image.
Parameters
- source_coordsNDArray
The source coordinates in the catalogue.
- image_coordsNDArray | None
The source coordinates in the image.
- source_indexint
The source index.
- psf_paramsDict[str, float]
The PSF parameters for the camera used to take the image. This parameter is defined in the catalogue and has the following keys: ‘semimajor_sigma’ (in pixels), ‘semiminor_sigma’ (in pixels), and ‘orientation’ (in degrees).
Returns
- NDArray
The source coordinates.
- Parameters:
source_coords (numpy.typing.NDArray)
image_coords (numpy.typing.NDArray | None)
source_index (int)
psf_params (Dict[str, float])
- Return type:
numpy.typing.NDArray | None
- get_closest_source(source_coords, image_coords, source_index, psf_params)
Given a source, find the closest source in the catalogue.
Parameters
- source_coordsNDArray
The source coordinates in the catalogue.
- image_coordsNDArray | None
The source coordinates in the image.
- source_indexint
The source index.
- psf_paramsDict[str, float]
The PSF parameters for the camera used to take the image. This parameter is defined in the catalogue and has the following keys: ‘semimajor_sigma’ (in pixels), ‘semiminor_sigma’ (in pixels), and ‘orientation’ (in degrees).
Returns
- NDArray | None
The coordinates of the closest source.
- Parameters:
source_coords (numpy.typing.NDArray)
image_coords (numpy.typing.NDArray | None)
source_index (int)
psf_params (Dict[str, float])
- Return type:
numpy.typing.NDArray | None
- define_results_dict()
Define a results dictionary for the photometer depending on whether local_background_estimator is defined.
Returns
- Dict[str, List]
The results dictionary with keys ‘flux’, ‘flux_error’. If local_background_estimator is defined, the dictionary will also contain ‘background’ and ‘background_error’.
- Return type:
Dict[str, List]
- pad_results_dict(results)
Pad the results dictionary with None values for flux and flux error, and background and background error if `local_background_estimator’ is defined. This is used when a source cannot be matched or its position is invalid.
Parameters
- resultsDict[str, List]
The results dictionary to pad.
Returns
- Dict[str, List]
The padded results dictionary.
- Parameters:
results (Dict[str, List])
- Return type:
Dict[str, List]
- populate_results_dict(results, phot_function, image, dark_flux, background_rms, position, psf_params)
Populate the results dictionary with the computed flux, flux error, and background (if applicable) using the provided photometry function.
Parameters
- resultsDict[str, List]
The results dictionary to populate.
- phot_functionCallable
The photometry function to use for computing the flux and flux error. This function should take the image, image error, position, and PSF parameters as arguments and return the flux and flux error, and optionally the background and background error if local_background_estimator is defined.
- imageNDArray
The image.
- dark_fluxfloat
The dark current’s “flux” contribution.
- background_rmsNDArray | None
The background RMS. May be None if self.local_background_estimator is defined.
- positionNDArray
The position of the source in the image.
- psf_paramsDict[str, float]
The PSF parameters for the camera used to take the image. This parameter is defined in the catalogue and has the following keys: ‘semimajor_sigma’ (in pixels), ‘semiminor_sigma’ (in pixels), and ‘orientation’ (in degrees).
Returns
- Dict[str, List]
The updated results dictionary with the computed flux, flux error, and background (if applicable).
- Parameters:
results (Dict[str, List])
phot_function (Callable)
image (numpy.typing.NDArray)
dark_flux (float)
background_rms (numpy.typing.NDArray | None)
position (numpy.typing.NDArray)
psf_params (Dict[str, float])
- Return type:
Dict[str, List]
- class opticam.photometers.AperturePhotometer(semimajor_axis=None, semiminor_axis=None, orientation=None, forced=False, source_matching_tolerance=5.0, local_background_estimator=None)
Bases:
BasePhotometerA photometer for performing aperture photometry.
- Parameters:
semimajor_axis (int | None)
semiminor_axis (int | None)
orientation (float | None)
forced (bool)
source_matching_tolerance (float)
local_background_estimator (None | opticam.background.local_background.BaseLocalBackground)
- semimajor_axis = None
- semiminor_axis = None
- orientation = None
- compute(image, dark_flux, background_rms, source_coords, image_coords, psf_params)
Compute the fluxes of the catalogued sources from the given image.
Parameters
- imageNDArray
The image. If self.local_background_estimator is undefined, this image will be background subtracted.
- dark_fluxfloat
The dark current’s “flux” contribution.
- background_rmsNDArray | None
The background RMS. May be None if self.local_background_estimator is defined.
- source_coordsNDArray
The source coordinates in the catalogue.
- image_coordsNDArray | None
The source coordinates in the image. If match_sources is True, this will be used to match sources in the image to sources in the catalogue.
- psf_paramsDict[str, float]
The PSF parameters for the camera used to take the image. This parameter is defined in the catalogue and has the following keys: ‘semimajor_sigma’ (in pixels), ‘semiminor_sigma’ (in pixels), and ‘orientation’ (in degrees).
Returns
- Dict[str, List]
The photometry results.
- Parameters:
image (numpy.typing.NDArray)
dark_flux (float)
background_rms (numpy.typing.NDArray | None)
source_coords (numpy.typing.NDArray)
image_coords (numpy.typing.NDArray | None)
psf_params (Dict[str, float])
- Return type:
Dict[str, List]
- compute_aperture_flux(image, dark_flux, background_rms, position, psf_params)
Compute the aperture flux of a source in the image.
Parameters
- imageNDArray
The image.
- dark_fluxfloat
The dark current’s “flux” contribution.
- background_rmsNDArray | None
The background RMS. May be None if self.local_background_estimator is defined.
- positionNDArray
The position of the source.
- psf_paramsDict[str, float]
The PSF parameters for the camera used to take the image. This parameter is defined in the catalogue and has the following keys: ‘semimajor_sigma’ (in pixels), ‘semiminor_sigma’ (in pixels), and ‘orientation’ (in degrees).
Returns
- Tuple[float, float, float] | Tuple[float, float, float, float, float]
The flux, flux error, and signal-to-noise ratio. If local_background_estimator is defined, the background and its error are also returned.
- Parameters:
image (numpy.typing.NDArray)
dark_flux (float)
background_rms (numpy.typing.NDArray | None)
position (numpy.typing.NDArray)
psf_params (Dict[str, float])
- Return type:
Tuple[float, float, float] | Tuple[float, float, float, float, float]
- get_aperture(position, psf_params)
- Parameters:
position (numpy.typing.NDArray)
psf_params (Dict[str, float])
- Return type:
photutils.aperture.EllipticalAperture
- class opticam.photometers.OptimalPhotometer(forced=False, source_matching_tolerance=5.0, local_background_estimator=None)
Bases:
BasePhotometerA photometer that implements the optimal photometry method described in Naylor 1998, MNRAS, 296, 339-346.
- Parameters:
forced (bool)
source_matching_tolerance (float)
local_background_estimator (opticam.background.local_background.BaseLocalBackground | Callable | None)
- compute(image, dark_flux, background_rms, source_coords, image_coords, psf_params)
Compute the fluxes of the catalogued sources from the given image.
Parameters
- imageNDArray
The image. If self.local_background_estimator is undefined, this image will be background subtracted.
- dark_fluxfloat
The dark current’s “flux” contribution.
- background_rmsNDArray | None
The background RMS. May be None if self.local_background_estimator is defined.
- source_coordsNDArray
The source coordinates in the catalogue.
- image_coordsNDArray | None
The source coordinates in the image. If match_sources is True, this will be used to match sources in the image to sources in the catalogue.
- psf_paramsDict[str, float]
The PSF parameters for the camera used to take the image. This parameter is defined in the catalogue and has the following keys: ‘semimajor_sigma’ (in pixels), ‘semiminor_sigma’ (in pixels), and ‘orientation’ (in degrees).
Returns
- Dict[str, List]
The photometry results.
- Parameters:
image (numpy.typing.NDArray)
dark_flux (float)
background_rms (numpy.typing.NDArray | None)
source_coords (numpy.typing.NDArray)
image_coords (numpy.typing.NDArray | None)
psf_params (Dict[str, float])
- Return type:
Dict[str, List]
- compute_optimal_flux(image, dark_flux, background_rms, position, psf_params)
Compute the optimal flux of a source in the image as described in Naylor 1998, MNRAS, 296, 339-346.
Parameters
- imageNDArray
The image.
- dark_fluxfloat
The dark current’s “flux” contribution.
- background_rmsNDArray | None
The background RMS. May be None if self.local_background_estimator is defined.
- positionNDArray
The position of the source in the image, given as (y, x) coordinates.
- psf_paramsDict[str, float]
The PSF parameters for the camera used to take the image. This parameter is defined in the catalogue and has the following keys: ‘semimajor_sigma’ (in pixels), ‘semiminor_sigma’ (in pixels), and ‘orientation’ (in degrees).
Returns
- Tuple[float, float] | Tuple[float, float, float, float]
The flux and flux error. If local_background_estimator is defined, the background and its error are also returned.
- Parameters:
image (numpy.typing.NDArray)
dark_flux (float)
background_rms (numpy.typing.NDArray | None)
position (numpy.typing.NDArray)
psf_params (Dict[str, float])
- Return type:
Tuple[float, float] | Tuple[float, float, float, float]
- static get_weights(var, position, psf_params)
Compute the optimal weight for each pixel in an image.
Parameters
- varNDArray
The variance image.
- positionNDArray
The position of the source.
- psf_paramsDict[str, float]
The PSF parameters.
Returns
- Tuple[NDArray, float]
The weights and the normalisation constant.
- Parameters:
var (numpy.typing.NDArray)
position (numpy.typing.NDArray)
psf_params (Dict[str, float])
- Return type:
Tuple[numpy.typing.NDArray, float]
- opticam.photometers.perform_photometry(file, photometer, source_coords, gains, bmjds, barycenter, flat_corrector, rebin_factor, remove_cosmic_rays, background, threshold, finder, psf_params, fltr, logger)
Perform photometry on a file.
Parameters
- filestr
The file path.
- photometerBasePhotometer
The photometer to use.
- source_coordsNDArray
The coordinates of the sources.
- gainsDict[str, float]
The image gain.
- bmjdsDict[str, float]
The image time stamps.
- barycenterbool
Whether to apply a barycentric correction to the image time stamps.
- flat_correctorFlatFieldCorrector | None
The flat field corrector.
- rebin_factorint
The software pixel rebinning factor.
- remove_cosmic_raysbool
Whether to remove cosmic rays from the image.
- backgroundBaseBackground
The two-dimensional background estimator.
- thresholdfloat
The scalar source detection threshold in units of background RMS.
- finderDefaultFinder
The source finder.
- psf_paramsDict[str, Dict[str, float]]
The PSF parameters.
- fltrstr
The image filter.
- loggerLogger
The logger.
Returns
- Dict[str, List]
The photometry results.
- Parameters:
file (str)
photometer (BasePhotometer)
source_coords (numpy.typing.NDArray)
gains (Dict[str, float])
bmjds (Dict[str, float])
barycenter (bool)
flat_corrector (opticam.correctors.flat_field_corrector.FlatFieldCorrector | None)
rebin_factor (int)
remove_cosmic_rays (bool)
background (opticam.background.global_background.BaseBackground)
threshold (float)
finder (opticam.finders.DefaultFinder)
psf_params (Dict[str, Dict[str, float]])
fltr (str)
logger (logging.Logger)
- Return type:
Dict[str, List]
- opticam.photometers.get_growth_curve(image, x_centroid, y_centroid, r_max)
Compute the growth curve for a point in an image.
Parameters
- imageNDArray
The image.
- x_centroidfloat
The x centroid of the point.
- y_centroidfloat
The y centroid of the point.
- r_maxint
The maximum radius in pixels.
Returns
- Tuple[NDArray, NDArray]
_description_
- Parameters:
image (numpy.typing.NDArray)
x_centroid (float)
y_centroid (float)
r_max (int)
- Return type:
Tuple[numpy.typing.NDArray, numpy.typing.NDArray]