def __call__( self, vis='', imagename='', nterms=int(2), threshold='', action='pbcor',
reffreq='', pbmin=float(0.2), field='', spwlist=[ int() ], chanlist=[ int() ], weightlist=[ float() ] ):
schema = {'vis': {'type': 'cReqPath', 'coerce': _coerce.expand_path}, 'imagename': {'type': 'cStr'}, 'nterms': {'type': 'cInt'}, 'threshold': {'type': 'cStr'}, 'action': {'type': 'cStr', 'allowed': [ 'pbcor', 'calcalpha' ]}, 'reffreq': {'type': 'cStr'}, 'pbmin': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'field': {'type': 'cStr'}, 'spwlist': {'type': 'cIntVec', 'coerce': [_coerce.to_list,_coerce.to_intvec]}, 'chanlist': {'type': 'cIntVec', 'coerce': [_coerce.to_list,_coerce.to_intvec]}, 'weightlist': {'type': 'cFloatVec', 'coerce': [_coerce.to_list,_coerce.to_floatvec]}}
doc = {'vis': vis, 'imagename': imagename, 'nterms': nterms, 'threshold': threshold, 'action': action, 'reffreq': reffreq, 'pbmin': pbmin, 'field': field, 'spwlist': spwlist, 'chanlist': chanlist, 'weightlist': weightlist}
assert _pc.validate(doc,schema), str(_pc.errors)
_logging_state_ = _start_log( 'widebandpbcor', [ 'vis=' + repr(_pc.document['vis']), 'imagename=' + repr(_pc.document['imagename']), 'nterms=' + repr(_pc.document['nterms']), 'threshold=' + repr(_pc.document['threshold']), 'action=' + repr(_pc.document['action']), 'reffreq=' + repr(_pc.document['reffreq']), 'pbmin=' + repr(_pc.document['pbmin']), 'field=' + repr(_pc.document['field']), 'spwlist=' + repr(_pc.document['spwlist']), 'chanlist=' + repr(_pc.document['chanlist']), 'weightlist=' + repr(_pc.document['weightlist']) ] )
return _end_log( _logging_state_, 'widebandpbcor', _widebandpbcor_t( _pc.document['vis'], _pc.document['imagename'], _pc.document['nterms'], _pc.document['threshold'], _pc.document['action'], _pc.document['reffreq'], _pc.document['pbmin'], _pc.document['field'], _pc.document['spwlist'], _pc.document['chanlist'], _pc.document['weightlist'] ) )
from casatools.typecheck import CasaValidator as _val_ctor
_pc = _val_ctor( )
from casatools.coercetype import coerce as _coerce
To have an idea of the overall impact of the cerberus validator overheads on this dataset, I profiled a full calib+img pipeline with this MOUS:uid://A001/X133d/X2d99.
There are over 5 million calls to => casatools/_cerberus_/validator.py:797(validate)
From that cerberus time, the hightlights are:
This dataset seems to be particularly sensitive to the cerberus overheads. But I've found a few worse cases (worse in the sense of the impact of the cerberus validation on the total pipeline runtime). I don't have yet CASA 6 profiles for very large datasets though.
Some examples:
It looks like the penalty can be as high as ~15% of total runtime for the smaller datasets.