Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Athanaseus committed Feb 24, 2025
1 parent f59bdb6 commit 1efc594
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 45 deletions.
14 changes: 9 additions & 5 deletions rfinder/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@ def __init__(self):

def setArgs(self, kwargs):
if kwargs.get('indir'):
self.cfg_par['general']['workdir'] = kwargs['indir']
self.cfg_par['general']['workdir'] = kwargs['input_dir']
if kwargs.get('outdir'):
self.cfg_par['general']['outdir'] = kwargs['outdir']
self.cfg_par['general']['outdir'] = kwargs['output_dir']
if kwargs.get('msname'):
self.cfg_par['general']['msname'] = kwargs['msname']
if kwargs.get('field'):
Expand Down Expand Up @@ -117,6 +117,8 @@ def setArgs(self, kwargs):

if kwargs.get('no_plot_details_movies_movies_in_report'):
self.cfg_par['plots']['plot_details']['movies']['movies_in_report'] = False
else:
self.cfg_par['plots']['plot_details']['movies']['movies_in_report'] = True

if kwargs.get('no_cleanup_enable'):
self.cfg_par['general']['cleanup_enable'] = False
Expand All @@ -132,15 +134,16 @@ def setArgs(self, kwargs):
self.cfg_par['rfi']['RFInder_mode'] = kwargs['rfimode']
self.cfg_par['rfi']['rfi_enable'] = True
if kwargs.get('rms_clip'):
self.cfg_par['rfi']['rms_clip'] = kwargs['rms_clip']
self.cfg_par['rfi']['rms_clip'] = kwargs['sigma_clip']
if kwargs.get('frequency_interval'):
self.cfg_par['rfi']['noise_measure_edges'] = kwargs['frequency_interval']
if kwargs.get('plot_details_enable'):
self.cfg_par['plots']['plot_details']['enable'] = True
else:
self.cfg_par['rfi']['rfi_enable'] = False

if kwargs.get('plot_details_enable'):
self.cfg_par['plots']['plot_details']['enable'] = True


if kwargs.get('plot_summary_enable'):
self.cfg_par['plots']['plot_summary']['enable'] = True
if kwargs.get('plot_summary_options'):
Expand Down Expand Up @@ -500,6 +503,7 @@ def main (self, **kwargs):
@click.command("rfinder")
@clickify_parameters(schemas.cabs.get("rfinder"))
@click.option('-h', '--help', is_flag=True, help="Show this message and exit.")
@click.version_option(version=__version__)
def driver(help, **kw):

if help: #rfinder -h
Expand Down
15 changes: 7 additions & 8 deletions rfinder/rfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,12 +279,11 @@ def priors_flag(self,cfg_par):
self.logger.info('\t ... Flagging a-prioris ...\n')
pol = cfg_par['rfi']['polarization']

#if (pol == 'q' or pol == 'Q' or pol == 'i' or pol != 'I') and ( cfg_par['rfi']['RFInder_mode'] == 'use_flags'):
# self.datacube = np.zeros([len(self.baselines_sort),2*self.flag.shape[1],2*self.flag.shape[0]/(len(self.baselines_sort))])
#else:
self.datacube = np.zeros([len(self.baselines_sort),int(self.flag.shape[1]),int(self.flag.shape[0]/(len(self.baselines_sort)))])

self.datacube = np.zeros([len(self.baselines_sort),
self.flag.shape[1], self.flag.shape[0] // len(self.baselines_sort) # Use // for integer division
])
baseline_counter = np.zeros((self.nant,self.nant),dtype=int)

#flag unused polarizations
if (pol == 'xx' or pol == 'XX'):
self.flag[:,:,1] = True #YY
Expand All @@ -310,13 +309,13 @@ def priors_flag(self,cfg_par):


#flag autocorrelations and bad antennas
for i in range(0,self.flag.shape[0]):
for i in range(self.flag.shape[0]):

if self.aperfi_badant != None:
if self.aperfi_badant not in [None, '[]', []]:
if (any(x == self.ant1[i] for x in self.aperfi_badant) or any(x == self.ant2[i] for x in self.aperfi_badant)):
self.flag[i,:,0] = True
if self.ant1[i] == self.ant2[i]:
self.flag[i,:,0] = True
self.flag[i,:,0] = True
else:
a1 = self.ant1[i]
a2 = self.ant2[i]
Expand Down
15 changes: 9 additions & 6 deletions rfinder/rfinder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ cabs:
rlimits:
NOFILE: 1024
inputs:
indir:
input_dir:
info: "Full path to the working directory"
dtype: Directory
abbreviation: idir
config:
info: "RFInder configuration file (YAML format)"
dtype: File
Expand Down Expand Up @@ -75,9 +76,8 @@ cabs:
bad-antenna:
info: "List of bad antennas"
dtype: List[str]
default: []
policies:
repeat: ','
repeat: '[]'
rfimode:
info: "Mode of RFI detection ('rms_clip' or 'use_flags')"
dtype: str
Expand All @@ -86,10 +86,11 @@ cabs:
- use_flags
default: 'rms_clip'
abbreviation: mode
rms-clip:
sigma-clip:
info: "Threshold for RFI identification"
dtype: float
default: 5
abbreviation: -sig
frequency-interval:
info: "Frequency range to measure average STD of visibilities"
dtype: List[float]
Expand All @@ -109,7 +110,8 @@ cabs:
time-step:
info: "Time chunk size in minutes"
dtype: int
default: 60
default: 10
abbreviation: tStep
spw-enable:
info: "Enable splitting by spectral windows"
dtype: bool
Expand Down Expand Up @@ -178,6 +180,7 @@ cabs:
default: true

outputs:
outdir:
output-dir:
info: "Full path to the working output directory"
dtype: Directory
abbreviation: odir
46 changes: 22 additions & 24 deletions rfinder/rfinder_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,39 +217,38 @@ def rfi_frequency(cfg_par,time_step=-1):
rms_lin_bin_long[i] = np.nanmean(rms_lin_long[index])
natural_rms_bin[i] = np.nanmean(natural_rms[index])

# save fits table
# save fits table
c1 = fits.Column(name='frequency', format='D', unit='MHz', array=freqs_bin)
c2 = fits.Column(name='percentage_flags', format='D', unit='-', array=flag_lin_bin)
c3 = fits.Column(name='noise_factor', format='D', unit = '-', array=rms_lin_bin)
c4 = fits.Column(name='percentage_flags_short', format='D', unit='-', array=flag_lin_bin_short)
c5 = fits.Column(name='noise_factor_short', format='D', unit = '-', array=rms_lin_bin_short)
c6 = fits.Column(name='percentage_flags_long', format='D', unit='-', array=flag_lin_bin_long)
c7 = fits.Column(name='noise_factor_long', format='D', array=rms_lin_bin_long)
c8 = fits.Column(name='natural_rms', format='D', array=natural_rms_bin)
c9 = fits.Column(name='altitude', format='D', unit='deg', array=elevation_bin)
c10 = fits.Column(name='azimuth', format='D', unit='deg', array=azimuth_bin)
c7 = fits.Column(name='noise_factor_long', format='D', array=rms_lin_bin_long)
c8 = fits.Column(name='natural_rms', format='D', array=natural_rms_bin)
c9 = fits.Column(name='altitude', format='D', unit='deg', array=elevation_bin)
c10 = fits.Column(name='azimuth', format='D', unit='deg', array=azimuth_bin)

fits_table = fits.BinTableHDU.from_columns([c1, c2, c3, c4, c5, c6, c7, c8, c9, c10])
fits_table = fits.BinTableHDU.from_columns([c1, c2, c3, c4, c5, c6, c7, c8, c9, c10])

fits_table.writeto(rfi_table_bin, overwrite = True)
else:
# save fits table
c1 = fits.Column(name='frequency', format='D', unit='MHz', array=freqs)
c2 = fits.Column(name='percentage_flags', format='D', unit='-', array=flag_lin)
c3 = fits.Column(name='noise_factor', format='D', unit = '-', array=rms_lin)
c4 = fits.Column(name='percentage_flags_short', format='D', unit='-', array=flag_lin_short)
c5 = fits.Column(name='noise_factor_short', format='D', unit = '-', array=rms_lin_short)
c6 = fits.Column(name='percentage_flags_long', format='D', unit='-', array=flag_lin_long)
c7 = fits.Column(name='noise_factor_long', format='D', array=rms_lin_long)
c8 = fits.Column(name='natural_rms', format='D', array=natural_rms)
c9 = fits.Column(name='altitude', format='D', unit='deg', array=elevation)
c10 = fits.Column(name='azimuth', format='D', unit='deg', array=azimuth)

fits_table = fits.BinTableHDU.from_columns([c1, c2, c3, c4, c5, c6, c7, c8])

fits_table.writeto(rfi_table, overwrite = True)


# save fits table
c1 = fits.Column(name='frequency', format='D', unit='MHz', array=freqs)
c2 = fits.Column(name='percentage_flags', format='D', unit='-', array=flag_lin)
c3 = fits.Column(name='noise_factor', format='D', unit = '-', array=rms_lin)
c4 = fits.Column(name='percentage_flags_short', format='D', unit='-', array=flag_lin_short)
c5 = fits.Column(name='noise_factor_short', format='D', unit = '-', array=rms_lin_short)
c6 = fits.Column(name='percentage_flags_long', format='D', unit='-', array=flag_lin_long)
c7 = fits.Column(name='noise_factor_long', format='D', array=rms_lin_long)
c8 = fits.Column(name='natural_rms', format='D', array=natural_rms)
c9 = fits.Column(name='altitude', format='D', unit='deg', array=elevation)
c10 = fits.Column(name='azimuth', format='D', unit='deg', array=azimuth)

fits_table = fits.BinTableHDU.from_columns([c1, c2, c3, c4, c5, c6, c7, c8])

fits_table.writeto(rfi_table, overwrite = True)

logger.info("\t ... RFI table saved ...\n")

return 0
Expand Down Expand Up @@ -543,7 +542,6 @@ def find_2d_plots(cfg_par):
tmp_arr.append(tmp.split('m.png')[0])
tmp_arr.sort()

import IPython; IPython.embed()
tmp = filenames[0].split('base_')
filenames = [tmp[0]+'base_' + s for s in tmp_arr]
filenames = [s + 'm.png' for s in filenames]
Expand Down
4 changes: 2 additions & 2 deletions rfinder/rfinder_plots.py
Original file line number Diff line number Diff line change
Expand Up @@ -307,9 +307,9 @@ def plot_noise_frequency(self,cfg_par,time_step=-1):
time_name = 'full'

if cfg_par['rfi']['RFInder_mode']== 'use_flags':
table_name = str(table_tmp[0])+'_flags_'+time_name+'.fits'
table_name = str(table_tmp[0])+'_flags_'+time_name+'_spwbin.fits'
if cfg_par['rfi']['RFInder_mode']== 'rms_clip':
table_name = str(table_tmp[0])+'_rfi_'+time_name+'.fits'
table_name = str(table_tmp[0])+'_rfi_'+time_name+'_spwbin.fits'

rfi_table = tabledir+table_name

Expand Down

0 comments on commit 1efc594

Please sign in to comment.