NuRadioReco.modules.efieldGalacticNoiseAdder module
- class NuRadioReco.modules.efieldGalacticNoiseAdder.efieldGalacticNoiseAdder[source]
Bases:
channelGalacticNoiseAdder
Class that simulates the noise produced by galactic radio emission
Uses the pydgsm package (https://github.com/telegraphic/pygdsm), which provides radio background data based on Oliveira-Costa et al. (2008) (https://arxiv.org/abs/0802.1525) and Zheng et al. (2016) (https://arxiv.org/abs/1605.04920)
The radio sky model is evaluated on a number of points above the horizon folded with the antenna response. Since evaluating every frequency individually would be too slow, the model is evaluated for a few frequencies and the log10 of the brightness temperature is interpolated in between.
This module is largely equivalent to the channelGalacticNoiseAdder, but operates on
ElectricField
instead ofChannel
objects.Methods
begin
([skymodel, debug, n_side, freq_range, ...])Set up important parameters for the module
get_electric_field_strength
(location, ...[, ...])Returns the electric field strength at a given location and time
run
(event, station, detector[, passband])Adds noise resulting from galactic radio emission to the field traces
See also
NuRadioReco.modules.channelGalacticNoiseAdder.channelGalacticNoiseAdder
Similar class that directly adds the noise to
Channel
(voltage trace) objects instead ofElectricField
s.
- run(event, station, detector, passband=None)[source]
Adds noise resulting from galactic radio emission to the field traces
- Parameters:
- event: Event object
The event containing the station to whose channels noise shall be added
- station: Station object
The station whose channels noise shall be added to
- detector: Detector object
The detector description
- passband: list of float, optional
Lower and upper bound of the frequency range in which noise shall be added. The default (no passband specified) is [10, 1000] MHz
- begin(skymodel=None, debug=False, n_side=4, freq_range=None, interpolation_frequencies=None, seed=None, caching=True, scaling=1.0)
Set up important parameters for the module
- Parameters:
- skymodel: {‘gsm2008’, ‘lfmap’, ‘lfss’, ‘gsm2016’, ‘haslam’}, optional
Choose the sky model to use. If none is provided, the Global Sky Model (2008) is used as a default.
- debug: bool, default: False
Deprecated. Will be removed in future versions.
- n_side: int, default: 4
The n_side parameter of the healpix map. Has to be power of 2 The radio skymap is downsized to the resolution specified by the n_side parameter and for every pixel above the horizon the radio noise coming from that direction is calculated. The number of pixels used is 12 * n_side ** 2, so a larger value for n_side will result better accuracy but also greatly increase computing time.
- freq_range: array of len=2, default: [10, 1000] * units.MHZ
The sky brightness temperature will be evaluated for the frequencies within this limit. Brightness temperature for frequencies in between are calculated by interpolation the log10 of the temperature The interpolation_frequencies have to cover the entire passband specified in the run method.
- interpolation_frequencies: array of frequencies to interpolate to.
Kept for historic purposes with intention to deprecate in the future.
- seed{None, int, array_like[ints], SeedSequence}, optional
The seed that is passed on to the
numpy.random.Philox
bitgenerator used for random number generation.- caching: bool, default: True
If True, the antenna response is cached for each channel. This can speed up this module by a lot. If the frequencies of the channels change, the cache is cleared.
- scaling: float, default: 1.0
Scaling factor for the noise. This is useful when doing interferometry with extremely large arrays such as SKA-low. For such an array it is very expensive to simulate/interpolate/process all antennas. Instead, one can use every nth antenna and scale the noise by a factor of 1/sqrt{n} (since the SNR is expected to scale with the square root of the number of antennas when using interferomtery/beamforming).
- get_electric_field_strength(location, obs_time, n_samples, sampling_rate, bandpass=None)
Returns the electric field strength at a given location and time
- Parameters:
- location: tuple of floats
The latitude and longitude in deg.
- obs_time: astropy.time.Time
The time at which the electric field strength is calculated
- n_samples: int
The number of samples in the time domain
- sampling_rate: float
The sampling rate of the trace
- bandpass: list of floats, optional
The lower and upper bound of the frequency range in which the electric field strength shall be calculated. By default no bandpass is applied (frequency range is from 0 to sampling_rate / 2)
- Returns:
- electric_field_strength: float
The electric field strength at the given location and time