I am working on the file "1_Radio_Science/01_04_radio_regime.ipynb".
The first task is:
1.4 Radio Regime
All of us are familiar with the night sky. In fact, when we think of astronomy, the first picture that comes to mind is that of the star-strewn sky (with a few planets thrown in). People looking at less light-poluted skies are also able to make out details such as the milky band of our own galaxy.
We must remember that this view of the sky is a results of the natural limits of our vision - we can only perceive radiation in a narrow range in wavelength. We can't see beyond infrared or ultraviolet frequencies. This is the reason the earliest advances in astronomy were in visible range - the branch of astronomy known as optical astronomy.
However, over time we have been successful in sampling a large range of the electromagnetic spectrum. On one end is Gamma-ray astronomy, where individual photons have much larger energy than those in the visible range (and correspondingly much higher frequency) but far fewer numbers. On the other end is radio astronomy, where the photons are plentiful, but their individual energy is much smaller, with much smaller frequency than those in the visible range.
The sky at radio frequencies is very different from that at the optical frequncies. Let us take the example of Cygnus A, which is the brightest extragalactic radio source. It is about ~ 230 Mpc (where $1$ Mpc = $10^6$ pc = $3.08\times10^{18}$ m, parsec, denoted by 'pc' is the distance unit of choice for astronomers) away from us. In optical, we see what may seem as a typical sky-field with stars and galaxies:
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_04_radio_regime.ipynb".
The first task is:
Figure 1.2.3.2: Cygnus A, radio and optical view.
The above image is an example of what are called composite images. These are images formed by combining two or more images, generally from different parts of the electromagnetic spectrum. In this example we have combined what we see in radio as well as optical frequencies. The object seen in the radio is Cygnus A, a radio galaxy (the closest such object to us). These are huge objects, generated through the activity happening at the centre of a galaxy, through the agency of a supermassive black hole. The latter creates the jets going in opposite directions to create large blobs of plasma called lobes, which radiate at radio frequncies - and are invisible in other parts of the electromagnetic spectrum. These objects are of cosmological importance; they affect the process of cosmological structure formation at various scales and as such are of great importance in our understanding of the Cosmos.
Another noteworthy case might be that of the M81 system. This is system of three galaxies which form a group (which means they are gravitationally bound). But the extent of the interaction among the group is not clear until one takes a peek at them at radio frequencies:
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_04_radio_regime.ipynb".
The first task is:
Figure 1.2.3.2: Sky in the direction of Cygnus A in optical frequencies. Credits: Digitized Sky Survey ⤴
If we look at it at radio frequencies, however, we see much more detail:
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_04_radio_regime.ipynb".
The first task is:
Figure 1.2.3.3: On right is the optical view of the M81 system, on left the radio one.
In the radio image the bridges containing the three galaxies are clearly visible. This does not show up in optical because the gas which forms the bridge does not emit radiation in optical bands. A similar case is that of the rotation curves. Rotation curves are plots of orbital velocities of stuff in a galaxy, against the radial distance from the centre of the galaxy. The idea is to use the orbital velocity to infer the mass in the galaxy inside the particular radius (we expect $v \propto r^{-1/2}$, in case all the mass is already enclosed inside the radius). In fact, we would expect the orbital velocity to decrease beyond the visible disk, since most of the mass would be inside the radius of the disk. However, in practice we do not see the expected behaviour for the rotation curves- indicating that not all the mass is enclosed within the visible disk. Radio observations of the neutral hydrogen gas, which extends far beyond the visible extent of the galaxy, allow us to trace the rotation curve to large radii. The figure below (courtesy of : https://en.wikipedia.org/wiki/Galaxy_rotation_curve) illustrates the measurements through 'optical' (stars) and 'radio' (21 cm) measurements:
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_04_radio_regime.ipynb".
The first task is:
Import section specific modules:
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_06_synchrotron_emission.ipynb".
The first task is:
1.6.1 Synchrotron Emission:
Sychrotron emission is one of the most commonly encountered forms of radiation found from astronomical radio sources. This type of radiation originates from relativistic particles get accelerated in a magnetic field.
An understanding of generation of Synchrotron emission depends fundamentally on special relativistic effects. Here we wil not go into the details; but try to give an (somewhat handwaving) idea of the underlying physics. An accelerating charge emitts radiation (as we have seen in section 1.2.1) - here the acceleration is done through the ambient magnetic fields. The non-relativistic Larmor formula for the radiated power is:
$$P= \frac{2}{3}\frac{q^{2}a^{2}}{c^{3}}$$.
Since the acceleration is a result of the magnetic fields, we get:
$$P=\frac{2}{3}\frac{q^{2}}{c^{3}}\frac{v_{\perp}^{2}B^{2}q^{2}}{m^{2}} \qquad$$
where $v_{\perp}$ is the component of velocity of the particle perpendicular to the magnetic field, $m$ is the mass of the charged particle, $q$ is it's charge and $a$ is the acceleration it is undergoing. This is essentially the cyclotron radiation. The relativistic effects modify this into :
$$P = \gamma^{2} \frac{2}{3}\frac{q^{2}}{c^{3}}\frac{v_{\perp}^{2}B^{2}q^{2}}{m^{2}c^{2}} = \gamma^{2} \frac{2}{3}\frac{q^{4}}{c^{3}}\frac{v_{\perp}^{2}B^{2}}{m^{2}c^{2}} \qquad ,$$
where $$\gamma = \frac{1}{\sqrt{1+v^{2}/c^{2}}} = \frac{E}{mc^{2}} \qquad ,$$
is a measure of the energy of the particle. For particles to be considered relativistic and ultrarelativistic, $\gamma >> 1$, typically with a value of $100-1000$. Since $v_{\perp}=vsin\alpha$, with $\alpha$ being the angle between the magnetic field and the velocity of the particle, the radiated power can be written as:
$$P=\gamma^{2} \frac{2}{3}\frac{q^{4}}{c^{3}}\frac{v^{2}B^{2}sin\alpha^{2}}{m^{2}c^{2}} \qquad .$$
From this equation it can be seen that the total power radiated by the particle depends on the strength of the magnetic field and that the higher the energy of the particle, the more the power it...
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_06_synchrotron_emission.ipynb".
The first task is:
Import section specific modules:
Can you write Python code for it?

from IPython.display import Image

HTML('../style/code_toggle.html')


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
1.9 A brief introduction to interferometry and its history
1.9.1 The double-slit experiment
The basics of interferometry date back to Thomas Young's double-slit experiment ⤴ of 1801. In this experiment, a plate pierced by two parallel slits is illuminated by a monochromatic source of light. Due to the wave-like nature of light, the waves passing through the two slits interfere, resulting in an interference pattern, or fringe, projected onto a screen behind the slits:
<img src="figures/514px-Doubleslit.svg.png" width="50%"/>
Figure 1.9.1: Schematic diagram of Young's double-slit experiment. Credit: Unknown.
The position on the screen $P$ determines the phase difference between the two arriving wavefronts. Waves arriving in phase interfere constructively and produce bright strips in the interference pattern. Waves arriving out of phase interfere destructively and result in dark strips in the pattern.
In this section we'll construct a toy model of a dual-slit experiment. Note that this model is not really physically accurate, it is literally just a "toy" to help us get some intuition for what's going on. A proper description of interfering electromagnetic waves will follow later.
Firstly, a monochromatic electromagnetic wave of wavelength $\lambda$ can be described by at each point in time and space as a complex quantity i.e. having an amplitude and a phase, $A\mathrm{e}^{\imath\phi}$. For simplicity, let us assume a constant amplitude $A$ but allow the phase to vary as a function of time and position.
Now if the same wave travels along two paths of different lengths and recombines at point $P$, the resulting electric field is a sum:
$E=E_1+E_2 = A\mathrm{e}^{\imath\phi}+A\mathrm{e}^{\imath(\phi-\phi_0)},$
where the phase delay $\phi_0$ corresponds to the pathlength difference $\tau_0$:
$\phi_0 = 2\pi\tau_0/\lambda.$
What is actually "measured" on the screen, the brightness, is, physically, a time-averaged electric field intensity $EE^$, where the $^$ represents complex conjugation (this exactly what our...
Can you write Python code for it?

def double_slit (p0=[0],a0=[1],baseline=1,d1=5,d2=5,wavelength=.1,maxint=None):
    """Renders a toy dual-slit experiment.
    'p0' is a list or array of source positions (drawn along the vertical axis)
    'a0' is an array of source intensities
    'baseline' is the distance between the slits
    'd1' and 'd2' are distances between source and plate and plate and screen
    'wavelength' is wavelength
    'maxint' is the maximum intensity scale use to render the fringe pattern. If None, the pattern
       is auto-scaled. Maxint is useful if you want to render fringes from multiple invocations
       of double_slit() into the same intensity scale, i.e. for comparison.
    """
    ## setup figure and axes
    plt.figure(figsize=(20, 5))
    plt.axes(frameon=False)
    plt.xlim(-d1-.1, d2+2) and plt.ylim(-1, 1)
    plt.xticks([]) and plt.yticks([])
    plt.axhline(0, ls=':')
    baseline /= 2.
    ## draw representation of slits
    plt.arrow(0, 1,0, baseline-1, lw=0, width=.1, head_width=.1, length_includes_head=True)
    plt.arrow(0,-1,0, 1-baseline, lw=0, width=.1, head_width=.1, length_includes_head=True)
    plt.arrow(0, 0,0,  baseline,  lw=0, width=.1, head_width=.1, length_includes_head=True)
    plt.arrow(0, 0,0, -baseline,  lw=0, width=.1, head_width=.1, length_includes_head=True)
    ## draw representation of lightpath from slits to centre of screen
    plt.arrow(0, baseline,d2,-baseline, length_includes_head=True)
    plt.arrow(0,-baseline,d2, baseline, length_includes_head=True)
    ## draw representation of sinewave from the central position
    xw = np.arange(-d1, -d1+(d1+d2)/4, .01)
    yw = np.sin(2*np.pi*xw/wavelength)*.1 + (p0[0]+p0[-1])/2
    plt.plot(xw,yw,'b')
    ## 'xs' is a vector of x cordinates on the screen
    ## and we accumulate the interference pattern for each source into 'pattern'
    xs = np.arange(-1, 1, .01)
    pattern = 0
    total_intensity = 0
    ## compute contribution to pattern from each source position p
    for p,a in np.broadcast(p0,a0):
        plt.plot(-d1, p,...


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
And here's the same experiment for two sources:
Can you write Python code for it?

interact(lambda position1,position2,intensity1,intensity2,baseline:
            michelson(p0=[position1,position2], a0=[intensity1,intensity2], baseline=baseline, maxint=2),
         position1=(-5,5,.01), position2=(-5,5,.01), intensity1=(.2,1,.01), intensity2=(.2,1,.01),
         baseline=(10,100,.01)) and None


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
Import section specific modules:
Can you write Python code for it?

from IPython.display import display
from ipywidgets import interact

HTML('../style/code_toggle.html')


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
In fact historically, this was the first application of interferometry in astronomy. In a famous experiment in 1920, a Michelson interferometer installed at Mount Wilson Observatory was used to measure the diameter of the red giant star Betelgeuse.

The historical origins of the term visibility, which you will become intimately familiar with in the course of these lectures, actually lie in the experiment described above. Originally, "visibility" was defined as just that, i.e. a measure of the contrast between the light and dark stripes of the interference pattern.

Modern interferometers deal in terms of complex visibilities, i.e. complex quantitities. The amplitude of a complex visibility, or visibility amplitude, corresponds to the intensity of the interference pattern, while the visibility phase corresponds to its relative phase (in our simulator, this is the phase of the fringe at the centre of the screen). This one complex number is all the information we have about the light source. Note that while our double-slit experiment shows an entire pattern, the variation in that pattern across the screen is entirely due to the geometry of the "box" (generically, this is the instrument used to make the measurement) -- the informational content, as far as the light source is concerned, is just the amplitude and the phase!

In the single-source simulations above, you can clearly see that amplitude encodes source shape (and intensity), while phase encodes source position. Visibility phase measures position, amplitude measures shape and intensity. This is a recurring theme in radio interferometry, one that we'll revisit again and again in subsequent lectures.

Note that a size measurement is a lot simpler than a position measurement. The phase of the fringe pattern gives us a very precise measurement of the position of the source relative to the optical axis of the instrument. To...
Can you write Python code for it?

interact(lambda d1,d2,position,extent: double_slit(p0=np.arange(position-extent,position+extent+.01,.01),d1=d1,d2=d2),
         d1=(1,5,.1),d2=(1,5,.1),
         position=(-1,1,.01),extent=(0,1,.01)) and None


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
Note that long baselines are very sensitive to change in source position, while short baselines are less sensitive. As we'll learn in Chapter 4, the spatial resolution (i.e. the distance at which we can distinguish sources) of an interfrometer is given by $\lambda/B$ , while the spatial resolution of a conventional telescope is given by $\lambda/D$, where $D$ is the dish (or mirror) aperture. This is a fortunate fact, as in practice it is much cheaper to build long baselines than large apertures!
On the other hand, due to the periodic nature of the interference pattern, the position measurement of a long baseline is ambiguous. Consider that two sources at completely different positions produce the same interference pattern:
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
Now, let us simulate an extended source, by giving the simulator an array of closely spaced point-like sources. Try playing with the extent slider. What's happening here is that the many interference patterns generated by each little part of the extended source tend to "wash out" each other, resulting in a net loss of amplitude in the pattern. Note also how each particular baseline length is sensitive to a particular range of source sizes.
Can you write Python code for it?

interact(lambda extent,baseline,wavelength:
             double_slit(p0=np.arange(-extent,extent+.01,.01),baseline=baseline,wavelength=wavelength),
         extent=(0,1,.01),baseline=(0.1,2,.01),wavelength=(.01,.2,.01)) and None


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
On the other hand, using a shorter baseline resolves the ambiguity:
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
This function draws a double-slit setup, with a light source at position $p$ (in fact the function can render multiple sources, but we'll only use it for one source for the moment). The dotted blue line shows the optical axis ($p=0$). The sine wave (schematically) shows the wavelength. (Note that the units here are arbitrary, since it is only geometry relative to wavelength that determines the results). The black lines show the path of the light waves through the slits and onto the screen at the right. The strip on the right schematically renders the resulting interference pattern, and the red curve shows a cross-section through the pattern.
Inside the function, we simply compute the pathlength difference along the two paths, convert it to phase delay, and render the corresponding interference pattern.

Warning: Once again, let us stress that this is just a "toy" rendering of an interferometer. It serves to demonstrate the basic principles, but it is not physically accurate. In particular, it does not properly model diffraction or propagation. Also, since astronomical sources are effectively infinitely distant (compared to the size of the interferometer), the incoming light rays should be parallel (or equivalently, the incoming wavefront should be planar, as in the first illustration in this chapter).

1.9.3 Playing with the baseline
First of all, note how the properties of the interference pattern vary with baseline $B$ (the distance between the slits) and wavelength $\lambda$. Use the sliders below to adjust both. Note how increasing the baseline increases the frequency of the fringe, as does reducing the wavelength.
Can you write Python code for it?

interact(lambda baseline,wavelength:double_slit(p0=[0],baseline=baseline,wavelength=wavelength),
                baseline=(0.1,2,.01),wavelength=(.05,.2,.01)) and None


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
This simple fact has led to many other applications for interferometers, from geodetic VLBI (where continental drift is measured by measuring extremely accurate antenna positions via radio interferometry of known radio sources), to the recent gravitational wave detection by LIGO (where the light source is a laser, and the interference pattern is used to measure miniscule distortions in space-time -- and thus the geometry of the interferometer -- caused by gravitational waves).
1.9.5 Practical interferometers
If you were given the job of constructing an interferometer for astronomical measurements, you would quickly find that the double-slit experiment does not translate into a very practical design. The baseline needs to be quite large; a box with slits and a screen is physically unwieldy. A more viable design can be obtained by playing with the optical path.
The basic design still used in optical interferometry to this day is the Michelson stellar interferometer mentioned above. This is schematically laid out as follows:

Figure 1.9.2: Schematic of a Michelson interferometer. Credit: Unknown.
The outer set of mirrors plays the role of slits, and provides a baseline of length $d$, while the rest of the optical path serves to bring the two wavefronts together onto a common screen. The first such interferometer, used to carry out the Betelgeuse size measurement, looked like this:

Figure 1.9.3: 100-inch Hooker Telescope at Mount Wilson Observatory in southern California, USA. Credit: Unknown.
In modern optical interferometers using the Michelson layout, the role of the "outer" mirrors is played by optical telescopes in their own right. For example, the Very Large Telescope operated by ESO can operate as an inteferometer, combining four 8.2m and four 1.8m individual telescopes:

Figure 1.9.4: The Very Large Telescope...
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
We have modified the setup as follows. First, the source is now infinitely distant, so we define the source position in terms of the angle of arrival of the incoming wavefront (with 0 meaning on-axis, i.e. along the vertical axis). We now define the baseline in terms of wavelengths. The phase difference of the wavefront arriving at the two arms of the interferometer is completely defined in terms of the angle of arrival. The two "rays" entering the outer arms of the interferometer indicate the angle of arrival.
The rest of the optical path consists of a series of mirrors to bring the two signals together. Note that the frequency of the fringe pattern is now completely determined by the internal geometry of the instrument (i.e. the distances between the inner set of mirrors and the screen); however the relative phase of the pattern is determined by source angle. Use the sliders below to get a feel for this.
Note that we've also modified the function to print the "visibility", as originally defined by Michelson.
Can you write Python code for it?

# single source
interact(lambda position, intensity, baseline:
             michelson(p0=[position], a0=[intensity], baseline=baseline, maxint=2),
         position=(-5,5,.01),intensity=(.2,1,.01),baseline=(10,100,.01)) and None


I am working on the file "1_Radio_Science/01_09_a_brief_introduction_to_interferometry.ipynb".
The first task is:
With a larger number of baselines, we can gather enough information to reconstruct an image of the sky. This is because each baseline essentially measures one Fourier component of the sky brightness distribution (Chapter 4 will explain this in more detail); and once we know the Fourier components, we can compute a Fourier transform in order to recover the sky image. The advent of sufficiently powerful computers in the late 1960s made this technique practical, and turned radio interferometers from exotic contraptions into generic imaging instruments. With a few notable exceptions, modern radio interferometry is aperture synthesis.
This concludes our introduction to radio interferometry; the rest of this course deals with aperture synthesis in detail. The remainder of this notebook consists of a few more interactive widgets that you can use to play with the toy dual-slit simulator.
Appendix: Recreating the Michelson interferometer
For completeness, let us modify the function above to make a more realistic interferometer. We'll im plement two changes:

we'll put the light source infinitely far away, as an astronomical source should be

we'll change the light path to mimic the layout of a Michelson interferometer.
Can you write Python code for it?

def michelson (p0=[0],a0=[1],baseline=50,maxbaseline=100,extent=0,d1=9,d2=1,d3=.2,wavelength=.1,fov=5,maxint=None):
    """Renders a toy Michelson interferometer with an infinitely distant (astronomical) source
    'p0' is a list or array of source positions (as angles, in degrees).
    'a0' is an array of source intensities
    'extent' are source extents, in degrees
    'baseline' is the baseline, in lambdas
    'maxbaseline' is the max baseline to which the plot is scaled
    'd1' is the plotted distance between the "sky" and the interferometer arms
    'd2' is the plotted distance between arms and screen, in plot units
    'd3' is the plotted distance between inner mirrors, in plot units
    'fov' is the notionally rendered field of view radius (in degrees)
    'wavelength' is wavelength, used for scale
    'maxint' is the maximum intensity scale use to render the fringe pattern. If None, the pattern
       is auto-scaled. Maxint is useful if you want to render fringes from multiple invocations
       of michelson() into the same intensity scale, i.e. for comparison.
    """
    ## setup figure and axes
    plt.figure(figsize=(20, 5))
    plt.axes(frameon=False)
    plt.xlim(-d1-.1, d2+2) and plt.ylim(-1, 1)
    plt.xticks([])
    # label Y axis with degrees
    yt,ytlab = plt.yticks()
    plt.yticks(yt,["-%g"%(float(y)*fov) for y in yt])
    plt.ylabel("Angle of Arrival (degrees)")
    plt.axhline(0, ls=':')
    ## draw representation of arms and light path
    maxbaseline = max(maxbaseline,baseline)
    bl2 = baseline/float(maxbaseline)    # coordinate of half a baseline, in plot units
    plt.plot([0,0],[-bl2,bl2], 'o', ms=10)
    plt.plot([0,d2/2.,d2/2.,d2],[-bl2,-bl2,-d3/2.,0],'-k')
    plt.plot([0,d2/2.,d2/2.,d2],[ bl2, bl2, d3/2.,0],'-k')
    plt.text(0,0,'$b=%d\lambda$'%baseline, ha='right', va='bottom', size='xx-large')
    ## draw representation of sinewave from the central position
    if isinstance(p0,(int,float)):
        p0 = [p0]
    xw = np.arange(-d1, -d1+(d1+d2)/4, .01)
    yw =...


I am working on the file "1_Radio_Science/01_10_limits_of_single_dishes.ipynb".
The first task is:
1.10.2 Physical limitations of single dishes
There are certain physical limitations to account for when designing single dish radio telescopes. As an example, consider that, due to its limited field of view and the rotation of the earth, an antenna will have to track a source on the sky to maintain a constant sensitivity. In principle this can be achieved by mounting the antenna on a pedestal and mechnically steering it with a suitable engines. However, in order to maintain the integrity of the antenna, the control systems for these engines need to be incredibly precise. Clearly, this gets harder as the size of the instrument increases and will constitute a critical design point on the engineering side. This is true in the optical case as well, but it easier to manage as the telescope is physically smaller.
There is an upper limit on how large we can build steerable single dish radio telescopes. This is because, just like everything else, the metals that these telescopes are made out of can only withstand finite amounts of stress and strain before deforming. Perhaps one of the greatest reminders of this fact came in 1988 with the <cite data-cite='2008ASPC..395..323C'>collapse of the 300 foot Green Bank Telescope</cite> ⤴ (see Figure 1.10.4). Clearly, large steerable telescopes run the risk of collapsing under their own weight. The 100 meter Green Bank Telescope (GBT) which replaced the 300 foot telescope is the largest steerable telescope in the world.
Larger single dish apertures can still be reached though. By leaving the reflector fixed and allowing the receiver at the focus to move along the focal plane (or along the caustic) of the instrument will mimic a slowly varying pointing in the sky (a so called steerable focus telescope). Indeed, this is how the Arecibo Observatory radio telescope (see Figure 1.10.5) operates. However, steerable focus telescopes come with limitations of their own (e.g. material cost and available space). In order to overcome these physical limations and acheive a higher...
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.1: 26 meter dish at HartRAO, South Africa used for single dish observations and as part of interferometric VLBI networks. Credit: M Gaylard / HartRAO⤴
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.2: LOFAR LBA dipole element. Credit: KAIRA/D. McKay-Bukowski⤴
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.4a: 300 foot Green Bank Telescope located in West Virgina, USA during initial operations in 1962. Credit: NRAO⤴
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.4b: November, 1988, a day after the collapse of the 300 foot GBT telescope due to structural defects. Credit: NRAO⤴
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.6a: A simple dish telescope which reflects incoming plane waves (red dashed) along ray tracing paths (cyan) to a receptor at the focal point of the parabolic dish.
Ignoring real world effects like aperture blockage and reflector inefficiencies, plane waves are focused to a single point using a parabolic reflector. At that focus if a signal receptor. We can imagine the reflector is made up of many smaller reflectors, each with its own reflection path. A single dish, in the limit of fully sampling the observing wavelength $\lambda$, can be thought of as being made up of enough reflectors of diameter $\lambda/2$ to fill the collecting area of the dish. In our simple example, we just break the dish into 8 reflectors (Figure 1.10.6b). This is in fact what is often done with very large telescopes when it is not feasible to build a single large mirror, such as in the W. M. Keck Observatory. At this point we have not altered the telescope, we are just thinking about the reflector as being made up of multiple smaller reflectors.

Note: We can interpret a single dish telescope as a *continuous interferometer* by applying the Wiener-Khinchin theorem. See Chapter 2 of [Interferometry and Synthesis in Radio Astronomy ⤴](http://adsabs.harvard.edu/abs/2007isra.book.....T) for an in depth discussion.

Can you write Python code for it?


I am working on the file "1_Radio_Science/01_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.6b: The dish reflector can be thought of as being made up of multiple smaller reflectors, each with its own light path to the focus.
Now instead of capturing all the signal at a single point, there is no reason we can not capture the signal at the smaller, individual reflector focus points. If that signal is captured, we can digitally combine the signals at the main focus point later (Figure 1.10.6c). This is the first trick of interferometry. Radio waves can be sufficiently sampled in time digital record the signals (this becomes more difficult at higher frequencies, and not possible in the near-infrared and higher). The cost is that a receptor needs to be built for each sub-reflector, and additional hardware is required to combine the signals. The dish optically combines the light, we are just doing the same digitally.
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_10_limits_of_single_dishes.ipynb".
The first task is:
Import section specific modules:
Can you write Python code for it?

import ipywidgets
from IPython.display import Image

HTML('../style/code_toggle.html')


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
1.11 Modern Interferometric Arrays
In the previous sections of this chapter we have covered the motivation for using interferometry to make measurements, the observable astrophysics and cosmology in the radio regime, and why interferometry is used in radio astronomy. This final section provides an overview of some of the interferometric arrays currently in use, the science goals of these projects, and future arrays in development.
As the scale and cost of science in physics has grown there is a drive for international collaboration to pool  resources in order to build large, multi-purpose arrays. These arrays are meant to run as long term observatories with astronomers requesting time for a proposed projects. The prime example of this type of array is the future Square Kilometre Array (SKA). Another array type is an ad-hoc array such as in very-long baseline interferometry (VLBI) where single dish telescopes (or beamformed arrays) from all over the world are combined (via a signal recorder) for an observation. The recorded signals are later sent to a correlator to create an interferometric observation. There are also experiment-driven arrays which are focused on a single experimental outcome with a limited lifetime. Many of the Epoch of Reionization (EoR) arrays follow this model.
1.11.1 Karoo Array Telescope (MeerKAT/KAT-7)
MeerKAT, and it's precursor KAT-7, is an South African developed observatory located in the Northern Cape of South Africa. MeerKAT will be a one of the premier telescope arrays and be central to the development of the Square Kilometre Array (SKA).
The Karoo Array Telescope, or KAT-7, is a 7 dish intereferometric array. It was designed as a prototype system for the MeerKAT array (currently in construction and commissioning). KAT-7 was constructed from 2009 to 2011, and will remain running for the near future. Designed primarily as an engineering prototype it has also been used for science observations. Much of this book uses KAT-7 examples as it is simple enough to understand yet was...
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.10.3: MeerKAT offset-Gregorian telescope, without the feed system instelled. Credit: SKA South Africa⤴
The 13.5 meter MeerKAT dish is markedly different from the prime-focus KAT-7 design. The MeerKAT dish has offset Gregorian optics, the results in a 'better' beam pattern. Different optics and beam patterns is discussed in Chapter 7. This optics design will be the basis for the mid-frequency SKA dishes.
| Dish Specifications |
|:---:|:---:|
| Optics | Offset Gregorian |
| Diameter | 13.5 m|
| $\Delta \theta_{1.4 GHz}$ | 1.09 deg |
There are currently two tested receiver bands for MeerKAT, and L-Band receiver similar to KAT-7 and a lower frequency Ultra High Frequency (UHF) receiver. Both recevier bandwidths are fully sampled by the digital hardware leading to an instantaneous bandwidth which is larger than the total bandwidth. We only consider the total bandwidth as the digital bandwidth will sample a region of the frequency band with no signal as those regions have been filtered out.
| Receivers |
|:---:|:---:|:---:|
| Band | UHF | L |
| $T_{sys}$ | $< 38 K$ | $< 30 K$ |
| Start Frequency | 580 MHz | 900 MHz |
| Stop Frequency | 1015 MHz | 1670 MHz |
| Total Bandwidth | 435 MHz | 770 MHz |
| Instantaneous Bandwidth | 544 MHz | 856 MHz |
| Fractional Bandwidth | 0.55 | 0.6 |
| Polarization | Dual Linear | Dual Linear |
The MeerKAT array layout follows a random distribution with a dense core. The randomness imrpoves the $uv$ coverage while the dense core is desirable for many of the science goals. The array core, shown below, is currently being populated with dishes and receiver systems.
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.10: Low-Band Array (LBA) 'droopy' dipole antenna elements. These elements are combined as an aperture array to function as an electronically-steerable telescope. Credit: ASTRON⤴
LOFAR operates in different observing modes⤴ depending on the project. The station configuration varies depending on if the station is located in the core, the Netherlands, or at international locations, details on the station layout can be found here⤴.
At low frequencies the system temperature is dominated by the sky temperature, this allows for cheap, room temperature components to be used as this will result in a relatively small increase in the system noise. The response of the antenna elements varies over the large fractional observing bandwidth which resulting in a sensitivity⤴ which depends on observing frequency and pointing.
| Recievers |
|:---:|:---:|
| Band | LBA | HBA-Low | HBA-High |
| Start Frequency | 0 MHz | 100 MHz | 200 MHz |
| Stop Frequency | 100 MHz | 200 MHz | 250 MHz |
| Total Bandwidth | 100 MHz |100 MHz | 50 MHz |
| Instantaneous Bandwidth | 96 MHz | 96 MHz | 96 MHz |
| Fractional Bandwidth | 2 | 0.67 | 0.22 |
| Polarization | Dual Linear | Dual Linear | Dual Linear |
As of February 2016 there was 45 stations in operation, but the modular station design allows for more stations to be build. The majority of the stations are located in the Netherlands (see figure below). The international stations allow for high resolution interferometric observations.
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.11: LOFAR station locations and status as of October 2015. The core and superterp are located near Exloo, Netherlands. Credit: ASTRON/George Heald⤴
LOFAR is a unique array as it operates in a frequency band which has been under-observed in the past. It complements higher frequency arrays (like the JVLA). It is currently in an observing schedule focused on the selected key science projects⤴.
1.11.5 Atacama Large Millimeter/submillimeter Array (ALMA)
Going in the other frequency direction to LOFAR is Atacama Large Millimeter/submillimeter Array (ALMA)⤴ which is a high frequency array located in the Atacama Desert in Chile at around 5000 meters. This elevation is useful for high frequency (> 50 GHz) radio astornomy as the water vapor in the atmosphere and tropospheric effects have detrimental effects on observations. ALMA is a collaboration between the NRAO in the US, NAOJ in Japan, and ESO in Europe.
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.13: ALMA core layout on the Chajnantor Plateau in Chile, made up of 12 m and 7 m telescopes, some of the telescopes can be repositioned to change the visibility sampling, similar to the VLA. Credit: ALMA (ESO/NAOJ/NRAO), O. Dessibourg⤴
Much of this book focuses on lower frequency interferometry, but the same principles apply to doing interferometry with an array like ALMA. The fundamentals remain true for all interferometric arrays, though the details change.
1.11.6 VLBI Networks
Moving beyond the purpose built arrays we have covered so far there are also interferometry networks. The idea behond a network is that multiple telescopes which normally operate in a single-dish observation mode can observe the same position in the sky and record the signals at the same time. These signals are then sent to a central location where they are correlated to produce visibilities. This ad-hoc network design is most widely used in very long baseline interferometry (VLBI) which uses telescopes from all over the world to create a synthesized telescope on the scales of the Earth. VLBI can be used to perform the highest resolution astronomy such as measuring the size-scale of super-massive black holes at the centre of galaxies (Event Horizon Telescope⤴, BlackHoleCam⤴).
VLBI is incredibly difficult to do, as it requires very accurate knowledge about time and positions of the telescopes. These telescopes are on different in different parts of the world, and though we may think of land and continents as being static, they are, of course, moving at rates of millimeters per year. These movements are taken into account with VLBI observations along with many other details. It is truly an engineering and scientific feat.
There are multiple VLBI networks, and they vary in size scale from the scale of a country (eMERLIN⤴) to supa-continental (EVN⤴, VLBA⤴). For example, the European VLBI Network (EVN) includes most major radio telescopes in Europe but also includes ttelescopes in...
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.15: PAPER Epoch of Reionization experiment redundant array configuration, located in the Northern Cape, South Africa. Each element is a dual-polarization dipole with a mesh reflecting surface. Credit: SKA South Africa⤴
1.11.8 Baryon Acoustic Oscillations Arrays
Another type of experiment-driven array are Brayonic Acoustic Oscillations (BAO) intensity mapping arrays. Similar to EoR arrays, these arrays will attempt to use the redshifted Hydrogen 21 cm line as a tracer. Where the EoR experiements aim to use the 21 cm line to measure the evolution of the universe during the epoch of reionization, the BAO experiments will use the 21 cm line to measure the structure of the Baryonic Acoustic Oscillations which are related to the scales of the early universe structures. This is typically done in the 400 MHz to 800 MHz band. These experiments are mostly in the planning stage still, but Canadian Hydrogen Intensity Mapping Experiment (CHIME)⤴ has finished construction and is undergoing commissioning. CHIME uses a series of cylinders (a design which has seen a renewed interest recently) to have a significant collecting area while not being overly expensive. As the BAOs are large scale structures which are present in every direction in the sky the actual pointing does not matter when attampting a statistical measurement.
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.5: JVLA cassegrain-focus telescope. In the foreground are tracks used to move telescopes to different positions. Credit: Wikimedia Commons⤴
The 25 meter JVLA dishes use a Cassegrain optical system for most of the receivers (though a low-frequency receiver is at the focal point). Cassegrain optics uses a secondary reflector, at the focal point to redirect the signal to the recievers at the base of the dish.
| Dish Specifications |
|:---:|:---:|
| Optics | Cassegrain |
| Diameter | 25 m|
| $\Delta \theta_{1.4 GHz}$ | 0.59 deg |
There are numerous receiver systems⤴, all circular polarization, on each telescope which are cycled through depending on the observation and configuration schedule. The receivers cover most of the frequency range⤴ between 58 MHz and 50 GHz. Correlation of visibilities is done with the flexible WIDAR⤴ correlator. As there are many frequency bands and different correlion options the bandwidth parameters are not included in the table below.
| Receivers |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| Band | 4 | P | L | S | C | X | Ku | K | Ka | Q |
| SEFD | 10000+ Jy | 2790 Jy | 420 Jy | 370 Jy | 310 Jy | 250 Jy | 350 Jy | 560 Jy | 710 Jy | 1260 Jy |
| Start Frequency | 58 MHz | 230 MHz | 1 GHz | 2 GHz | 4 GHz | 8 GHz | 12 GHz | 18 GHz | 26.5 GHz | 40 GHz |
| Stop Frequency | 84 MHz | 470 MHz | 2 GHz | 4 GHz | 8 GHz | 12 GHz | 18 GHz | 26.5 GHz| 40 GHz | 50 GHz |
| Total Bandwidth | 26 MHz | 240 MHz | 1 GHz | 2 GHz | 4 GHz | 4 GHz | 6 GHz | 8.5 GHz | 13.5 GHz | 10 GHz |
| Polarization | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular |
The sensitivity⤴ of receivers is presented in System Equivalent Flux Density (SEFD) which is a function of the system temperature $T_{sys}$ and the efficiency of the telescope $\eta$. Part of the efficiency measurment is the reflectivity of the dish, at higher frequencies the...
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.7: ASKAP phased-array feed telescope. Credit: CSIRO⤴
At the prime focus of each dish is a PAF which is used to form multiple 'beams' and increase the effective field of view of the dish. The dish mount has a 'third-axis' which corrects for the rotation of the PAF due to change in parallactic angle. This axis is necessary to keep the PAF 'beams' fixed to a position in the sky. The details of PAFs are not covered in this book, for those interested see the <cite data-cite='mailloux2005phased'>Phased Array Antenna Handbook</cite> ⤴.
| Dish Specifications |
|:---:|:---:|
| Optics | Prime Focus |
| Diameter | 12 m|
| $\Delta \theta_{1.4 GHz}$ | 1.22 deg |
The PAFs operate at L-band, they have a higher system temperature and smaller bandwidth coverage compared to MeerKAT, but can make up for this in survey science by covering a larger field of view for a fixed time.
| Receivers |
|:---:|:---:|
| Band | L |
| $T_{sys}$ | $50 K$ |
| Start Frequency | 700 MHz |
| Stop Frequency | 1800 MHz |
| Total Bandwidth | 1100 MHz |
| Instantaneous Bandwidth | 300 MHz |
| Fractional Bandwidth | 0.18 - 0.35 |
| Polarization | Dual Linear |
The phased-array feeds have been upgraded to a second generation version, which has greatly reduced the system temperature compared to the first generation. Below is a close-up of the first generation 'checker board' PAF. The  green panel is an active component which is used to form multiple digital beams.
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.8: Close up of the mark-I phased-array feed on ASKAP. Credit: CSIRO/David McClenaghan⤴
ASKAP is made up of 36 elements, with a similar minimum and maximum baseline distribution to MeerKAT. The layout of the array can be found here⤴.
| Array Specifications |
|:---:|:---:|
| Number of Elements | 36 |
| Min Baseline | 37 m |
| Min $\Delta \theta_{1.4 GHz}$ | 0.39 deg |
| Max Baseline | 6 km |
| Max $\Delta \theta_{1.4 GHz}$ | 8.8" |
Again, similar to MeerKAT there are a number of survey science projects⤴ planned for when the array has been commissioned.
1.11.4 The Low-Frequency Array (LOFAR)
Stepping away from traditional dish-based interferometry we will take a look at the Low-Frequency Array (LOFAR)⤴ which was designed and build by the Dutch national astronomy research foundation ASTRON. This is a unique array as it is made up of stations instead of dish telescopes. Each station is made up of simple antenna elements and beamformed to act as a single telescope. These stations are called aperture arrays. They have the advantage of being 'electronically-steerable' which means that without any physical moving parts the aperture array can be 'pointed' in any direction in the sky. This is possible using the station digital electronics. This technique allows the aperture array to be pointed in multiple locations at the same time, something not possible with a dish optics system. LOFAR operates at a low frequency (< 250 MHz) compared to the arrays we have discussed so far. As such it has opened up a new region of the observable parameter space.
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.9: Aperture array LOFAR-UK⤴ international station at Chilbolton Observatory. The High-Band Array (black flat structure in the top-left) made up of 96 titles, each tile is composed of 16 'bowtie' dual-polarization dipole elements. The Low-Band Array (square patches in the foreground) is made up of 96 dual-polarization 'droopy' dipole elements (see figure below). The digital electornics to 'point' the stations is located in the small grey bunker. Credit: LOFAR-UK/D. McKay-Bukowski⤴
Each station contains two arrays. The High-Band Array (HBA) operates from 100 MHz to 250 MHz, and is made up of 'tile' elements. These tile elements are themselves made up of 16 'bowtie' dipole antenna elements. The signals from each bowtie is combined via an electronic beamformer, the titles are then further beamformed into a single signal. This signal is sent to a central correlation and computing cluster in the Neatherlands. The Low-Band Array (LBA) operates from 0 to 100 MHz and is made up of 'droopy' dipole elements (shown below). Similar to the HBA the signal from all the elements is beamformed and sent to the main computing centre. The station can also act as indepenedent array and interferometry can be done using only the station elements.
Can you write Python code for it?


I am working on the file "1_Radio_Science/01_11_modern_interferometric_arrays.ipynb".
The first task is:
Import section specific modules:
Can you write Python code for it?

import matplotlib.image as mpimg
from IPython.display import Image

HTML('../style/code_toggle.html')


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
1.10 The Limits of Single Dish Astronomy
In the previous section ➞ of this chapter we introduced the concepts and historical background of interferometry.  Earlier in the chapter we presented some of the basic astrophysical sources which emit in the radio spectrum. In this section we will try to answer why we need to use interferometry in radio astronomy. A related question we will try to answer is why we can not just use a single telescope as is done in traditional optical astronomy.
Single telescopes are used in radio astronomy, and provide complimentary observational data to that of interferometric arrays. Astronomy with a single radio telescope is often called single dish astronomy as the telescope usually has a dish reflector (Figure 1.10.1). This dish is usually parabolic, but other shapes are also used, as it allows for the focusing of light to a single focal point where a receiver is placed - among other instruments this could be a camera in the optical, a bolometer in the far-infrared, or an antenna feed in the radio. Instead of a single dish telescope, a more general term would be a single element telescope which can be as simple as a dipole (Figure 1.10.2). An interferometric array (Figure 1.10.3) is used to create a synthesized telescope as it is considered a single telescope synthesized out of many elements (each element is also a telescope, it can get even more confusing).
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
1.10.2 Physical limitations of single dishes
There are certain physical limitations to account for when designing single dish radio telescopes. As an example consider that, due to its limited field of view and the rotation of the earth, an antenna will have to track a source on the sky to maintain a constant sensitivity. In principle this can be achieved by mounting the antenna on a pedestal and mechanically steering it with a suitable engines. However, in order to maintain the integrity of the antenna, the control systems for these engines need to be incredibly precise. Clearly, this gets harder as the size of the instrument increases and will constitute a critical design point on the engineering side. This is true in the optical case as well, but it is easier to manage as the telescopes are physically much smaller.
There is an upper limit on how large we can build steerable single dish radio telescopes. This is because, just like everything else, the metals that these telescopes are made out of can only withstand finite amounts of stress and strain before deforming. Perhaps one of the greatest reminders of this fact came in 1988 with the <cite data-cite='2008ASPC..395..323C'>collapse of the 300 foot Green Bank Telescope</cite> ⤴ (see Figure 1.10.4). Clearly, large steerable telescopes run the risk of collapsing under their own weight. The 100 meter Green Bank Telescope (GBT) which replaced the 300 foot telescope is the largest steerable telescope in the world.
Larger single dish apertures can still be reached though. By leaving the reflector fixed and allowing the receiver at the focus to move along the focal plane (or along the caustic) of the instrument will mimic a slowly varying pointing in the sky (a so called steerable focus telescope). Indeed, this is how the Arecibo Observatory radio telescope (see Figure 1.10.5) operates. However, steerable focus telescopes come with limitations of their own (e.g. material cost and available space). In order to overcome these physical limitations and...
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.1: 26 meter dish at HartRAO, South Africa used for single dish observations and as part of interferometric VLBI networks. Credit: M Gaylard / HartRAO⤴
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.2: LOFAR LBA dipole element. Credit: KAIRA/D. McKay-Bukowski⤴
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.4a: 300 foot Green Bank Telescope located in West Virgina, USA during initial operations in 1962. Credit: NRAO⤴
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.4b: November, 1988, a day after the collapse of the 300 foot GBT telescope due to structural defects. Credit: NRAO⤴
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.6a: A simple dish telescope which reflects incoming plane waves (red dashed) along ray tracing paths (cyan) to a receptor at the focal point of the parabolic dish.
Ignoring real world effects like aperture blockage and reflector inefficiencies, plane waves are focused to a single point using a parabolic reflector (at that focus if a signal receptor). We can imagine the reflector is made up of many smaller reflectors, each with its own reflection path. A single dish, in the limit of fully sampling the observing wavelength $\lambda$, can be thought of as being made up of enough reflectors of diameter $\lambda/2$ to fill the collecting area of the dish. In our simple example, we just break the dish into 8 reflectors (Figure 1.10.6b). This is in fact what is often done with very large telescopes when it is not feasible to build a single large mirror, such as in the W. M. Keck Observatory. At this point we have not altered the telescope, we are just thinking about the reflector as being made up of multiple smaller reflectors.

Note: We can interpret a single dish telescope as a *continuous interferometer* by applying the Wiener-Khinchin theorem. See Chapter 2 of [Interferometry and Synthesis in Radio Astronomy ⤴](http://adsabs.harvard.edu/abs/2007isra.book.....T) for an in depth discussion.

Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.6b: The dish reflector can be thought of as being made up of multiple smaller reflectors, each with its own light path to the focus.
Now, instead of capturing all the signal at a single point, there is no reason we can not capture the signal at the smaller, individual reflector focus points. If that signal is captured, we can digitally combine the signals at the main focus point later (Figure 1.10.6c). This is the first trick of interferometry. Radio waves can be sufficiently sampled in time to digitally record the signals (this becomes more difficult at higher frequencies, and not possible in the near-infrared and higher). The cost is that a receptor needs to be built for each sub-reflector, and additional hardware is required to combine the signals. The dish optically combines the light, we are simply doing the same thing digitally.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.6c: A receptor at each sub-reflector captures the light signals. To recreate the combined signal at the main receptor the signals are digitally combined.
The next leap is that there is no reason the sub-reflectors need to be set in the shape of a dish since the combination of the signal at the main focus is performed done digitally. Since light travels at a constant speed any repositioning of a sub-reflector just requires a time delay correction. So we can move each element to the ground and construct a pointing system for each sub-reflector (Figure 1.10.6d). We now have an array of smaller single dish telescopes! By including the correct time delays on each signal, we can measure the same signal as the original, larger single dish telescope. This digital operation is called beamforming and is very important in interferometry.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.6d: The sub-reflector elements of the original telescope are set on the ground with their own pointing systems. The original signal can be reconstructed digitally and by including the appropriate time delay for each telescope.
The beamforming operation recombines all the signals into a single signal, which can be thought of as a single pixel camera. However, we can do even better using a correlator. By correlating the signals we can compute visibilities which are then used to form an image (Figure 1.10.6e). This will be explained in more depth in the chapters that follow. For now it is important to know that interferometric arrays have an advantage over single dish telescopes viz. by combining signals from multiple smaller telescopes we can 'synthesize' a much larger telescope than can be constructed from a single dish. The correlator also allows for the creation of image over a beamformer at the cost of additional computing hardware.
 LB:RC: this last sentence is not clear, I am not sure what it is trying to say
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Figure 1.10.6e: By using correlator hardware instead of a beamformer an image of the sky can be created.
The next trick of interferometry is that we do not necessarily need to sample the entire original dish (Figure 1.10.6f). We do lose sensitivity and, as will be discussed in later chapters, spatial frequency modes, but by using only a subset of elements and exploiting interferometry we can build synthesized telescopes that are many kilometres in diameter (e.g. MeerKAT) or as large as the Earth (e.g. VLBI networks). This is why radio interferometry can be used to produce the highest resolution telescopes in the world.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_10_limits_of_single_dishes.ipynb".
The first task is:
Import section specific modules:
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
1.11 Modern Interferometric Arrays
In the previous sections of this chapter we have covered the motivation for using interferometry to make measurements, the observable astrophysics and cosmology in the radio regime, and why interferometry is used in radio astronomy. This final section provides an overview of some of the interferometric arrays currently in use, the science goals of these projects, and future arrays in development.
As the scale and cost of science in physics has grown there is a drive for international collaboration to pool  resources in order to build large, multi-purpose arrays. These arrays are meant to run as long term observatories with astronomers requesting time for proposed projects. The prime example of this type of array is the future Square Kilometre Array (SKA). Another example is very-long baseline interferometry (VLBI) where single dish telescopes (or beamformed arrays) from all over the world are combined (via a signal recorder) for an observation. The recorded signals are later sent to a correlator to create an interferometric observation. There are also experiment-driven arrays which are focused on a single experimental outcome with a limited lifetime. Many of the Epoch of Reionization (EoR) arrays follow this model.
1.11.1 Karoo Array Telescope (MeerKAT/KAT-7)
MeerKAT, and it's precursor KAT-7, is a South African developed observatory located in the Northern Cape of South Africa. MeerKAT will be a one of the premier telescope arrays and be central to the development of the Square Kilometre Array (SKA).
The Karoo Array Telescope, or KAT-7, is a 7 dish interferometric array. It was designed as a prototype system for the MeerKAT array (currently in construction and commissioning). KAT-7 was constructed from 2009 to 2011, and will remain running for the near future. Although it was originally designed primarily as an engineering prototype it has also been used for science observations. Much of this book uses KAT-7 examples as it is simple enough to understand yet was designed...
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.10.3: MeerKAT offset-Gregorian telescope, without the feed system instelled. Credit: SKA South Africa⤴
<span style="background-color:cyan"> LB:LF:this link has died
</span>
The 13.5 meter MeerKAT dish is markedly different from the prime-focus KAT-7 design. The MeerKAT dish has offset Gregorian optics which results in a better beam pattern. Different optics and beam patterns are discussed in $\S$ 7 ➞. This design will also be the basis for the mid-frequency SKA dishes.
| Dish Specifications |
|:---:|:---:|
| Optics | Offset Gregorian |
| Diameter | 13.5 m|
| $\Delta \theta_{1.4 GHz}$ | 1.09 deg |
Table 1.11.4 Dish specifications for MeerKAT
There are currently two tested receiver bands for MeerKAT viz. an L-Band receiver similar to KAT-7 and a lower frequency Ultra High Frequency (UHF) receiver. Both receiver bandwidths are fully sampled by the digital hardware leading to an instantaneous bandwidth which is larger than the total bandwidth. Of course we confine ourselves to the total bandwidth as the digital bandwidth will sample no signal (since it would have been filtered out) outside the total frequency band.
| Receivers |
|:---:|:---:|:---:|
| Band | UHF | L |
| $T_{sys}$ | $< 38 K$ | $< 30 K$ |
| Start Frequency | 580 MHz | 900 MHz |
| Stop Frequency | 1015 MHz | 1670 MHz |
| Total Bandwidth | 435 MHz | 770 MHz |
| Instantaneous Bandwidth | 544 MHz | 856 MHz |
| Fractional Bandwidth | 0.55 | 0.6 |
| Polarization | Dual Linear | Dual Linear |
Table 1.11.5 Receiver specifications for MeerKAT
The MeerKAT array layout follows a random distribution with a dense core. The randomness improves the $uv$ coverage while the dense core is desirable for many of the science goals. The array core, shown below, is currently being populated with dishes and receiver systems.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.10.4: MeerKAT array core layout, located in the Northern Cape of South Africa, currently under construction. Credit: SKA South Africa⤴
<span style="background-color:cyan"> LB:LF:this link has died
</span>
At completion the array will consist of 64 dishes, with a shortest baseline similar to KAT-7, but with a maximum baseline of 8 km! This will allow for high resolution, up to 6.6 arc-second, measurements.
| Array Specifications |
|:---:|:---:|
| Number of Elements | 64 |
| Min Baseline | 29 m |
| Min $\Delta \theta_{1.4 GHz}$ | 0.51 deg |
| Max Baseline | 8 km |
| Max $\Delta \theta_{1.4 GHz}$ | 6.6" |
Table 1.11.6 Array specifications for MeerKAT
MeerKAT will be a general purpose interferometric observatory. As such there are a number of different planned science surveys⤴.
1.11.2 Jansky Very Large Array (JVLA)
The Karl G. Jansky Very Large Array (JVLA)⤴ is the latest upgrade (2011) to the original Very Large Array (1975). The 27 element array is located in New Mexico, USA and operated by the NRAO.  The JVLA is the quintessential radio interferometric array and is the standard against which other arrays are measured. It is typical to see an interferometric array with sensitivities and resolution quoted as a fraction of the JVLA. Details on the array specifications, such as resolution, sensitivity, correlation configuration, etc. can be found here⤴.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.10: Low-Band Array (LBA) 'droopy' dipole antenna elements. These elements are combined as an aperture array to function as an electronically-steerable telescope. Credit: ASTRON⤴
LOFAR operates in different observing modes⤴ depending on the project. The station configuration varies depending on if the station is located in the core, the Netherlands, or at international locations. Details on the station layout can be found here⤴.
At low frequencies the system temperature is dominated by the sky temperature. This allows for cheap, room temperature components to be used as this will result in a relatively small increase in the system noise. The response of the antenna elements varies over the large fractional observing bandwidth which results in a sensitivity⤴ which depends on observing frequency and pointing.
| Recievers |
|:---:|:---:|
| Band | LBA | HBA-Low | HBA-High |
| Start Frequency | 0 MHz | 100 MHz | 200 MHz |
| Stop Frequency | 100 MHz | 200 MHz | 250 MHz |
| Total Bandwidth | 100 MHz |100 MHz | 50 MHz |
| Instantaneous Bandwidth | 96 MHz | 96 MHz | 96 MHz |
| Fractional Bandwidth | 2 | 0.67 | 0.22 |
| Polarization | Dual Linear | Dual Linear | Dual Linear |
Table 1.11.13 Receiver specifications for LOFAR
As of February 2016 45 stations were operational. However the modular station design allows for more stations to be added in the future. The majority of the stations are located in the Netherlands (see figure below). The international stations allow for high resolution interferometric observations.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.11: LOFAR station locations and status as of October 2015. The core and superterp are located near Exloo, Netherlands. Credit: ASTRON/George Heald⤴
LOFAR is a unique array as it operates in a frequency band which has not been thoroughly observed in the past. It complements higher frequency arrays (like the JVLA). It is currently in an observing schedule focused on the selected key science projects⤴.
1.11.5 Atacama Large Millimeter/submillimeter Array (ALMA)
Going in the other frequency direction to LOFAR, the Atacama Large Millimeter/submillimeter Array (ALMA)⤴ is a high frequency array located in the Atacama Desert in Chile at around 5000 meters. This elevation is useful for high frequency (> 50 GHz) radio astornomy as the water vapor in the atmosphere and tropospheric effects have detrimental effects on observations at such hiogh frequencies. ALMA is a collaboration between the NRAO in the US, NAOJ in Japan, and ESO in Europe.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.12: The four types of ALMA antennas: European, North American and Japanese 12 meter telescope, along with a 7 meter diameter one. Credit: ALMA (ESO/NAOJ/NRAO), W. Garnier (ALMA)⤴
ALMA consists of two dish sizes (12 m and 7 m). The smaller dishes make up the compact core at the centre of the array. As the array operates at very high frequency the dish surfaces must be of very high quality to have an acceptable reflector efficiency. Many of the telescopes can also be moved around and this requires accurate knowledge of the telescope positioning.
| Dish Specifications |
|:---:|:---:|:---:|
| Optics | Prime Focus | Prime Focus |
| Diameter | 12 m | 7 m|
| $\Delta \theta_{\textrm{Band 9}}$ | 9.3" | 16" |
Table 1.11.14 Dish specifications for ALMA
Like the JVLA, ALMA operates across a wide range of frequencies (broken into bands). The lowest frequency bands 1-3 are planned but not yet built. The ALMA bands start around the highest frequencies of the JVLA and go up to near the limit of heterodyne detectors in the far-infrared. Although the bands cover large frequency ranges compared to the lower frequency arrays, many of the bands have similar fractional bandwidth. The instantaneous bandwidth is limited by the correlator system to 8 GHz (it is an impressive correlator).
| Receivers |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| Band | 1* | 2* | 3* | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| $T_{sys}$ | 17 | 30 | 37 | 51 | 65 | 83 | 147 | 196 | 175 | 230 |
| Start Frequency | 31 GHz | 67 GHz | 84 GHz | 125 GHz | 162 GHz | 211 GHz | 275 GHz | 385 GHz | 602 GHz | 787 GHz |
| Stop Frequency | 35 GHz | 90 GHz | 116 GHz | 163 GHz | 211 GHz | 275 GHz | 373 GHz | 500 GHz | 720 GHz | 950 GHz |
| Total Bandwidth | 4 GHz | 23 GHz | 32 GHz | 38 GHz | 49 GHz | 64 GHz | 98 GHz | 115 GHz | 118 GHz | 163 GHz |
| Instantaneous Bandwidth | 8 GHz | 8 GHz | 8 GHz | 8 GHz | 8 GHz | 8 GHz | 8 GHz | 8 GHz | 8 GHz | 8 GHz |
| Fractional Bandwidth | 0.12 | 0.29 | 0.32 | 0.26 | 0.24 | 0.26 | 0.30 | 0.26 |...
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.13: ALMA core layout on the Chajnantor Plateau in Chile, made up of 12 m and 7 m telescopes, some of the telescopes can be repositioned to change the visibility sampling, similar to the VLA. Credit: ALMA (ESO/NAOJ/NRAO), O. Dessibourg⤴
Although much of this book focuses on lower frequency interferometry, the same principles generally apply at higher frequency arrays like ALMA. The fundamentals remain true for all interferometric arrays but the details change.
1.11.6 VLBI Networks
Moving beyond the purpose built arrays we have covered so far there are also interferometry networks. The idea behind a network is that multiple telescopes which normally operate in a single-dish observation mode can observe the same position in the sky and record the signals at the same time. These signals are then sent to a central location where they are correlated to produce visibilities. This ad-hoc network design is most widely used in very long baseline interferometry (VLBI) which uses telescopes from all over the world to create a synthesized telescope on the scales of the Earth. In principle, VLBI can be used to perform the highest resolution astronomy. One very ambitious example is trying to determine the size-scale of super-massive black holes at the centre of galaxies (Event Horizon Telescope⤴, BlackHoleCam⤴).
VLBI is incredibly difficult as it requires very accurate knowledge about time and positions of the telescopes. These telescopes are on different parts of the world which move at rates of millimetres per year. These movements are taken into account with VLBI observations along with many other details. It is truly an engineering and scientific feat.
There are multiple VLBI networks, and they vary in size from the size of a country (eMERLIN⤴) to supa-continental (EVN⤴, VLBA⤴). For example, the European VLBI Network (EVN) includes most major radio telescopes in Europe but also includes telescopes in Africa, Asia, and North America (see figure below).
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.14: Locations of telescopes in the European VLBI Network. Credit: EVN⤴
Now, given the fact that the Earth has a finite size, one might think that there is a hard limit on the maximum distance between two telescopes. However, it is possible to do longer baseline interferometry by putting telescopes in orbit to do Space VLBI. RadioAstron⤴ is an ongoing project to use a space-based radio telescope to do interferometry with ground-based telescopes. Space-based interferometry will happen at some point in the future. In the context of very low-frequency (< 10 MHz) radio astronomy it will be a necessity due to ionospheric reflection.
1.11.7 Epoch of Reionization Arrays
The interferometric arrays discussed so far has been multi-purpose arrays. Although they may have specific key science goals, these arrays can be used for many different types of observations. There are also purpose built arrays which are primarily designed for a specific experiment. Such is the case with Epoch of Reionization (EoR) arrays. These are low-frequency (observing at > 200 MHz) arrays which are being used to detect the redshifted Hydrogen 21 cm line which is a tracer of the evolution of the universe during the epoch of reionization. These arrays tend to be made of simple elements, similar to LOFAR (one of the key science programs with LOFAR is EoR science). For example, the PAPER experiment⤴ (shown in the figure below) is made up of a highly redundant array of dipoles to detect an EoR power spectrum signature. Other experiments such as the Murchison Widefield Array⤴ (MWA) and Large Aperture Experiment to Detect the Dark Ages⤴ (LEDA) use similar techniques to constrain the EoR.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.15: PAPER Epoch of Reionization experiment redundant array configuration, located in the Northern Cape, South Africa. Each element is a dual-polarization dipole with a mesh reflecting surface. Credit: SKA South Africa⤴
<span style="background-color:cyan"> LB:LF:this link has died
</span>
1.11.8 Baryon Acoustic Oscillations Arrays
Another type of experiment-driven arrays are Baryonic Acoustic Oscillations (BAO) intensity mapping arrays. Similar to EoR arrays, these arrays will attempt to use the redshifted Hydrogen 21 cm line as a tracer. Where the EoR experiments aim to use the 21 cm line to measure the evolution of the universe during the epoch of reionization, the BAO experiments will use the 21 cm line to detect the presence of Baryonic Acoustic Oscillations, a feature which is imprinted onto baryonic matter during the early stages of the Universe. This is typically done in the 400 MHz to 800 MHz band. These experiments are still mostly in the planning stage but Canadian Hydrogen Intensity Mapping Experiment (CHIME)⤴ has finished construction and is undergoing commissioning. CHIME uses a series of cylinders (a design which has seen a renewed interest recently) to have a significant collecting area while not being overly expensive. As the BAOs are large scale structures which are present in every direction in the sky the actual pointing does not matter when attempting a statistical measurement.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.1: KAT-7 prime-focus telescope. Credit: SKA South Africa⤴
<span style="background-color:cyan"> LB:LF:this link has died
</span>
Each of the elements is a 12 meter, prime-focus (the receiver is at the focal point of the dish) parabolic dish. If only a single element of the array is used for an observation we could only achieve a resolution of about one degree at the frequency that the receivers operate at. The important dish specifications are in the table below.
| Dish Specifications |
|:---:|:---:|
| Optics | Prime Focus |
| Diameter | 12 m|
| $\Delta \theta_{1.4 GHz}$ | 1.22 deg |
Table 1.11.1 Dish specifications for KAT-7
The resolution of the dish $\Delta \theta_{1.4 GHz}$ (also called the primary beam) is presented at 1.4 GHz i.e. at the 21 cm Hydrogen hyperfine transition line. This is a common observing frequency so it will be used as a comparison between many of the arrays in this section.
The KAT-7 receiver band covers the observing frequency range between 1.2 GHz and 1.95 GHz. The digital hardware is capable of processing 256 MHz of this band instantaneously, i.e. at any given time. This frequency range is called L-band in reference to the radio communication spectrum allocation labels. The L-band receiver feed is a dual-polarization linear system (polarization will be covered in $\S$ 7.6 ➞). The receiver specifications are in the table below.
| Receivers |
|:---:|:---:|
| Band | L |
| $T_{sys}$ | $< 35 K$ |
| Start Frequency | 1200 MHz |
| Stop Frequency | 1950 MHz |
| Total Bandwidth | 750 MHz |
| Instantaneous Bandwidth | 256 MHz |
| Fractional Bandwidth | 0.14 - 0.19 |
| Polarization | Dual Linear |
Table 1.11.2 Receiver specifications for KAT-7
A common method to describe the bandwidth of a receiver system is to use the fractional bandwidth $\nu_{\textrm{frac}}$ is
$$\nu_{\textrm{frac}} = \frac{\nu_f - \nu_0}{\nu_c}, \quad \nu_c = \frac{\nu_f + \nu_0}{2},$$
where $\nu_f$ is the highest frequency of the band and $\nu_0$ the lowest frequency. The center frequency...
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.5: JVLA cassegrain-focus telescope. In the foreground are tracks used to move telescopes to different positions. Credit: Wikipedia Commons⤴
The 25 meter JVLA dishes use a Cassegrain optical system for most of the receivers (though a low-frequency receiver is at the focal point). Cassegrain optics uses a secondary reflector at the focal point to redirect the signal to the receivers at the base of the dish.
| Dish Specifications |
|:---:|:---:|
| Optics | Cassegrain |
| Diameter | 25 m|
| $\Delta \theta_{1.4 GHz}$ | 0.59 deg |
Table 1.11.7 Dish specifications for JVLA
There are numerous receiver systems⤴, all circular polarization, on each telescope which are cycled through depending on the observation and configuration schedule. The receivers cover most of the frequency range⤴ between 58 MHz and 50 GHz. Correlation of visibilities is done with the flexible WIDAR⤴ correlator. As there are many frequency bands and different correlation options, the bandwidth parameters are not included in the table below.
| Receivers |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| Band | 4 | P | L | S | C | X | Ku | K | Ka | Q |
| SEFD | 10000+ Jy | 2790 Jy | 420 Jy | 370 Jy | 310 Jy | 250 Jy | 350 Jy | 560 Jy | 710 Jy | 1260 Jy |
| Start Frequency | 58 MHz | 230 MHz | 1 GHz | 2 GHz | 4 GHz | 8 GHz | 12 GHz | 18 GHz | 26.5 GHz | 40 GHz |
| Stop Frequency | 84 MHz | 470 MHz | 2 GHz | 4 GHz | 8 GHz | 12 GHz | 18 GHz | 26.5 GHz| 40 GHz | 50 GHz |
| Total Bandwidth | 26 MHz | 240 MHz | 1 GHz | 2 GHz | 4 GHz | 4 GHz | 6 GHz | 8.5 GHz | 13.5 GHz | 10 GHz |
| Polarization | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular | Dual Circular |
Table 1.11.8 Receiver specifications for JVLA
The sensitivity⤴ of receivers is presented in System Equivalent Flux Density (SEFD) which is a function of the system temperature $T_{sys}$ and the efficiency of the telescope $\eta$. The...
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.6: JVLA array layout in the densest (D) configuration. Credit: NRAO/AUI⤴
The JVLA elements are laid out on a 'Y'-shape, each arm of the 'Y' is made of two sets of rail tracks which allows the elements to be repositioned into different configurations⤴ to result in different resolution⤴ measurements. The four configurations (A, B, C, D)
are set configurations which vary the maximum and minimum baseline length (shown in the table below). The A configuration has the highest resolution, but is limited in low resolution, while D configuration is the densest layout and is most sensitivity to low resolutions. The same field in the sky can be observed with different configurations, the measured visibilities can be combined to form an image sensitive to all resolutions scales from A to D configuration. These configurations are cycled through on a typical schedule.
| Array Specifications | A | B | C | D |
|:---:|:---:|:---:|:---:|:---:|
| Number of Elements | 27 | 27 | 27 | 27 |
| Min Baseline | 680 m | 210 m | 35 m | 35 m |
| Min $\Delta \theta_{1.4 GHz}$ | 1.3' | 4.2' | 25.2' | 25.2' |
| Max Baseline | 36.4 km | 11.1 km | 3.4 km | 1.03 km |
| Max $\Delta \theta_{1.4 GHz}$ | 1.5" | 4.8" | 15.5" | 51.3" |
Table 1.11.9 Array specifications for JVLA
The JVLA, having been around for decades (in one form or another), has produced an enormous amount of scientific research. We will not even attempt an overview of the work that has been produced. However, as an entry point, one of the defining surveys using the VLA is given in <cite data-cite='1998AJ....115.1693C'>The NRAO VLA Sky Survey (NVSS)</cite> ⤴. This is a classic radio catalogue.
1.11.3 Australian Square Kilometre Array Pathfinder (ASKAP)
On the path to developing the SKA, along with MeerKAT, the Australian Square Kilometre Array Pathfinder (ASKAP) is under construction in western Australia. This array uses a phased-array feed (PAF) receiver which effectively expands the field of view, allowing for a number of scientific...
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.8: Close up of the mark-I phased-array feed on ASKAP. Credit: CSIRO/David McClenaghan⤴
ASKAP is made up of 36 elements, with a similar minimum and maximum baseline distribution to MeerKAT. The layout of the array can be found here⤴.
| Array Specifications |
|:---:|:---:|
| Number of Elements | 36 |
| Min Baseline | 37 m |
| Min $\Delta \theta_{1.4 GHz}$ | 0.39 deg |
| Max Baseline | 6 km |
| Max $\Delta \theta_{1.4 GHz}$ | 8.8" |
Table 1.11.12 Array specifications for ASKAP
Again, similar to MeerKAT, there are a number of survey science projects⤴ planned for when the array has been commissioned.
1.11.4 The Low-Frequency Array (LOFAR)
Stepping away from traditional dish-based interferometry we will take a look at the Low-Frequency Array (LOFAR)⤴ which was designed and build by the Dutch national astronomy research foundation ASTRON. This is a unique array as it is made up of stations instead of dish telescopes. Each station is made up of simple antenna elements and beamformed to act as a single telescope. These stations are called aperture arrays. They have the advantage of being 'electronically-steerable' which means that without any physical moving parts the aperture array can be 'pointed' in any direction in the sky. This is possible using the station digital electronics. This technique allows the aperture array to be pointed in multiple locations at the same time, something which is not possible with traditional dish optics systems. LOFAR operates at a low frequency (< 250 MHz) compared to the arrays we have discussed so far. As such it has opened up a new region of the observable parameter space.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Figure 1.11.9: Aperture array LOFAR-UK⤴ international station at Chilbolton Observatory. The High-Band Array (black flat structure in the top-left) made up of 96 tiles, each tile is composed of 16 'bowtie' dual-polarization dipole elements. The Low-Band Array (square patches in the foreground) is made up of 96 dual-polarization 'droopy' dipole elements (see figure below). The digital electornics to 'point' the stations is located in the small grey bunker. Credit: LOFAR-UK/D. McKay-Bukowski⤴
Each station contains two arrays. The High-Band Array (HBA) operates from 100 MHz to 250 MHz, and is made up of 'tile' elements. These tile elements are themselves made up of 16 'bowtie' dipole antenna elements. The signals from each bowtie is combined via an electronic beamformer, the titles are then further beamformed into a single signal. This signal is sent to a central correlation and computing cluster in the Netherlands. The Low-Band Array (LBA) operates from 0 to 100 MHz and is made up of 'droopy' dipole elements (shown below). Similar to the HBA the signal from all the elements is beamformed and sent to the main computing centre. The station can also act as an independent array and interferometry can be done using only the station elements.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_11_modern_interferometric_arrays.ipynb".
The first task is:
Import section specific modules:
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_1_a_brief_introduction_to_basic_astrophysics.ipynb".
The first task is:
Import section specific modules:
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_4_radio_regime.ipynb".
The first task is:
1.4 Radio Regime
All of us are familiar with the night sky. In fact, when we think of astronomy, the first picture that comes to mind is that of the star-strewn sky (with a few planets thrown in). People looking at less light-polluted skies are also able to make out details such as the milky band of our own galaxy.
We must remember that this view of the sky is a results of the natural limits of our vision - we can only perceive radiation in a narrow range in wavelength. We can't see beyond infra-red or ultraviolet frequencies. This is the reason the earliest advances in astronomy were in visible range - the branch of astronomy known as optical astronomy.
However, over time we have been successful in sampling a large range of the electromagnetic spectrum. On one end is Gamma-ray astronomy, where individual photons have much larger energy than those in the visible range (and correspondingly much higher frequency) but far fewer numbers. On the other end is radio astronomy, where the photons are plentiful, but their individual energy is much smaller, with much smaller frequency than those in the visible range.
The sky at radio frequencies is very different from that at the optical frequencies. Let us take the example of Cygnus A, which is the brightest extragalactic radio source. It is about ~ 230 Mpc(where 1 Mpc = $10^6$ pc = $3.08\times10^{18}$ m, parsec, denoted by 'pc' is the distance unit of choice for astronomers) away from us. In optical, we see what may seem as a typical sky-field with stars and galaxies:
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_4_radio_regime.ipynb".
The first task is:
Figure 1.4.1: Sky in the direction of Cygnus A in optical frequencies. Credits: Digitized Sky Survey ⤴
If we look at it at radio frequencies, however, we see much more detail:
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_4_radio_regime.ipynb".
The first task is:
Figure 1.4.2: Cygnus A, radio and optical view.
The above image is an example of what are called composite images. These are images formed by combining two or more images, generally from different parts of the electromagnetic spectrum. In this example we have combined what we see in radio as well as optical frequencies. The object seen in the radio is Cygnus A, a radio galaxy (the closest such object to us). These are huge objects which are generated through the activity around a supermassive black hole at the centre of a galaxy. The lobes we see in the figure (a form of plasma) are generated by jets of ionised particles which spew out in opposite directions and collide with the inter-galactic medium (IGM) resulting in the emission of radiation at radio frequencies. This is why we do not see the lobes in other parts of the electromagnetic spectrum. These objects affect the process of cosmological structure formation at various scales and are therefore of great relevance to our understanding of the Cosmos.
Another noteworthy example of radio emission is the M81 system. This is system of three galaxies which gravitationally bound to form a group. As seen in the image below, the extent of the interaction within the group is most evident at radio frequencies.
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_4_radio_regime.ipynb".
The first task is:
Figure 1.4.3: On the right we see the optical view of the M81 system and on the left the view in radio.
Only is the radio image do the bridges between the three galaxies become clearly visible. They do not show up in optical because the gas contained within these bridges does not emit radiation at optical frequencies. The same thing happens for galactic rotation curves. Rotation curves plot the orbital velocity of stuff in a galaxy against the radial distance from its centre. They can be used to infer the amount of mass contained in the galaxy as a function of radius. Newtonian physics suggests that the velocity should fall off as $v \propto r^{-1/2}$ as we move beyond the edge of the galaxy i.e. beyond most of the matter in the galaxy. Thus, if most of the matter in the galaxy consists of ordinary visible matter, the velocity should decrease beyond the optical disk. This is not what is observed in in practice indicating that not all the mass is enclosed within the visible disk. Indeed this was one of the first observations used to infer the presence of an unusual form of matter, called dark matter, which is not believed to interact with electromagnetic radiation. As a result dark matter is invisible (i.e. "dark") to us. Radio observations of the neutral hydrogen gas, which extends far beyond the visible extent of the galaxy, allow us to trace out rotation curves to much larger radii. Such data are useful when testing theories which attempt to explain the peculiar rotation curves typically observed in galaxies. The figure below (taken from Wikipedia) illustrates the measurements through 'optical' (stars) and 'radio' (21 cm) measurements:
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_5_black_body_radiation.ipynb".
The first task is:
1.5 Thermal Emission:
There are two main types of continuum emission mechanisms we'll encounter in radio astronomy, thermal and non-thermal. As the names suggest, the thermal emission depends on the temperature of the black body while non-thermal emission depends on some other properties of the emitting body. In the next few sections, we'll have an overview of the emission mechanisms and some examples of each in radio astronomy.
We'll begin the overview with an example of one of the mechanisms of thermal emission, blackbody emission.
1.5.1 Blackbody Emission:
Blackbody emission or thermal emission is an important form of radiation in astronomy. This is in the cases when Thermodynamic Equilibrium exists between radiation and matter - where radiation and matter interact enough to produce the following expression for the specific intensity to be:
\begin{equation}
B_{\nu}(T)=\frac{2h\nu^{3}}{c^{2}} \frac{1}{e^{\frac{h\nu}{kT}}-1},
\end{equation}
this is also known as the Planck Spectrum.
From the equation above, it can be inferred that in a given frequency interval, the brightness depends only on the Temperature of the body. Also, one can see that a body at a higher temperature will produce higher brightness at all frequencies - which means that a body at a higher temperature has higher energy output via thermal emission than that of a body at a lower temperature. Yet another consequence is that the frequency at which maximum brightness is produced is directly proportional to the temperature - this is known as Wien's displacement law:
$$\nu_{max} = 58.789  T $$
where frequency is in GHz and temperature is in Kelvin. See, for example, Fig. 1.5.2 ⤵, where the black body spectrum for various temperatures is plotted. The displacement of the frequency at which the peak occurs can be seen clearly.
At high frequencies, i.e. where $h\nu >> kT$, this will reduce to Wien's approximation:
$$B_{\nu}(T)= \frac{2h\nu^{3}}{c^{2}} e^{\frac{-h\nu}{kT}}$$
However, in radio...
Can you write Python code for it?

def B_v(T):
    '''Function to calculate specific intensity/brightness distribution of black
    body radiation at a given temperature. T is in Kelvins and frequency
    is in Hertz'''
    #Use Wien's displacement law to find the frequency range for given Temperature.
    # nu_max(in GHz) = 58.789*T(in Kelvin)
    nu_max = 58.79 * T
    freq = np.arange(1,2000,1)
    freq = freq * nu_max / 500.0 # Scale so that the the peak value occures at 1/4 the length of the array.
    B = (2*scipy.constants.h/scipy.constants.c**2.0) * np.exp(-1. * scipy.constants.h * \
                                                              freq * 10**9/(scipy.constants.k*T)) * (freq*10**9)**3
    #Change units for plotting to Jansky
    # 1 Jansky = 10^-26 W/m^2 Hz
    B = B * 10**26
    return B

T = 2.275 #In Kelvin
freq = np.arange(1,2000,1)
freq = freq*58.79*T/500.0
B_CMB = B_v(T)
fig,ax = plt.subplots()
ax.plot(freq,B_CMB)
ax.set_xlabel("Frequency (GHz)")
ax.set_ylabel("Specific Intensity ($Jy/sr$)")
ax.set_title("Blackbody Spectral Distribution")


I am working on the file "1_Radio_Science/1_5_black_body_radiation.ipynb".
The first task is:
Figure 1.5.2: Blackbody radiation spectral distribution.
As mentioned above, the brightness of the black body radiation depends only on the temperature of the body. This can be used to define a 'brightness temperature' for an object. Simply put, the brightness temperature for an object is given by:
$$T_{b} = I_{\nu} \frac{c^{2}}{2k\nu^{2}}$$
It should be noted that the actual specific intensity of an object is used here even when it does not represent black body emission i.e. the brightness temperature is simply the temperature which the object would have if the specific intensity or brightness was from black body emission. This allows characterization of any object in terms of a single parameter. This idea is used widely in radio astronomy and will be encountered in next chapters of this book.
1.5.2 Thermal Bremsstrahlung Emission :
Thermal Bremsstrahlung radiation is another example of thermal radiation. The word Bremsstrahlung is German, meaning 'braking radiation'. This is because the origin of bremsstrahlung radiation is in accelerating (non-relativistic) particles in electric field. The 'thermal' designation refers to the fact that we are dealing with a collection of particles which are in local thermodynamic equilibrium.

   Prerequisites

• Larmor's formula

 LB:RF: Do we derive Larmor's formula somewhere? If so there should be a link to it. Otherwise add link to online resource.
To understand the Bremsstrahlung emission from a collection of charged particles (which is what we see in any astronomical scenario), we need to know first the case of a single accelerating charged particle in an electric field. For such a particle the total power emitted is, according to Larmor's formula, given by:
$$P= \frac{2}{3}\frac{q^{2}\mathbf{a}^{2}}{c^{3}}$$
where $\mathbf{a}$ is the acceleration of the...
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_6_synchrotron_emission.ipynb".
The first task is:
1.6.1 Synchrotron Emission:
Sychrotron emission is one of the most commonly encountered forms of radiation found from astronomical radio sources. This type of radiation originates from relativistic particles get accelerated in a magnetic field.
The mechanism by which synchrotron emission occurs depends fundamentally on special relativistic effects. We won't delve into the details here. Instead we will try to explain (in a rather hand wavy way) some of the underlying physics. As we have seen in $\S$ 1.2.1 ➞,
 LB:RF:this is the original link but I don't think it points to the right place. Add a reference to where this is discussed and link to that. See also comment in previous section about where the Larmor formula is first introduced
an accelerating charge emitts radiation. The acceleration is a result of the charge moving through an ambient magnetic field. The non-relativistic Larmor formula for the radiated power is:
$$P= \frac{2}{3}\frac{q^{2}a^{2}}{c^{3}}$$
If the acceleration is a result of a magnetic field  $B$, we get:
$$P=\frac{2}{3}\frac{q^{2}}{c^{3}}\frac{v_{\perp}^{2}B^{2}q^{2}}{m^{2}} $$
where $v_{\perp}$ is the component of velocity of the particle perpendicular to the magnetic field, $m$ is the mass of the charged particle, $q$ is it's charge and $a$ is its acceleration. This is essentially the cyclotron radiation. Relativistic effects (i.e. as $v_\perp \rightarrow c$)  modifies this to:
$$P = \gamma^{2} \frac{2}{3}\frac{q^{2}}{c^{3}}\frac{v_{\perp}^{2}B^{2}q^{2}}{m^{2}c^{2}} = \gamma^{2} \frac{2}{3}\frac{q^{4}}{c^{3}}\frac{v_{\perp}^{2}B^{2}}{m^{2}c^{2}} $$
where $$\gamma = \frac{1}{\sqrt{1+v^{2}/c^{2}}} = \frac{E}{mc^{2}} $$
 LB:IC: This is a very unusual form for the relativistic version of Larmor's formula. I suggest clarifying the derivation.
is a measure of the energy of the particle. Non-relativistic particles have $\gamma \sim 1$ whereas relativistic and ultra-relativistic particles...
Can you write Python code for it?


I am working on the file "1_Radio_Science/1_6_synchrotron_emission.ipynb".
The first task is:
Figure 1.6.1  Example path of a charged particle accelerated in a magnetic field
The frequency of gyration in the non-relativistic case is simply
$$\omega = \frac{qB}{mc} $$
For synchrotron radiation, this gets modified to
$$\omega_{G}= \frac{qB}{\gamma mc} $$
since, in the relativistic case, the mass is modified to $m \rightarrow \gamma m$.
In the non-relativistic case (i.e. cyclotron radiation) the frequency of gyration corresponds to the frequency of the emitted radiation. If this was also the case for the synchrotron radiation then, for magnetic fields typically found in galaxies (a few micro-Gauss or so), the resultant frequency would be less than one Hertz! Fortunately the relativistic beaming and Doppler effects come into play increasing the frequency of the observed radiation by a factor of about $\gamma^{3}$. This brings the radiation into the radio regime. This frequency, known also as the 'critical frequency' is at most of the emission takes place. It is given by
$$\nu_{c} \propto \gamma^{3}\nu_{G} \propto E^{2}$$
 LB:IC: The last sentence is not clear. Why is it called the critical frequency? How does it come about?
So far we have discussed a single particle emitting synchrotron radiation. However, what we really want to know is what happens in the case of an ensemble of radiating particles. Since, in an (approximately) uniform magnetic field, the synchrotron emission depends only on the magnetic field and the energy of the particle, all we need is the distribution function of the particles. Denoting the distribution function of the particles as $N(E)$ (i.e. the number of particles at energy $E$ per unit volume per solid angle), the spectrum resulting from an ensemble of particles is:
$$ \epsilon(E) dE = N(E) P(E) dE $$
 LB:IC: Clarify what is $P(E)$. How does the spectrum come about?
The usual assumption made about the distribution $N(E)$ (based also on the observed cosmic ray distribution) is that of a...
Can you write Python code for it?