##################### generated by xml-casa (v2) from hsd_blflag.xml ################
##################### f151a976ee2dbb445bded36b19ebbec6 ##############################
from __future__ import absolute_import
from casashell.private.stack_manip import find_local as __sf__
from casashell.private.stack_manip import find_frame as _find_frame
from casatools.typecheck import validator as _pc
from casatools.coercetype import coerce as _coerce
from pipeline.hsd.cli import hsd_blflag as _hsd_blflag_t
from collections import OrderedDict
import numpy
import sys
import os
import shutil
[docs]def static_var(varname, value):
def decorate(func):
setattr(func, varname, value)
return func
return decorate
class _hsd_blflag:
"""
hsd_blflag ---- Flag spectra based on predefined criteria of single dish pipeline
Data are flagged based on several flagging rules. Available rules are:
expected rms, calculated rms, and running mean of both pre-fit and
post-fit spectra. Tsys flagging is also available.
In addition, the heuristics script creates many plots for each stage.
Those plots are included in the weblog.
Output:
results -- If pipeline mode is 'getinputs' then None is returned. Otherwise
the results object for the pipeline task is returned.
--------- parameter descriptions ---------------------------------------------
iteration Number of iterations to perform sigma clipping to
calculate threshold value of flagging.
edge Number of channels to be dropped from the edge.
The value must be a list of integer with length of one or
two. If list length is one, same number will be applied
both side of the band.
example: [10,20], [10]
flag_tsys Activate (True) or deactivate (False) Tsys flag.
tsys_thresh Threshold value for Tsys flag.
flag_weath Activate (True) or deactivate (False) weather flag.
Since weather flagging is not implemented yet,
setting True has no effect at the moment.
weath_thresh Threshold value for weather flag.
flag_prfre Activate (True) or deactivate (False) flag by expected
rms of pre-fit spectra.
prfre_thresh Threshold value for flag by expected rms of pre-fit
spectra.
flag_pofre Activate (True) or deactivate (False) flag by expected
rms of post-fit spectra.
pofre_thresh Threshold value for flag by expected rms of post-fit
spectra.
flag_prfr Activate (True) or deactivate (False) flag by rms of
pre-fit spectra.
prfr_thresh Threshold value for flag by rms of pre-fit spectra.
flag_pofr Activate (True) or deactivate (False) flag by rms of
post-fit spectra.
pofr_thresh Threshold value for flag by rms of post-fit spectra.
flag_prfrm Activate (True) or deactivate (False) flag by running
mean of pre-fit spectra.
prfrm_thresh Threshold value for flag by running mean of pre-fit
spectra.
prfrm_nmean Number of channels for running mean of pre-fit spectra.
flag_pofrm Activate (True) or deactivate (False) flag by running
mean of post-fit spectra.
pofrm_thresh Threshold value for flag by running mean of post-fit
spectra.
pofrm_nmean Number of channels for running mean of post-fit spectra.
flag_user Activate (True) or deactivate (False) user-defined flag.
Since user flagging is not implemented yet, setting True
has no effect at the moment.
user_thresh Threshold value for flag by user-defined rule.
plotflag True to plot result of data flagging.
pipelinemode The pipeline operating mode. In 'automatic' mode the
pipeline determines the values of all context defined
pipeline inputs automatically. In interactive mode
the user can set the pipeline context defined parameters
manually. In 'getinputs' mode the user can check the
settings of all pipeline parameters without running
the task.
infiles ASDM or MS files to be processed. This parameter behaves
as data selection parameter. The name specified by
infiles must be registered to context before you run
hsd_blflag.
antenna Data selection by antenna names or ids.
example: 'PM03,PM04'
'' (all antennas)
field Data selection by field names or ids.
example: '*Sgr*,M100'
'' (all fields)
spw Data selection by spw ids.
example: '3,4' (spw 3 and 4)
'' (all spws)
pol Data selection by polarizations.
example: 'XX,YY' (correlation XX and YY)
'' (all polarizations)
dryrun Run the commands (True) or generate the commands to be
run but do not execute (False).
acceptresults Add the results of the task to the pipeline context (True)
or reject them (False).
parallel Execute using CASA HPC functionality, if available.
--------- examples -----------------------------------------------------------
"""
_info_group_ = """pipeline"""
_info_desc_ = """Flag spectra based on predefined criteria of single dish pipeline"""
__schema = {'iteration': {'type': 'cInt'}, 'edge': {'type': 'cIntVec', 'coerce': [_coerce.to_list,_coerce.to_intvec]}, 'flag_tsys': {'type': 'cBool'}, 'tsys_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'flag_weath': {'type': 'cBool'}, 'weath_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'flag_prfre': {'type': 'cBool'}, 'prfre_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'flag_pofre': {'type': 'cBool'}, 'pofre_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'flag_prfr': {'type': 'cBool'}, 'prfr_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'flag_pofr': {'type': 'cBool'}, 'pofr_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'flag_prfrm': {'type': 'cBool'}, 'prfrm_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'prfrm_nmean': {'type': 'cInt'}, 'flag_pofrm': {'type': 'cBool'}, 'pofrm_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'pofrm_nmean': {'type': 'cInt'}, 'flag_user': {'type': 'cBool'}, 'user_thresh': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'plotflag': {'type': 'cBool'}, 'pipelinemode': {'type': 'cStr', 'coerce': _coerce.to_str, 'allowed': [ 'automatic', 'interactive', 'getinputs' ]}, 'infiles': {'type': 'cStrVec', 'coerce': [_coerce.to_list,_coerce.to_strvec]}, 'antenna': {'type': 'cStr', 'coerce': _coerce.to_str}, 'field': {'type': 'cStr', 'coerce': _coerce.to_str}, 'spw': {'type': 'cStr', 'coerce': _coerce.to_str}, 'pol': {'type': 'cStr', 'coerce': _coerce.to_str}, 'dryrun': {'type': 'cBool'}, 'acceptresults': {'type': 'cBool'}, 'parallel': {'type': 'cStr', 'coerce': _coerce.to_str, 'allowed': [ 'automatic', 'true', 'false' ]}}
def __init__(self):
self.__stdout = None
self.__stderr = None
self.__root_frame_ = None
def __globals_(self):
if self.__root_frame_ is None:
self.__root_frame_ = _find_frame( )
assert self.__root_frame_ is not None, "could not find CASAshell global frame"
return self.__root_frame_
def __to_string_(self,value):
if type(value) is str:
return "'%s'" % value
else:
return str(value)
def __validate_(self,doc,schema):
return _pc.validate(doc,schema)
def __do_inp_output(self,param_prefix,description_str,formatting_chars):
out = self.__stdout or sys.stdout
description = description_str.split( )
prefix_width = 23 + 16 + 4
output = [ ]
addon = ''
first_addon = True
while len(description) > 0:
## starting a new line.....................................................................
if len(output) == 0:
## for first line add parameter information............................................
if len(param_prefix)-formatting_chars > prefix_width - 1:
output.append(param_prefix)
continue
addon = param_prefix + ' #'
first_addon = True
addon_formatting = formatting_chars
else:
## for subsequent lines space over prefix width........................................
addon = (' ' * prefix_width) + '#'
first_addon = False
addon_formatting = 0
## if first word of description puts us over the screen width, bail........................
if len(addon + description[0]) - addon_formatting + 1 > self.term_width:
## if we're doing the first line make sure it's output.................................
if first_addon: output.append(addon)
break
while len(description) > 0:
## if the next description word puts us over break for the next line...................
if len(addon + description[0]) - addon_formatting + 1 > self.term_width: break
addon = addon + ' ' + description[0]
description.pop(0)
output.append(addon)
out.write('\n'.join(output) + '\n')
#--------- return nonsubparam values ----------------------------------------------
def __flag_prfre_dflt( self, glb ):
return True
def __flag_prfre( self, glb ):
if 'flag_prfre' in glb: return glb['flag_prfre']
return True
def __flag_tsys_dflt( self, glb ):
return True
def __flag_tsys( self, glb ):
if 'flag_tsys' in glb: return glb['flag_tsys']
return True
def __edge_dflt( self, glb ):
return [ int(0),int(0) ]
def __edge( self, glb ):
if 'edge' in glb: return glb['edge']
return [ int(0),int(0) ]
def __iteration_dflt( self, glb ):
return int(5)
def __iteration( self, glb ):
if 'iteration' in glb: return glb['iteration']
return int(5)
def __flag_pofre_dflt( self, glb ):
return True
def __flag_pofre( self, glb ):
if 'flag_pofre' in glb: return glb['flag_pofre']
return True
def __flag_prfr_dflt( self, glb ):
return True
def __flag_prfr( self, glb ):
if 'flag_prfr' in glb: return glb['flag_prfr']
return True
def __flag_weath_dflt( self, glb ):
return False
def __flag_weath( self, glb ):
if 'flag_weath' in glb: return glb['flag_weath']
return False
def __plotflag_dflt( self, glb ):
return True
def __plotflag( self, glb ):
if 'plotflag' in glb: return glb['plotflag']
return True
def __flag_prfrm_dflt( self, glb ):
return True
def __flag_prfrm( self, glb ):
if 'flag_prfrm' in glb: return glb['flag_prfrm']
return True
def __flag_user_dflt( self, glb ):
return False
def __flag_user( self, glb ):
if 'flag_user' in glb: return glb['flag_user']
return False
def __pipelinemode_dflt( self, glb ):
return 'automatic'
def __pipelinemode( self, glb ):
if 'pipelinemode' in glb: return glb['pipelinemode']
return 'automatic'
def __flag_pofr_dflt( self, glb ):
return True
def __flag_pofr( self, glb ):
if 'flag_pofr' in glb: return glb['flag_pofr']
return True
def __flag_pofrm_dflt( self, glb ):
return True
def __flag_pofrm( self, glb ):
if 'flag_pofrm' in glb: return glb['flag_pofrm']
return True
#--------- return inp/go default --------------------------------------------------
def __antenna_dflt( self, glb ):
if self.__pipelinemode( glb ) == "interactive": return ""
if self.__pipelinemode( glb ) == "getinputs": return ""
return None
def __pofrm_nmean_dflt( self, glb ):
if self.__flag_pofrm( glb ) == bool(True): return int(5)
return None
def __dryrun_dflt( self, glb ):
if self.__pipelinemode( glb ) == "interactive": return bool(False)
return None
def __pofr_thresh_dflt( self, glb ):
if self.__flag_pofr( glb ) == bool(True): return float(4.0)
return None
def __tsys_thresh_dflt( self, glb ):
if self.__flag_tsys( glb ) == bool(True): return float(3.0)
return None
def __prfrm_nmean_dflt( self, glb ):
if self.__flag_prfrm( glb ) == bool(True): return int(5)
return None
def __field_dflt( self, glb ):
if self.__pipelinemode( glb ) == "interactive": return ""
if self.__pipelinemode( glb ) == "getinputs": return ""
return None
def __user_thresh_dflt( self, glb ):
if self.__flag_user( glb ) == bool(True): return float(5.0)
return None
def __weath_thresh_dflt( self, glb ):
if self.__flag_weath( glb ) == bool(True): return float(3.0)
return None
def __prfre_thresh_dflt( self, glb ):
if self.__flag_prfre( glb ) == bool(True): return float(3.0)
return None
def __pofrm_thresh_dflt( self, glb ):
if self.__flag_pofrm( glb ) == bool(True): return float(5.0)
return None
def __prfrm_thresh_dflt( self, glb ):
if self.__flag_prfrm( glb ) == bool(True): return float(5.5)
return None
def __acceptresults_dflt( self, glb ):
if self.__pipelinemode( glb ) == "interactive": return bool(True)
return None
def __pofre_thresh_dflt( self, glb ):
if self.__flag_pofre( glb ) == bool(True): return float(1.3333)
return None
def __prfr_thresh_dflt( self, glb ):
if self.__flag_prfr( glb ) == bool(True): return float(4.5)
return None
def __pol_dflt( self, glb ):
if self.__pipelinemode( glb ) == "interactive": return ""
if self.__pipelinemode( glb ) == "getinputs": return ""
return None
def __spw_dflt( self, glb ):
if self.__pipelinemode( glb ) == "interactive": return ""
if self.__pipelinemode( glb ) == "getinputs": return ""
return None
def __parallel_dflt( self, glb ):
if self.__pipelinemode( glb ) == "interactive": return "automatic"
return None
def __infiles_dflt( self, glb ):
if self.__pipelinemode( glb ) == "interactive": return []
if self.__pipelinemode( glb ) == "getinputs": return []
return None
#--------- return subparam values -------------------------------------------------
def __tsys_thresh( self, glb ):
if 'tsys_thresh' in glb: return glb['tsys_thresh']
dflt = self.__tsys_thresh_dflt( glb )
if dflt is not None: return dflt
return float(3.0)
def __weath_thresh( self, glb ):
if 'weath_thresh' in glb: return glb['weath_thresh']
dflt = self.__weath_thresh_dflt( glb )
if dflt is not None: return dflt
return float(3.0)
def __prfre_thresh( self, glb ):
if 'prfre_thresh' in glb: return glb['prfre_thresh']
dflt = self.__prfre_thresh_dflt( glb )
if dflt is not None: return dflt
return float(3.0)
def __pofre_thresh( self, glb ):
if 'pofre_thresh' in glb: return glb['pofre_thresh']
dflt = self.__pofre_thresh_dflt( glb )
if dflt is not None: return dflt
return float(1.3333)
def __prfr_thresh( self, glb ):
if 'prfr_thresh' in glb: return glb['prfr_thresh']
dflt = self.__prfr_thresh_dflt( glb )
if dflt is not None: return dflt
return float(4.5)
def __pofr_thresh( self, glb ):
if 'pofr_thresh' in glb: return glb['pofr_thresh']
dflt = self.__pofr_thresh_dflt( glb )
if dflt is not None: return dflt
return float(4.0)
def __prfrm_thresh( self, glb ):
if 'prfrm_thresh' in glb: return glb['prfrm_thresh']
dflt = self.__prfrm_thresh_dflt( glb )
if dflt is not None: return dflt
return float(5.5)
def __prfrm_nmean( self, glb ):
if 'prfrm_nmean' in glb: return glb['prfrm_nmean']
dflt = self.__prfrm_nmean_dflt( glb )
if dflt is not None: return dflt
return int(5)
def __pofrm_thresh( self, glb ):
if 'pofrm_thresh' in glb: return glb['pofrm_thresh']
dflt = self.__pofrm_thresh_dflt( glb )
if dflt is not None: return dflt
return float(5.0)
def __pofrm_nmean( self, glb ):
if 'pofrm_nmean' in glb: return glb['pofrm_nmean']
dflt = self.__pofrm_nmean_dflt( glb )
if dflt is not None: return dflt
return int(5)
def __user_thresh( self, glb ):
if 'user_thresh' in glb: return glb['user_thresh']
dflt = self.__user_thresh_dflt( glb )
if dflt is not None: return dflt
return float(5.0)
def __infiles( self, glb ):
if 'infiles' in glb: return glb['infiles']
dflt = self.__infiles_dflt( glb )
if dflt is not None: return dflt
return [ ]
def __antenna( self, glb ):
if 'antenna' in glb: return glb['antenna']
dflt = self.__antenna_dflt( glb )
if dflt is not None: return dflt
return ''
def __field( self, glb ):
if 'field' in glb: return glb['field']
dflt = self.__field_dflt( glb )
if dflt is not None: return dflt
return ''
def __spw( self, glb ):
if 'spw' in glb: return glb['spw']
dflt = self.__spw_dflt( glb )
if dflt is not None: return dflt
return ''
def __pol( self, glb ):
if 'pol' in glb: return glb['pol']
dflt = self.__pol_dflt( glb )
if dflt is not None: return dflt
return ''
def __dryrun( self, glb ):
if 'dryrun' in glb: return glb['dryrun']
dflt = self.__dryrun_dflt( glb )
if dflt is not None: return dflt
return False
def __acceptresults( self, glb ):
if 'acceptresults' in glb: return glb['acceptresults']
dflt = self.__acceptresults_dflt( glb )
if dflt is not None: return dflt
return True
def __parallel( self, glb ):
if 'parallel' in glb: return glb['parallel']
dflt = self.__parallel_dflt( glb )
if dflt is not None: return dflt
return 'automatic'
#--------- subparam inp output ----------------------------------------------------
def __iteration_inp(self):
description = 'Number of iteration to perform sigma clipping to calculate threshold'
value = self.__iteration( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'iteration': value},{'iteration': self.__schema['iteration']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('%-16.16s = %s%-23s%s' % ('iteration',pre,self.__to_string_(value),post),description,0+len(pre)+len(post))
def __edge_inp(self):
description = 'Number of edge channels to be excluded from statistic calculation to flag data'
value = self.__edge( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'edge': value},{'edge': self.__schema['edge']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('%-16.16s = %s%-23s%s' % ('edge',pre,self.__to_string_(value),post),description,0+len(pre)+len(post))
def __flag_tsys_inp(self):
description = 'Flag data by Tsys value'
value = self.__flag_tsys( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_tsys': value},{'flag_tsys': self.__schema['flag_tsys']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_tsys',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __tsys_thresh_inp(self):
if self.__tsys_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for Tsys flag'
value = self.__tsys_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'tsys_thresh': value},{'tsys_thresh': self.__schema['tsys_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('tsys_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __flag_weath_inp(self):
description = 'Flag data by weather (not implemented yet)'
value = self.__flag_weath( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_weath': value},{'flag_weath': self.__schema['flag_weath']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_weath',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __weath_thresh_inp(self):
if self.__weath_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for weather flag'
value = self.__weath_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'weath_thresh': value},{'weath_thresh': self.__schema['weath_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('weath_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __flag_prfre_inp(self):
description = 'Flag data by EXPECTED RMS of pre-fit spectra'
value = self.__flag_prfre( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_prfre': value},{'flag_prfre': self.__schema['flag_prfre']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_prfre',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __prfre_thresh_inp(self):
if self.__prfre_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for EXPECTED RMS of pre-fit spectra flag'
value = self.__prfre_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'prfre_thresh': value},{'prfre_thresh': self.__schema['prfre_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('prfre_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __flag_pofre_inp(self):
description = 'Flag data by EXPECTED RMS of post-fit spectra'
value = self.__flag_pofre( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_pofre': value},{'flag_pofre': self.__schema['flag_pofre']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_pofre',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __pofre_thresh_inp(self):
if self.__pofre_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for EXPECTED RMS of post-fit spectra flag'
value = self.__pofre_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'pofre_thresh': value},{'pofre_thresh': self.__schema['pofre_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('pofre_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __flag_prfr_inp(self):
description = 'Flag data by RMS of pre-fit spectra'
value = self.__flag_prfr( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_prfr': value},{'flag_prfr': self.__schema['flag_prfr']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_prfr',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __prfr_thresh_inp(self):
if self.__prfr_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for RMS of pre-fit flag'
value = self.__prfr_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'prfr_thresh': value},{'prfr_thresh': self.__schema['prfr_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('prfr_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __flag_pofr_inp(self):
description = 'Flag data by RMS of post-fit spectra'
value = self.__flag_pofr( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_pofr': value},{'flag_pofr': self.__schema['flag_pofr']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_pofr',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __pofr_thresh_inp(self):
if self.__pofr_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for RMS of post-fit spectra flag'
value = self.__pofr_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'pofr_thresh': value},{'pofr_thresh': self.__schema['pofr_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('pofr_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __flag_prfrm_inp(self):
description = 'Flag data by running mean of pre-fit spectra'
value = self.__flag_prfrm( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_prfrm': value},{'flag_prfrm': self.__schema['flag_prfrm']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_prfrm',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __prfrm_thresh_inp(self):
if self.__prfrm_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for running mean of pre-fit spectra flag'
value = self.__prfrm_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'prfrm_thresh': value},{'prfrm_thresh': self.__schema['prfrm_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('prfrm_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __prfrm_nmean_inp(self):
if self.__prfrm_nmean_dflt( self.__globals_( ) ) is not None:
description = 'Number of channels for running mean of pre-fit spectra flag'
value = self.__prfrm_nmean( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'prfrm_nmean': value},{'prfrm_nmean': self.__schema['prfrm_nmean']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('prfrm_nmean',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __flag_pofrm_inp(self):
description = 'Flag data by running mean of post-fit spectra'
value = self.__flag_pofrm( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_pofrm': value},{'flag_pofrm': self.__schema['flag_pofrm']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_pofrm',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __pofrm_thresh_inp(self):
if self.__pofrm_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for running mean of post-fit spectra flag'
value = self.__pofrm_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'pofrm_thresh': value},{'pofrm_thresh': self.__schema['pofrm_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('pofrm_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __pofrm_nmean_inp(self):
if self.__pofrm_nmean_dflt( self.__globals_( ) ) is not None:
description = 'Number of channels for running mean of post-fit spectra flag'
value = self.__pofrm_nmean( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'pofrm_nmean': value},{'pofrm_nmean': self.__schema['pofrm_nmean']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('pofrm_nmean',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __flag_user_inp(self):
description = 'Flag data by user flag (not implemented yet)'
value = self.__flag_user( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'flag_user': value},{'flag_user': self.__schema['flag_user']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('flag_user',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __user_thresh_inp(self):
if self.__user_thresh_dflt( self.__globals_( ) ) is not None:
description = 'Threshold for user flag'
value = self.__user_thresh( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'user_thresh': value},{'user_thresh': self.__schema['user_thresh']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('user_thresh',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __plotflag_inp(self):
description = 'Create plots for flagging'
value = self.__plotflag( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'plotflag': value},{'plotflag': self.__schema['plotflag']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('%-16.16s = %s%-23s%s' % ('plotflag',pre,self.__to_string_(value),post),description,0+len(pre)+len(post))
def __pipelinemode_inp(self):
description = 'The pipeline operating mode'
value = self.__pipelinemode( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'pipelinemode': value},{'pipelinemode': self.__schema['pipelinemode']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output('\x1B[1m\x1B[47m%-16.16s =\x1B[0m %s%-23s%s' % ('pipelinemode',pre,self.__to_string_(value),post),description,13+len(pre)+len(post))
def __infiles_inp(self):
if self.__infiles_dflt( self.__globals_( ) ) is not None:
description = 'List of input files to be flagged (\'\'=all)'
value = self.__infiles( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'infiles': value},{'infiles': self.__schema['infiles']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('infiles',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __antenna_inp(self):
if self.__antenna_dflt( self.__globals_( ) ) is not None:
description = 'select data by antenna names or ids, e.g. \'PM03,PM04\' (\'\'=all)'
value = self.__antenna( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'antenna': value},{'antenna': self.__schema['antenna']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('antenna',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __field_inp(self):
if self.__field_dflt( self.__globals_( ) ) is not None:
description = 'select data by field names or ids, e.g. \'M100,Sgr*\' (\'\'=all)'
value = self.__field( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'field': value},{'field': self.__schema['field']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('field',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __spw_inp(self):
if self.__spw_dflt( self.__globals_( ) ) is not None:
description = 'select data by spectral windows, e.g. \'3,5,7\' (\'\'=all)'
value = self.__spw( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'spw': value},{'spw': self.__schema['spw']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('spw',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __pol_inp(self):
if self.__pol_dflt( self.__globals_( ) ) is not None:
description = 'select data by polarizations, e.g. \'XX,YY\' (\'\'=all)'
value = self.__pol( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'pol': value},{'pol': self.__schema['pol']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('pol',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __dryrun_inp(self):
if self.__dryrun_dflt( self.__globals_( ) ) is not None:
description = 'Run the task (False) or display the task command (True)'
value = self.__dryrun( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'dryrun': value},{'dryrun': self.__schema['dryrun']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('dryrun',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __acceptresults_inp(self):
if self.__acceptresults_dflt( self.__globals_( ) ) is not None:
description = 'Add the results into the pipeline context'
value = self.__acceptresults( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'acceptresults': value},{'acceptresults': self.__schema['acceptresults']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('acceptresults',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
def __parallel_inp(self):
if self.__parallel_dflt( self.__globals_( ) ) is not None:
description = 'Execute using CASA HPC functionality, if available.'
value = self.__parallel( self.__globals_( ) )
(pre,post) = ('','') if self.__validate_({'parallel': value},{'parallel': self.__schema['parallel']}) else ('\x1B[91m','\x1B[0m')
self.__do_inp_output(' \x1B[92m%-13.13s =\x1B[0m %s%-23s%s' % ('parallel',pre,self.__to_string_(value),post),description,9+len(pre)+len(post))
#--------- global default implementation-------------------------------------------
@static_var('state', __sf__('casa_inp_go_state'))
def set_global_defaults(self):
self.set_global_defaults.state['last'] = self
glb = self.__globals_( )
if 'antenna' in glb: del glb['antenna']
if 'pofrm_nmean' in glb: del glb['pofrm_nmean']
if 'dryrun' in glb: del glb['dryrun']
if 'pofr_thresh' in glb: del glb['pofr_thresh']
if 'tsys_thresh' in glb: del glb['tsys_thresh']
if 'prfrm_nmean' in glb: del glb['prfrm_nmean']
if 'field' in glb: del glb['field']
if 'flag_user' in glb: del glb['flag_user']
if 'flag_prfrm' in glb: del glb['flag_prfrm']
if 'pipelinemode' in glb: del glb['pipelinemode']
if 'user_thresh' in glb: del glb['user_thresh']
if 'flag_prfre' in glb: del glb['flag_prfre']
if 'weath_thresh' in glb: del glb['weath_thresh']
if 'prfre_thresh' in glb: del glb['prfre_thresh']
if 'pofrm_thresh' in glb: del glb['pofrm_thresh']
if 'prfrm_thresh' in glb: del glb['prfrm_thresh']
if 'acceptresults' in glb: del glb['acceptresults']
if 'flag_pofrm' in glb: del glb['flag_pofrm']
if 'flag_weath' in glb: del glb['flag_weath']
if 'flag_tsys' in glb: del glb['flag_tsys']
if 'iteration' in glb: del glb['iteration']
if 'pofre_thresh' in glb: del glb['pofre_thresh']
if 'prfr_thresh' in glb: del glb['prfr_thresh']
if 'flag_prfr' in glb: del glb['flag_prfr']
if 'edge' in glb: del glb['edge']
if 'flag_pofre' in glb: del glb['flag_pofre']
if 'flag_pofr' in glb: del glb['flag_pofr']
if 'pol' in glb: del glb['pol']
if 'spw' in glb: del glb['spw']
if 'plotflag' in glb: del glb['plotflag']
if 'parallel' in glb: del glb['parallel']
if 'infiles' in glb: del glb['infiles']
#--------- inp function -----------------------------------------------------------
def inp(self):
print("# hsd_blflag -- %s" % self._info_desc_)
self.term_width, self.term_height = shutil.get_terminal_size(fallback=(80, 24))
self.__iteration_inp( )
self.__edge_inp( )
self.__flag_tsys_inp( )
self.__tsys_thresh_inp( )
self.__flag_weath_inp( )
self.__weath_thresh_inp( )
self.__flag_prfre_inp( )
self.__prfre_thresh_inp( )
self.__flag_pofre_inp( )
self.__pofre_thresh_inp( )
self.__flag_prfr_inp( )
self.__prfr_thresh_inp( )
self.__flag_pofr_inp( )
self.__pofr_thresh_inp( )
self.__flag_prfrm_inp( )
self.__prfrm_thresh_inp( )
self.__prfrm_nmean_inp( )
self.__flag_pofrm_inp( )
self.__pofrm_thresh_inp( )
self.__pofrm_nmean_inp( )
self.__flag_user_inp( )
self.__user_thresh_inp( )
self.__plotflag_inp( )
self.__pipelinemode_inp( )
self.__infiles_inp( )
self.__antenna_inp( )
self.__field_inp( )
self.__spw_inp( )
self.__pol_inp( )
self.__dryrun_inp( )
self.__acceptresults_inp( )
self.__parallel_inp( )
#--------- tget function ----------------------------------------------------------
@static_var('state', __sf__('casa_inp_go_state'))
def tget(self,file=None):
from casashell.private.stack_manip import find_frame
from runpy import run_path
filename = None
if file is None:
if os.path.isfile("hsd_blflag.last"):
filename = "hsd_blflag.last"
elif isinstance(file, str):
if os.path.isfile(file):
filename = file
if filename is not None:
glob = find_frame( )
newglob = run_path( filename, init_globals={ } )
for i in newglob:
glob[i] = newglob[i]
self.tget.state['last'] = self
else:
print("could not find last file, setting defaults instead...")
self.set_global_defaults( )
def __call__( self, iteration=None, edge=None, flag_tsys=None, tsys_thresh=None, flag_weath=None, weath_thresh=None, flag_prfre=None, prfre_thresh=None, flag_pofre=None, pofre_thresh=None, flag_prfr=None, prfr_thresh=None, flag_pofr=None, pofr_thresh=None, flag_prfrm=None, prfrm_thresh=None, prfrm_nmean=None, flag_pofrm=None, pofrm_thresh=None, pofrm_nmean=None, flag_user=None, user_thresh=None, plotflag=None, pipelinemode=None, infiles=None, antenna=None, field=None, spw=None, pol=None, dryrun=None, acceptresults=None, parallel=None ):
def noobj(s):
if s.startswith('<') and s.endswith('>'):
return "None"
else:
return s
_prefile = os.path.realpath('hsd_blflag.pre')
_postfile = os.path.realpath('hsd_blflag.last')
_return_result_ = None
_arguments = [iteration,edge,flag_tsys,tsys_thresh,flag_weath,weath_thresh,flag_prfre,prfre_thresh,flag_pofre,pofre_thresh,flag_prfr,prfr_thresh,flag_pofr,pofr_thresh,flag_prfrm,prfrm_thresh,prfrm_nmean,flag_pofrm,pofrm_thresh,pofrm_nmean,flag_user,user_thresh,plotflag,pipelinemode,infiles,antenna,field,spw,pol,dryrun,acceptresults,parallel]
_invocation_parameters = OrderedDict( )
if any(map(lambda x: x is not None,_arguments)):
# invoke python style
# set the non sub-parameters that are not None
local_global = { }
if iteration is not None: local_global['iteration'] = iteration
if edge is not None: local_global['edge'] = edge
if flag_tsys is not None: local_global['flag_tsys'] = flag_tsys
if flag_weath is not None: local_global['flag_weath'] = flag_weath
if flag_prfre is not None: local_global['flag_prfre'] = flag_prfre
if flag_pofre is not None: local_global['flag_pofre'] = flag_pofre
if flag_prfr is not None: local_global['flag_prfr'] = flag_prfr
if flag_pofr is not None: local_global['flag_pofr'] = flag_pofr
if flag_prfrm is not None: local_global['flag_prfrm'] = flag_prfrm
if flag_pofrm is not None: local_global['flag_pofrm'] = flag_pofrm
if flag_user is not None: local_global['flag_user'] = flag_user
if plotflag is not None: local_global['plotflag'] = plotflag
if pipelinemode is not None: local_global['pipelinemode'] = pipelinemode
# the invocation parameters for the non-subparameters can now be set - this picks up those defaults
_invocation_parameters['iteration'] = self.__iteration( local_global )
_invocation_parameters['edge'] = self.__edge( local_global )
_invocation_parameters['flag_tsys'] = self.__flag_tsys( local_global )
_invocation_parameters['flag_weath'] = self.__flag_weath( local_global )
_invocation_parameters['flag_prfre'] = self.__flag_prfre( local_global )
_invocation_parameters['flag_pofre'] = self.__flag_pofre( local_global )
_invocation_parameters['flag_prfr'] = self.__flag_prfr( local_global )
_invocation_parameters['flag_pofr'] = self.__flag_pofr( local_global )
_invocation_parameters['flag_prfrm'] = self.__flag_prfrm( local_global )
_invocation_parameters['flag_pofrm'] = self.__flag_pofrm( local_global )
_invocation_parameters['flag_user'] = self.__flag_user( local_global )
_invocation_parameters['plotflag'] = self.__plotflag( local_global )
_invocation_parameters['pipelinemode'] = self.__pipelinemode( local_global )
# the sub-parameters can then be set. Use the supplied value if not None, else the function, which gets the appropriate default
_invocation_parameters['tsys_thresh'] = self.__tsys_thresh( _invocation_parameters ) if tsys_thresh is None else tsys_thresh
_invocation_parameters['weath_thresh'] = self.__weath_thresh( _invocation_parameters ) if weath_thresh is None else weath_thresh
_invocation_parameters['prfre_thresh'] = self.__prfre_thresh( _invocation_parameters ) if prfre_thresh is None else prfre_thresh
_invocation_parameters['pofre_thresh'] = self.__pofre_thresh( _invocation_parameters ) if pofre_thresh is None else pofre_thresh
_invocation_parameters['prfr_thresh'] = self.__prfr_thresh( _invocation_parameters ) if prfr_thresh is None else prfr_thresh
_invocation_parameters['pofr_thresh'] = self.__pofr_thresh( _invocation_parameters ) if pofr_thresh is None else pofr_thresh
_invocation_parameters['prfrm_thresh'] = self.__prfrm_thresh( _invocation_parameters ) if prfrm_thresh is None else prfrm_thresh
_invocation_parameters['prfrm_nmean'] = self.__prfrm_nmean( _invocation_parameters ) if prfrm_nmean is None else prfrm_nmean
_invocation_parameters['pofrm_thresh'] = self.__pofrm_thresh( _invocation_parameters ) if pofrm_thresh is None else pofrm_thresh
_invocation_parameters['pofrm_nmean'] = self.__pofrm_nmean( _invocation_parameters ) if pofrm_nmean is None else pofrm_nmean
_invocation_parameters['user_thresh'] = self.__user_thresh( _invocation_parameters ) if user_thresh is None else user_thresh
_invocation_parameters['infiles'] = self.__infiles( _invocation_parameters ) if infiles is None else infiles
_invocation_parameters['antenna'] = self.__antenna( _invocation_parameters ) if antenna is None else antenna
_invocation_parameters['field'] = self.__field( _invocation_parameters ) if field is None else field
_invocation_parameters['spw'] = self.__spw( _invocation_parameters ) if spw is None else spw
_invocation_parameters['pol'] = self.__pol( _invocation_parameters ) if pol is None else pol
_invocation_parameters['dryrun'] = self.__dryrun( _invocation_parameters ) if dryrun is None else dryrun
_invocation_parameters['acceptresults'] = self.__acceptresults( _invocation_parameters ) if acceptresults is None else acceptresults
_invocation_parameters['parallel'] = self.__parallel( _invocation_parameters ) if parallel is None else parallel
else:
# invoke with inp/go semantics
_invocation_parameters['iteration'] = self.__iteration( self.__globals_( ) )
_invocation_parameters['edge'] = self.__edge( self.__globals_( ) )
_invocation_parameters['flag_tsys'] = self.__flag_tsys( self.__globals_( ) )
_invocation_parameters['tsys_thresh'] = self.__tsys_thresh( self.__globals_( ) )
_invocation_parameters['flag_weath'] = self.__flag_weath( self.__globals_( ) )
_invocation_parameters['weath_thresh'] = self.__weath_thresh( self.__globals_( ) )
_invocation_parameters['flag_prfre'] = self.__flag_prfre( self.__globals_( ) )
_invocation_parameters['prfre_thresh'] = self.__prfre_thresh( self.__globals_( ) )
_invocation_parameters['flag_pofre'] = self.__flag_pofre( self.__globals_( ) )
_invocation_parameters['pofre_thresh'] = self.__pofre_thresh( self.__globals_( ) )
_invocation_parameters['flag_prfr'] = self.__flag_prfr( self.__globals_( ) )
_invocation_parameters['prfr_thresh'] = self.__prfr_thresh( self.__globals_( ) )
_invocation_parameters['flag_pofr'] = self.__flag_pofr( self.__globals_( ) )
_invocation_parameters['pofr_thresh'] = self.__pofr_thresh( self.__globals_( ) )
_invocation_parameters['flag_prfrm'] = self.__flag_prfrm( self.__globals_( ) )
_invocation_parameters['prfrm_thresh'] = self.__prfrm_thresh( self.__globals_( ) )
_invocation_parameters['prfrm_nmean'] = self.__prfrm_nmean( self.__globals_( ) )
_invocation_parameters['flag_pofrm'] = self.__flag_pofrm( self.__globals_( ) )
_invocation_parameters['pofrm_thresh'] = self.__pofrm_thresh( self.__globals_( ) )
_invocation_parameters['pofrm_nmean'] = self.__pofrm_nmean( self.__globals_( ) )
_invocation_parameters['flag_user'] = self.__flag_user( self.__globals_( ) )
_invocation_parameters['user_thresh'] = self.__user_thresh( self.__globals_( ) )
_invocation_parameters['plotflag'] = self.__plotflag( self.__globals_( ) )
_invocation_parameters['pipelinemode'] = self.__pipelinemode( self.__globals_( ) )
_invocation_parameters['infiles'] = self.__infiles( self.__globals_( ) )
_invocation_parameters['antenna'] = self.__antenna( self.__globals_( ) )
_invocation_parameters['field'] = self.__field( self.__globals_( ) )
_invocation_parameters['spw'] = self.__spw( self.__globals_( ) )
_invocation_parameters['pol'] = self.__pol( self.__globals_( ) )
_invocation_parameters['dryrun'] = self.__dryrun( self.__globals_( ) )
_invocation_parameters['acceptresults'] = self.__acceptresults( self.__globals_( ) )
_invocation_parameters['parallel'] = self.__parallel( self.__globals_( ) )
try:
with open(_prefile,'w') as _f:
for _i in _invocation_parameters:
_f.write("%-13s = %s\n" % (_i,noobj(repr(_invocation_parameters[_i]))))
_f.write("#hsd_blflag( ")
count = 0
for _i in _invocation_parameters:
_f.write("%s=%s" % (_i,noobj(repr(_invocation_parameters[_i]))))
count += 1
if count < len(_invocation_parameters): _f.write(",")
_f.write(" )\n")
except: pass
try:
_return_result_ = _hsd_blflag_t( _invocation_parameters['iteration'],_invocation_parameters['edge'],_invocation_parameters['flag_tsys'],_invocation_parameters['tsys_thresh'],_invocation_parameters['flag_weath'],_invocation_parameters['weath_thresh'],_invocation_parameters['flag_prfre'],_invocation_parameters['prfre_thresh'],_invocation_parameters['flag_pofre'],_invocation_parameters['pofre_thresh'],_invocation_parameters['flag_prfr'],_invocation_parameters['prfr_thresh'],_invocation_parameters['flag_pofr'],_invocation_parameters['pofr_thresh'],_invocation_parameters['flag_prfrm'],_invocation_parameters['prfrm_thresh'],_invocation_parameters['prfrm_nmean'],_invocation_parameters['flag_pofrm'],_invocation_parameters['pofrm_thresh'],_invocation_parameters['pofrm_nmean'],_invocation_parameters['flag_user'],_invocation_parameters['user_thresh'],_invocation_parameters['plotflag'],_invocation_parameters['pipelinemode'],_invocation_parameters['infiles'],_invocation_parameters['antenna'],_invocation_parameters['field'],_invocation_parameters['spw'],_invocation_parameters['pol'],_invocation_parameters['dryrun'],_invocation_parameters['acceptresults'],_invocation_parameters['parallel'] )
except Exception as e:
from traceback import format_exc
from casatasks import casalog
casalog.origin('hsd_blflag')
casalog.post("Exception Reported: Error in hsd_blflag: %s" % str(e),'SEVERE')
casalog.post(format_exc( ))
_return_result_ = False
try:
os.rename(_prefile,_postfile)
except: pass
return _return_result_
hsd_blflag = _hsd_blflag( )