コード例 #1
0
ファイル: your_bandpass.py プロジェクト: knut0815/your
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)
コード例 #2
0
ファイル: your_rfimask.py プロジェクト: wcfiore/your
    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.")
コード例 #3
0
                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=" ")
コード例 #4
0
ファイル: your_heimdall.py プロジェクト: wcfiore/your
    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: