Fundamentals of Radio Interferometry for Aperture Synthesis

Interferometry is a fundamental technique used in radio astronomy but is difficult to understand. The technique is rarely used in other fields of astronomy and physics. Many of our intutions about imaging, which comes from cameras and out own eyes, hide the underlying transformations which are central to aperture synthesis theory. With this book we hope to present a useful entry point into the topic by sticking to the fundamentals, this work is intended for a masters or doctoral student who is starting on the subject.

As this is meant to be a living and evolving document with a number of contributors, any help in regards to content, editing, or presentation are welcome. We are striving to create the book we did not have when first learning interferometry and aperture synthesis.

Outline

Colour Status

There is a colour next to each section link which provides a quick status update on that particular section. The colours indicate:

  •      : Status unknown.
  •      : Need significant edits and rewrites.
  •      : For the ambitious to edit. Needs language rewrites or clarification/has major comments. Missing major content.
  •      : Could be edited again. Needs minor edits/has minor comments. Missing minor content.
  •      : Ready for another edit, just needs to be checked for style, notation, code, and figures.

Content

  1.     Radio Science using Interferometric Arrays
    1.     Remarks on Basic Astrophysics
    2.     Electromagnetic Radiation and Astronomical Quantities
    3.     Radiation Transport
    4.     Radio Regime
    5.     Black-body Radiation
    6.     Synchrotron Emission
    7.     Line Emission
    8.     Astronomical Radio Sources
    9.     A Brief Introduction to Interferometry
    10.     Limits of Single Dishes
    11.     Modern Interferometric Arrays
    12.     Further Reading and References
  2.     Mathematical Groundwork
    1.     Complex Numbers
      1.     The Field of Complex Numbers
      2.     Euler's Formula
      3.     Periodic Functions and Complex Numbers
    2.     Important Functions
      1.     Gaussian Function
      2.     Sinc Function
      3.     Dirac Delta Function
      4.     Shah Function
      5.     Heavyside (step) Function
      6.     Box Function
    3.     Fourier Series
    4.     The Fourier Transform
      1.     Definition
      2.     Examples
    5.     Convolution
    6.     Auto-correlation and Cross-correlation
    7.     Fourier Theorems
      1.     Similarity Theorem
      2.     Shift Theorem
      3.     Convolution Theorem
      4.     Auto-correlation Theorem
    8.     The Discrete Fourier Transform (DFT) and the Fast Fourier Transform (FFT)
    9.     Sampling Theory
    10.     Linear Algrebra
    11.     Least-squares Minimization
    12.     Solid Angle
    13.     Spherical Trigonometry
    14.     Further Reading and References
  3.     Positional Astronomy
    1.     Equatorial Coordinates (RA, Dec)
    2.     Hour Angle (HA) and Local Sidereal Time (LST)
    3.     Horizontal Coordinates (ALT,AZ)
    4.     Direction Cosine Coordinates ($l$,$m$,$n$)
    5.     Further Reading and References
  4.     Visibility Space
    1.     The Baseline and Its Representations in Space
    2.     The 2-element Interferometer
    3.     The Visibility Function
    4. UV Coverage
      1.     UV Tracks
      2.     Improving Your Coverage
    5.     The Fourier Approximation & van Cittert-Zernike Theorem
    6.     Further Reading and References
  5.     Imaging
    1.     Spatial Frequencies
    2.     Sampling and Point Spread Functions
    3.     Gridding and Degridding for using the FFT
    4.     The Dirty Image and Visibility Weightings
    5.     The Break Down of the Small Angle Approximation and the W-Term
    6.     Further Reading and References
  6.     Deconvolution in Imaging
    1.     Sky Models
    2.     Interative Deconvolution with Point Sources (CLEAN)
    3.     CLEAN Implementations
    4.     Residuals and Image Quality
    5.     Source Finding and Detection
    6.     Further Reading and References
  7.     Observing Systems
    1.     Jones Notation
    2.     The Measurement Equation (RIME)
    3.     Analogue Electronics
    4.     Digital Correlators
    5.     Primary Beam
    6.     Polarization and Antenna Feeds
    7.     Propagation Effects
    8.     Radio Frequency Interference (RFI)
    9.     Further Reading and References
  8.     Calibration
    1.     Calibration as a Least Squares Problem
    2.     1GC calibration
    3.     2GC calibration
    4.     3GC calibration
    5.     Further Reading and References
  9. Practical Advice for Reducing a Data Set and Recognizing Errors
    1. Imaging
      1. W-Term Correction
      2. Residual Artefacts
      3. Practical Settings for CLEAN
      4. Primary Beam Correction
      5. Image Quality Assessment
    2. Calibration
      1. Frequency and Time Solution Intervals
      2. Visibility Flagging
      3. Including Direction-Dependent Solutions
    3. Observing
      1. Accumulation interval and smearing
    4. Line observations: calibration and imaging issues
      1. Source finding
      2. Normalization
      3. What now? How do we get to the science?
    5. Continuum observations: calibration and imaging issues
      1. Dynamic Range
      2. Multi-Frequency Synthesis (MFS)
      3. Source Finding
      4. What now? How do we get to the science?

A Note on Software

This book is developed and tested with the following software dependencies (a guide for setting up a virtual environment with the current versions is available in the git repository readme):

  • python 2.7.6
  • ipython 4.2.0
  • numpy 1.10.1
  • matplotlib 1.5.0
  • astropy 1.1.1
  • aplpy 1.0
  • ipywidgets 4.1.1
  • healpy 1.10.3
  • ephem 3.7.6.0

The very first entry in a notebook will import our current standard modules:


In [ ]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from IPython.display import HTML 
HTML('../style/course.css') #apply general CSS

Followed by an optional import of any section specific modules, e.g. :


In [ ]:
import matplotlib.image as mpimg
from IPython.display import Image

If a section contains a significant amount of code, for readability it might be useful to suppress the code and only show the output. To do this an additional code block should be added:


In [ ]:
from IPython.display import HTML
HTML('../style/code_toggle.html')

Style Guide

Mathematical Notation:

A global glossary defines all mathematical notation and useful definitions.

Adhere to the following general mathematical notation:

  1. Vector, scalar and matrix:

    • $a, A$ - Denotes a scalar quantity
    • $\mathbf{A}$, $\boldsymbol{\mathcal{A}}$ - Denotes a matrix
    • $\mathbf{a}$ - Denotes a vector
  2. $2\times2$-Polarized vs. $N\times N$-Unpolarized matrices:

    • $\mathbf{A}$ - Denotes a $2\times2$ polarized Jones matrix. Number a Jones matrix with any other subscript than $N$.
    • $\boldsymbol{\mathcal{A}}$ - Denotes a $N\times N$ unpolarzed matrix (contain all the unpolarized quantities associated with an array in one matrix).
  3. Jones versus Jacobian:

    • Please use $\mathbf{J}$ to denote a Jones matrix and $\mathbb{J}$ to denote a Jacobian matrix.
  4. Fourier transform:

    • Please use $\mathscr{F}\{\cdot\}$ to denote the Fourier transform.
  5. Subscript to avoid ambiguity:

    • If one symbol is used to denote two quantities use a subscript to remove ambiguity. For instance $\lambda$ can mean wavelength or the LM-damping factor. Add a subscript, for instance $\lambda_{\textrm{LM}}$ now refers to to the LM-damping factor, while $\lambda$ still refers to wavelength. Please add any new subscripted symbol to the glossary.

The general list of symbols can be found in the glossary ➞.

If you want to include a specific definition to a word or phase, then italicize the text the first time you use it in a section or chapter and add the term to the glossary.

Notebook and Directory Naming Conventions:

Each chapter is contained in a seperate directory, the directory name has the convention of the chapter number and chapter name, with spaces replaced by underscores, e.g. 6_deconvolution_in_imaging. The directory will only contain notebooks, any data or additional files will be in a seperate global data directory which includes a duplicately named directory for each chapter in which to store the data.

Notebook naming should be prefixed with the chapter number and either a sequential number based on ordering in the chapter. Like directories, the notebook name should be the section name (with underscores to replace spaces), a shortened version of the section is also fine, e.g. the Sky Model section of Chapter 6 would be 6_1_sky_models.ipynb.

Notebook Breadth:

Each chapter is made up of multiple sections, each of which is possibly made up of sub-section, et cetera. To keep notebooks a reasonable and consumable size, a notebook should only contain a single section. For long sections it may be reasonable to further break up a section into multiple notebooks.

Notebook Header:

The beginning of each notebook should with a set of navigation links including a link to the global outline (this notebook), glossary, the chapter specific introduction notebook, the previous section notebook, and the next section notebook. See example section 5.1.

Following the navigation links the standard python modules and any section specific modules should be imported, see 'A Note on Software' above for the current standard module import command. Following these import commands the notebook should start with a heading entry for the notebook with text that corresponds to the outlien text above, see 'Section and Subsection Headings' for sizes below.

Noteboook Footer:

At the end of a notebook, include a link to the next section notebook. If at the end of a chapter, provide a link to the next chapter.

Chapter Introduction:

Each chapter should contain a short introduction notebook which will provide an overview of the topics in the chapter and an outline of the notebooks in the chapter. At the end of the introduction include a list of editors and contributors of the chapter (indicate specific sections).

Chapter Conclusion:

The final notebook of a chapter should contain a section on further reading which contains links to papers and books, it may be useful to write a sentence about why a link is useful. Additionally, there should be a section which contains a list of all the external references noted in the chapter. Further, the conclusion to a chapter must contain a review of the topics covered in the chapter.

Section and Subsection Headings:

In a notebook, section names, e.g. 5.1 Spatial Frequencies, should use the heading size 2. While each subsequent sub-section should increase the heading size, e.g. a sub-section will be size 3, a sub-sub-section will be size 4,...

Emphasizing important points / key points / prerequisites:

For clarity, it is possible to create emphasized point in the course of a paragraph, or a summary of important concepts at the end of a section/chapter. This relies on the use of a common CSS for every user. The CSS style is defined in course.css and will be applied to one notebook upon calling initcss.css_styling(). Those two files are located in the /style dir in the main course dir.

First add these python lines to load the CSS file in the main style directory (might change after some housekeeping/discussion)

from IPython.display import HTML 
HTML('../style/course.css') ##apply general CSS

To write a "warning" text box, one can use in a markdown:

<div class=warn>
<b>Warning:</b> This relation assumes this particular hypothesis  
</div>

To write a note "note" or a piece of advice, use:

<div class=advice>
<b>Advice:</b> Check the homogeneity of your equations !!!
</div>

To create a green summary block:

<p class=conclusion>
  <font size=4> <b>Take-away message</b></font>
  <br>
  <br>
• <b>Conclusion 1</b>: Important item to remember with a specific <em>emphasized</em> word <br><br>
• <b>Conclusion 2</b>: A second important item to remember with a specific <em>emphasized</em> word.
</p>

To create a "Prerequisites"/"To read" header block:

<p class=prerequisites>
  <font size=4> <b>Prerequisites</b></font>
  <br>
  <br>
• <b>Definition of ($u$,$v$,$w$):</b> [Go to 4.1](4_1_The_Baseline.ipynb) <br><br>
• <b>The visibility function:</b> [Go to 4.3](4_3_The_Visibility_Function.ipynb)
</p>

References, Internal and External:

One of the limitations of the ipython notebook is the inability to render equation, figure, and table labels properly. For the moment, we have settled on a consistent, but inelegant standard.

Linking to internal (i.e. within the same notebook) and external (i.e. other notebooks in the book) references will use a dual method of using the standard markdown HREF and a LaTeX style so that dynamic links will work in the notebooks and conversion to PDF via LaTeX will contain references.

Links internal to a notebook references are created by adding the down arrow symbol ⤵ (HTML code &#10549;) as the link, e.g. [hyperlink text &#10549;](#destination). A reference is created by including <a id='destination'></a> where the desired reference desition is to be placed. In addition to the ipython notebook dynamic links LaTeX references should be included with the \label{destination} and \ref{destination} tags. An example of a complete internal reference is

[hyperlink text  ⤵](#destination) <!--\ref{destination}-->

renders as: hyperlink text ⤵

And a complete internal label is

<a id='destination'></a> <!--\label{destination}-->

External links are similar to internal links, but use the right arrow symbol ➞ (HTML code &#10142;) for a link. An example of a reference to another ipython notebook is [hyperlink text &#10142;](another_notebook.ipynb#destination) with a LaTeX tag \ref{destination}. An example of a complete external reference is

[hyperlink text ➞](another_notebook.ipynb#destination) <!--\ref{destination}-->

renders as: hyperlink text ➞

Note, HTML comment tags are wrapped around the Latex label and ref tags to hide them in the notebook.

Citations:

Citations to published work is a little tricky in our setup, we want to create two links. One for if we convert the notebook to latex we should be able to auto-generate a \cite{} tag, see the nbconvert citation⤴ example⤴. And, the other as a hyperlink to a abstract or copy of the paper (e.g. a NASA ADS link). To do this we need to create a link and use the HTML <cite data-cite='bibtexRef'> tag where bibtexRef is the name of the reference in the bibtex file in the chapter directory. An up arrow symbol ⤴ (HTML code &#10548;) is used to denote an external to the book hyperlink. An example of a complete citation is

[<cite data-cite='1999ASPC..180.....T'>Synthesis Imaging in Radio Astronomy II</cite> ⤴](http://adsabs.harvard.edu/abs/1999ASPC..180.....T)

which renders as:

Synthesis Imaging in Radio Astronomy II

Where there is an entry in the bibtex file

@PROCEEDINGS{1999ASPC..180.....T,
    title = "{Synthesis Imaging in Radio Astronomy II}",
booktitle = {Synthesis Imaging in Radio Astronomy II},
     year = 1999,
   series = {Astronomical Society of the Pacific Conference Series},
   volume = 180,
   editor = {{Taylor}, G.~B. and {Carilli}, C.~L. and {Perley}, R.~A.},
   adsurl = {http://adsabs.harvard.edu/abs/1999ASPC..180.....T},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

Reference Naming Conventions:

In order to maintain uniform and informative reference labels we will use a standard naming convention of the form chapterStr:type:uniqueID where chapterStr is a unqiue, descriptive string for a chapter or chapter subsection, type is the type of content beinging labelled, and uniqueID is a unique ID for the content. For example a table in the Imaging chapter which contains information on weights could have the label imaging:tbl:weights. The chapterStr for each chapter is to be defined by the authors. If a section of a chapter is sufficiently large it shoud have its own chapterStr, perhaps with the prefix including the chapter chapterStr. The following are valid strings for type: tbl (table), fig (figure), sec (section), code (code block), eq (equation). The uniqueID is left to the authors, but suggested to contain a simple descriptive string and information on location within the chapter.

Chapter chapterStr
Preface preface
1. Radio Science using Interferometers science
2. Mathematical Groundwork math
3. Positional Astronomy pos
4. Visibility Space vis
5. Imaging imaging
6. Deconvolution in Imaging deconv
7. Observing Systems instrum
8. Calibration cal
9. Putting it all together pract
type value
code code
equation eq
figure fig
section sec
table tbl

Images and Pre-made Figures:

Though, ideally any figure that is included in a notebook can be generated from the code included in the notebook, this is not always possible. The preferred image type is PDF or SVG because these can be rescaled without aliasing issues, but PNG and JPEG can be used. If a figure or image is generated by some set of code, please include a reference or notes to that code so that if it needs to be regenerated then that will be possible. If a figure or image is made with a graphics progams such as Inkscape, GIMP, et cetera please include the working file in the git repository.

To display figures use the Image function, e.g.

Image(filename='figures/sidereal.png', width=300, height=100)

or in HTML in a markdown cell (will center the figure):

<img src='figures/sidereal.png' width=30%>

An include a description block below the figure, which can include a label for referencing.

Figures and Code Blocks:

Below each code block or figure include a cell which contains a description of what is presented, use italics, which in markdown means by starting and ending the text with stars, e.g. *this text would be italized in markdown*. In this block one can include a label for referencing the figure or code block.

3D Figures:

For a 3D figure include

%matplotlib nbagg

in the block to embed the figure in the notebook but allow for interaction.

Equation Blocks:

Equations can be written inline or in individual blocks. If you would like to reference an equation block, follow the label standard defined in 'References, Internal and External' above.

Coding style:

The majority of the code in this notebook is python, so please follow standard Python PEP 8⤴

Committing to git repository:

Notebooks can get very large in size when they contain a number of generated figures. In order to keep the size of the repository down to a reasonable size please clear the output before making a new commit. This is done by selecting Cell > All Output > Clear from the menu at the top of the notebook.

Binary files should be stored in a directory in each chapter, for example images would be stored in a directory called figures.

Crossing out in math mode

In calculus, it might be interesting to show simplifications as follow: $\require{cancel}$

$B=\frac{x \cancel{a} y}{b \cancel{a}}$

To do that, you need to write this in a markdown:

$\require{cancel}$

$\frac{x \cancel{a} y}{b \cancel{a}}$

Please report to the "cancel" package for other crossing-out styles

Known Issues

As this is a working project there are a number of known issues we would like to resolve. If you have a nicer or more efficient solution then please let us know. For the moment, here is a list of known unknowns.

  • Equation numbering does not render, this is due to a built-in setting to ipython notebook. The solution maybe to just hack the config files, see http://www.rbeesoft.com/blog/?p=6
  • There is no built-in spellchecker in the notebook environment. There is a broken aspell notebook extension, maybe it will work soon.