MWAX VCS Commissioning

The recent upgrade to MWAX necessitates verification that the system is capable of observing high time resolution phenomena, such as pulsars. To this end, we put in a successful proposal for an MWA observing campaign to being in the end of 2021 and into the beginning of 2022. The requested observations fall into two categories:

  1. commissioning observations, and
  2. the remaining SMART observations.

This page details the progress made in taking the observations and performing the tests to complete the commissioning phase. Progress with the SMART survey is detailed elsewhere.

Commissioning Observations

Goals & Target Pulsars

The stated goals of the commissioning observations are:

  1. To develop and test the tied-array beamformer for the new VCS data format
  2. Verification of frequency labelling
  3. Data recording and timing stability
  4. Polarimetric verification and leakage assessment
  5. Full coherent beam sensitivity and timing accuracy
  6. The voltage dump and trigger mode (in response to external triggers)
  7. Correlation and imaging of data recorded in the new VCS format

A partial list of requested observations to satisfy the above goals are:

Goal

Number of obs

Duration (mins)

Pulsars (e.g.)

#1

2

5-10

B1749-28, B0031-07

#2

2

20

J2241-5236

#3

2

60

J0437-4715, J2145-0750

#4

4

10

B0628-28, B0737-40, B0740-28, B1749-28

#5

3

20

J0036-1033 (and B0031-07, J0034-0534)

Observations

The following link performs a query on the MWA observation database, showing the details of the observations made so far:

https://ws.mwatelescope.org/metadata/find/?search=search&html=1&pagesize=100&projectid=G0057&mintime_utc=2021-12-13T01%3A00&maxtime_utc=2021-12-29T01%3A00

The following table is a summary of the same observations, and which of the goals (see the table above) that they are intended to satisfy:

ObsidDuration (sec)FilesPulsar(s) / Calibrator(s)RA/DecPC RA/DecAz/ElGoalProcessingDownload folderVCSBeam version*Beamforming time
132369032029624In-beam calibration (for 1323690616)11.8 / -5.88.5 / -7.4341.6 / 68.01, 5/astro/mwavcs/asvo/253001v3.3.31_c279695
132369061612003600 VCSB0031-07
J0036-1033
J0034-0534
8.0 / -5.28.5 / -7.4326.3 / 64.71, 5/astro/mwavcs/asvo/253008v3.3.31_c2796951 channel: 1600s
24 channels: 4200-5000s
132370861629624In-beam calibration (for 1323709032)95.1 / -26.797.7 / -28.60.0 / 90.01, 4/astro/mwavcs/asvo/253000

132370891212024PicA (for 1323709032)75.9 / -46.480.0 / -45.8213.7 / 64.71, 4/astro/mwavcs/asvo/252998

13237090326001800 VCSB0628-2897.5 / -26.797.7 / -28.60.0 / 90.01, 4/astro/mwavcs/asvo/253009

132377672012024PKS2356-61 (for 1323776840)4.3 / -62.7359.8 / -60.9191.3 / 52.81, 2/astro/mwavcs/asvo/252999

132377684012003600 VCSJ2241-5236346.9 / -51.9340.4 / -52.6216.9 / 53.61, 2/astro/mwavcs/asvo/253010

*VCSBeam version is the earliest version that was successfully used for the processing. For calibration observations, this means using mwa_plot_calibration, and for the VCS observations, make_mwa_tied_array_beam.

Processing details

Setting up Garrawarla environment

Setting up Garrawarla environment
module use /pawsey/mwa/software/python3/modulefiles
module load singularity
module load vcsbeam
module load psrcat
module load hyperdrive

1323690320

Run Hyperdrive

Create Hyperdrive batch script:

/astro/mwavcs/vcs/1323690320/hyperdrive/hyperdrive.sbatch
#!/bin/bash -l
#SBATCH --job-name=hyp-$1
#SBATCH --output=hyperdrive.out
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=40
#SBATCH --time=01:00:00
#SBATCH --clusters=garrawarla
#SBATCH --partition=gpuq
#SBATCH --account=mwavcs
#SBATCH --export=NONE
#SBATCH --gres=tmp:50g
#SBATCH --gres=gpu:1

# Load the Hyperdrive module
module use /pawsey/mwa/software/python3/modulefiles
module load hyperdrive

set -eux
which hyperdrive

# The location of the correlated visibility FITS files:
DATADIR=/astro/mwavcs/asvo/253001

# The path to the associated metafits file
CAL_METAFITS=${DATADIR}/1323690320.metafits

