NuRadioReco.framework.electric_field module

class NuRadioReco.framework.electric_field.ElectricField(channel_ids, position=None, shower_id=None, ray_tracing_id=None)[source]

Bases: BaseTrace

Initialize a new electric field object

This object stores a 3 dimensional trace plus additional meta parameters

Parameters:
channel_ids: array of ints

the channels ids this electric field is valid for. (For cosmic rays one electric field is typically valid for several channels. For neutrino simulations, we typically simulate the electric field for each channel separately)

position: 3-dim array/list of floats

the position of the electric field

shower_id: int or None

the id of the corresponding shower object

ray_tracing_id: int or None

the id of the corresponding ray tracing solution

Methods

apply_time_shift(delta_t[, silent])

Uses the fourier shift theorem to apply a time shift to the trace Note that this is a cyclic shift, which means the trace will wrap around, which might lead to problems, especially for large time shifts.

get_filtered_trace(passband[, filter_type, ...])

Returns the trace after applying a filter to it.

get_number_of_samples()

Returns the number of samples in the time domain.

get_position()

get position of the electric field relative to station position

get_sampling_rate()

Returns the sampling rate of the trace.

get_trace()

Returns the time trace.

get_unique_identifier()

returns a unique identifier consisting of the tuple channel_ids, shower_id and ray_tracing_id

set_frequency_spectrum(frequency_spectrum, ...)

Sets the frequency spectrum.

set_position(position)

set position of the electric field relative to station position

set_trace(trace, sampling_rate)

Sets the time trace.

add_trace_start_time

deserialize

get_channel_ids

get_frequencies

get_frequency_spectrum

get_hilbert_envelope

get_hilbert_envelope_mag

get_parameter

get_parameter_error

get_parameters

get_ray_tracing_solution_id

get_shower_id

get_times

get_trace_start_time

has_channel_ids

has_parameter

has_parameter_error

resample

serialize

set_channel_ids

set_parameter

set_parameter_error

set_trace_start_time

get_unique_identifier()[source]

returns a unique identifier consisting of the tuple channel_ids, shower_id and ray_tracing_id

get_parameter(key)[source]
get_parameters()[source]
set_parameter(key, value)[source]
has_parameter(key)[source]
has_parameter_error(key)[source]
set_parameter_error(key, value)[source]
get_parameter_error(key)[source]
set_channel_ids(channel_ids)[source]
get_channel_ids()[source]
has_channel_ids(channel_ids)[source]
get_shower_id()[source]
get_ray_tracing_solution_id()[source]
get_position()[source]

get position of the electric field relative to station position

set_position(position)[source]

set position of the electric field relative to station position

serialize(save_trace)[source]
add_trace_start_time(start_time)
apply_time_shift(delta_t, silent=False)

Uses the fourier shift theorem to apply a time shift to the trace Note that this is a cyclic shift, which means the trace will wrap around, which might lead to problems, especially for large time shifts.

Parameters:
delta_t: float

Time by which the trace should be shifted

silent: boolean (default:False)

Turn off warnings if time shift is larger than 10% of trace length Only use this option if you are sure that your trace is long enough to acommodate the time shift

deserialize(data_pkl)[source]
get_filtered_trace(passband, filter_type='butter', order=10, rp=None)

Returns the trace after applying a filter to it. This does not change the stored trace.

Parameters:
passband: list of floats

lower and upper bound of the filter passband

filter_type: string

type of the applied filter. Options are rectangular, butter and butterabs

order: int

Order of the Butterworth filter, if the filter types butter or butterabs are chosen

get_frequencies()
get_frequency_spectrum()
get_hilbert_envelope()
get_hilbert_envelope_mag()
get_number_of_samples()

Returns the number of samples in the time domain.

Returns:
n_samples: int

number of samples in time domain

get_sampling_rate()

Returns the sampling rate of the trace.

Returns:
sampling_rate: float

sampling rate, i.e., the inverse of the bin width

get_times()
get_trace()

Returns the time trace.

If the frequency spectrum was modified before, an ifft is performed automatically to have the time domain representation up to date.

Returns:
trace: np.array of floats

the time trace

get_trace_start_time()
resample(sampling_rate)
set_frequency_spectrum(frequency_spectrum, sampling_rate)

Sets the frequency spectrum.

Parameters:
frequency_spectrumnp.array of floats

The frequency spectrum

sampling_ratefloat or str

The sampling rate of the trace, i.e., the inverse of the bin width. If sampling_rate=”same”, sampling rate is not changed (requires previous initialisation).

set_trace(trace, sampling_rate)

Sets the time trace.

Parameters:
tracenp.array of floats

The time series

sampling_ratefloat or str

The sampling rate of the trace, i.e., the inverse of the bin width. If sampling_rate=”same”, sampling rate is not changed (requires previous initialisation).

set_trace_start_time(start_time)