casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables
Public Member Functions | Private Attributes | Static Private Attributes
flagdata_pg.flagdata_pg_ Class Reference

List of all members.

Public Member Functions

def __init__
def __call__

Private Attributes

 __bases__
 __doc__

Static Private Attributes

string __name__

Detailed Description

Definition at line 18 of file flagdata_pg.py.


Constructor & Destructor Documentation

Definition at line 21 of file flagdata_pg.py.


Member Function Documentation

def flagdata_pg.flagdata_pg_.__call__ (   self,
  vis = None,
  mode = None,
  autocorr = None,
  inpfile = None,
  reason = None,
  spw = None,
  field = None,
  antenna = None,
  uvrange = None,
  timerange = None,
  correlation = None,
  scan = None,
  intent = None,
  array = None,
  observation = None,
  feed = None,
  clipminmax = None,
  datacolumn = None,
  clipoutside = None,
  channelavg = None,
  clipzeros = None,
  quackinterval = None,
  quackmode = None,
  quackincrement = None,
  tolerance = None,
  addantenna = None,
  lowerlimit = None,
  upperlimit = None,
  ntime = None,
  combinescans = None,
  timecutoff = None,
  freqcutoff = None,
  timefit = None,
  freqfit = None,
  maxnpieces = None,
  flagdimension = None,
  usewindowstats = None,
  halfwin = None,
  winsize = None,
  timedev = None,
  freqdev = None,
  timedevscale = None,
  freqdevscale = None,
  spectralmax = None,
  spectralmin = None,
  extendpols = None,
  growtime = None,
  growfreq = None,
  growaround = None,
  flagneartime = None,
  flagnearfreq = None,
  minrel = None,
  maxrel = None,
  minabs = None,
  maxabs = None,
  spwchan = None,
  spwcorr = None,
  basecnt = None,
  action = None,
  display = None,
  flagbackup = None,
  savepars = None,
  cmdreason = None,
  outfile = None,
  async = None 
)
All-purpose flagging task based on data-selections and flagging modes/algorithms.

    This task can flag a Measurement Set or a calibration table. It has 
    two main types of operation. One type will read the parameters from 
    the interface and flag using any of the various available modes. The 
    other type will read the commands from a text file or a Python list of 
    strings, containing a list of flag commands (each line containing data 
    selection parameters and any parameter specific for the mode being 
    requested). Please see examples at the end of this help.
    
    It is also possible to only save the parameters set in the interface 
    without flagging. The parameters can be saved in the FLAG_CMD sub-table 
    or in a text file. Note that when saving to an external file, the parameters 
    will be appended to the given file.
    
    The available flagging modes are: manual, clip, shadow, quack, elevation, 
    tfcrop, rflag, extend, unflag and summary.

    The current flags can be automatically backed up before applying new 
    flags if the parameter flagbackup is set. Previous flag versions can be 
    recovered using the flagmanager task.
    
    NOTE on flagging calibration tables.
    -----------------------------------
    
    When the input is a calibration table, the modes 'elevation' and 'shadow'
    will be disabled. Data selection for calibration tables is limited to field,
    antenna and spw at the moment. It is only possible to save the parameters 
    to an external file. 
    
The task will flag a subset of data based on the following modes of operation:

    list        = list of flagging commands to apply to MS/cal table
    manual      = flagging based on specific selection parameters
    clip        = clip data according to values
    quack       = remove/keep specific time range at scan beginning/end
    shadow      = remove antenna-shadowed data
    elevation   = remove data below/above given elevations
    tfcrop      = automatic identification of outliers on the time-freq plane
    rflag       = automatic detection of outliers based on sliding-window RMS filters
    extend      = extend and/or grow flags beyond what the basic algorithms detect
    summary     = report the amount of flagged data
    unflag      = unflag the specified data

    Keyword arguments:
    vis -- Name of input visibility file or calibration table.
default: '' (none) 
example1: vis='uid___A002_X2a5c2f_X54.ms' or
example2: vis='cal-X54.B1'

