arrow-left

All pages
gitbookPowered by GitBook
1 of 5

Loading...

Loading...

Loading...

Loading...

Loading...

JSON files

If your recording contains keystroke markers, a JSON file will also be exported. This JSON file contains the descriptions of the keystroke markers used and their corresponding values in the EDF and CSV files.

A Baseline JSON file is created when baseline recording is enabled. The baseline markers and their corresponding values are:

  • Eyes Opened Start : 1

  • Eyes Opened End: 2

  • Eyes Closed Start: 3

  • Eyes Closed End: 4

In case of EPOC Flex, a separate JSON file is created that outputs the mapping for channel names and sensor positions for the selected session. For e.g.:

"CMS": "Afz",

"DRL": "FCz",

"LA": "C3",

"LB": "T7",

"LC": "FC1",

"LD": "FC5",

"LE": "FT9",

"LF": "F3",

"LG": "F7",

"LH": "Fp1",

"LJ": "Pz",

"LK": "Cz",

"LL": "O1",

"LM": "TP9",

"LN": "P3",

"LO": "P7",

"LP": "CP1",

"LQ": "CP5",

"RA": "C4",

"RB": "T8",

"RC": "FC2",

"RD": "FC6",

"RE": "FT10",

"RF": "F4",

"RG": "F8",

"RH": "Fp2",

"RJ": "Oz",

"RK": "Fz",

"RL": "O2",

"RM": "TP10",

"RN": "P4",

"RO": "P8",

"RP": "CP2",

"RQ": "CP6"

EDF+ / BDF+

In addition to EDF Files, EmotivPRO also supports EEG and motion data export in EDF+ (European Data Format)/ BDF+ (Biosemi Data Format) files. These formats are widely used and compatible with various EEG analysis programs.

EDF+ and BDF+ Files: Both EDF+ and BDF+ files follow a similar structure, consisting of header information followed by data samples. Each row in the data file corresponds to a time slice of data, with successive rows representing successive time slices. Columns in the data file correspond to sensor locations or other information tags.

Storage of EEG and Motion Data: One advantage of EDF+ and BDF+ formats over EDF is their flexibility in data organization, these formats allow for both types of data to be stored within the same file. By labeling channels appropriately, EEG, motion, and other types of data can coexist within a single EDF+ or BDF+ file, facilitating efficient storage and analysis of multiple data streams simultaneously.

For list of Columns please refer to the format page

EDF

EDF files

EEG and motion data are stored by EmotivPRO in a standard binary format, EDF, which is compatible with many EEG analysis programs. Following the initial information line, each successive row in the data file corresponds to one data sample, or 1/32, 1/64, 1/128 or 1/256 second time slice of data (depending on your headset’s frequency rate and if the data file is EEG or motion data). Successive rows correspond to successive time slices and each column of the data file corresponds to to an individual sensor location or other information tag.

Emotiv PRO exports your record in 2 separate EDF files:

  • 1 file with the EEG data, the contact quality and the EEG quality

  • 1 file with the motion data

These EDF files follow the .

hashtag
Columns of the EEG file

The EEG file includes these columns:

hashtag
Columns of the motion file

When you export a recording, you will also get an EDF file for the motion data (named "xxx.md.edf"), if that data was collected from your headset. This file is in the same format as the EEG file and with the same descriptive tags.

hashtag
The timestamp columns

The EDF files includes 2 columns named "TIME_STAMP_s" and "TIME_STAMP_ms". You need to combine them in order to get a usable timestamp for each sample:

RELATIVE_TIME is the number of seconds elapsed since the beginning of the record. So it means that the first EEG sample of record has a relative timestamp of zero. The relative timestamp of the last EEG sample gives you the duration of the record.

To get the start date and time of the record, you can read the fields startdate and starttime from the . However, the field starttime has a precision of 1 second, which is not enough to combine it with the relative timestamps.

Instead, you should read the field reserved of the EDF header. This field stores the start date and time of the record as a string, with a precision of 1 microsecond. The format is YYYY-MM-DDThh:mm:ss.mmmmmm+TIMEZONE Example: 2020-06-19T15:36:47.256794+07:00

The battery level of the headset, from 0 to 4.

BATTERY_PERCENT

The battery level of the headset, from 0 to 100. It has the same purpose as the column "Battery", but it is more precise.

