Difference between revisions of "Antenna Position"
(→How baseline errors can contribute to the error in phase) |
(→EOVSA Antenna Position Calibration) |
||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | == | + | == Fundamentals == |
A synthesis imaging radio instrument consists of a number of radio elements (radio dishes, dipoles, or other collectors of radio emission), which represent measurement points in ''u,v,w'' space. We need to describe how to convert an array of dishes on the ground to a set of points in ''u,v,w'' space. | A synthesis imaging radio instrument consists of a number of radio elements (radio dishes, dipoles, or other collectors of radio emission), which represent measurement points in ''u,v,w'' space. We need to describe how to convert an array of dishes on the ground to a set of points in ''u,v,w'' space. | ||
Line 97: | Line 97: | ||
The time of day and location of the antennas must be known to relatively high accuracy -- needed for determining the geometric delay. A clock error of 1 s, or a baseline error of a few cm, will cause a serious phase shift of the source over, say, 10 minutes. At OVRO, using a GPS clock and measuring baselines with cosmic source calibration, we get a time accuracy of << 1 ms, and baseline errors of about 3 mm. Therefore, these effects are not serious over a short time interval, but may still be problematic over 8 hours. This is one reason that we do phase calibration observations every ~ 2 hours. | The time of day and location of the antennas must be known to relatively high accuracy -- needed for determining the geometric delay. A clock error of 1 s, or a baseline error of a few cm, will cause a serious phase shift of the source over, say, 10 minutes. At OVRO, using a GPS clock and measuring baselines with cosmic source calibration, we get a time accuracy of << 1 ms, and baseline errors of about 3 mm. Therefore, these effects are not serious over a short time interval, but may still be problematic over 8 hours. This is one reason that we do phase calibration observations every ~ 2 hours. | ||
+ | |||
+ | == EOVSA Antenna Position Calibration == | ||
+ | The positions of EOVSA antennas are determined using observations by the 27-m (Ant 14) low-frequency receiver (S and C band) of celestial radio sources during several observation runs in fall 2016. This document describes the procedure followed and the final? calibrated antenna positions. | ||
+ | |||
+ | For calibrator sources with locations with sufficient accuracy (we use caibrators from the [http://www.aoc.nrao.edu/~gtaylor/csource.html VLA Calibrator Manual]), and a good time-keeping accuracy at EOVSA (what is our time-keeping accuracy? --[[User:Bchen|Bchen]] 19 November 2016) , <math>d\alpha_o</math> and <math>d\delta_o</math> in Eq. 2 can be neglected. Hence Eq. 2 can be simplified to: | ||
+ | |||
+ | <center> | ||
+ | <math>\phi_g = \phi_o + (2\pi/\lambda)(dB_x\cos \delta \cos h - dB_y\cos \delta \sin h + dB_z\sin \delta)</math>, (3) | ||
+ | </center> | ||
+ | where <math>\phi_o</math> is the intrinsic instrumental phase at the given baseline. | ||
+ | |||
+ | We use a two-step calibration to solve for the EOVSA baseline error as following: | ||
+ | === 1. Determine baseline errors in X and Y === | ||
+ | Observing one strong and point-like calibrator for a sufficiently long time (at least several hours). Note it is important to observe for a long time in order to have sufficient variation of the phase vs. hour angle curve as determined by sin(h) and cos(h). We use a function of the following form to fit the observed phases at a baseline involving antenna i and j: | ||
+ | <center> | ||
+ | <math> | ||
+ | \phi_{ij} = (2\pi/\lambda)(c_0 + c_1 \cos h + c_2 \sin h) | ||
+ | </math> | ||
+ | </center> | ||
+ | where | ||
+ | <center> | ||
+ | <math> | ||
+ | \begin{align} | ||
+ | c_0 & = \phi_{oij}/(2\pi/\lambda) + \sin \delta (dB_{zi}-dB_{zj}) \\ | ||
+ | c_1 & = \cos \delta (dB_{xi}-dB_{xj}) \\ | ||
+ | c_2 & = -\cos \delta (dB_{yi}-dB_{yj}) | ||
+ | \end{align} | ||
+ | </math> (4) | ||
+ | </center> | ||
+ | In a usual case, visibilities are measured at many baselines (e.g., for N antennas one would normally have N(N-1)/2 unique baselines). In that case, one can solve for the antenna-based phase <math>\phi_{i}</math> as a function of hour angle for each antenna i. The resulted fit parameters c<sub>1</sub> and c<sub>2</sub> then only involve the absolute position error dB<sub>i</sub> for antenna i. For EOVSA, we only have one 27-m antenna in the array, so we have to use the 13 baseline-based phases <math>\phi_{i-14}</math> to solve for <math>dB_{(x, y, z)i}-dB_{(x, y, z)14}</math>. For simplification, I will omit the subscripts (i-14) In the following discussions. | ||
+ | |||
+ | For each antenna i-14 baseline pair, we have two unique polarization measurements. To take advantage of both polarization measurements, we fit the following equations separately: | ||
+ | <center> | ||
+ | <math> | ||
+ | \begin{align} | ||
+ | \phi_{XX} + \phi_{YY} & = (2\pi/\lambda)(c_{0XX} + c_{0YY} + 2c_1 \cos h + 2c_2 \sin h) \\ | ||
+ | \phi_{XX} - \phi_{YY} & = (2\pi/\lambda)(c_{0XX} - c_{0YY}) | ||
+ | \end{align} | ||
+ | </math> (5) | ||
+ | </center> | ||
+ | and obtain the four parameters <math>c_{0XX}</math>, <math>c_{0YY}</math>, <math>c_{1}</math>, and <math>c_{2}</math>. The baseline error for antenna i (relative to antenna 14) is then: | ||
+ | <center> | ||
+ | <math> | ||
+ | \begin{align} | ||
+ | dB_{x} & = \frac{c_1}{\cos \delta } \\ | ||
+ | dB_{y} & = -\frac{c_2}{\cos \delta} \\ | ||
+ | \end{align} | ||
+ | </math> (6) | ||
+ | </center> | ||
+ | |||
+ | An example is given in Fig. 3 based on a 5.5-hr observation on 3C84 made on 2016 Sep 7 using EOVSA band 5 only (7 usable science channels). | ||
+ | |||
+ | [[File:pha_vs_ha_0319+415_20160907.png|thumb|600px|'''Fig. 3:''' Phase vs. hour angle for Antennas 9, 10, 11, 13 w.r.t. Antenna 14 at both XX and YY polarizations. This is based on a ~5.5 hour observation of 3C84 on 2016 Sep 7. Circular symbols are measured phases and curves are the corresponding sinusoidal curves. Different colors represent measurements/fits at different frequency channels.]] | ||
+ | |||
+ | After <math>dB_x, dB_y</math> are determined, they can be applied to the visibility date to correct for the sinusoidal variation of the phase vs. hour angle. I use CASA's task "gencal" to generate the calibration table for antenna position correction (use mode="antpos"). However, the task requires corrections of the antenna positions in the ITRF (International Terrestrial Reference Frame) coordinate system (see [https://casa.nrao.edu/docs/taskref/gencal-task.html gencal help page] for details). The X-axis of this system points to prime meridian, i.e., the big circle along zero longitude, while the X-axis of our local Cartesian x, y, z system points to the local central meridian. Therefore we have to rotate the derived <math>dB_x, dB_y</math> by EOVSA's longitude (118.287° west, or -118.287°) to get the new <math>dB_x', dB_y'</math> in the ITRF system: | ||
+ | <center> | ||
+ | <math> | ||
+ | \begin{align} | ||
+ | dB_{x'} & = dB_x\cos(l) - dB_y\sin(l) \\ | ||
+ | dB_{y'} & = dB_x\sin(l) + dB_y\cos(l) \\ | ||
+ | \end{align} | ||
+ | </math> (7) | ||
+ | </center> | ||
+ | |||
+ | Each antenna should have three inputs in "parameter": <math>dB_x', dB_y', dB_z'</math>. For now we set <math>dB_z'</math> to be 0, which will be determined in the next step. An example of generating a calibration table and apply the corrections for the positions of antenna IDs 8 and 9 (that is, Ant 9 and 10): | ||
+ | <pre> | ||
+ | gencal(vis=your_ms_visibility,caltable='caltb.antpos',caltype='antpos', | ||
+ | antenna='8, 9', parameter=[dBx'_9, dBy'_9, 0, dBx'_10, dBy'_10, 0]) | ||
+ | applycal(vis=your_ms_visibility,gaintable='caltb.antpos') | ||
+ | </pre> | ||
+ | |||
+ | The results after applying the B<sub>x</sub> and B<sub>y</sub> correction are shown in Fig. 4: | ||
+ | [[File:pha_vs_ha_0319+415_20160907_corrected.png|thumb|600px|'''Fig. 4:''' Corrected phase vs. hour angle for Antennas 9, 10, 11, 13 w.r.t. Antenna 14 at both XX and YY polarizations. This is based on a ~5.5 hour observation of 3C84 on 2016 Sep 7. Different colors represent measurements/fits at different frequency channels.]] | ||
+ | |||
+ | Each frequency channel has an independent measurement of the correlated phases (note the wavelength λ in Eq. 3 is different). But they should return the same answer of dB<sub>x</sub> and dB<sub>y</sub>. Previously I selected 6 channels in Band 5 and fit them independently, and took the average of the resulted dB<sub>x</sub> and dB<sub>y</sub> to be the answer. This worked pretty well for the 2016 Sep 7 observation on 3C84, which is a very strong calibrator source (23 Jy in C band) and we observed band 5 in a sit-and-stare mode, hence the signal-to-noise was excellent at all channels (results are shown in Figs. 3 and 4). However, for calibrators that are not so strong and/or the array in a fast-frequency-tuning mode, the signal-to-noise is not so good. Fitting all channels independently would result in different answers, especially for those with small baseline errors. An example is shown in Fig. 5 for an observation on 2016 Oct 9 on 2253+161 using the fast frequency-sweeping mode. It is desired to take data from all channels and fit for the same c<sub>1</sub> and c<sub>2</sub> (which are determined by dB<sub>x</sub> and dB<sub>y</sub> respectively), but different c<sub>0</sub> parameter in Eq. 4 (because different channels have different phase offsets). I have implemented such a technique using [https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.optimize.leastsq.html SciPy's "leastsq" function]. I applied this method to an observation of 2136+006 (9.9 Jy at C band) and 2253+161 (10 Jy at C band) on 2016 Sep 7 under the fast frequency-sweeping mode of the 27-m low-frequency receiver. The results are shown in Fig. 6. | ||
+ | |||
+ | <gallery mode=packed title="Independent fits vs. simultaneous fits on different spectral channels" widths="400pix" heights="200pix" align=center> | ||
+ | File:pha_vs_ha_2253+161_20161009_independent_fits.png | Phase vs. hour angle for Antennas 9, 10, 11, 13 w.r.t. Antenna 14 at both XX and YY polarizations. Fits are done on each channel independently. | ||
+ | |||
+ | File:pha_vs_ha_2253+161_20161009_one_fit.png | Phase vs. hour angle for Antennas 9, 10, 11, 13 w.r.t. Antenna 14 at both XX and YY polarizations. Fits are done on all channels simultaneously. | ||
+ | </gallery> | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !colspan="7" | Table 1: Calculated Baseline Corrections in X and Y | ||
+ | |- | ||
+ | !rowspan="3" | Antenna | ||
+ | ! colspan="3" | dB<sub>x</sub> (m) | ||
+ | ! colspan="3" | dB<sub>y</sub> (m) | ||
+ | |- | ||
+ | |3C84 || 2136+006 || 2153+161 || 3C84 || 2136+006 || 2153+161 | ||
+ | |- | ||
+ | |2016/09/07 || 2016/10/09 || 2016/10/09 || 2016/09/07 || 2016/10/09 || 2016/10/09 | ||
+ | |- | ||
+ | |eo09 || -0.075 || -0.061 || -0.064 || 0.018 || 0.019 || 0.018 | ||
+ | |- | ||
+ | |eo10 || -0/006 || 0.003 || 0.003 || 0.004 || 0.001 || -0.001 | ||
+ | |- | ||
+ | |eo11 || 0.028 || -- || 0.030 || -0.011 || -- || -0.006 | ||
+ | |- | ||
+ | |eo13 || -0.029 || -0.049 || -0.047 || 0.013 || 0.024 || 0.020 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === 2. Determine baseline errors in Z === | ||
+ | Once the B<sub>x</sub> and B<sub>y</sub> coordinates have been determined, there should not be significant phase change as a function of time. The remaining error is in B<sub>z</sub>, which results in different phases for sources at different declinations. From Eq. 3 we now have: | ||
+ | <center> | ||
+ | <math> | ||
+ | \phi_g = \phi_o + (2\pi/\lambda) dB_z\sin \delta | ||
+ | </math> (8) | ||
+ | </center> | ||
+ | We can now observe several calibrator sources at different declinations δ, and fit a function to the observed phases as below: | ||
+ | <center> | ||
+ | <math> | ||
+ | \phi = (2\pi/\lambda) (c_3+c_4\sin \delta), | ||
+ | </math> (9) | ||
+ | </center> | ||
+ | where <math>c_4=dB_z</math> is the resulted baseline error in Z. We had an observation on 2016 Oct 9 on two calibrator sources at different declinations (2136+006 and 2153+161), which is used to determine a rough value of dB<sub>z</sub>. However, it is desired to make an observation on many more sources to fit the sinusoidal curve to improve the accuracy. Our calibrator survey performed on 2016 Oct 14 would be a good database to do this. We need to firstly apply the B<sub>x</sub> and B<sub>y</sub> corrections to the visibility data, and then fit the phases at different declinations. | ||
+ | |||
+ | == Source Coordinates == | ||
+ | The source catalog uses the framework provided by the aipy (astronomical imaging in python) package, which in turn is based on the pyephem package. Source coordinates in pyephem are available in three systems: | ||
+ | |||
+ | * a_ra, a_dec — Astrometric Geocentric Position in J2000 (or ICRF) coordinates (or another epoch if specified) | ||
+ | * g_ra, g_dec — Apparent Geocentric Position for the epoch-of-date | ||
+ | * ra, dec — Apparent Topocentric Position for the epoch-of-date | ||
+ | |||
+ | Unfortunately, CASA wants the source Astrometric Topocentric Position in J2000 coordinates, which is none of the above. However, it is sufficient to calculate the difference between apparent topocentric and apparent geocentric coordinates, and then add it to the astrometric geocentric coordinates, i.e. | ||
+ | |||
+ | * ra_j2000 = (src.ra - src.g_ra) + src.a_ra | ||
+ | * dec_j2000 = (src.dec - src.g_dec) + src.a_dec | ||
+ | |||
+ | Of course, for very distant sources this correction is unnecessary. | ||
+ | |||
+ | For moving sources, such as the Sun, the RA and Dec coordinates are continually changing. For that reason, it is necessary to know the time for which the coordinates are valid. EOVSA Miriad files use the start time of the scan. |
Latest revision as of 17:43, 28 June 2017
Contents
Fundamentals
A synthesis imaging radio instrument consists of a number of radio elements (radio dishes, dipoles, or other collectors of radio emission), which represent measurement points in u,v,w space. We need to describe how to convert an array of dishes on the ground to a set of points in u,v,w space.
E, N, U coordinates to x, y, z
The first step is to determine a consistent coordinate system. Antennas are typically measured in units such as meters along the ground. We will use a right-handed coordinate system of East, North, and Up (E, N, U). These coordinates are relative to the local horizon, however, and will change depending on where we are on the spherical Earth. It is convenient in astronomy to use a coordinate system aligned with the Earth's rotational axis, for which we will use coordinates (x, y, z) as shown in Figure 1. Conversion from (E, N, U) to (x, y, z) is done via a simple rotation matrix:
which yields the relations:
Baselines and Spatial Frequencies
Note that the baselines are differences of coordinates, i.e. for the baseline between two antennas we have a vector:
This vector difference in positions can point in any direction in space, but the part of the baseline that matters in calculating u,v,w is the component perpendicular to the direction (the phase center direction), which we called in Figure 2. Let us express the phase center direction as a unit vector , where is the hour angle (relative to the local meridian) and is the declination (relative to the celestial equator). Then .
Recall that the spatial frequencies u,v,w are just the distances expressed in wavelength units, so we can get the u,v,w coordinates from the baseline length expressed in wavelength units from the following coordinate transformation (see Thompson 1999 for details):
How baseline errors can contribute to the error in phase
The geometric phase difference at the phase center ( term in (1)) is:
where , geometric delay. We can see what can affect the geometric phase by taking the differential of this expression:
where we have used the relation between right ascension and hour angle: , so . Equation (2) shows how baseline errors and source position errors (, ) will affect the error in group delay (or yield an error in phase ). Note that a clock error is equivalent to a source position error .
If we have a source whose position is known, we can use Equation (2) to find the location of the antennas (this is called baseline determination). The error in antenna position is largely independent of the baseline lengths. For example, say that we can measure to within 1 degree at 5 GHz ( = 6 cm). Then we can measure , and to a precision of order (1 / 360) 6 cm ~ 1 / 60 cm even though = 5000 km or more (VLBI).
The time of day and location of the antennas must be known to relatively high accuracy -- needed for determining the geometric delay. A clock error of 1 s, or a baseline error of a few cm, will cause a serious phase shift of the source over, say, 10 minutes. At OVRO, using a GPS clock and measuring baselines with cosmic source calibration, we get a time accuracy of << 1 ms, and baseline errors of about 3 mm. Therefore, these effects are not serious over a short time interval, but may still be problematic over 8 hours. This is one reason that we do phase calibration observations every ~ 2 hours.
EOVSA Antenna Position Calibration
The positions of EOVSA antennas are determined using observations by the 27-m (Ant 14) low-frequency receiver (S and C band) of celestial radio sources during several observation runs in fall 2016. This document describes the procedure followed and the final? calibrated antenna positions.
For calibrator sources with locations with sufficient accuracy (we use caibrators from the VLA Calibrator Manual), and a good time-keeping accuracy at EOVSA (what is our time-keeping accuracy? --Bchen 19 November 2016) , and in Eq. 2 can be neglected. Hence Eq. 2 can be simplified to:
, (3)
where is the intrinsic instrumental phase at the given baseline.
We use a two-step calibration to solve for the EOVSA baseline error as following:
1. Determine baseline errors in X and Y
Observing one strong and point-like calibrator for a sufficiently long time (at least several hours). Note it is important to observe for a long time in order to have sufficient variation of the phase vs. hour angle curve as determined by sin(h) and cos(h). We use a function of the following form to fit the observed phases at a baseline involving antenna i and j:
where
(4)
In a usual case, visibilities are measured at many baselines (e.g., for N antennas one would normally have N(N-1)/2 unique baselines). In that case, one can solve for the antenna-based phase as a function of hour angle for each antenna i. The resulted fit parameters c_{1} and c_{2} then only involve the absolute position error dB_{i} for antenna i. For EOVSA, we only have one 27-m antenna in the array, so we have to use the 13 baseline-based phases to solve for . For simplification, I will omit the subscripts (i-14) In the following discussions.
For each antenna i-14 baseline pair, we have two unique polarization measurements. To take advantage of both polarization measurements, we fit the following equations separately:
(5)
and obtain the four parameters , , , and . The baseline error for antenna i (relative to antenna 14) is then:
(6)
An example is given in Fig. 3 based on a 5.5-hr observation on 3C84 made on 2016 Sep 7 using EOVSA band 5 only (7 usable science channels).
After are determined, they can be applied to the visibility date to correct for the sinusoidal variation of the phase vs. hour angle. I use CASA's task "gencal" to generate the calibration table for antenna position correction (use mode="antpos"). However, the task requires corrections of the antenna positions in the ITRF (International Terrestrial Reference Frame) coordinate system (see gencal help page for details). The X-axis of this system points to prime meridian, i.e., the big circle along zero longitude, while the X-axis of our local Cartesian x, y, z system points to the local central meridian. Therefore we have to rotate the derived by EOVSA's longitude (118.287° west, or -118.287°) to get the new in the ITRF system:
(7)
Each antenna should have three inputs in "parameter": . For now we set to be 0, which will be determined in the next step. An example of generating a calibration table and apply the corrections for the positions of antenna IDs 8 and 9 (that is, Ant 9 and 10):
gencal(vis=your_ms_visibility,caltable='caltb.antpos',caltype='antpos', antenna='8, 9', parameter=[dBx'_9, dBy'_9, 0, dBx'_10, dBy'_10, 0]) applycal(vis=your_ms_visibility,gaintable='caltb.antpos')
The results after applying the B_{x} and B_{y} correction are shown in Fig. 4:
Each frequency channel has an independent measurement of the correlated phases (note the wavelength λ in Eq. 3 is different). But they should return the same answer of dB_{x} and dB_{y}. Previously I selected 6 channels in Band 5 and fit them independently, and took the average of the resulted dB_{x} and dB_{y} to be the answer. This worked pretty well for the 2016 Sep 7 observation on 3C84, which is a very strong calibrator source (23 Jy in C band) and we observed band 5 in a sit-and-stare mode, hence the signal-to-noise was excellent at all channels (results are shown in Figs. 3 and 4). However, for calibrators that are not so strong and/or the array in a fast-frequency-tuning mode, the signal-to-noise is not so good. Fitting all channels independently would result in different answers, especially for those with small baseline errors. An example is shown in Fig. 5 for an observation on 2016 Oct 9 on 2253+161 using the fast frequency-sweeping mode. It is desired to take data from all channels and fit for the same c_{1} and c_{2} (which are determined by dB_{x} and dB_{y} respectively), but different c_{0} parameter in Eq. 4 (because different channels have different phase offsets). I have implemented such a technique using SciPy's "leastsq" function. I applied this method to an observation of 2136+006 (9.9 Jy at C band) and 2253+161 (10 Jy at C band) on 2016 Sep 7 under the fast frequency-sweeping mode of the 27-m low-frequency receiver. The results are shown in Fig. 6.
Table 1: Calculated Baseline Corrections in X and Y | ||||||
---|---|---|---|---|---|---|
Antenna | dB_{x} (m) | dB_{y} (m) | ||||
3C84 | 2136+006 | 2153+161 | 3C84 | 2136+006 | 2153+161 | |
2016/09/07 | 2016/10/09 | 2016/10/09 | 2016/09/07 | 2016/10/09 | 2016/10/09 | |
eo09 | -0.075 | -0.061 | -0.064 | 0.018 | 0.019 | 0.018 |
eo10 | -0/006 | 0.003 | 0.003 | 0.004 | 0.001 | -0.001 |
eo11 | 0.028 | -- | 0.030 | -0.011 | -- | -0.006 |
eo13 | -0.029 | -0.049 | -0.047 | 0.013 | 0.024 | 0.020 |
2. Determine baseline errors in Z
Once the B_{x} and B_{y} coordinates have been determined, there should not be significant phase change as a function of time. The remaining error is in B_{z}, which results in different phases for sources at different declinations. From Eq. 3 we now have:
(8)
We can now observe several calibrator sources at different declinations δ, and fit a function to the observed phases as below:
(9)
where is the resulted baseline error in Z. We had an observation on 2016 Oct 9 on two calibrator sources at different declinations (2136+006 and 2153+161), which is used to determine a rough value of dB_{z}. However, it is desired to make an observation on many more sources to fit the sinusoidal curve to improve the accuracy. Our calibrator survey performed on 2016 Oct 14 would be a good database to do this. We need to firstly apply the B_{x} and B_{y} corrections to the visibility data, and then fit the phases at different declinations.
Source Coordinates
The source catalog uses the framework provided by the aipy (astronomical imaging in python) package, which in turn is based on the pyephem package. Source coordinates in pyephem are available in three systems:
- a_ra, a_dec — Astrometric Geocentric Position in J2000 (or ICRF) coordinates (or another epoch if specified)
- g_ra, g_dec — Apparent Geocentric Position for the epoch-of-date
- ra, dec — Apparent Topocentric Position for the epoch-of-date
Unfortunately, CASA wants the source Astrometric Topocentric Position in J2000 coordinates, which is none of the above. However, it is sufficient to calculate the difference between apparent topocentric and apparent geocentric coordinates, and then add it to the astrometric geocentric coordinates, i.e.
- ra_j2000 = (src.ra - src.g_ra) + src.a_ra
- dec_j2000 = (src.dec - src.g_dec) + src.a_dec
Of course, for very distant sources this correction is unnecessary.
For moving sources, such as the Sun, the RA and Dec coordinates are continually changing. For that reason, it is necessary to know the time for which the coordinates are valid. EOVSA Miriad files use the start time of the scan.