Any flagging will only be applied to the specified selection.

      antenna -- Select data based on baseline
    default: '' (all); example: antenna='DV04&DV06' baseline DV04-DV06
    antenna='DV04&DV06;DV07&DV10' #baselines DV04-DV06 and DV07-DV10
    antenna='DV06' # all cross-correlation baselines between antenna DV06 and 
            all other available antennas
    antenna='DV04,DV06' # all baselines with antennas DV04 and DV06
    antenna='DV06&&DV06' # only the auto-correlation baselines for antenna DV06
    antenna='DV04&&*' # cross and auto-correlation baselines between antenna DV04
                             and all other available antennas
    antenna='0~2&&&' # only the auto-correlation baselines for antennas 
                                   in range 0~2

      spw -- Select data based on spectral window and channels
    default: '' (all); example: spw='1'
    spw='<2' #spectral windows less than 2
    spw='>1' #spectral windows greater than 1
    spw='1:0~10' # first 10 channels from spw 1
    spw='1:0~5;120~128' # multiple separated channel chunks.

    Note : For modes clip, tfcrop and rflag, channel-ranges can be excluded 
    from flagging by selecting ranges such as spw='0:0~5;10~63'. This is a way to
    protect known spectral-lines from being flagged by the autoflag algorithms.

      correlation -- Correlation types or expression.
    default: '' (all correlations)
            For modes clip, tfcrop or rflag, the default means ABS_ALL. If
            the input is cal table that does not contain a complex data column,
            the default will fall back to REAL_ALL.
    example: correlation='XX,YY' or
    options: Any of 'ABS', 'ARG', 'REAL', 'IMAG', 'NORM' followed by
             any of 'ALL', 'I', 'XX', 'YY', 'RR', 'LL', 'Sol1', 'Sol2', 'WVR'
             'WVR' refers to the water vapour radiometer of ALMA data.
    example: correlation='REAL_XX,XY'
  -->correlation selection is not supported for modes other than clip, tfcrop or
      rflag in cal tables.      
    
    Note that the operators ABS,ARG,REAL, etc. are written only once as the first value.
    if more than one correlation is given, the operator will be applied to all of them.
    
    The expression is used only in modes clip, tfcrop and rflag.

      field -- Select data based on field id(s) or name(s)
    default: '' (all); example: field='1'
    field='0~2' # field ids inclusive from 0 to 2
    field='3C*' # all field names starting with 3C

      uvrange -- Select data within uvrange (default units meters)
    default: '' (all); example:
    uvrange='0~1000klambda'; uvrange from 0-1000 kilo-lambda
    uvrange='>4klamda';uvranges greater than 4 kilo-lambda
    uvrange='0~1000km'; uvrange in kilometers
  -->uvrange selection is not supported for cal tables.                          

      timerange  -- Select data based on time range:
    default = '' (all); example,
    timerange = 'YYYY/MM/DD/hh:mm:ss~YYYY/MM/DD/hh:mm:ss'
    Note: YYYY/MM/DD can be dropped as needed:
    timerange='09:14:0~09:54:0' # this time range
    timerange='09:44:00' # data within one integration of time
    timerange='>10:24:00' # data after this time
    timerange='09:44:00+00:13:00' #data 13 minutes after time
  -->timerange selection is not supported for cal tables.      

      scan -- Select data based on scan number
    default: '' (all); example: scan='>3'
  -->scan selection is not supported for cal tables.                          

      intent -- Select data based on observation intent
    default: '' (all); example: intent='*CAL*,*BAND*'
  -->intent selection is not supported for cal tables.                          

      array -- Selection based on the antenna array
    default: '' (all); 
  -->array selection is not supported for cal tables.                          

      observation -- Selection based on the observation ID
    default: '' (all); example: observation='1' or observation=1
  -->observation selection is not supported for cal tables.                          

      feed -- Selection based on the feed - NOT IMPLEMENTED YET


    mode -- Mode of operation.
options: 'list', 'manual','clip','quack','shadow','elevation', 'tfcrop', 'extend',
 'unflag', 'summary'
default: 'manual'

list -- Flag according to the data selection and flag commands specified in the input list.
The input list may come from a text file or from a Python list of strings.
Each input line may contain data selection parameters and any parameter
specific to the mode given in the line. Default values will be used for
the parameters that are not present in the line. Each line will be taken 
as a command to the task. If data is pre-selected using any of the selection 
parameters, then flagging will apply only to that subset of the MS.
  
The summary mode is not allowed in the input list.
  
For optimization, the task will create a union of the data selection parameters
present in the list and select only that portion of the MS.

