NuRadioReco.modules.voltageToEfieldConverter module
- NuRadioReco.modules.voltageToEfieldConverter.get_array_of_channels(station, use_channels, det, zenith, azimuth, antenna_pattern_provider, time_domain=False, efield_position=None)[source]
Get the voltage traces and antenna factors for the electric field reconstruction.
- Parameters:
- station
NuRadioReco.framework.station.Station
The station object containing the channels and their parameters.
- use_channelslist of int
The channel ids to use for the electric field reconstruction.
- detNuRadioReco.detector.Detector
The detector object containing the site and antenna information.
- zenithfloat
The zenith angle of the incoming signal in radians.
- azimuthfloat
The azimuth angle of the incoming signal in radians.
- antenna_pattern_provider
NuRadioReco.detector.antennapattern.AntennaPatternProvider
The antenna pattern provider to get the antenna response functions.
- efield_positionnumpy array, optional
The position where the electric field is calculated - determines time shift of the voltage traces. If None, it raises an error.
- time_domainbool, optional
If True, returns the time domain traces as well. Default is False.
- station
- Returns:
- timesnumpy array
The time array of the traces.
- efield_antenna_factornumpy array
The antenna factor for the electric field at the given position.
- Vnumpy array
The frequency spectrum of the voltage traces for the selected channels.
- V_timedomainnumpy array, optional
The time domain traces for the selected channels, if time_domain is True.
- NuRadioReco.modules.voltageToEfieldConverter.stacked_lstsq(L, b, rcond=1e-10)[source]
Solve L x = b, via SVD least squares cutting of small singular values L is an array of shape (…, M, N) and b of shape (…, M). Returns x of shape (…, N)
Note that if L is symmetric, it is inverted analytically instead.
- class NuRadioReco.modules.voltageToEfieldConverter.voltageToEfieldConverter[source]
Bases:
object
Unfold the electric field from the channel voltages
This module reconstructs the electric field by solving the system of equation that relate the incident electric field via the antenna response functions to the measured voltages (see Eq. 4 of the NuRadioReco paper https://link.springer.com/article/10.1140/epjc/s10052-019-6971-5). The module assumed that the electric field is identical at the antennas/channels that are used for the reconstruction. Furthermore, at least two antennas with orthogonal polarization response are needed to reconstruct the 3dim electric field. Alternatively, the polarization of the resulting efield could be forced to a single polarization component. In that case, a single antenna is sufficient.
Methods
run
(evt, station, det[, use_channels, ...])run method.
begin
end
- run(evt, station, det, use_channels=None, use_MC_direction=False, force_Polarization='')[source]
run method. This function is executed for each event
- Parameters:
- evt
NuRadioReco.framework.event.Event
- station
NuRadioReco.framework.base_station.BaseStation
- detDetector object
- use_channels: array of ints (default: [0, 1, 2, 3])
the channel ids to use for the electric field reconstruction
- use_MC_direction: bool, default: False
If True uses zenith and azimuth direction from simulated station. Otherwise, uses reconstructed direction from station parameters.
- force_Polarization: str, optional
If eTheta or ePhi, then only reconstructs chosen polarization of electric field, assuming the other is 0. Otherwise (default), reconstructs electric field for both eTheta and ePhi
- evt