def bandpass(f, time=0, nspectra=8192, outname=None): """ Plots and saves the bandpass Args: f: File to read time: Time in seconds to read for bandpass nspectra: Number of spectra to read for bandpass """ y = Your(f) if time > 0: ns = time // y.your_header.native_tsamp else: ns = nspectra bandpass = y.bandpass(nspectra=ns) save_bandpass(y, bandpass, chan_nos=None, mask=None, outdir=None, outname=outname)
args = parser.parse_args() your_object = Your(file=args.files) if args.apply_savgol: bandpass = your_object.bandpass(nspectra=8192) chan_nos = np.arange(0, bandpass.shape[0], dtype=np.int) for fw, sig in zip(args.filter_window, args.sigma): mask = savgol_filter(bandpass, your_object.your_header.foff, fw=fw, sig=sig) basename = f'{args.output_dir}/{your_object.your_header.basename}_w{fw}_sig{sig}' save_bandpass(your_object, bandpass, chan_nos=chan_nos, mask=mask, outdir=args.output_dir + '/', outname=f'{basename}_bandpass.png') kill_mask_file = f'{basename}.bad_chans' with open(kill_mask_file, 'w') as f: np.savetxt(f, chan_nos[mask], fmt='%d', delimiter=' ', newline=' ') else: raise ValueError(f"No RFI method selected.")
level=logging.INFO, format=logging_format, handlers=[RichHandler(rich_tracebacks=True)], ) your_object = Your(file=values.files) bandpass = your_object.bandpass(values.nspectra) mask = sk_sg_filter( data=your_object.get_data(0, values.nspectra), your_object=your_object, spectral_kurtosis_sigma=values.spectral_kurtosis_sigma, savgol_frequency_window=values.savgol_frequency_window, savgol_sigma=values.savgol_sigma, ) basename = f"{values.output_dir}/{your_object.your_header.basename}_your_rfi_mask" chan_nos = np.array(range(your_object.your_header.nchans), dtype=int) save_bandpass( your_object, bandpass, chan_nos=chan_nos, mask=mask, outdir=values.output_dir + "/", outname=f"{basename}_bandpass.png", ) kill_mask_file = f"{basename}.bad_chans" with open(kill_mask_file, "w") as f: np.savetxt(f, chan_nos[mask], fmt="%d", delimiter=" ", newline=" ")
your_dada = dada.YourDada(your_object) your_dada.setup() if args.apply_savgol: bandpass = your_object.bandpass(nspectra=8192) mask = savgol_filter(bandpass, your_object.your_header.foff, fw=args.filter_window, sig=args.sigma) chan_nos = np.arange(0, bandpass.shape[0], dtype=np.int) bad_chans = list(chan_nos[mask]) save_bandpass(your_object, bandpass, chan_nos=chan_nos, mask=mask, outdir=args.output_dir + '/') kill_mask_file = args.output_dir + '/' + your_object.your_header.basename + '.bad_chans' with open(kill_mask_file, 'w') as f: np.savetxt(f, chan_nos[mask], fmt='%d', delimiter=' ', newline=' ') elif args.mask: logging.info(f'Reading RFI mask from {args.mask}') mask = np.loadtxt(args.mask) if len(mask.shape) == 1: bad_chans = list(mask) elif len(mask.shape) == 2: sk_mask = mask bad_chans = None else: