Source code for rubin_sim.maf.metrics.exgal_m5

__all__ = ("ExgalM5",)

from rubin_sim.phot_utils import DustValues

from .base_metric import BaseMetric
from .simple_metrics import Coaddm5Metric


[docs] class ExgalM5(BaseMetric): """ Calculate co-added five-sigma limiting depth after dust extinction. Uses phot_utils to calculate dust extinction. Parameters ---------- m5_col : `str`, optional Column name for five sigma depth. Default 'fiveSigmaDepth'. unit : `str`, optional Label for units. Default 'mag'. Returns ------- coadd_m5 : `float` Coadded m5 value, corrected for galactic dust extinction. """ def __init__( self, m5_col="fiveSigmaDepth", metric_name="ExgalM5", units="mag", filter_col="filter", **kwargs ): # Set the name for the dust map to use. # This is gathered into the MetricBundle. maps = ["DustMap"] self.m5_col = m5_col self.filter_col = filter_col super().__init__( col=[self.m5_col, self.filter_col], maps=maps, metric_name=metric_name, units=units, **kwargs ) # Set the default wavelength limits for the lsst filters. # These are approximately correct. dust_properties = DustValues() self.ax1 = dust_properties.ax1 # We will call Coaddm5Metric to calculate the coadded depth. # Set it up here. self.coaddm5_metric = Coaddm5Metric(m5_col=m5_col)
[docs] def run(self, data_slice, slice_point): """Compute the co-added m5 depth and then apply dust extinction to that magnitude. """ m5 = self.coaddm5_metric.run(data_slice) if m5 == self.coaddm5_metric.badval: return self.badval # Total dust extinction along this line of sight. # Correct default A to this EBV value. a_x = self.ax1[data_slice[self.filter_col][0]] * slice_point["ebv"] return m5 - a_x