visAccumulate

class visAccumulate : public kotekan::Stage

Accumulate the high rate GPU output into integrated VisBuffers.

This stage will accumulate the GPU output and calculate the within sample variance for weights.

It tags the stream with a properly allocated dataset_id and adds associated datasetStates to the datasetManager.

Buffers

  • in_buf

    • Format: GPU packed upper triangle

    • Metadata: chimeMetadata

  • out_buf The accumulated and tagged data.

    • Format: VisBuffer structured.

    • Metadata: VisMetadata

Metrics

  • kotekan_visaccumulate_skipped_frame_total The number of frames skipped entirely because they were under the low_sample_fraction, or too old.

Author

Richard Shaw, Tristan Pinsonneault-Marotte

Param samples_per_data_set:

Int. The number of samples each GPU buffer has been integrated for.

Param num_gpu_frames:

Int. The number of GPU frames to accumulate over.

Param integration_time:

Float. Requested integration time in seconds. This can be used as an alterative to num_gpu_frames (which it overrides). Internally it picks the nearest acceptable value of num_gpu_frames.

Param num_elements:

Int. The number of elements (i.e. inputs) in the correlator data.

Param num_freq_in_frame:

Int. Number of frequencies in each GPU frame.

Param block_size:

Int. The block size of the packed data.

Param input_reorder:

Array of [int, int, string]. The reordering mapping. Only the first element of each sub-array is used and it is the the index of the input to move into this new location. The remaining elements of the subarray are for correctly labelling the input in VisWriter.

Param low_sample_fraction:

If a frames has less than this fraction of the data expected, skip it. This is set to 1% by default.

Param instrument_name:

String. Name of the instrument. Default “chime”.

Param freq_ids:

Vector of UInt32. Frequency IDs on the stream. Default 0..1023.

Param max_age:

Float. Drop frames later than this number of seconds. Default is 60.0

Public Functions

visAccumulate(kotekan::Config &config, const std::string &unique_name, kotekan::bufferContainer &buffer_container)
~visAccumulate() = default
virtual void main_thread() override