FEE_primary_beam¶
The MWA Fully Embedded Element primary beam model (Sokolowski et al. 2017) is
at the time of writing the most accurate and advanced MWA primary beam model.
The model is stored in spherical harmonic coefficients, at a frequency
resolution of 1.28MHz, in an hdf5 file called
mwa_full_embedded_element_pattern.h5. I have done my best to document the RTS
code I have used. The RTS code makes use of the Legendre Polynomial code
available here by John Burkardt, and is included in the WODEN distribution
as legendre_polynomial.c.
Host methods to read in hdf5 stored MWA FEE model, initialise the model for the given telescope delay settings, and accumulate the necessary arrays to make calculations on the device.
- Author
J.L.B. Line
Functions
-
herr_t RTS_op_func(hid_t loc_id, const char *name, const H5L_info_t *info, void *operator_data)¶
Operator function to be called by
H5Literate, finds closest frequency in the element pattern hdf5 file.The MWA FEE beam is stored at a 1.28MHz frequency resolution. Using this function in conjunction with
H5Literate, find the frequencies stored in the MWA FEE hdf5, and return the closest frequency to the frequency inoperator_data.freq_in(Hz)
-
int RTS_MWAFEEInit(const char *h5filename, double freq_Hz, RTS_MWA_FEE_beam_t *pb, user_precision_t *FEE_delays)¶
Read in the spherical harmonic basis functions and stored coefficients from
h5filename, and calculate the tile phases for the givenFEE_delayson the host device to intialise the MWA FEE beam at the requested frequency.The MWA primary beam is steered usings quantised delays on each of the 16 dipoles in the tile. Specify these delays using
FEE_delays- they can be found in the metafits file associated with an MWA observationThe MWA FEE beam is stored at a 1.28MHz frequency resolution, so the beam is intialised at the closest stored frequency to
freq_Hz.- Todo:
How to do some kind of interpolation over frequency in the future
- Parameters
h5filename – [in] Path to
mwa_full_embedded_element_pattern.h5freq_Hz – [in] Requested frequency (Hz)
pb – [inout] A
RTS_MWA_FEE_beam_tstruct to store outputs inFEE_delays – [in] Dipole delay factors to specify beam pointings
-
void RTS_freeHDFBeam(RTS_MWA_FEE_beam_t *pb)¶
Free the stored spherical harmonic basis functions and coefficients in
pbFrees
pb->Q1, pb->Q2, pb->M, pb->N.
-
int multifreq_RTS_MWAFEEInit(beam_settings_t *beam_settings, woden_settings_t *woden_settings, double *beam_freqs)¶
Read in the spherical harmonic basis functions and stored coefficients from
woden_settings->hdf5_beam_path, and calculate the tile phases for the givenFEE_delayson the host device to intialise the MWA FEE beam at the requested frequencies inbeam_freqs.The MWA primary beam is steered usings quantised delays on each of the 16 dipoles in the tile. These should be specified by
woden_settings->FEE_ideal_delays- they can be found in the metafits file associated with an MWA observation. The intialisedRTS_MWA_FEE_beam_tstrucuts will be stored inbeam_settings->FEE_beams, and the normalisation beams stored inbeam_settings->FEE_beam_zeniths.If you are using stored spherical harmonic coeffs that are at a 1.28MHz freq resolution, this function will create multiple instances of the beam at the closest available frequency. In that case, it’s computationally FAR cheaper to just use
RTS_MWAFEEInitand call the beam once per coarse channel. If you have interpolated fine-frequency spherical harmonics, then crack on.- Parameters
*beam_settings – [inout] Initialised
beam_settings_tstruct. Output beams are stored here*woden_settings – [in] Initialised
woden_settings_tstruct*beam_freqs – [in] Array of frequencies to set the beam up at (Hz)
- Returns
status Error code. 0 if all good, 1 if something is wrong
-
struct opdata¶
- #include <FEE_primary_beam.h>
Operator function to be called by H5Literate and
RTS_op_func.Used when finding the closest available frequency in the MWA FEE primary beam model