Coder Social home page Coder Social logo

josephwkania / rficlean Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ymaan4/rficlean

0.0 0.0 0.0 136 KB

Mitigation of periodic and spiky RFI from filterbank data.

License: GNU General Public License v2.0

Makefile 1.00% Objective-C 1.11% C 94.31% Shell 3.59%

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 josephwkania avatar

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.