Gateau User Manual
Atmospheric simulation of astronomical signals
Scanning functionality reference

Time-dependent behaviour of the scan

Here, we describe what happens at each timestamp during a gateau simulation. During a simulation, gateau scans the source and atmosphere using user-defined scanning patterns. These scanning patterns are executed in a horizontal azimuth-elevation frame. For the telescope, the broadside pointing is denoted by the 2-tuple \((\phi(t),\theta(t))\). For each spaxel, the pointing offset \((\Delta\phi_i,\Delta\theta_i)\) is added to the scanning pattern to produce the individual spaxel pointings \((\phi(t)+\Delta \phi_i,\theta(t)+\Delta \theta_i)\). Importantly, the source is assumed stationary during a scan. So implicitly, gateau assumes that the source is perfectly tracked over an observation. We will show later how tracking errors could be emulated. The spaxel pointings are used to, for each spaxel and for each point in time \(t\), perform a 2-dimensional bilinear interpolation on the source.

While the telescope is scanning, the atmospheric screen is translated with a constant windspeed \(u_\mathrm{w}\) along the azimuthal direction, assuming a frozen-flow model for the line-of-sight atmospheric fluctuations. The spaxel pointing can be converted to \((x,y)\) coordinates on the total screen:

\[ \begin{align} x_i(t) &= h_\mathrm{column}\tan(\phi(t) + \Delta\phi_i ) + u_\mathrm{w}t,\\ y_i(t) &= h_\mathrm{column}\tan(\theta(t) + \Delta\theta_i). \end{align} \]

Here, \(h_\mathrm{column}\) is the column height of the atmosphere above the telescope, defined as the height of the column containing the majority of PWV. We then use the screen coordinates to perform a 2-dimensional bilinear interpolation on the PWV screen and obtain a time trace of PWV values for each spaxel. We then use the Atmospheric Transmission at Microwaves (ATM) code to convert PWV to the atmospheric transmission \(\eta_\mathrm{atm}\). This is done by using a pre-generated lookup table that gives \(\eta_\mathrm{atm}\) as function of \(\nu\) and PWV. The table spans the spectral range from 70 up to and including 900 GHz, with a 0.1 GHz stepsize. The PWV range spans from 0.1 up to and including 5.5 mm, with a 0.1 mm stepsize. This table is used by applying 2-dimensional bilinear interpolation on \(\nu\) and the PWV. After interpolating, we apply airmass correction:

\[ \eta_\mathrm{atm} := \eta^{\mathrm{csc}(\theta_i)}_\mathrm{atm}, \]

where \(\theta_i\) is the spaxel-dependent elevation. Then, by assigning a physical temperature to the atmosphere over \(h_\mathrm{column}\), we can describe the effect of the atmosphere on the source signal.

Scanning patterns

Scanning patterns in gateau are supplied as Python functions during the initialisation step of a simulation. The function must contain, at least, the following input parameters:

  • a Numpy array that contains timestamps,
  • two floats or Numpy arrays containing the azimuth and elevation offset. It is possible to supply more input parameters using, for example, the functools.partial method. gateau ships with some built-in scan patterns. Have a look at the built-in scan pattern reference page for an overview.