NOTE: the flag commands will be applied only when action='apply'. If
      action='calculate' the flags will be calculated, but not applied.
      This is useful if display is set to something other than 'none'. If
      action='' or 'none', the flag commands will not be applied either.
      An empty action is useful only to save the parameters of the list
      to a file or to the FLAG_CMD sub-table.
  
       inpfile -- Input ASCII file or a Python list of command strings.
  default: ''
  options: [] or '' with filename.
  Example1: the following commands can be saved into a file and given
            to the task (e.g. save it to flags.txt).
  
     scan='1~3' mode='manual'
     mode='clip' clipminmax=[0,2] correlation='ABS_XX' clipoutside=False
     spw='9' mode='tfcrop' correlation='ABS_YY' ntime=51.0
     mode='extend' extendpols=True

    flagdata(vis,mode='list',inpfile='flags.txt')

  Example2: the same commands can be given in a Python list on the command line
             to the task.
     cmd=["scan='1~3' mode='manual'", 
          "mode='clip' clipminmax=[0,2] correlation='ABS_XX' clipoutside=False",
          "spw='9' mode='tfcrop' correlation='ABS_YY' ntime=51.0",
          "mode='extend' extendpols=True"]

     flagdata(vis,mode='list',inpfile=cmd)                    

       reason -- select flag commands based on REASON(s) 
   default: 'any' (all flags regardless of reason)
            can be a string, or list of strings
   example: reason='FOCUS_ERROR'
            reason=['FOCUS_ERROR','SUBREFLECTOR_ERROR']
    
   NOTE: what is within the string is literally
   matched, e.g. reason='' matches only blank reasons, 
   and reason = 'FOCUS_ERROR,SUBREFLECTOR_ERROR'
   matches this compound reason string only
     
  See the syntax for writing flag commands at the end of this help.                  


manual -- Flag according to the data selection specified.
  This is the default mode (used when the mode is not specified).
  
autocorr -- Flag only the auto-correlations. Note that this parameter is only
            active when set to True. If set to False it does NOT mean "do not
            flag auto-correlations".
    default: False
    options: True,False
  
clip -- Clip data according to values of the following subparameters. The polarization
expression is given by the correlation parameter.
    
       channelavg -- Average data over (selected) channels? Channel
            selections are taken into account. Flagged channels
            are excluded from the average. The average is done
            after applying the specified clipexpr, i.e. scalar
            averaging.
    default: False
    options: True,False
    
       clipminmax -- Range of data (Jy) that will NOT be flagged
    default: []; it will flag only NaN and Infs.
    example: [0.0,1.5]
    It will always flag the NaN/Inf data, even when a range is specified.
    
       datacolumn -- Column to use for clipping.
    default: 'DATA'
    options: 'DATA', 'CORRECTED','MODEL', 'RESIDUAL, 'RESIDUAL_DATA',
             'FPARAM', 'CPARAM', 'SNR'.
             
    NOTE: by default for calibration tables, the framework will try to use FPARAM; 
          if that does not exist, it will try to use CPARAM. If none of them exist, it
          will give an error and exit.
    
       clipoutside -- Clip OUTSIDE the range?
    default: True
    example: False; flag data WITHIN the range.

       clipzeros -- Clip zero-value data.
    default: False

quack -- Option to remove specified part of scan beginning/end

       quackinterval -- Time in seconds from scan beginning/end to flag. Make time slightly 
                 smaller than the desired time.
    default: 0.0
       quackmode -- Quack mode
    default: 'beg'
    options: 'beg'  ==> beginning of scan
             'endb' ==> end of scan. 
             'tail' ==> all but beginning of scan
             'end'  ==> all but end of scan.
       quackincrement -- Quack incrementally in time?
    default: False
             False  ==> the quack interval is counted from the
                        beginning of the scan
             True   ==> the quack interval is counted from the
                        first unflagged data in the scan

shadow -- Option to flag data of shadowed antennas. This mode is not available
    for cal tables.
    
   All antennas in the antenna-subtable of the MS (and the corresponding
   diameters) will be considered for shadow-flag calculations. 
   For a given timestep, an antenna is flagged if any of its baselines 
   (projected onto the uv-plane) is shorter than  radius_1 + radius_2 - tolerance. 
   The value of 'w' is used to determine which antenna is behind the other.
   The phase-reference center is used for antenna-pointing direction. 
     
       tolerance -- Amount of shadowing allowed (or tolerated), in meters. 
        A positive number allows antennas to overlap in projection
        A negative number forces antennas apart in projection
        Zero implies a distance of radius_1+radius_2 between antenna centers.
   default: 0.0

       addantenna -- It can be either a file name with additional antenna names, positions 
         and diameters, or a Python dictionary with the same information. 
         You can use the flaghelper functions to create the dictionary from a file.  
   default: ''
   
   To create a dictionary inside casapy.
   > import flaghelper as fh
   > antdic = fh.readAntennaList(antfile)
   
   Where antfile is a text file in disk that contains information such as:
    name=VLA01
    diameter=25.0
    position=[-1601144.96146691, -5041998.01971858, 3554864.76811967]
    name=VLA02
    diameter=25.0
    position=[-1601105.7664601889, -5042022.3917835914, 3554847.245159178]
  

