A telescope in a gateau simulation is defined by two parameters:
\(\eta_\mathrm{t}\) is a measure of how uniformly the feed illuminates the telescope aperture. It can be set to a scalar between 0 and 1. Also, it is possible to define a frequency-dependent \(\eta_\mathrm{t}\) as an array of values between 0 and 1. In this case, \(\eta_\mathrm{t}\) and the array of frequencies \(\nu_\eta\) on which \(\eta_\mathrm{t}\) is defined must be supplied as a 2-tuple ( \(\eta_\mathrm{t}\), \(\nu_\eta\)). Here, \(\nu_\eta\) must be supplied in units of Hertz. Then gateau will apply a linear interpolation of \(\eta_\mathrm{t}\) on the source frequencies \(\nu\).
\(\rho_\mathrm{surf}\) must be a nonnegative scalar with units of micrometer. The default value is 0, representing a perfectly smooth surface.
The reference for the input dictionary for a telescope can be found here.
The instrument in gateau is set by supplying spectral and spatial information.
We will start by specifying all the different ways of generating an array of channel frequencies, which will be denoted by \(f\). First, we give an overview of all available parameters:
The \(f\) array will be used to calculate Lorentzian transmission curves, together with \(R\). This will be detailed in the subsections after this.
We will now discuss ways to generate the array with scalar input values. The first way to generate an array is to pass \(f_\mathrm{min}\), \(N_f\), and \(R\). \(f_\mathrm{max}\) is unknown, but as we will see this is not important. In this case, the channel frequencies are calculated using a geometric spacing with half-power overlap between adjacent Lorentzian filter transmission curves:
\[ f = f_\mathrm{min}\left( 1 + \frac{1}{R} \right)^n,\quad\quad\mathbf{(1)} \]
with \(n = \{0,...,N_f-1\}\) an array of indices.
The second way is to pass \(f_\mathrm{max}\), \(N_f\), and \(R\). \(f_\mathrm{min}\) is unknown now and must be calculated before we proceed. We first calculate \(f_\mathrm{min}\) by rearranging Eq.(1) and setting \(n=N_f-1\):
\[ f_\mathrm{min} = f_\mathrm{max} \left( 1 + \frac{1}{R} \right)^{1-N_f}, \]
and then we can directly use \(f_\mathrm{min}\) to calculate \(f\) using Eq.(1) again.
The third way is to pass \(f_\mathrm{min}\), \(f_\mathrm{max}\), and \(R\). \(N_f\) is unknown now and must be calculated. First, we calculate \(N_f\) by rearranging Eq.(1) and solving for \(N_f\):
\[ N_f = \left\lceil \log_q\left( \frac{f_\mathrm{max}}{f_\mathrm{min}} \right) \right\rceil, \]
where \(q=1 + 1 / R\). Then we calculate \(f\) again using Eq.(1).
The fourth, and final for scalar input, way is to pass \(f_\mathrm{min}\), \(f_\mathrm{max}\), and \(N_f\). Now, \(R\) is unknown, and can be calculated by rearranging Eq.(1) again:
\[ R = \left( \frac{f_\mathrm{max}}{f_\mathrm{min}} \right)^{\left( \frac{-1}{N_f-1} \right)}, \]
and then we use Eq.(1) again to calculate \(f\).
We want to highlight here that one should never supply all four parameters, only three of the four. Technically, it is possible to supply all four parameters and discard one to calculate \(f\). However, in this case gateau must choose for the user which one to discard, which is not trivial. Hence, when four parameters are passed, gateau will exit with an error message.
Aside from scalar input, gateau can also take \(f\) directly from the user as an array. Here, \(R\) must be supplied too, either as scalar or array. If supplied as array, it must have the same size as \(f\). Note that \(R\) can only be supplied as an array if \(f\) is also supplied as array. Also note that, since Eq.(1) was not used, the resulting Lorentzians will most probably not overlap at half-power points.
Now that we have calculated (or just supplied) \(f\) and \(R\), we can calculate the Lorentzian transmission curves. For this, we need one extra parameter:
In the case that all Lorentzians are isolated from eachother, which is for example the case for a grating, the transmission curves take the following shape:
\[ \eta_\mathrm{trans}(f,\nu) = \frac{\eta_\mathrm{peak}(f)}{4R^2(\nu/f-1)^2}. \]
Here, the transmission curve is denoted \(\eta_\mathrm{trans}(f,\nu)\). Note that we explicitly show the dependence of \(\eta_\mathrm{trans}\) on \(f\) and \(\nu\) to highlight that the transmission curves is evaluated on the sky frequencies \(\nu\), but assigned to the channel frequencies \(f\). We also explicitly show the possible dependence of \(\eta_\mathrm{peak}\) on \(f\).
When placed in a filterbank, the Lorentzians are coupled to a single transmission line. This causes the downstream (closer to end of transmission line) Lorentzians to "see" a signal from which the upstream (closer to beginning of transmission line) Lorentzians have already removed a portion of signal. Effectively, this can be absorbed by subtracting the upstream \(\eta_\mathrm{trans}\) from downstream \(\eta_\mathrm{trans}\).
Usually, the high frequency filters are placed near the start of the transmission line and the frequencies drop monotonically when going to the end of the transmission line. Therefore, we can model the filterbank with the following expression:
\[ \eta_\mathrm{trans}(f,\nu) = \frac{\eta_\mathrm{peak}(f) - \Sigma_{\bar{f}\gt f}\eta_\mathrm{trans}(\bar{f},\nu)}{4R^2(\nu/f-1)^2}. \]
Here we start seeing what we meant earlier by saying that \(\eta_\mathrm{peak}\) is the peak height in isolation. When placed, with multiple other Lorentzians, on a single transmission line, the effective peak efficiency is affected by upstream (i.e. higher frequency) filters.
It is also possible to supply a custom transmission curve model. In this case, \(f\) must be supplied as an array as well and none of the elements are allowed to be outside of the rage [0,1]. The custom model can be supplied to the "transmission" field of an instrument dictionary as a 2-tuple, containing the transmission curves as the zeroth element and the frequencies on which the curves are defined as the first element. It is important that the custom model is supplied as a 2-dimensional array, with each row representing a transmission curve for a channel. Therefore, axis 0 must have length \(N_f\). Axis 1 can have any size larger than zero because, after supplying, a 1-dimensional linear interpolation will be performed along this axis. This interpolation will be evaluated on \(\nu\), ensuring that axis 1 and the spectral axis of the source cube have the same size. The interpolated transmission curves will be stored for usage in the simulation.
After defining the spectral characteristics, it is time to define the spatial characteristics. The built-in spaxel configuration in gateau is a packed hexagon, defined using the following parameters:
This configuration aligns the central spaxel pointing along the telescope broadside.
It is also possible to directly supply the far-field pointing configuration. In this case, a 2-tuple needs to be supplied to the "pointings" field of the instrument dictionary. The zeroth element must be an array with azimuth pointing offsets for each spaxel, and the first element must be an array with elevation offsets for each spaxel. Both the azimuth and elevation pointing offsets must be with respect to telescope broadside and in units of degrees.
The reference for the input dictionary for an instrument can be found here.