# The base source list (you shouldn't need to change this)
SRCLIST=/pawsey/mwa/software/python3/srclists/master/srclist_pumav3_EoR0aegean_fixedEoR1pietro+ForA_phase1+2.txt

# If it hasn't been done already, run Hyperdrive in "srclist-by-beam" to get just the subset of sources in the beam
if [[ ! -r srclist_1000.yaml ]]; then
   hyperdrive srclist-by-beam \
       -n 1000 \
       -m ${CAL_METAFITS} \
       /pawsey/mwa/software/python3/srclists/master/srclist_pumav3_EoR0aegean_fixedEoR1pietro+ForA_phase1+2.txt \
       srclist_1000.yaml
fi

# Run Hyperdrive to generate a calibration solution
hyperdrive di-calibrate \
    -s srclist_1000.yaml \
    -d ${DATADIR}/*.fits \
    ${CAL_METAFITS}

Run the Hyperdrive script (on Garrawarla):

Run Hyperdrive on Garrawarla
cd /astro/mwavcs/vcs/1323690320/hyperdrive
sbatch hyperdrive.sbatch

Run VCSBeam plotting

Create VCSBeam plotting script:

/astro/mwavcs/vcs/1323690320/hyperdrive/plot.sbatch
#!/bin/bash -l
#SBATCH --job-name=plot_calsol
#SBATCH --output=plot_calsol.out
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=2
#SBATCH --time=01:00:00
#SBATCH --clusters=garrawarla
#SBATCH --partition=gpuq
#SBATCH --account=mwavcs
#SBATCH --export=NONE
#SBATCH --gres=tmp:50g
#SBATCH --gres=gpu:1

# Load the VCSBeam module
module use /pawsey/mwa/software/python3/modulefiles
module load vcsbeam

# The location of the correlated visibility FITS files:
DATADIR=/astro/mwavcs/asvo/253001

# The paths to the associated metafits files
CAL_METAFITS=${DATADIR}/1323690320.metafits
OBS_METAFITS=/astro/mwavcs/asvo/253008/1323690616.metafits # <-- This is the observation for which the calibration solution is needed

# Use VCSBeam to plot the solutions
srun -N 1 -n 1 mwa_plot_calibration -m ${OBS_METAFITS} -c ${CAL_METAFITS} -C hyperdrive_solutions.bin -R NONE -U 0,0 -O -X -z nan > plot_data.txt

# The following will have to be done on your own computer (not on Garrawarla)
# Download
#    (1) plot_calibration.py (use "which plot_calibration.py" to find out where it is)
#    (2) plot_data.txt
# and then run the following
#plot_calibration.py  --phases_png phases.png  --amps_png amps.png  plot_data.txt

Run plotting script:

Run VCSBeam plotting on Garrawarla
cd /astro/mwavcs/vcs/1323690320/hyperdrive
sbatch plot.sbatch

Plot the calibration solutions (on your local computer, after downloading a copy of plot_calibration.py and plot_data.txt:

Plot calibration solutions on local machine
plot_calibration.py  --phases_png phases.png  --amps_png amps.png  plot_data.txt

Iterative step

It looks like the solutions are probably fine for most, if not all the antennas (except possibly HexE23, since there's a lot of power in the off-diagonal terms, Dpq and Dqp), but the curviness of the phases makes it hard to tell. Therefore, I will choose a reference antenna to plot all the phases relative to that. Since there's a bunch of tiles whose phases are strongly sloped (near the middle of the plot), I'll choose a reference tile with a negative slope as well, but whose gradient is not as steep... HexE25 will do. To do this, I need to re-run the plotting script with the following change:

-R NONE --> -R HexE25

If I want to keep the old plots, I just make sure I rename the various output files to something different. Remaking the plots gives:

These solutions look fine (the on-diagonal terms, Dpp and Dqq, look straight). At the moment, I'm not trying to do polarimetry, so I don't need to worry about either the reference antenna or the PQ phase. By default, I should probably get rid of the cross terms (taking guidance from the imaging team). Therefore, I should be able to simply apply this solution with the following options to make_mwa_tied_array_beam:

-R NONE -U 0,0
# (and without -X)

1323690616

Make sure you have a calibration solution ready. this example uses the solution derived from observation 1323690320.

B0031-07

Create a VCSBeam beamforming script:

/astro/mwavcs/vcs/1323690616/vcsbeam/vcsbeam_0031.sbatch
#!/bin/bash -l

#SBATCH --job-name=1323690616-0031
#SBATCH --output=vcsbeam_0031.out
#SBATCH --nodes=24
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --mem=370gb
#SBATCH --partition=gpuq
#SBATCH --gres=gpu:1
#SBATCH --time=03:00:00
#SBATCH --account=mwavcs
#SBATCH --nice=0
#SBATCH --export=NONE

# Load the VCSBeam module 
module use /pawsey/mwa/software/python3/modulefiles
module load vcsbeam

# Define the directories where the data are
DATADIR=/astro/mwavcs/asvo/253008
CALSOL=/astro/mwavcs/vcs/1323690320/hyperdrive/hyperdrive_solutions.bin

OBS_METAFITS=${DATADIR}/1323690616.metafits
CAL_METAFITS=/astro/mwavcs/asvo/253001/1323690320.metafits

# Run VCSBeam for all 24 coarse channels
# Start 8 seconds in, just to avoid quacktime
# -p -v = Output both PSRFITS and VDIF
srun -N 24 -n 24 make_mwa_tied_array_beam \
    -m ${OBS_METAFITS} \
    -b 1323690624 \
    -T 1192 \
    -f 109 \
    -d ${DATADIR} \
    -P pointings_0031.txt \
    -c ${CAL_METAFITS} \
    -C ${CALSOL} \
    -O \
    -R NONE -U 0,0 \
    -p \
    -v


Prepare a pointings file (PSR B0031-07):

/astro/mwavcs/vcs/1323690616/vcsbeam/pointings_0031.txt
00:34:08.8703 -07:21:53.409

Run the VCSBeam beamforming script:

Run VCSBeam beamforming on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
sbatch vcsbeam_0031.sbatch

Generate an ephemeris:

Run psrcat on Garrawarla
psrcat -e J0034-0534 > 0034.par

Use PRESTO's prepfold utility to fold on the pulsar's period from the FITS files:

Run PRESTO prepfold on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
/pawsey/mwa/singularity/presto/presto.sif prepfold -psr J0034-0721 -nosearch -nodmsearch G0057_1323690616_00:34:08.87_-07:21:53.41_ch109-132_00*.fits


Use DSPSR and PSRCHIVE to fold on the pulsar's period from the VDIF files:

Run PRESTO prepfold on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
for freq in {109..132}; do /pawsey/mwa/singularity/dspsr/dspsr.sif dspsr -E 0031.par -b 512 -L 10 -A -O B0031-07_ch${freq}.ar G0057_1323690616_00:34:08.87_-07:21:53.41_ch${freq}.hdr; done
/pawsey/mwa/singularity/dspsr/dspsr.sif psradd -o B0031-07.ar -R B0031-07_ch1*
# (Did some pazi flagging: there was something weird in the first subint. This generated B0031-07.ar.pazi)
pav -g B0031-07.png/png -DFT B0031-07.ar.pazi

J0036-1033

Create a VCSBeam beamforming script:

/astro/mwavcs/vcs/1323690616/vcsbeam/vcsbeam_0036.sbatch
#!/bin/bash -l

#SBATCH --job-name=1323690616-0036
#SBATCH --output=vcsbeam_0036.out
#SBATCH --nodes=24
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --mem=370gb
#SBATCH --partition=gpuq
#SBATCH --gres=gpu:1
#SBATCH --time=03:00:00
#SBATCH --account=mwavcs
#SBATCH --nice=0
#SBATCH --export=NONE

# Load the VCSBeam module 
module use /pawsey/mwa/software/python3/modulefiles
module load vcsbeam

# Define the directories where the data are
DATADIR=/astro/mwavcs/asvo/253008
CALSOL=/astro/mwavcs/vcs/1323690320/hyperdrive/hyperdrive_solutions.bin

OBS_METAFITS=${DATADIR}/1323690616.metafits
CAL_METAFITS=/astro/mwavcs/asvo/253001/1323690320.metafits

# Run VCSBeam for all 24 coarse channels
# Start 8 seconds in, just to avoid quacktime
# -p -v = Output both PSRFITS and VDIF
srun -N 24 -n 24 make_mwa_tied_array_beam \
    -m ${OBS_METAFITS} \
    -b 1323690624 \
    -T 1192 \
    -f 109 \
    -d ${DATADIR} \
    -P pointings_0036.txt \
    -c ${CAL_METAFITS} \
    -C ${CALSOL} \
    -O \
    -R NONE -U 0,0 \
    -p \
    -v

Prepare a pointings file (PSR J0036-1033):

/astro/mwavcs/vcs/1323690616/vcsbeam/pointings_0036.txt
00:36:15.1 -10:33:14

Run the VCSBeam beamforming script:

Run VCSBeam beamforming on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
sbatch vcsbeam_0036.sbatch

Get an ephemeris from Nick:

/astro/mwavcs/vcs/1323690616/vcsbeam/0036.par
PSRJ           J0036-1033
RAJ            00:36:14.70                 
DECJ           -10:33:37.18                
F0             1.1111412561028151282     1  0.00000000152553465775   
F1             -3.9179999999999999999e-14    2.264e-14                
PEPOCH         46635                       
POSEPOCH       46635                       
DMEPOCH        46635                       
DM             23.123                      
EPHEM          DE405

Use PRESTO's prepfold utility to fold on the pulsar's period from the FITS files:

Run PRESTO prepfold on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
/pawsey/mwa/singularity/presto/presto.sif prepfold -par 0036.par -nosearch -nodmsearch G0057_1323690616_00:36:15.10_-10:33:14.00_ch109-132_00*.fits

Use DSPSR and PSRCHIVE to fold on the pulsar's period from the VDIF files:

Run PRESTO prepfold on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
for freq in {109..132}; do /pawsey/mwa/singularity/dspsr/dspsr.sif dspsr -E 0036.par -b 512 -L 10 -A -O J0036-1033_ch${freq}.ar G0057_1323690616_00:36:15.10_-10:33:14.00_ch${freq}.hdr; done

J0034-0534

Create a VCSBeam beamforming script:

/astro/mwavcs/vcs/1323690616/vcsbeam/vcsbeam_0036.sbatch
#!/bin/bash -l

#SBATCH --job-name=1323690616-0034
#SBATCH --output=vcsbeam_0034.out
#SBATCH --nodes=24
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --mem=370gb
#SBATCH --partition=gpuq
#SBATCH --gres=gpu:1
#SBATCH --time=03:00:00
#SBATCH --account=mwavcs
#SBATCH --nice=0
#SBATCH --export=NONE

# Load the VCSBeam module 
module use /pawsey/mwa/software/python3/modulefiles
module load vcsbeam

# Define the directories where the data are
DATADIR=/astro/mwavcs/asvo/253008
CALSOL=/astro/mwavcs/vcs/1323690320/hyperdrive/hyperdrive_solutions.bin

OBS_METAFITS=${DATADIR}/1323690616.metafits
CAL_METAFITS=/astro/mwavcs/asvo/253001/1323690320.metafits

# Run VCSBeam for all 24 coarse channels
# Start 8 seconds in, just to avoid quacktime
# -p -v = Output both PSRFITS and VDIF
srun -N 24 -n 24 make_mwa_tied_array_beam \
    -m ${OBS_METAFITS} \
    -b 1323690624 \
    -T 1192 \
    -f 109 \
    -d ${DATADIR} \
    -P pointings_0034.txt \
    -c ${CAL_METAFITS} \
    -C ${CALSOL} \
    -O \
    -R NONE -U 0,0 \
    -p \
    -v

Prepare a pointings file (PSR J0034-0534):

/astro/mwavcs/vcs/1323690616/vcsbeam/pointings_0036.txt
00:34:21.83422 -05:34:36.722

Run the VCSBeam beamforming script:

Run VCSBeam beamforming on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
sbatch vcsbeam_0034.sbatch

Use PRESTO's prepfold utility to fold on the pulsar's period from the FITS files:

Run PRESTO prepfold on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
/pawsey/mwa/singularity/presto/presto.sif prepfold -psr J0034-0534 -nosearch -nodmsearch G0057_1323690616_00:34:21.83_-05:34:36.72_ch109-132_00*.fits

FAIL!!

Generate an ephemeris:

Run psrcat on Garrawarla
psrcat -e J0034-0534 > 0034.par

Use DSPSR and PSRCHIVE to fold on the pulsar's period from the VDIF files:

Run PRESTO prepfold on Garrawarla
cd /astro/mwavcs/vcs/1323690616/vcsbeam
psrcat -e J0034-0534 > 0034.par
for freq in {109..132}; do /pawsey/mwa/singularity/dspsr/dspsr.sif dspsr -E 0034.par -b 512 -L 10 -A -O J0034-0534_ch${freq}.ar G0057_1323690616_00:34:21.83_-05:34:36.72_ch${freq}.hdr; done

1323708616

1323708912

1323709032

1323776720

1323776840