class rubin_sim.maf.metrics.OptimalM5Metric(m5_col='fiveSigmaDepth', opt_m5_col='m5Optimal', filter_col='filter', mag_diff=False, normalize=False, **kwargs)

Bases: BaseMetric

Compare the co-added depth of the survey to one where all the observations were taken on the meridian.

m5_colstr (‘fiveSigmaDepth’)

Column name that contains the five-sigma limiting depth of each observation

opt_m5_colstr (‘m5Optimal’)

The column name of the five-sigma-limiting depth if the observation had been taken on the meridian.

normalizebool (False)

If False, metric returns how many more observations would need to be taken to reach the optimal depth. If True, the number is normalized by the total number of observations already taken at that position.

mag_diffbool (False)

If True, metric returns the magnitude difference between the achieved coadded depth and the optimal coadded depth.

If mag_diff is True, returns the magnitude difference between the
optimal and actual coadded depth. If normalize is False
(default), the result is the number of additional observations
(taken at the median depth) the survey needs to catch up to
optimal. If normalize is True, the result is divided by the
number of observations already taken. So if a 10-year survey
returns 20%, it would need to run for 12 years to reach the same
depth as a 10-year meridian survey.

Methods Summary

run(data_slice[, slice_point])

Calculate metric values.

Methods Documentation

run(data_slice, slice_point=None)

Calculate metric values.

data_slicenumpy.ndarray, (N,)

Values passed to metric by the slicer, which the metric will use to calculate metric values at each slice_point.

slice_pointdict or None

Dictionary of slice_point metadata passed to each metric. E.g. the ra/dec of the healpix pixel or opsim fieldId.

metricValue: int float or object

The metric value at each slice_point.