Source code for pipeline.hsd.tasks.skycal.qa

import pipeline.infrastructure.basetask as basetask
import pipeline.infrastructure.logging as logging
import pipeline.infrastructure.pipelineqa as pqa
import pipeline.infrastructure.utils as utils
import pipeline.qa.scorecalculator as qacalc
import pipeline.h.tasks.exportdata.aqua as aqua
from . import skycal

LOG = logging.get_logger(__name__)


[docs]class SDSkyCalQAHandler(pqa.QAPlugin): result_cls = skycal.SDSkyCalResults child_cls = None
[docs] def handle(self, context, result): calapps = result.outcome resultdict = skycal.compute_elevation_difference(context, result) vis = calapps[0].calto.vis ms = context.observing_run.get_ms(vis) threshold = skycal.SerialSDSkyCal.ElevationDifferenceThreshold scores = qacalc.score_sd_skycal_elevation_difference(ms, resultdict, threshold=threshold) result.qa.pool.append(scores)
[docs]class SDSkyCalListQAHandler(pqa.QAPlugin): result_cls = basetask.ResultsList child_cls = skycal.SDSkyCalResults
[docs] def handle(self, context, result): # collate the QAScores from each child result, pulling them into our # own QAscore list collated = utils.flatten([r.qa.pool for r in result]) result.qa.pool[:] = collated
aqua_exporter = aqua.xml_generator_for_metric('OnOffElevationDifference', '{:0.3f}deg') aqua.register_aqua_metric(aqua_exporter)