nenupy.astro.beam_correction.pointing_correction_factor
- nenupy.astro.beam_correction.pointing_correction_factor(digital_pointing, analog_pointing, times, frequencies, nenufar=<class 'nenupy.instru.nenufar.NenuFAR'>(nMAS=96), polarization=Polarization.NW, nenufar_config=<nenupy.instru.nenufar.NenuFAR_Configuration object>, correction_year='2022', return_interpolation=False)[source]
Compute the factor needed to correct the intensity of the sources observed when NenuFAR (in beamformed mode) suffered from a pointing offset (i.e., before 2025 June 17). The output correction factor is an array shaped like (
times,frequencies,polarization). There’s no need in computing it on a fine time-frequency grid since, the evolution is quite smooth over a few minutes and can be interpolated to match the original dataset. Tis function simulates NenuFAR’s beam and its effective offset in order to propose a correction factor.digital_pointingandanalog_pointingneed to reflect the desired pointing coordinates (i.e., no beamsquint correction nor empirical correction).- Parameters:
digital_pointing (
Pointing) – Digital pointing orders, that would typically follow an astrophysical source across time.analog_pointing (
Pointing) – Analog pointing orders, given every 6 minutes to the NenuFAR Mini-Arrays.times (
Time) – _description_frequencies (
Quantity) – _description_nenufar (
NenuFAR, optional) – _description_, by default NenuFAR()polarization (
ndarray|Polarization, optional) – _description_, by default Polarization.NWnenufar_config (
NenuFAR_Configuration, optional) – _description_, by default NenuFAR_Configuration()correction_year (
str, optional) – _description_ (seepointing_correction()), by default “2022”return_interpolation (
bool, optional) – Return the interpolation function. If this option is selected the time, frequency and polarization axes are converted to Julian days / MHz / (0=`~nenupy.instru.nenufar.Polarization.NW`, 1=`~nenupy.instru.nenufar.Polarization.NE`) values for interpolation purposes (see example), by defaultFalse
- Returns:
_description_
- Return type:
ndarrayorRegularGridInterpolator
Examples
>>> from nenupy.astro.pointing import Pointing >>> import numpy as np >>> import astropy.units as u >>> pp_digi = Pointing.from_file("<file_name>.altazB", include_corrections=False) >>> pp_ana = Pointing.from_file("<file_name>.altazA", include_corrections=False) >>> t_steps = 50 >>> f_steps = 30 >>> times = pp_digi.time[0] + np.arange(t_steps) * (pp_digi.time[-1] - pp_digi.time[0])/t_steps >>> freqs = np.linspace(10, 80, f_steps) * u.MHz >>> factor = pointing_correction_factor( digital_pointing=pp_digi, analog_pointing=pp_ana, times=times, frequencies=freqs, correction_year="2022", return_interpolation=True ) >>> X, Y, Z = np.meshgrid(times.jd, freqs.to_value(u.MHz), [0], indexing='ij') >>> interpolated_factor = factor((X, Y, Z))
Warning
The correction factor is solely intended to be applied on the target astrophyiscal source’s emission. The underlying (though most of the time dominant) background emission is not affected at the same scale by the pointing offset.
See also
<link to the report>.