Skip to content

kaitlynchen1/nettingi

Repository files navigation

NettingI

NettingI is a toolbox of radio frequency interference (RFI) excision algorithms, and was designed to work on raw pulsar data from the VEGAS: Versatile Green Bank Telescope Astronomical Spectrometer. This repository is still under development, with the intention of having two more mitigation algorithms implemented: median absolute deviation and Cyclostationary Processing. Read Chen & Smith 2024 for more details.

Chen & Smith 2024 found that certain algorithms are more effective for flagging certain types of RFI than others. Interquartile range mitigation (IQRM) was good at flagging the Iridium satellite, but not the FAA radar or GPS. Spectral kurtosis estimator (SK) mitigation was good at flagging the FAA radar but not the Iridium satellite or GPS.

While these algorithms are intended for real-time RFI mitigation use, some (like IQRM) can also be used on averaged data.

Installing nettingi

nettingi works with Python 3.9.

From GitHub

To install from github:

    $ git clone git@github.com:kaitlynchen1/nettingi.git
    $ cd nettingi
    $ pip install -e .

pip installation: coming soon

nettingi will be installable with pip. The packaged code will be hosted on PyPi.

    $ pip install nettingi

Dependencies

nettingi requires multiple packages that will be installed automatically if using pip or manually after cloning the repo and being in the repo directory with:

    $ pip install -r requirements.txt

Quickstart

After installation, nettingi can be used in a python environment. The most basic use has default settings for RFI mitigation. There are more complex example uses in the notebooks folder.

In Jupyter Notebooks

Note that filename is the file path to the data with RFI you want to mitigate and replacement is either nans or noise depending on what the RFI should be replaced with.

IQRM

    rfimit = importlib.import_module('rfi-mitigation')
    running = rfimit.rfi_iqrm(filename)
    running.run_all()

SK

    rfimit = importlib.import_module('rfi-mitigation')
    running = rfimit.rfi_sk(filename)
    running.run_all()

AOF

    rfimit = importlib.import_module('rfi-mitigation')
    running = rfimit.rfi_aof(filename)
    running.run_all()

About

Toolbox for NETTING radio frequency Interference

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages