示例#1
0
def qa_image(im, context="") -> QA:
    """Assess the quality of an image

    :param im:
    :return: QA
    """
    assert isinstance(im, Image), im
    data = {
        'shape':
        str(im.data.shape),
        'max':
        numpy.max(im.data),
        'min':
        numpy.min(im.data),
        'maxabs':
        numpy.max(numpy.abs(im.data)),
        'rms':
        numpy.std(im.data),
        'sum':
        numpy.sum(im.data),
        'medianabs':
        numpy.median(numpy.abs(im.data)),
        'medianabsdevmedian':
        numpy.median(numpy.abs(im.data - numpy.median(im.data))),
        'median':
        numpy.median(im.data)
    }

    qa = QA(origin="qa_image", data=data, context=context)
    return qa
 def test_qa(self):
     qa = QA(origin='foo',
             data={
                 'rms': 100.0,
                 'median': 10.0
             },
             context='test of qa')
     log.debug(str(qa))
def qa_convolutionfunction(cf, context="") -> QA:
    """Assess the quality of a convolutionfunction

    :param cf:
    :return: QA
    """
    assert isinstance(cf, ConvolutionFunction), cf
    data = {'shape': str(cf.data.shape),
            'max': numpy.max(cf.data),
            'min': numpy.min(cf.data),
            'rms': numpy.std(cf.data),
            'sum': numpy.sum(cf.data),
            'medianabs': numpy.median(numpy.abs(cf.data)),
            'median': numpy.median(cf.data)}
    
    qa = QA(origin="qa_image", data=data, context=context)
    return qa
示例#4
0
def qa_visibility(vis: Union[Visibility, BlockVisibility], context=None) -> QA:
    """Assess the quality of Visibility

    :param context:
    :param vis: Visibility to be assessed
    :return: QA
    """
    assert isinstance(vis, Visibility) or isinstance(vis, BlockVisibility), vis

    avis = numpy.abs(vis.vis)
    data = {
        'maxabs': numpy.max(avis),
        'minabs': numpy.min(avis),
        'rms': numpy.std(avis),
        'medianabs': numpy.median(avis)
    }
    qa = QA(origin='qa_visibility', data=data, context=context)
    return qa
def qa_griddata(gd, context="") -> QA:
    """Assess the quality of a griddata

    :param gd:
    :return: QA
    """
    assert isinstance(gd, GridData), gd
    data = {
        'shape': str(gd.data.shape),
        'max': numpy.max(gd.data),
        'min': numpy.min(gd.data),
        'rms': numpy.std(gd.data),
        'sum': numpy.sum(gd.data),
        'medianabs': numpy.median(numpy.abs(gd.data)),
        'median': numpy.median(gd.data)
    }

    qa = QA(origin="qa_image", data=data, context=context)
    return qa
def qa_pointingtable(pt: PointingTable, context=None) -> QA:
    """Assess the quality of a pointingtable

    :param pt:
    :return: AQ
    """
    apt = numpy.abs(pt.pointing[pt.weight > 0.0])
    ppt = numpy.angle(pt.pointing[pt.weight > 0.0])
    data = {
        'shape': pt.pointing.shape,
        'maxabs-amp': numpy.max(apt),
        'minabs-amp': numpy.min(apt),
        'rms-amp': numpy.std(apt),
        'medianabs-amp': numpy.median(apt),
        'maxabs-phase': numpy.max(ppt),
        'minabs-phase': numpy.min(ppt),
        'rms-phase': numpy.std(ppt),
        'medianabs-phase': numpy.median(ppt),
        'residual': numpy.max(pt.residual)
    }
    return QA(origin='qa_pointingtable', data=data, context=context)
def qa_gaintable(gt: GainTable, context=None) -> QA:
    """Assess the quality of a gaintable

    :param gt:
    :return: AQ
    """
    agt = numpy.abs(gt.gain)
    pgt = numpy.angle(gt.gain)
    data = {
        'shape': gt.gain.shape,
        'maxabs-amp': numpy.max(agt),
        'minabs-amp': numpy.min(agt),
        'rms-amp': numpy.std(agt),
        'medianabs-amp': numpy.median(agt),
        'maxabs-phase': numpy.max(pgt),
        'minabs-phase': numpy.min(pgt),
        'rms-phase': numpy.std(pgt),
        'medianabs-phase': numpy.median(pgt),
        'residual': numpy.max(gt.residual)
    }
    return QA(origin='qa_gaintable', data=data, context=context)