NuRadioReco.framework.base_trace module

class NuRadioReco.framework.base_trace.BaseTrace(trace=None, sampling_rate=None, trace_start_time=0)[source]

Bases: object

Initialize the BaseTrace object.

Parameters:
tracenp.array of floats (default: None)

The time trace. Can also be set later with the set_trace method.

sampling_ratefloat (default: None)

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

trace_start_timefloat (default: 0)

The start time of the trace.

Methods

add_to_trace(channel)

Adds the trace of another channel to the trace of this channel.

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_frequencies([window_mask])

Returns the frequencies of the frequency spectrum.

get_frequency_spectrum([window_mask])

Returns the frequency spectrum.

get_number_of_samples()

Returns the number of samples in the time domain.

get_sampling_rate()

Returns the sampling rate of the trace.

get_trace()

Returns the time trace.

set_frequency_spectrum(frequency_spectrum, ...)

Sets the frequency spectrum.

set_trace(trace, sampling_rate)

Sets the time trace.

add_trace_start_time

deserialize

get_hilbert_envelope

get_hilbert_envelope_mag

get_times

get_trace_start_time

resample

serialize

set_trace_start_time

get_trace()[source]

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_filtered_trace(passband, filter_type='butter', order=10, rp=None)[source]

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_frequency_spectrum(window_mask=None)[source]

Returns the frequency spectrum.

Parameters:
window_mask: array of bools (default: None)

If not None, specifies the time window to be used for the FFT. Has to have the same length as the trace.

Returns:
frequency_spectrum: np.array of floats

The frequency spectrum.

set_trace(trace, sampling_rate)[source]

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_frequency_spectrum(frequency_spectrum, sampling_rate)[source]

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).

get_sampling_rate()[source]

Returns the sampling rate of the trace.

Returns:
sampling_rate: float

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

get_times()[source]
set_trace_start_time(start_time)[source]
add_trace_start_time(start_time)[source]
get_trace_start_time()[source]
get_frequencies(window_mask=None)[source]

Returns the frequencies of the frequency spectrum.

Parameters:
window_mask: array of bools (default: None)

If not None, used to determine the number of samples in the time domain used for the frequency spectrum.

Returns:
frequencies: np.array of floats

The frequencies of the frequency spectrum.

get_hilbert_envelope()[source]
get_hilbert_envelope_mag()[source]
get_number_of_samples()[source]

Returns the number of samples in the time domain.

Returns:
n_samples: int

number of samples in time domain

apply_time_shift(delta_t, silent=False)[source]

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

resample(sampling_rate)[source]
serialize()[source]
deserialize(data_pkl)[source]
add_to_trace(channel)[source]

Adds the trace of another channel to the trace of this channel. The trace is only added within the time window of “this” channel. If this channel is an empty trace with a defined _sampling_rate and _trace_start_time, and a _time_trace containing zeros, this function can be seen as recording a channel in the specified readout window.

Parameters:
channel: BaseTrace

The channel whose trace is to be added to the trace of this channel.

NuRadioReco.framework.base_trace.get_frequencies(length, sampling_rate)[source]