WILL - Weighted Injector of Luminous Lighthouses¶
will
is a library to create, inject, and detect pulses from Fast Radio Bursts (FRBs) and pulsars.
Overview¶
There are many pulsar and FRB simulators. These lack ability to handle complex band shapes (from bandstop filters, rolloff, etc). They also try to inject pulses at a given Signal-to-Noise ratio. This signal strength methodology can lead to circular logic, in worse radio frequency environments, the injected signal is brighter and still detectible.
Will
attempts the following
Signal energy fidelity
Custom bandpass weighting
Straightforward Pulse Detection
Good Documentation
There are four submodules will.create
, will.inject
, will.detect
, and will.calculate
.
create
¶
GaussPulse
can make multiple independent component pulses.SimpleGaussPulse
created pulses that are not correlated in frequency and timefilter_weights
Uses Gaussian smoothing to create bandpass weights model filter and rolloffclone_spectra
makes dynamic spectra with Gaussian noise that copies statisticsdynamic_from_statistics
Creates a noise dynamic spectra w/ given STD and median per channelclone_spectra
Makes a noise clone of a give dynamic spectra
inject
¶
inject_constant_into_file
inject pulse(s) of the same intensityinject_distribution_into_file
allows you to specify the pulse energies
detect
¶
find_first_pulse
Helps find the first pulse in a filesearch_file
search a file for periodic pulses at given DM and pulse width
calculate
¶
log_normal_from_stats
creates a log-normal distro. with given median and Stand. Dev.sort_subarrays
gives correlation across time to pulse powersnoise_info
calculates the noise level across a file for a variety of boxcar widths
Documentation¶
We have a docs website which contains the examples and and API documentation
Installation¶
To install directly into your current Python environment
pip install git+https://github.com/josephwkania/will.git
If you want a local version
git clone https://github.com/josephwkania/will.git
pip install will
For tests `pip install will[tests]`, for docs `pip install will[docs]`
Examples¶
There are example notebooks that show how to create, inject, and detect pulses.
Questions + Contributing¶
See CONTRIBUTING.md
Other Simulators¶
Single Pulses¶
https://github.com/kiyo-masui/burst_search/blob/master/burst_search/simulate.py
https://github.com/kmsmith137/simpulse
https://github.com/liamconnor/injectfrb
https://github.com/vivgastro/Furby
https://github.com/astrogewgaw/pataka
https://github.com/jayanthc/fakefrb
https://gitlab.com/houben.ljm/frb-faker
Pulsars¶
https://github.com/SixByNine/sigproc/blob/master/src/fake.c
https://github.com/PsrSigSim/PsrSigSim
https://github.com/scottransom/presto/blob/master/bin/injectpsr.py