elevation -- Option to flag based on antenna elevation. This mode is not available
      for cal tables.
 
       lowerlimit -- Lower limiting elevation in degrees. Data coming from a baseline
             where one or both antennas were pointing at a strictly lower elevation
             (as function of time), will be flagged.
   default: 0.0
   
       upperlimit -- Upper limiting elevation in degrees. Data coming from a baseline
             where one or both antennas were pointing at a strictly higher elevation
             (as function of time), will be flagged.
   default: 90.0

tfcrop -- Flag using the TFCrop autoflag algorithm. The polarization
  expression is given by the correlation parameter.

 For each field, spw, timerange (specified by ntime), and baseline, 
 (1) Average visibility amplitudes along time dimension to 
       form an average spectrum
 (2) Calculate a robust piece-wise polynomial fit for the band-shape 
      at the base of RFI spikes. Calculate 'stddev' of (data - fit).
 (3) Flag points deviating from the fit by more than N-stddev
 (4) Repeat (1-3) along the other dimension.

 This algorithm is designed to operate on un-calibrated data (step (2)), 
 as well as calibrated data.  It is usually helpful to extend the flags along
 time, frequency, and correlation in a second step (via mode='extend)

       ntime -- Timerange (in seconds or minutes) over which to buffer data before 
        running the algorithm. 
    options: 'scan' or any other float value or string containing the units.
    default: 'scan'
    example: '1.5min'
           : 1.2 (taken in seconds)
        The dataset will be iterated through in time-chunks defined here.

       combinescans -- accumulate data across scans.
    default: False
        This parameter is relevant only ntime is specified as a time-interval (not 'scan')

       datacolumn -- Column to use for flagging.
    default: 'DATA'
    options: 'DATA', 'CORRECTED','MODEL', 'RESIDUAL, 'RESIDUAL_DATA',
             'FPARAM', 'CPARAM', 'SNR'.
             
    NOTE: by default for calibration tables, the framework will try to use FPARAM; 
          if that does not exist, it will try to use CPARAM. If none of them exist, it
          will give an error and exit.
    

       timecutoff -- Flag threshold in time. Flag all data-points further than N-stddev 
             from the fit. This threshold catches time-varying RFI spikes (
             narrow and broad-band), but will not catch RFI that is persistent in time.
    default: 4.0
          Flagging is done in upto 5 iterations. The stddev calculation is adaptive and 
          converges to a value that reflects only the data and no RFI. At each iteration,
          the same relative threshold is applied to detect flags. (Step (3) of the algorithm).

       freqcutoff -- Flag threshold in frequency. Flag all data-points further than N-stddev 
             from the fit.
    default: 3.0
        Same as timecutoff, but along the frequency-dimension. This threshold catches
        narrow-band RFI that may or may not be persistent in time. 

       timefit --  Fitting function for the time direction
    default: 'line'
    options: 'line', 'poly'
      A 'line' fit is a robust straight-line fit across the entire timerange (defined 
      by 'ntime').
      A 'poly' fit is a robust piece-wise polynomial fit across the timerange.
      Note: A robust fit is computed in upto 5 iterations. At each iteration, the stddev
            between the data and the fit is computed, values beyond N-stddev are flagged,
            and the fit and stddev are re-calculated with the remaining points.
            This stddev calculation is adaptive, and converges to a value that reflects 
            only the data and no RFI.  It also provides a varying set of flagging thresholds,
            that allows deep flagging only when the fit best represents the true data.
      Choose 'poly' only if the visibilities are expected to vary significantly over the
      timerange selected by 'ntime', or if there is a lot of strong but intermittent RFI.

       freqfit -- Fitting function for the frequency direction
    default: 'poly'
    options: 'line','poly'
        Same as for the 'timefit' parameter.
        Choose 'line' only if you are operating on bandpass-corrected data, or residuals, 
        and expect that the bandshape is linear. The 'poly' option works better on 
        uncalibrated bandpasses with narrow-band RFI spikes.   

       maxnpieces -- Maxinum number of pieces to allow in the piecewise-polynomial fits 
    default: 7
    options: 1 - 9
        This parameter is used only if 'timefit' or 'freqfit' are chosen as 'poly'.
        If there is significant broad-band RFI, reduce this number. Using too many
        pieces could result in the RFI being fitted in the 'clean' bandpass.    
        In later stages of the fit, a third-order polynomial is fit per piece, so 
        for best results, please ensure that nchan/maxnpieces is at-least 10.

       flagdimension -- Choose the directions along which to perform flagging
    default: 'freqtime'; first flag along frequency, and then along time 
    options: 'time', 'freq', 'timefreq', 'freqtime'
         For most cases, 'freqtime' or 'timefreq' are appropriate, and differences
         between these choices are apparant only if RFI in one dimension is 
         significantly stronger than the other. The goal is to flag the dominant RFI first.
         If there are very few (less than 5) channels of data, then choose 'time'.
         Similarly for 'freq'.

       usewindowstats -- Use sliding-window statistics to find additional flags.
    default: 'none' 
    options: 'none', 'sum', 'std', 'both'   
         Note: This is experimental !
           The 'sum' option chooses to flag a point, if the mean-value in a 
           window centered on that point deviates from the fit by more than
           N-stddev/2.0. 
         Note: stddev is calculated between the data and fit as explained in Step (2).
            This option is an attempt to catch broad-band or 
            time-persistent RFI  that the above polynomial fits will mistakenly fit
            as the clean band. It is an approximation to the sumThreshold
            method found to be effective by Offringa et.al (2010) for LOFAR data. 
            The 'std' option chooses to flag a point, if the 'local' stddev calculated
            in a window centered on that point is larger than N-stddev/2.0. 
            This option is an attempt to catch noisy RFI that is not excluded in the
            polynomial fits, and which increases the global stddev, and results in 
            fewer flags (based on the N-stddev threshold).
                                                
halfwin -- Half width of sliding window to use with 'usewindowstats'
    default: 1  (a 3-point window size)
    options: 1,2,3
        Note: This is experimental !

rflag -- Detect outliers based on the RFLAG algorithm (ref. E.Greisen, AIPS, 2011).
 The polarization expression is given by the correlation parameter.

 Iterate through the data in chunks of time.  For each chunk, calculate local
 statistics, and apply flags based on user supplied (or auto-calculated) thresholds.

 Step 1 : Time analysis (for each channel)
   -- calculate local rms of real and imag visibilities, within a sliding time window
   -- calculate the median rms across time windows, deviations of local rms from
      this median, and the median deviation 
   -- flag if local rms is larger than timedevscale x (medianRMS + medianDev)

 Step 2 : Spectral analysis (for each time)
   -- calculate avg of real and imag visibilities and their rms across channels
   -- calculate the deviation of each channel from this avg, and the median-deviation
   -- flag if deviation is larger than freqdevscale x medianDev

 Example usage : 

  (1) Calculate thresholds automatically per scan, and use them to find flags.
      Specify scale-factor for time-analysis thresholds, use default for frequency.

      flagdata('my.ms', mode='rflag',spw='9',timedevscale=4.0)
 
  (2) Supply noise-estimates to be used with default scale-factors. 
  
      flagdata(vis='my.ms', mode='rflag', spw='9', timedev=0.1, freqdev=0.5, action='calculate)

  (3) Two-passes. This replicates the usage pattern in AIPS.

      -- The first pass saves commands in an output text files, with auto-calculated 
         thresholds. Thresholds are returned from rflag only when action='calculate'. 
         The user can edit this file before doing the second pass, 
         but the python-dictionary structure must be preserved.

      -- The second pass applies these commands (action='apply').

          flagdata(vis='my.ms', mode='rflag', spw='9,10', timedev='tdevfile.txt', 
                    freqdev='fdevfile.txt', action='calculate')
          flagdata(vis='my.ms', mode='rflag', spw='9,10', timedev='tdevfile.txt', 
                    freqdev='fdevfile.txt', action='apply')

        With action='calculate', display='report' will produce diagnostic plots 
        showing data-statistics and thresholds (the same thresholds as those
        written out to 'tdevfile.txt' and 'fdevfile.txt'). 
   
        Note : The rflag algorithm was originally developed by Eric Greisen in 
                AIPS (31DEC11).
        AIPS documentation : Section E.5 of the AIPS cookbook
        (Appendix E : Special Considerations for EVLA data calibration and imaging in AIPS,
        http://www.aips.nrao.edu/cook.html#CEE )

        Note : Since this algorithm operates with two passes through each
           chunk of data (time and freq axes), some data points get flagged
           twice. This can affect the flag-percentage estimate printed in the
           logger at runtime.  An accurate estimate can be obtained via the
           summary mode.

       ntime -- Timerange (in seconds or minutes) over which to buffer data before running the algorithm.
     options: 'scan' or any other float value or string containing the units.
     default: 'scan'
     example: '1.5min'
            : 1.2 (taken in seconds)
        The dataset will be iterated through in time-chunks defined here.

       combinescans -- accumulate data across scans.
      default: False
          It only makes sense when ntime not equal 'scan'.                

       datacolumn -- Column to use for flagging.
    default: 'DATA'
    options: 'DATA', 'CORRECTED','MODEL', 'RESIDUAL, 'RESIDUAL_DATA',
             'FPARAM', 'CPARAM', 'SNR'.
             
    NOTE: by default for calibration tables, the framework will try to use FPARAM; 
          if that does not exist, it will try to use CPARAM. If none of them exist, it
          will give an error and exit.
    

       winsize -- number of timesteps in the sliding time window ( fparm(1) in AIPS ). 
    default: 3
    
       timedev -- time-series noise estimate ( noise in AIPS ). 
    default: []
    Examples : 
         timedev = 0.5 : Use this noise-estimate to calculate flags. Do not recalculate.
         timedev = [ [1,9,0.2], [1,10,0.5] ] :  Use noise-estimate of 0.2 for field 1, 
                   spw 9, and noise-estimate of 0.5 for field 1, spw 10.
         timedev = [] : Auto-calculate noise estimates.

    
       freqdev -- spectral noise estimate ( scutoff in AIPS ).
          This step depends on having a relatively-flat bandshape.
          Same parameter-options as 'timedev'. 
    default: []
     

       timedevscale -- For Step 1 (time analysis), flag a point if local rms around it 
               is larger than  'timedevscale' x 'timedev'   ( fparm(0) in AIPS )
    default: 5.0
    
       freqdevscale -- For Step 2 (spectral analysis), flag a point if local rms around it
               is larger than 'freqdevscale' x 'freqdev'     ( fparm(10) in AIPS )
    default: 5.0

       spectralmax -- Flag whole spectrum if 'freqdev' is greater than spectralmax ( fparm(6) in AIPS )
    default: 1E6
    
       spectralmin -- Flag whole spectrum if 'freqdev' is less than spectralmin ( fparm(5) in AIPS )
    default: 0.0



extend -- Extend and/or grow flags beyond what the basic algorithms detect.
        This mode will extend the accumulated flags available in the MS,
        regardless of which algorithm created them.
         
        Extensions will apply only within the selected data, according to the settings 
        of extendpols,growtime,growfreq,growaround, flagneartime,flagnearfreq.
        
        Note : Runtime summary counts in the logger can sometimes report larger
            flag percentages than what is actually flagged. This is because 
            extensions onto already-flagged data-points are counted as new flags. 
            An accurate flag count can be obtained via the summary mode.

       ntime -- Timerange (in seconds or minutes) over which to buffer data before running 
        the algorithm.
     options: 'scan' or any other float value or string containing the units.
     default: 'scan'
     example: '1.5min'
            : 1.2 (taken in seconds)
        The dataset will be iterated through in time-chunks defined here.

       combinescans -- accumulate data across scans.
      default: False
          It only makes sense when ntime not equal 'scan'.                

       extendpols -- Extend flags to all selected correlations
      default: True
      options: True/False
         For example, to extend flags from RR to only RL and LR, a data-selection
         of correlation='RR,LR,RL' is required along with extendpols=True. 

       growtime -- For any channel, flag the entire timerange in the current 2D chunk (
           set by 'ntime') if more than X% of the timerange is already flagged.
      default: 50.0
      options: 0.0 - 100.0
         This option catches the low-intensity parts of time-persistent RFI.

       growfreq -- For any timestep, flag all channels in the current 2D chunk (set by 
           data-selection) if more than X% of the channels are already flagged.
      default: 50.0
      options: 0.0 - 100.0
         This option catches broad-band RFI that is partially identified by earlier steps.

       growaround -- Flag a point based on the number of flagged points around it.
      default: False
      options: True/False
            For every un-flagged point on the 2D time/freq plane, if more than four
            surrounding points are already flagged, flag that point. 
            This option catches some wings of strong RFI spikes.

       flagneartime -- Flag points before and after every flagged one, in the time-direction.
      default: False
      options: True/False
      Note: This can result in excessive flagging.

       flagnearfreq -- Flag points before and after every flagged one, in the frequency-direction
    default: False
    options: True/False
    This option allows flagging of wings in the spectral response of strong RFI.
    Note: This can result in excessive flagging.


unflag -- Unflag according to the data selection specified.

summary -- List the number of rows and data points flagged.
  
       minrel -- Minimum number of flags (relative) to include in histogram
    default: 0.0

       maxrel -- Maximum number of flags (relative) to include in histogram
    default: 1.0

       minabs -- Minimum number of flags (absolute, inclusive) to include in histogram
    default: 0

       maxabs -- Maximum number of flags (absolute, inclusive) to include in histogram
          To indicate infinity, use any negative number.
    default: -1

       spwchan -- list the number of flags per spw and per channel.
    default: False

       spwcorr -- list the number of flags per spw and per correlation.
    default: False

       basecnt -- list the number of flags per baseline
    default: False

    In summary mode, the task returns a dictionary of flagging statistics.
    Example:

        s = flagdata(..., mode='summary')

     Then s will be a dictionary which contains
    s['total']   : total number of data
    s['flagged'] : amount of flagged data
    


    action -- Action to perform in MS/cal table or in the input list of parameters. 
options: 'none', 'apply','calculate'
default: 'apply'

'apply' -- Apply the flags to the MS.

       display -- Display data and/or end-of-MS reports at run-time.        
   default: 'none'
   options: 'none', 'data', 'report', 'both'

     'none' --> It will not display anything.

     'data' --> display data and flags per-chunk at run-time, within an interactive GUI.

      This option opens a GUI to show the 2D time-freq planes of
      the data with old and new flags, for all correlations per baseline.
      -- The GUI allows stepping through all baselines (prev/next) in
      the current chunk (set by 'ntime'), and stepping to the next-chunk.
      -- The 'flagdata' task can be quit from the GUI, in case it becomes
      obvious that the current set of parameters is just wrong.
      -- There is an option to stop the display but continue flagging.

    'report' --> displays end-of-MS reports on the screen.

    'both' --> displays data per chunk and end-of-MS reports on the screen

       flagbackup -- Automatically backup flags before running the tool.
            Flagversion names are chosen automatically, and are based on the
            mode being used.
   default: True
   options: True/False                    

'calculate' -- Only calculate the flags but do not write them to the MS. This is
     useful if used together with the display to analyse the results before
     writing to the MS.

       display -- Display data and/or end-of-MS reports at run-time. See extended description
          above. 
   default: 'none'
   options: 'none', 'data', 'report', 'both'
   
' ' -- When set to empty, the underlying tool will not be executed and no flags
will be produced. No data selection will be done either. This is useful
when used together with the parameter savepars to only save the current
parameters (or list of parameters) to the FLAG_CMD sub-table or to an
external file.  
 

    savepars -- Save the current parameters to the FLAG_CMD table of the MS or to an output text file.
Note that when display is set to anything other than 'none', savepars
will be disabled. This is done because in an interactive mode, the user
may skip data which may invalidate the initial input parameters and there
is no way to save the interactive commands.
default: False
options: True/False

cmdreason -- A string containing a reason to save to the FLAG_CMD table or to an 
             output text file given by the outfile sub-parameter. If the input 
             contains any reason, they will be replaced with this one. At the 
             moment it is not possible to add more than one reason.
    default: ' '; no reason will be added to output.
    example: cmdreason='CLIP_ZEROS'

outfile -- Name of output file to save the current parameters.
    default: ' '; it will save the parameters to the FLAG_CMD table of the MS.
    example: outfile='flags.txt' will save the parameters in a text file.
    
    
---- EXAMPLES ----

    NOTE: The vector mode of the previous flagdata task can be achieved with this task by using it
  with mode='list' and the commands given in a list in inpmode=[]. Example:
    
       flagdata('my.ms', inpmode='list', inpfile=["mode='clip' clipzeros=True","mode='shadow'])


    1) Manually flag scans 1~3 and save the parameters to the FLAG_CMD sub-table.
    
flagdata('my.ms', scan='1~3, mode='manual', savepars=True)
    
    2) Save the parameters to a file that is open in append mode.

flagdata('my.ms', scan='1~3, mode='manual', savepars=True, outfile='flags.txt')
    
    3a) Flag all the commands given in the Python list of strings.
    
cmd = ["scan='1~3' mode='manual'",
       "spw='9' mode='tfcrop' correlation='ABS_RR,LL' ntime=51.0",
       "mode='extend' extendpols=True"]
    
flagdata('my.ms', mode='list', inpfile=cmd)

    3b) Flag all the commands given in the file called flags.txt.
    
> cat flags.txt
scan='1~3' mode='manual'
spw='9' mode='tfcrop' correlation='ABS_RR,LL' ntime=51.0
mode='extend' extendpols=True
    
flagdata('my.ms', mode='list', inpfile='flags.txt')

    4) Display the data and flags per-chunk and do not write flags to the MS.
    
flagdata('my.ms', mode='list', inpfile='flags.txt', action='calculate', display='data')

    5) Flag all the antennas except antenna=5.
    
flagdata(vis='my.ms', antenna='!5', mode='manual)
    
    6) Clip the NaN in the data. An empty clipminmax will flag only NaN.
    
flagdata('my.ms', mode='clip')

    7) Clip only the water vapour radiometer data.
    
flagdata('my.ms',mode='clip',clipminmax=[0,50], correlation='ABS_WVR')

    8) Clip only zero-value data.

flagdata('my.ms',mode='clip',clipzeros=True)

    9a) Flag only auto-correlations using the autocorr parameter.
       
flagdata('my.ms', autocorr=True)
    
    9b) Flag only auto-correlations using the antenna selection.
       
flagdata('my.ms', mode='manual', antenna='*&&&')

    10a) Flag based on selected reasons from a file.
       
> cat flags.txt
scan='1~3' mode='manual' reason='MYREASON'
spw='9' mode='clip' clipzeros=True reason='CLIPZEROS'
mode='manual' scan='4' reason='MYREASON'

flagdata('my.ms', mode='list', inpfile='flags.txt', reason='MYREASON')

    10b) The same result of 10a can be achieved using the task flagcmd.

flagcmd('my.ms', inpmode='file', inpfile='flags.txt', action='apply', reason='MYREASON')
    
    11) Automatic flagging using 'rflag', using auto-thresholds, and specifying 
  a threshold scale-factor to use for flagging.

flagdata('my.ms', mode='rflag',spw='9',timedevscale=4.0,action='apply')

    12) Save the interface parameters to the FLAG_CMD sub-table of the MS. Add a reason