MARKER_HARDWARE

1 if a hardware marker was received for this EEG sample.

0 otherwise.

Hardware markers are created with the .

CQ_<sensor>

Examples: CQ_AF3, CQ_T7, CQ_Pz, CQ_T8

The contact quality of each EEG sensor, from 0 to 4.

CQ_OVERALL

The overall contact quality is a value from 0 to 100 that is calculated from the contact quality of all the EEG sensors.

EQ_<sensor>

Examples: EQ_AF3, EQ_T7, EQ_Pz, EQ_T8

The EEG quality of each EEG sensor, from 0 to 4.

EQ_SampleRateQua

A float value from 0 to 1 that evaluates the actual sample rate of the EEG data coming from the headset.

If the wireless connection between the headset and the computer is perfect (no data loss) then the sample rate quality is 1. If X percent of the EEG samples were lost over the last 2 seconds, then the SRQ is (100 - X) / 100.

If we lost more than 300 ms of data over the last 2 seconds, then the SRQ takes the special value -1.

EQ_OVERALL

A value from 0 to 100 that is calculated from the EEG quality of all the EEG sensors.

X, Y, Z axis of the gyroscope (older EMOTIV headsets)

ACCX, ACCY, ACCZ

X, Y, Z axis of the accelerometer.

MAGX, MAGY, MAGZ

X, Y, Z axis of the magnetometer.

Column name

Value

TIME_STAMP_s

See below for details

TIME_STAMP_ms

See below for details

COUNTER

Increment by 1 for each sample, reset to zero every second.

INTERPOLATED

0 if this EEG sample was received from the headset. Greater than 0 if this sample was interpolated by Cortex.

<sensor>

Examples: AF3, T7, Pz, T8

For each EEG sensor, you get 1 value in microvolt.

Column name

Value

TIME_STAMP_s

See below for details

TIME_STAMP_ms

See below for details

COUNTER_MEMS

Increment by 1 for each motion sample, reset to zero every second.

INTERPOLATED_MEM

0 if this motion sample was received from the headset. Greater than 0 if this sample was interpolated by Cortex.

Q0, Q1, Q2, Q3

Quaternions of the gyroscope (newer EMOTIV headsets)

EDF specificationarrow-up-right
header of the EDF filearrow-up-right

BATTERY

GYROX, GYROY, GYROZ

Exporting an EEG data recording

circle-info

You cannot export an EEG data recording from EmotivPRO for Tablet; you can only do this from the EmotivPRO desktop application with an active EmotivPRO subscription.

To export an EEG data recording so you can analyse it in another software program:

  1. Go to the Recording view in the EmotivPRO desktop application.

  2. Find the EEG data recording you want to export from the list.

  3. Hover your mouse over the EEG data recording you want to export.

  4. To the right-hand side of your selected recording you will see a export icon. Click on the icon.

  5. A window will open on the screen with different data export options. Select or unselect additional data streams you want to export (EEG data is always exported), choose a folder to export the EEG data recording to, and choose whether you want your data exported as a CSV or EDF file.

  6. The EEG data will be exported to the chosen folder.

  7. The recording first need to synced to the desktop before it can first be exported. Make sure the cloud icon towards the left of experiment name is in Green. Click for it to sync incase it is not synced already

Exporting EEG data recordings containing keystroke markers

If the EEG data recording you’re exporting contains keystroke markers, a JSON file is also exported. The JSON file contains the descriptions for the keystroke markers, their corresponding values in the EDF and CSV files.

For more information about formatting EDF and CSV files, visit the Exported Data Files section of this user guide.

Please note: EmotivPRO currently only supports Raw EEG and Frequency Analysis for EPOC Flex.

RELATIVE_TIME = TIME_STAMP_s + (TIME_STAMP_ms / 1000)
Extenderarrow-up-right

CSV files

hashtag
Header

The CSV file has a header made of 2 lines. The first line contains information about the record and its data streams. The second line is a classic CSV header with the name of the columns.

hashtag
First line

The first line of the CSV file is a comma separated list of key and value pairs. The key is separated from the value by a colon. It looks like key1:value1, key2:value2, key3:value3

Here is the meaning of each key and value pair:

Example:

