Event Comma Separated Values (Event CSV) Format

Important

This format can be loaded into Python with skutils.Loaders.EventCSVLoader

EventCSV is variation of a comma separated value. It was brought to our attention by researchers at the Facility for Rare Isotope Beams. Event CSV files are a mixture of tab-separate data columns and comma separated values

Format Features

Type

ASCII

Extension

“.ecsv”

Contains Event Timestamp

Yes

Contains Channel Timestamps

No

Contains Pulse Summary (DSP Quantities)

No

Contains Waveforms

Yes

Average Data Rate (Vireo)

4.66 MB/s

512 Sample Waveforms Per Second

2274

Decoding Example

Skutils Loaders provide EventInfo objects which contain all Summary and Waveform data associated with your events. See EventInfo and ChannelData for more information about available quantities.

 1import skutils
 2filenames = ['/path/to/your/file_seq000001.ecsv',
 3              '/path/to/your/file_seq000002.ecsv']
 4
 5for event in skutils.quickLoad(filenames):
 6  # grab event timestamp and the channels in this event
 7  event_timestamp = event.event_timestamp
 8  channels        = event.channels
 9  # DSP Quantities are not saved in this format and their values will be None
10  for ch_data in event.channel_data:
11     ch_data.channel_timestamp
12     ch_data.trigger_height
13     ch_data.pulse_height
14
15  # Grabbings waveforms. rows are samples, channels are columns
16  waveform        = event.wavedata()

Each EventCSV file contains a human-readable header with Metadata information about the collection run. Each line of the header is prefixed with ‘#’ to indicate that it’s a comment and should be ignored by any parsing tools.

Example File Content

 1# Datetime        : "UTC Time: 2025-01-17 15:06:05"
 2# GlobalID        : 0
 3# Product         : "Vireo"
 4# SerialNumber    : "000019"
 5# SoftwareVersion : "5.2.2"
 6# FirmwareVersion : "255.255.255"
 7# FormatSample :
 8# event_timestamp    channel_list    channel_waveform_data-->
 9# event_timestamp1   [channel_list]  [chA_0, ..., chA_N]     [chB_0, ..., chB_N]     ...
10# event_timestamp2   [channel_list]  [chA_0, ..., chA_N]     [chB_0, ..., chB_N]     ...
11# BEGIN

Data Format

Following the header, each line of the file contains data related to an event that occured at a specific timestamp. Columns are separated by tab characters.

#. The first column is the timestamp of the Event. This is defined as the timestamp of first channel that triggered within the trigger window. #. The second column is a bracketed list of channels that are represented in the event. The channels are separated by commas within the brackets and the order of channels in this list is the order channel data appears in subsequent columns #. All remaining columns contain waveform data from the channels that triggered in the Event. Each wave is a bracketed list of comma separated values

Example

Note: Only 8 sample waves are shown for readability. Your data files will likely contain many more samples per wave.

# timestamp  channel_list    channel_data-->
67353554155614       [0,1]   [632,632,633,636,636,633,635]   [675,673,672,678,677,676,675,678]
67353554670210       [0,1]   [634,633,632,632,632,636,634]   [677,676,675,679,677,677,678,678]
67353554696271       [0,1]   [632,631,631,633,631,633,632]   [673,677,676,675,674,674,674,674]
...