Pulsar-Mode Flux Calibration Observations#
When to Use This Quick Guide
This quick guide is for observing a flux calibration source. These data can be used to create a flux calibration solution with PSRCHIVE, which can then be used to calibrate data taken on a pulsar or FRB.
PSRCHIVE has a built-in list of standard flux calibrators and it is easiest to choose a source that is part of this list. We further recommend choosing sources that are part of the Perley & Butler (2017) VLA flux calibration catalog and that are known to be stable and spatially compact. Some good calibration sources are 3C196, 3C286, and 3C295.
The PSRCHIVE flux calibration tools are easiest to use when the pulsar and flux calibration data are all taken with the same observing set up (e.g. center frequency, bandwidth, number of frequency channels, polarization state, and dedispersion mode). This quick guide uses the GBT’s L-Band receiver with a center frequency of 1500 MHz, bandwidth of 800 MHz, 512 frequency channels, and native linear polarization. It also uses a VEGAS coherent dedispersion mode, even though the flux calibration data are not actually dispersed.
Overview#
First, we will define the configuration. We take advantage of the fact that configuration
parameters are specified as strings that can be broken up into different groups and
combined when a Configure() command is issued. This
allows us to reduce redundant parameter specifications and the opportunities for errors.
Next, we provide a complete example of a simple observing script as well as some tips, tricks, and use of advanced scripting features.
Example Configuration#
Configuration Keywords Common to All Pulsar Modes#
The following configuration string is common to all pulsar modes.
1config_common = """
2obstype = 'Pulsar'
3backend = 'VEGAS'
4deltafreq = 0.0
5swtype = 'none'
6swper = 0.04
7swfreq = 0
8vdef = 'Radio'
9vframe = 'topo'
10vlow = 0.0
11vhigh = 0.0
12"""
Receiver-Specific Configuration Keywords#
The following configuration keywords are receiver-specific. In this example, we will use the L-Band receiver.
1config_LBand = """
2receiver = 'Rcvr1_2'
3pol = 'Linear'
4notchfilter = 'In'
5nwin = 1
6restfreq = 1500.0
7dopplertrackfreq = 1500.0
8bandwidth = 800.0
9"""
Note
Not every receiver has a notch filter.
The value of nwin must match the number of rest frequencies.
You should choose a bandwidth that is well-matched to the frequency range of the receiver you are using.
VEGAS Configuration#
Common Keywords#
The following configuration string specifies keywords are common to both the pulsar fold-mode and calibration scans that we will perform. In this example, we will use the most frequently used parameters for high-precision pulsar timing.
1config_vegas_common = """
2tint = 10.24e-6
3vegas.numchan = 512
4vegas.scale = 1585
5vegas.outbits = 8
6vegas.fold_bins = 2048
7vegas.fold_dumptime = 10.0
8vegas.polnmode = 'full_stokes'
9"""
Note
This configuration will result in frequency channels that are approximately 1.5 MHz wide.
The recommended value of
tintdepends on the frequency resolution (i.e. the bandwidth, \(BW\), and number of channels, \(n_{chan}\)). The formula for calculating the recommended integration time \(t_{int}\) is \(t_{int} = \frac{16 \times n_{chan}}{BW}\).The recommended value of
vegas.scaledepends on the dedispersion mode, bandwidth, and number of channels. See the VPM Observing Reference for recommendations for valid combinations of dedispersion mode / bandwidth / number of channels.
Keywords Specific to Calibration Scans#
These keywords specify the setup for taking data that can be used for polarization calibration. Not all science cases will require this, but it is recommended.
1vegas_config_cal = """
2swmode = 'tp'
3noisecal = 'lo'
4vegas.obsmode = 'coherent_cal'
5"""
Observing Scripts#
This is a complete observing script that will perform a polarization calibration scan and a timing observation of a single pulsar.
1# Load a source catalog
2# pulsars_all_GBT is a built-in catalog
3catalog = Catalog('/users/rlynch/Catalogs/psrchive_fluxcal.cat')
4
5source ='3C295'
6cal_scan_length = 65
7
8
9# Define config strings
10config_common = """
11obstype = 'Pulsar'
12backend = 'VEGAS'
13deltafreq = 0.0
14swtype = 'none'
15swper = 0.04
16swfreq = 0
17vdef = 'Radio'
18vframe = 'topo'
19vlow = 0.0
20vhigh = 0.0
21"""
22
23config_LBand = """
24receiver = 'Rcvr1_2'
25pol = 'Linear'
26notchfilter = 'In'
27nwin = 1
28restfreq = 1500.0
29dopplertrackfreq = 1500.0
30bandwidth = 800.0
31"""
32
33config_vegas_common = """
34tint = 10.24e-6
35vegas.numchan = 512
36vegas.scale = 1585
37vegas.outbits = 8
38vegas.fold_bins = 2048
39vegas.fold_dumptime = 10.0
40vegas.polnmode = 'full_stokes'
41"""
42
43vegas_config_cal = """
44swmode = 'tp'
45noisecal = 'lo'
46vegas.obsmode = 'coherent_cal'
47"""
48
49
50ResetConfig()
51
52# Pointing/focus corrections using a source close to the pulsar
53AutoPeakFocus(location = source)
54
55Slew(source)
56
57# Configure for calibration observation
58Configure(config_common + config_LBand + config_vegas_common + vegas_config_cal)
59
60# Balance the IF system
61Balance()
62Balance()
63
64# Take calibration data
65OnOff(source, Offset("AzEl", 1.0, 0.0, cosv=False), cal_scan_length)
Note
-
It is highly recommended to perform an
AutoPeakFocus()at the beginning of your session - this will ensure the telescope is set up correctly in addition to checking the pointing solution.Note
The PF800 and PF342 receivers only require an
AutoPeak(). We use an
OnOff()command to automatically take data at the position of the flux calibrator and an offset location 1 degree away in elevation. Both scans are required to create a flux calibration solution using PSRCHIVE.
Tips#
-
A tutorial on how to calibrate pulsar data using PSRCHIVE can be found on the GBO internal computing network at
/home/pulsar_rhel8/tutorials/calibration/instructions.txtTodo
Check if that tutorial can be moved to GBTdocs.
For typical GBT pulsar observing frequencies (300 – 8000 MHz), it is best to choose a calibration source with a flux density of ~1 – 30 Jy. Choosing a fainter source can lead to low-quality calibration solutions due to low S/N. Choosing brighter sources can make it difficult to optimally balance the observing system for both the on- and off-source scans.
-
To check the flux density of standard PSRCHIVE calibration sources, use the command
fluxcal -I [observing frequency in MHz]Here is an example using an observing frequency of 1500 MHz:
fluxcal -I 1500
returning the following output:
1fluxcal: using file 2/home/pulsar_rhel7/share/fluxcal.cfg 3 Cal source fluxes at 1500 MHz: 4 1413+1509: 0.518458 Jy 5 SCP: 1.04948 Jy 6 3C48: 15.3686 Jy 7 3C123: 45.6598 Jy 8 J0444-2809: 6.45599 Jy 9 J0519-4546: 63.7042 Jy 10 3C138: 8.24598 Jy 11 3C147: 21.0431 Jy 12 3C196: 13.5565 Jy 13 3C218: 41.2342 Jy 14 3C274: 200.533 Jy 15 3C286: 14.5665 Jy 16 3C295: 21.2069 Jy 17 3C348: 44.3007 Jy 18 3C353: 54.58 Jy 19 3C380: 12.4738 Jy 20 3C405: 1467.31 Jy 21 3C444: 8.44595 Jy 22 3C190: 2.30913 Jy 23 1445+0958: 2.32212 Jy 24 3C43: 2.691 Jy 25 3C394: 2.71085 Jy 26 B2209+080: 1.62809 Jy 27 NGC7027: 1.64269 Jy 28 PKS1934-63: 14.6665 Jy 29 PKS0408-65: 14.3454 Jy