title:foo, start timestamp:1623658701.491566, stop timestamp:1623658723.788441, headset type:INSIGHT, headset serial:7AEC4253, headset firmware:931, channels:28, sampling rate:128, samples:2855 , version:2.1,

hashtag
Second line

The comma separated list of the column names of this CSV file.

Example:

Timestamp,EEG.Counter,EEG.Interpolated,EEG.AF3,EEG.T7,EEG.Pz,EEG.T8,EEG.AF4,EEG.RawCq,EEG.Battery,EEG.BatteryPercent,MarkerIndex,MarkerType,MarkerValueInt,EEG.MarkerHardware,CQ.AF3,CQ.T7,CQ.Pz,CQ.T8,CQ.AF4,CQ.Overall,EQ.SampleRateQuality,EQ.OVERALL,EQ.AF3,EQ.T7,EQ.Pz,EQ.T8,EQ.AF4

hashtag
Columns

The CSV file contains many columns. For clarity, we divide them into categories in this documentation. The exact content of your CSV file depends on the options you selected when you exported the record.

hashtag
EEG and markers

hashtag
Motion

hashtag
Contact quality

hashtag
EEG quality

hashtag
Performance metrics

The name of the columns has the format PM.<name>.<value> The <name> is the name of a performance metric. There are 6 possible values: Engagement, Excitement, Stress, Relaxation, Interest, Focus. The <value> can be IsActive, Scaled, Raw, Min, Max.

Examples: PM.Engagement.Min, PM.Stress.IsActive, PM.Relaxation.Scaled

To scale the Raw value post hoc for a given recording, you can use the Min and Max values at the end of the recording (where they are most stable) and the following equation:

There is one additional column, named "PM.LongTermExcitement". Long Term Excitement is a metric derived from the Excitement metric. It is a better measurement of overall mood, rather than acute changes in mental arousal.

hashtag
Mental commands

The possible values for MC.Action are:

hashtag
Facial expressions

hashtag
Frequency band

The file contains 5 columns for each EEG sensor of the headset. The name of the columns has the format POW.<sensor>.<band>

The bands are:

  • Theta: 4-8 Hertz

  • Alpha: 8-12 Hertz

  • BetaL: 12-16 Hertz

For example, for the EEG sensor AF3, the file has 5 columns: POW.AF3.Theta, POW.AF3.Alpha, POW.AF3.BetaL, POW.AF3.BetaH, POW.AF3.Gamma.

The firmware version of the headset

channels

The number of columns in this CSV file

sampling rate

The sample rate of each data stream.

samples

The number of data samples in this CSV file.

1 if a hardware marker was received for this EEG sample.

0 otherwise.

Hardware markers are created with the

X, Y, Z axis of the magnetometer.

Left

64

Right

128

Rotate Left

256

Rotate Right

512

Rotate Clockwise

1024

Rotate Counter-Clockwise

2048

Rotate Forward

4096

Rotate Backward

8192

Disappear

The power of the lower face action. It is a decimal number between 0 and 1, zero means "low power", 1 means "high power".

