Metrics Analysis Framework (MAF)¶
The rubin_sim.maf
Metrics Analysis Framework (MAF) module is
intended to make it easier to write code to analyze our simulated LSST
pointing histories (often called “opsim outputs”).
As an example: suppose one wanted to evaluate the LSST’s performance in regards to characterizing a particular kind of periodic variable in a given simulated survey. As such, you might have particular requirements on the parameters of the observations at each point in RA/Dec space – MAF will handle getting the pointing history from the OpSim output database, splitting them up into the observations relevant for each RA/Dec point, feeding these observations into your contributed piece of code, and then consolidating the results of that evaluation from each RA/Dec location into a map over the entire sky and presenting those results in a variety of formats (a sky map visualization, an area-weighted histogram, a power spectrum, or – with a small bit of additional analysis – statistical summaries over the observed sky, such as the mean, median, RMS, minimum or maximum values). In this case, you would only have to write a small piece of code (a metric) that makes the actual evaluation, assuming you have the relevant observations for a single piece of sky. A simple list of all available metrics is available.
A concrete example of this can be found in the KNeMetric - which is illustrated in depth in a notebook in the github repo at lsst/rubin_sim_notebooks (see the maf/science directory).
MAF also provides lots of ready to use metrics, as well as
a variety of ways to subdivide the pointing histories using rubin_sim.maf.slicers
– a typical use case is to evaluate a quantity at all points over the sky, which would use
the rubin_sim.maf.slicers.HealpixSlicer
slicer, but there are
other spatially based slicers, such as the
rubin_sim.maf.slicers.UserPointsSlicer
which lets a user define
specific points at which to evaluate a given metric. Some metrics should be
evaluated on a basis which depends on a single data value, rather than spatially
across the sky (such as evaluating the time between filter changes per night, or
counting the number of observations per airmass bin) – these typically need a
rubin_sim.maf.slicers.OneDSlicer
. Finally, there are metrics should
be applied to all of the observations at once, rather than subdividing them on
any basis; these should use the rubin_sim.maf.slicers.UniSlicer
.
Each slicer pairs with different plotting functions automatically, although
this is user-adjustable. MAF provides the framework to combine metrics, slicers
these plotting functions, and methods to save and restore the results of
each metric calculation.
For more examples of using MAF, please see our tutorials.