Source code for rubin_sim.phot_utils.predicted_zeropoints

__all__ = [
    "predicted_zeropoint",
    "predicted_zeropoint_hardware",
    "predicted_zeropoint_itl",
    "predicted_zeropoint_hardware_itl",
    "predicted_zeropoint_e2v",
    "predicted_zeropoint_hardware_e2v",
]

import numpy as np


[docs] def predicted_zeropoint(band: str, airmass: float, exptime: float = 1) -> float: """General zeropoint values derived from v1.9 throughputs. Extinction coefficients and zeropoint intercepts calculated in https://github.com/lsst-pst/syseng_throughputs/blob/main/notebooks/InterpolateZeropoint.ipynb Parameters ---------- band : `str` The bandpass name. airmass : `float` The airmass at which to evaluate the zeropoint. exptime : `float`, optional The exposure time to calculate zeropoint. Returns ------- zeropoint : `float` The zeropoint for the `band` at airmass `airmass` for an exposure of time `exptime`. Notes ----- Useful for comparing to DM pipeline zeropoints or for calculating counts in an image (`np.power(10, (zp - mag)/2.5)) = counts`). """ extinction_coeff = { "u": -0.45815823969467745, "g": -0.20789273881603035, "r": -0.12233514157672552, "i": -0.07387773563152214, "z": -0.0573260392897174, "y": -0.09549137502152871, } # Interestingly, because these come from a fit over X, these # values are not identical to the zp values found for one second, # without considering the fit. They are within 0.005 magnitudes though. zeropoint_X1 = { "u": 26.52229760811932, "g": 28.50754554409417, "r": 28.360365503331952, "i": 28.170373076693625, "z": 27.781368851776005, "y": 26.813708013594344, } return zeropoint_X1[band] + extinction_coeff[band] * (airmass - 1) + 2.5 * np.log10(exptime)
[docs] def predicted_zeropoint_hardware(band: str, exptime: float = 1) -> float: """Zeropoint values for the hardware throughput curves only, without atmospheric contributions. Parameters ---------- band : `str` The bandpass name. exptime : `float`, optional The exposure time to calculate zeropoint. Returns ------- zeropoint : `float` The zeropoint for the hardware only component of `band` for an exposure of `exptime`. Notes ----- This hardware-only zeropoint is primarily useful for converting sky background magnitudes into counts. """ zeropoint = { "u": 26.99435242519598, "g": 28.72132437054738, "r": 28.487206668180864, "i": 28.267160381353793, "z": 27.850681356053688, "y": 26.988827459758397, } return zeropoint[band] + 2.5 * np.log10(exptime)
[docs] def predicted_zeropoint_itl(band: str, airmass: float, exptime: float = 1) -> float: """Average ITL zeropoint values derived from v1.9 throughputs. Parameters ---------- band : `str` The bandpass name. airmass : `float` The airmass at which to evaluate the zeropoint. exptime : `float`, optional The exposure time to calculate zeropoint. Returns ------- zeropoint : `float` The zeropoint for the `band` at airmass `airmass` for an exposure of time `exptime`. Notes ----- Useful for comparing to DM pipeline zeropoints or for calculating counts in an image (`np.power(10, (zp - mag)/2.5)) = counts`). """ extinction_coeff = { "u": -0.45815223255080606, "g": -0.20789245761381037, "r": -0.12233512060667238, "i": -0.07387767800064417, "z": -0.05739100372986528, "y": -0.09474605376660676, } zeropoint_X1 = { "u": 26.52231025834397, "g": 28.507547620761827, "r": 28.360365812523426, "i": 28.170380673108845, "z": 27.796728189989665, "y": 26.870922441512732, } return zeropoint_X1[band] + extinction_coeff[band] * (airmass - 1) + 2.5 * np.log10(exptime)
[docs] def predicted_zeropoint_hardware_itl(band: str, exptime: float = 1) -> float: """Zeropoint values for the ITL hardware throughput curves only, without atmospheric contributions. Parameters ---------- band : `str` The bandpass name. exptime : `float`, optional The exposure time to calculate zeropoint. Returns ------- zeropoint : `float` The zeropoint for the hardware only component of `band` for an exposure of `exptime`. Notes ----- This hardware-only zeropoint is primarily useful for converting sky background magnitudes into counts. """ zeropoint = { "u": 26.994361876151476, "g": 28.721326283280213, "r": 28.487206961551088, "i": 28.26716792192087, "z": 27.86618994188104, "y": 27.04446387553851, } return zeropoint[band] + 2.5 * np.log10(exptime)
[docs] def predicted_zeropoint_e2v(band: str, airmass: float, exptime: float = 1) -> float: """Average E2V zeropoint values derived from v1.9 throughputs. Parameters ---------- band : `str` The bandpass name. airmass : `float` The airmass at which to evaluate the zeropoint. exptime : `float`, optional The exposure time to calculate zeropoint. Returns ------- zeropoint : `float` The zeropoint for the `band` at airmass `airmass` for an exposure of time `exptime`. Notes ----- Useful for comparing to DM pipeline zeropoints or for calculating counts in an image (`np.power(10, (zp - mag)/2.5)) = counts`). """ extinction_coeff = { "u": -0.4600735940453953, "g": -0.20651340321330425, "r": -0.12276192263131014, "i": -0.07398443681400534, "z": -0.057334002964289726, "y": -0.095496483868828, } zeropoint_X1 = { "u": 26.58989678516041, "g": 28.567959743207357, "r": 28.44712188941494, "i": 28.19470048013101, "z": 27.7817595301949, "y": 26.813791858927964, } return zeropoint_X1[band] + extinction_coeff[band] * (airmass - 1) + 2.5 * np.log10(exptime)
[docs] def predicted_zeropoint_hardware_e2v(band: str, exptime: float = 1) -> float: """Zeropoint values for the E2V hardware throughput curves only, without atmospheric contributions. Parameters ---------- band : `str` The bandpass name. exptime : `float`, optional The exposure time to calculate zeropoint. Returns ------- zeropoint : `float` The zeropoint for the hardware only component of `band` for an exposure of `exptime`. Notes ----- This hardware-only zeropoint is primarily useful for converting sky background magnitudes into counts. """ zeropoint = { "u": 27.063967445283826, "g": 28.78030646345493, "r": 28.574328242939043, "i": 28.291563456601306, "z": 27.85108207854988, "y": 26.988912028019346, } return zeropoint[band] + 2.5 * np.log10(exptime)