BetaH: 16-25 Hertz
  • Gamma: 25-45 Hertz

  • Key

    Value

    title

    The title of the record

    start timestamp

    The timestamp of the first EEG sample of the record

    stop timestamp

    The timestamp of the last EEG sample of the record

    headset type

    The type of the headset used during this record. It can be INSIGHT, EPOC, EPOCPLUS, EPOCFLEX, EPOCX, MN8

    headset serial

    The serial number of the headset

    Column name

    Value

    EEG.Counter

    Increment by 1 for each sample, reset to zero every second.

    EEG.Interpolated

    0 if this EEG sample was received from the headset. Greater than 0 if this sample was interpolated by Cortex.

    EEG.<sensor>

    Examples: EEG.AF3, EEG.T7, EEG.Pz, EEG.T8

    For each EEG sensor, you get 1 value in microvolt.

    EEG.Battery

    The battery level of the headset, from 0 to 4.

    EEG.BatteryPercent

    The battery level of the headset, from 0 to 100. It has the same purpose as the column "Battery", but it is more precise.

    Column name

    Value

    MOT.CounterMems

    Increment by 1 for each sample, reset to zero every second.

    MOT.InterpolatedMems

    0 if this motion sample was received from the headset. Greater than 0 if this sample was interpolated by Cortex.

    MOT.Q0, MOT.Q1, MOT.Q2, MOT.Q3

    Quaternions of the gyroscope (newer EMOTIV headsets)

    MOT.GYROX, MOT.GYROY, MOT.GYROZ

    X, Y, Z axis of the gyroscope (older EMOTIV headsets)

    MOT.AccX, MOT.AccY, MOT.AccZ

    X, Y, Z axis of the accelerometer.

    Column name

    Value

    CQ.Overall

    The overall contact quality is a value from 0 to 100 that is calculated from the contact quality of all the EEG sensors.

    CQ.<sensor> Examples: CQ.AF3, CQ.T7, CQ.Pz, CQ.T8, CQ.AF4

    The contact quality of each EEG sensor, from 0 to 4.

    Column name

    Value

    EQ.SampleRateQuality

    A float value from 0 to 1 that evaluates the actual sample rate of the EEG data coming from the headset.

    If the wireless connection between the headset and the computer is perfect (no data loss) then the sample rate quality is 1. If X percent of the EEG samples were lost over the last 2 seconds, then the SRQ is (100 - X) / 100.

    If we lost more than 300 ms of data over the last 2 seconds, then the SRQ takes the special value -1.

    EQ.OVERALL

    A value from 0 to 100 that is calculated from the EEG quality of all the EEG sensors.

    EQ.<sensor>

    Examples: EQ.AF3,EQ.T7,EQ.Pz,EQ.T8,EQ.AF4

    The EEG quality of each EEG sensor, from 0 to 4.

    Value

    Meaning

    IsActive

    1 if the detection is running properly. It is 0 if the detection cannot run. This can happen if the EEG signal from the headset is of poor quality.

    Scaled

    The Scaled column shows the Raw value scaled to fit on a 0 to 1 scale to provide more context for each individual's scores. The scaling is based on a successive approximation of the mean and variance for each recording, calculated as the session progresses. The data file reflects this progressive scaling which usually stabilizes after a few minutes.

    Raw

    The Raw column shows the raw value outputted from our Performance Metrics algorithm, which can range from single digit negative numbers to single digit positive numbers. Different individuals can have non-overlapping ranges. These numbers are meaningful when looked at relatively.

    Min, Max

    Min and Max values set lower and upper bounds for the Scaled value and are calculated from the current mean and variance of the Raw value. Initial values of Min and Max are set based on population data. The current value is scaled so that Min maps to .05 and Max maps to .95 on the 0-1 scale. We use a logistic scale to prevent data cutoff at 0 and 1 boundaries; the range around the mean value (mapped to 0.5) is close to linear while the extremes get steadily more nonlinear.

    Column name

    Value

    MC.Action

    A mental command action. See the meaning of each value below.

    MC.ActionPower

    The power of the action. It is a decimal number between 0 and 1, zero means "low power", 1 means "high power".

    MC.IsActive

    1 if the detection is running properly. It is 0 if the detection cannot run. This can happen if the EEG signal from the headset is of poor quality.

    MC.Action

    Meaning

    1

    Neutral

    2

    Push

    4

    Pull

    8

    Lift

    16

    Drop

    Column name

    Value

    FE.BlinkWink

    1 for "Neutral"

    10 for "Blink"

    11 for "Wink Left"

    12 for "Wink Right"

    FE.HorizontalEyesDirection

    -1 for "Look Left"

    0 for "Neutral"

    1 for "Look Right"

    FE.UpperFaceAction

    1 for "Neutral"

    32 for "Raise Brows"

    64 for "Furrow Brows"

    FE.UpperFaceActionPower

    The power of the upper face action. It is a decimal number between 0 and 1, zero means "low power", 1 means "high power".

    FE.LowerFaceAction

    1 for "Neutral"

    128 for "Smile"

    256 for "Clench Teeth"

    512 for "Laugh"

    1024 for "Smirk Left" 2048 for "Smirk Right"

    headset firmware

    EEG.MarkerHardware

    MOT.MagX, MOT.MagY, MOT.MagZ

    32

    FE.LowerFaceActionPower

    AVERAGE = (MAX + MIN)/2.0;
    RANGE = MAX - MIN;
    scaled = 1.0 / (1 + exp( -5.0 * (raw - AVERAGE) / RANGE));
    Extenderarrow-up-right