ACS Photometric CTE

The ACS Photometric CTE API is a programmatic interface for the ACS Photometric CTE Webtool. The API is a cloud-based service that employs a serverless approach on AWS with API Gateway and Lambda to compute the photometric CTE corrections using the model described in ACS ISR 2022-06. The model corrects ACS/WFC aperture photometry extracted from FLT images for CTE losses. It is only calibrated for photometry obtained after SM4 in May 2009. For pre-SM4 data, please see ACS ISR 2009-01, or use pixel-based CTE-corrected files obtained from MAST. Currently, only 3 and 5 pixel aperture radii are supported. The model is designed to compute the CTE losses as a function of the number of Y transfers, sky background, source flux, and observation date.

Usage Guidelines

As this service is hosted on AWS, there are some guidelines that should be followed when utilizing this tool. For each call to correct_photometry(), AWS will assemble the compute resources, install the software, compute the CTE corrections, send the result back, and then terminate all resources. Hence, users should try to process as many sources as they can in a single function call. Testing has shown that the optimal number is < 25,000, but the service can handle as many as 150,000 sources in a single request.


In this example, we obtain the CTE-corrected FLT photometry for a list of 1000 artificial sources. For each parameter, we generate 1000 random values in the interval [0, 1) and then scale the random data by a realistic value for stellar fluxes, y-transfers, and local sky backgrounds. An arbitrary MJD is defined, and we assume an aperture radius of 3 pixels.

>>> import numpy as np
>>> from acstools import acsphotcte
>>> n_sample = 1000
>>> ytransfers = 2048 * np.random.random(size=n_sample)
>>> fluxes = 20000*np.random.random(size=n_sample)
>>> magnitudes = -2.5 * np.log10(fluxes)
>>> print(magnitudes[:5])
[-10.75088228  -9.56321561 -10.10571966  -9.01893015 -10.48463087]
>>> local_skys = 80*np.random.random(size=n_sample)
>>> mjd = 59341.
>>> radius = 3.
>>> photctecalc = acsphotcte.PhotCTEAPI()
>>> cte_corrected_magnitudes = photctecalc.correct_photometry(
...    radius=radius,
...    ytransfers=ytransfers,
...    mjd=mjd,
...    local_skys=local_skys,
...    fluxes=fluxes
>>> print(cte_corrected_magnitudes[:5])
[-10.85516545  -9.68284332 -10.11060704  -9.11828746 -10.4918177 ]



Convenience class for handling queries to ACS Photometric CTE API.