to the flag command. This cmdreason will be added to the REASON column of the
FLAG_CMD sub-table. Apply flags in flagcmd.

flagdata('my.ms', mode='clip',channelavg=False, clipminmax=[30., 60.], spw='0:0~10', 
  correlation='ABS_XX,XY', action='', savepars=True, cmdreason='CLIPXX_XY')

> Select based on the reason.
flagcmd('my.ms', action='apply', reason='CLIPXX_XY')

    13) Flag antennas that are shadowed by antennas not present in the MS.

> Create a text file with information about the antennas.
> cat ant.txt
  name=VLA01
  diameter=25.0
  position=[-1601144.96146691, -5041998.01971858, 3554864.76811967]
  name=VLA02
  diameter=25.0
  position=[-1601105.7664601889, -5042022.3917835914, 3554847.245159178]
  name=VLA09
  diameter=25.0
  position=[-1601197.2182404203, -5041974.3604805721, 3554875.1995636248]
  name=VLA10
  diameter=25.0
  position=[-1601227.3367843349,-5041975.7011900628,3554859.1642644769]    
   

 flagdata('my.vis', mode='shadow', tolerance=10.0, addantenna='ant.txt')

The antenna information can also be given as a Python dictionary. To create the
dictionary using the flaghelper functions, do the following inside casapy:

     > import flaghelper as fh
     > antdic = fh.readAntennaList(antfile)

 flagdata('my.vis', mode='shadow', tolerance=10.0, addantenna=antdic)

    14) Apply the online flags that come from importasdm.

> In importasdm, save the online flags to a file.
 importasdm('myasdm', 'asdm.ms', process_flags=True, savecmds=True, outfile='online_flags.txt')

> You can edit the online_flags.txt to add other flagging commands or apply it directly.
 flagdata('asdm.ms', mode='list', inpfile='online_flags.txt')

> The same result can be achieved using the task flagcmd.
 flagcmd('asdm.ms', inpmode='file', inpfile='online_flags.txt', action='apply')

    15) Clip zero data from a calibration table.
    
flagdata('cal-X54.B1', mode='clip', clipzeros=True, datacolumn='CPARAM')

    16) Clip data with SNR <4.0.
    
flagdata('cal-X54.B1', mode='clip', clipminmax=[0.0,4.0], clipoutside=False, datacolumn='SNR')
    

---- SYNTAX FOR COMMANDS GIVEN IN A FILE or LIST OF STRINGS ----

    Basic Syntax Rules

  Commands are strings (which may contain internal "strings") consisting of
  KEY=VALUE pairs separated by whitespace. 

  NOTE: There should be no whitespace between KEY=VALUE or within each KEY or 
  VALUE, since the simple parser first breaks command lines on whitespace, 
  then on "=". 

  Use only white spaces to separate the parameters (no commas).

  Each key should only appear once on a given command line/string.

  There is an implicit "mode" for each command, with the default
  being 'manual' if not given.

  Comment lines can start with '#' and will be ignored.

  Example:

  scan='1~3' mode='manual'
  # this line will ignored
  spw='9' mode='tfcrop' correlation='ABS_XX,YY' ntime=51.0
  mode='extend' extendpols=True
  scan='1~3,10~12' mode='quack' quackinterval=1.0

Definition at line 26 of file flagdata_pg.py.

References vla_uvfits_line_sf.verify.


Member Data Documentation

Definition at line 22 of file flagdata_pg.py.

Definition at line 23 of file flagdata_pg.py.

string flagdata_pg.flagdata_pg_.__name__ [static, private]

Definition at line 19 of file flagdata_pg.py.


The documentation for this class was generated from the following file: