-
Notifications
You must be signed in to change notification settings - Fork 5
The MWA Pulsar Search Pipeline
This is a pipeline designed to search for pulsars using the Murchison Widefield Array (MWA) Voltage Capture System (VCS) data. It automates job submission, beamforming and pulsar searching using the PRESTO software suite.
The tile beam of the MWA has a field-of-view of ~700 square degrees. To sensitively cover this field-of-view requires 6000-10000 tied-array beams that will be calculated in post-processing. grid.py is used to calculate the sky positions of the tied-array beams The beamformer paper has recently been accepted and is available on ArXiV. I have improved on the beamformer by making it "multi-pixel" meaning it can calculate 100s of tied-array beams at once. Each tied-array beam will take 6.85 GPU hours to process per full 80-minute observation.
The output file of grid.py is used in mwa_search_pipeline.py to send off the required beamforming using vcstools's make_beam. The mwa_search_pipeline.py will step through each stage of pulsar searching using PRESTO commands and keeping track of each job's processing time and repeating any jobs that fail and repeat them using search_database.py.
Currently, we use PRESTO's rfifind to do some basic RFI removal. We do this on the incoherent or tile beam because it contains all sources of RFI and can be used on all tied-array beams for that observation. An example of the command we is shown below
rfifind -noclip -time 12.0 -o <outputname> -zapchan 0:19,108:127,128:147,236:255,256:275,364:383,384:403,492:511,512:531,620:639,640:659,748:767,768:787,876:895,896:915,1004:1023,1024:1043,1132:1151,1152:1171,1260:1279,1280:1299,1388:1407,1408:1427,1516:1535,1536:1555,1644:1663,1664:1683,1772:1791,1792:1811,1900:1919,1920:1939,2028:2047,2048:2067,2156:2175,2176:2195,2284:2303,2304:2323,2412:2431,2432:2451,2540:2559,2560:2579,2668:2687,2688:2707,2796:2815,2816:2835,2924:2943,2944:2963,3052:3071 <obsid>*.fits
-zapchan is used to remove the edges of each coarse frequency channel to prevent aliasing. Both the number of frequency channel that will be zaped and the value for -time was optimised by Mengyao Xue.
We dedisperse the tied-array beam using prepsubbands from a DM of 1 to 250 pc cm^-3. The DM steps are calculated with lfDDplan.py which is based on PRESTO's DDplan.py but give me more control. The standard output of _lfDDplan.py which is used in the search pipeline is show below:
low DM | high DM | DeltaDM | Nsteps | Effective time resolution (ms)
1.0 | 12.2 | 0.02 | 560 | 0.100
12.2 | 24.4 | 0.03 | 406 | 0.200
24.4 | 48.8 | 0.06 | 406 | 0.400
48.8 | 97.6 | 0.11 | 443 | 0.800
97.6 | 195.2 | 0.23 | 424 | 1.600
195.2 | 250.0 | 0.46 | 119 | 3.200
Total DM steps required: 2358
An example of the prepsubband command is shown below:
prepsubband -lodm 1.0 -nsub 24 -dmstep 0.02 -numdms 560 -numout 38480000 -zerodm -o <obsid> <fits_files>
I would like to use a script that implements FDMT algorithm or coherent dedispersion in the future.
Performs an FFT on each DM using realfft, and example of such a command is shown below:
realfft <obsid>_DM<DM>.dat
Searches the FFT for a periodic signal using accelsearch. Searches periods from 1 ms to 30 s (including the harmonics) with 16 harmonics. Currently, it does not perform an acceleration search to save on processing time.
accelsearch -zmax 0 -flo 0.03333333333333333 -fhi 16000.0 -numharm 16 <obsid>_DM<DM>.fft
All the periodic candidates without DM structure (at least 8 adjacent DMs with significant signal) or a sigma less than 5 are removed using ACCEL_sift.py.
Uses prepfold to fold on all significant candidates (above 5 sigma). An example command below:
prepfold -n 100 -noxwin -noclip -o <obsid>_DM<DM>_ACCEL_<cand_num> -p <period> -dm <DM> -mask <rfifind_mask> -nsub 256 -npart 120 -dmstep 1 -pstep 1 -pdstep 2 -npfact 2-ndmfact 1 -runavg <fits_files>
All pulsars with a PRESTO chi greater than 2 are checked by eye. This will need to be done by machine learning in the near future.