Coder Social home page Coder Social logo

ymaan4 / rficlean Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 4.0 157 KB

Mitigation of periodic as well as narrow-band and spiky/bursty RFI from time-domain filterbank data.

License: GNU General Public License v2.0

Makefile 0.95% C 91.68% Shell 7.37%
rfi filterbank-data spiky interference interference-identification interference-mitigation interference-detection interference-cancellation pulsar pulsars fast-radio-bursts neutron-star time-domain-astronomy

rficlean's Introduction

RFIClean

Mitigation of periodic and spiky RFI from filterbank data.

RFIClean excises periodic RFI (broadband as well as narrow-band) in the Fourier domain, and then mitigates narrow-band spectral line RFI as well as broadband bursty time-domain RFI using robust statistics. Currently, RFIClean anticipates the input data either in SIGPROC filterbank format or the GMRT's pulsar data format.

RFIClean was primarily designed to efficiently search and mitigate periodic RFI from GMRT time-domain data. Over the time, RFIClean has evolved to mitigate any spiky (in time or frequency) RFI as well, and from any SIGPROC filterbank format data file. It is written primarily in C. For handling the filterbank format I/O, RFIClean uses several modules from Duncan Lorimer's SIGPROC (https://sourceforge.net/p/sigproc/wiki/Home/; thank you Dunc) which are included here in the src/ext/ folder (some of these codes are also modified suitably).

Installation:

  • For compiling RFIClean, a Makefile is included in the package.
  • If you want to install the executable at a location other than RFIClean/bin/, then change MYBIN in the Makefile accordingly.
  • RFIClean has the following dependencies: FFTW3 and PGPLOT. If these are not included in the regular library paths then amend LIBS in the Makefile accordingly.
  • To compile, run make. For installing the executable in your favourite location, run make install.
  • Once installed, use rficlean -h or rficlean --help or just rficlean to see the usage information.

Bash-script based parallel processing

For faster processing, use the bash script crp_rficlean_fil.sh in RFIClean/bin/ that uses RFIClean on different parts of a single data file simultaneously and then combines the output products at the end --- parallel processing in a rather crude but very efficient way.

To see the usage information, just execute the script without any command line arguments. The flags to be used with rficlean while using this script are picked up from a simple text file containing two rows: the first one indicating the block size and the second containing any other flags. For an example of this text file, see RFIClean/bin/rficlean.flags.

Diagnostic plot

RFIClean produces a diagnostic plot showing which Fourier frequencies are mitigated from the data and how frequently. The plot data are also output in a file.

RFIClean paper

Details of the methods used in RFIClean as well as some of the early scientific contributions of RFIClean can be found in this paper.

If you find RFIClean useful, it would be great if you could cite the following paper that describes the underlying method in detail: https://arxiv.org/abs/2012.11630 . Thanks!

Yogesh Maan <ymaan4[@]gmail.com>

rficlean's People

Contributors

ymaan4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

rficlean's Issues

Hardcoded paths in crp_rficlean_gm.sh

The absolute path of the rficlean executable (/home/ymaan/bin/rficlean) is hardcoded in crp_rficlean_gm.sh.
crp_rficlean_gm.sh fails in a new installation due to this.

Fails with filterbanks by written by Your

RFIClean exits with error ERROR: ERROR: Input data to rficlean is not in filterbank format
when run on filterbanks written by Your.
I'm not sure where the problem is, the same files with headers made in alternative ways run fine.
My guess is there is some strange interaction with how Your headers are written and RFIClean's header parser, since
Sigproc's header and Presto's readfile work are able to read Your headers.

I've attached
small_fil.tar.gz
a small filterbank that reproduces the issue.

Ignoring channels in statistics

Hello!
We are trying to use this for CHIME/Pulsar filterbank style data and was wondering if there was a feature similar to -ignorechan from rfifind. We have many channels that have been 0'd out prior to rficlean.
I noticed that using the -pcl flag makes rficlean take the first channel and use the statistics on that, which is not desirable as that could be one of the zeroed out channels.

Incorrect size allocation

In code rficlean_data.c, the following
cblock=(unsigned char *) malloc(nsblk*sizeof(unsigned short));
should actually be
cblock=(unsigned char *) malloc(nsblk*sizeof(unsigned char));

Installation instructions

Can you please add a few lines about how to install and configure the package in the README file?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.