Browse Source

verbose mode in flag_weight.py added

master
Benito 4 years ago
parent
commit
c2719e11b5
  1. 25
      flag_weights.py

25
flag_weights.py

@ -8,9 +8,15 @@ Options:
threshold : float Visibilities with a weight below the specified
value will be flagged. Must be positive.
Version: 1.0
Date: Oct 2017
Version: 1.1
Date: Nov 2017
Written by Benito Marcote (marcote@jive.eu)
version 1.1 changes
- Added option -v that allows you to just get how many visibilities will
be flagged (but without actually flagging the data).
"""
from pyrap import tables as pt
@ -20,6 +26,7 @@ import sys
help_msdata = 'Measurement set containing the data to be corrected.'
help_threshold = 'Visibilities with a weight below this value will be flagged. Must be positive.'
help_v = 'Only checks the visibilities to flag (do not flag the data).'
try:
usage = "%(prog)s [-h] <measurement set> <weight threshold>"
@ -30,8 +37,10 @@ try:
parser.add_argument('msdata', type=str, help=help_msdata)
parser.add_argument('threshold', type=float, help=help_threshold)
parser.add_argument('--version', action='version', version='%(prog)s 1.0')
parser.add_argument("-v", "--verbose", default=True, action="store_false" , help=help_v)
arguments = parser.parse_args()
print('The arguments ', arguments)
verbose = arguments.verbose
msdata = arguments.msdata[:-1] if arguments.msdata[-1]=='/' else arguments.msdata
threshold = arguments.threshold
except ImportError:
@ -41,8 +50,11 @@ except ImportError:
# Compatibility with Python 2.7 in eee
import optparse
parser = optparse.OptionParser(usage=usage, description=description, prog='ysfocus.py', version='%prog 1.0')
#parser.add_option('measurement_set', type='string', dest='msdata', help=help_doc)
arguments = parser.parse_args()[1]
parser.add_option("-v", action="store_false", dest="verbose", default=True, help=help_v)
theparser = parser.parse_args()
verbose = theparser[0].verbose
arguments = theparser[1]
#arguments = parser.parse_args()[1]
if len(arguments) != 2:
print('Two arguments must be provided: flag_weights.py <measurement set> <weight threshold>')
sys.exit(1)
@ -58,8 +70,9 @@ with pt.table(msdata, readonly=False) as ms:
print('Got {0:9} weights'.format(weights.size))
indexes = np.where(weights < threshold)
print('Got {0:9} bad points'.format(indexes[0].size))
weights[indexes] = -np.abs(weights[indexes])
ms.putcol("WEIGHT", weights)
if verbose:
weights[indexes] = -np.abs(weights[indexes])
ms.putcol("WEIGHT", weights)
ms.close()

Loading…
Cancel
Save