RfiFrameDrop¶
-
class RfiFrameDrop : public kotekan::Stage¶
Drop whole GPU frames based on the high cadence kurtosis statistics.
This stage reads the kurtosis data output and uses it to filter the GPU N^2 data that feeds through the system. This is complex because the subframe processing of the N^2 data, the kurtosis frames contain the data corresponding to multiple N^2 frames and so we need to be careful to synchronize them.
- Buffers
in_buf_visThe kotekan buffer from which frames are read, can be any size.Format: GPU packed upper triangle
Metadata:
chimeMetadata
in_buf_skThe high cadence Spectral Kurtosis estimates.Format: High cadence SK values.
Metadata:
chimeMetadata
out_bufThe filtered GPU visibility data.Format: GPU packed upper triangle
Metadata:
chimeMetadata
- Metrics
kotekan_rfiframedrop_failing_frame_totalThe number of frames failing each criteria per frequency.kotekan_rfiframedrop_dropped_frame_totalThe number of frames dropped (i.e. failing any single threshold test) for each frequency.kotekan_rfiframedrop_frame_totalThe total number of frames seen by this stage per frequency.
- Author
Richard Shaw
- Param num_elements:
The number of inputs to the correlator.
- Param num_sub_frames:
The number of N^2 frames we will receive per SK frame.
- Param samples_per_data_set:
The number of FPGA samples combined into an SK frame.
- Param sk_step:
The number of FPGA samples combined into an SK element.
- Param thresholds:
List of dicts containing
fractionandthresholdkeys. Each of these is a float giving the fraction of SK values that must exceed the threshold for the frame to get dropped.
Public Functions
-
RfiFrameDrop(kotekan::Config &config, const std::string &unique_name, kotekan::bufferContainer &buffer_container)¶
Constructor.
-
virtual void main_thread() override¶
Primary loop.
-
bool rest_enable_callback(nlohmann::json &update)¶
Callback for the configUpdater to turn on/off rfi zeroing.
-
bool rest_thresholds_callback(nlohmann::json &update)¶
Callback for the configUpdater to update thresholds.