ska_ost_senscalc.low.sefd_lookup
- class ska_ost_senscalc.low.sefd_lookup.SEFDTable(db_path=None)[source]
Encapsulation of the SEFD lookup table to be used for SKA LOW calculations
- lookup_stokes_i_sefd(az: float, el: float, start_lst: float, end_lst: float, freq_fine_mhz: ndarray) ndarray[source]
Look up the SEFD values from the database corresponding to the local coordinates (az, el) between LST start_lst and end_lst.
- Parameters:
az – Azimuth angle in degrees (0-360 deg)
el – Elevation angle in degrees (0-90 deg)
start_lst – Start local sidereal time (LST) in hours (0-24 hrs)
end_lst – End local sidereal time (LST) in hours (0-24 hrs)
freq_fine_mhz – Frequency array, in MHz (50-350 MHz)
- Returns:
an array of Stokes I SEFD values at frequencies in fine_freq_mhz.
- ska_ost_senscalc.low.sefd_lookup.calculate_sefd_eff(sefd_array: array) float[source]
Calculate the effective SEFD of an observation, given an array of SEFD values
Effective overall SEFD is weighted so that the radiometer equation holds:
` dS = SEFD_eff / sqrt(bw * t) `Where bw is bandwidth, t is total integration time, and dS is noise level.If the mean SEFD value is used, this leads to incorrect estimates of observing times.
To calculate SEFD_eff, we apply
` SEFD_eff = sqrt(N) / sqrt( sum( 1/(SEFD^2) ) ) `:param sefd_array: array of SEFD values. Data should have shape (time, frequency) The integration time for each entry must be the same, such that overall integration time is N = length of time axis. :return: sefd_eff a float corresponding to an effective SEFD value over the observation