simpleReader is the software used for the analysis of pulsar data obtained with the ISEC TLM-18 Telescope. Unlike other tools like PRESTO (which definitely offers a richer variety of plots), it calculates and displays the average spectrum of the observation, which makes RFI detection easier. Most of the data processing is carried out using NumPy
arrays, which makes the algorithms run faster, with a relatively low computational expense. The two main functionalities are incoherent de-dispersion, epoch folding, S/N detection, visual indication of the pulse width/DM, Power vs Frequency vs Phase, and automatic pulse phase detection, which will be useful for glitch detection in the near future (although a method for pulse phase calibration shall be investigated in order to account for imperfections in the timing accuracy of the instrumentation of the telescope (particularly the superheterodyne receiver)). Power vs Frequency vs Time (subtracts data unassociated with the pulsar pulses) is already built, and will soon be implemented. PoC example:
Upcoming features (not yet implemented) include:
- Period determination (e.g. by taking the Fourier transformation of the time series of the observation in the post-dedispersion state and/or by brute-forcing values around the topocentric period (obtained using e.g. TEMPO) or the barycentric period (taken by e.g. the ATNF Pulsar Database). This can also be done by measuring the distance between individual pulses in the time series, although this is only applicable to observations where the invidivdual-pulse-to-noise ratio is high (i.e. pulsars with a high flux density at 1400 MHz like PSR B0329+54 (J0332+5434)). The code for this has already been written for the Green Bank 20m Telescope and tested successfully:
-
- P-search update: An initial period determination algorithm has been composed for the pulsar monitoring project conducted by TLM-18. It works by brute-forcing a list of periods (e.g. barycentric period ± 0.1 sec with a user-defined step) and seeing where the S/N maximizes:
The period-search algorithm and the plotting script can be found in psearch.py
and period_plot.py
respectively.
- Dispersion measure determination (e.g. by brute-forcing DM values after the appropriate topocentric period has been applied (for appropriate pulse folding), and/or with another less computationally-expensive algorithm (TBD))
- Incoherent de-dispersion (by appropriately delaying each frequency channel on the dynamic spectrum (waterfall)):
(code will borrow lines 7-18 in psr_toolkit.py
from PSR-Toolkit
)
-
- Incoherent de-dispersion update: An incoherent-dedispersion algorithm has been applied to
simpleReader.py
. Both the un-de-dispersed and de-dispersed pulse profiles are shown plotted. The data are de-dispersed with a user-defined DM.
- Incoherent de-dispersion update: An incoherent-dedispersion algorithm has been applied to
-
- S/N vs Pulse profile bins
- (More functionalities to be added soon)
$ python simpleReader.py -h
usage: simpleReader.py [-h] -f FILE -p PERIOD [-d DM] [-n NBINS]
optional arguments:
-h, --help show this help message and exit
-f FILE, --file FILE
-p PERIOD, --period PERIOD
-d DM, --dm DM, --DM DM
-n NBINS, --nbins NBINS, --nBins NBINS
To analyze an observation, run:
python simpleReader.py -f OBS_FILENAME --period FOLDING_PERIOD --nBins NUMBER_OF_BINS
Example:
python simpleReader.py -f J0332+5434_194_chB.sdf --period 0.71459 --nBins 200
This tool is developed by Apostolos Spanakis-Misirlis and Prof. Daniel R. Marlow. We would like to acknowledge the help provided by Norman C. Jarosik regarding the software used for the acquisition of the data.