public static void WriteSnippets() { // Get directories to read and write from String[] dirReadWrite = GetReadWriteDirectories(); String dataDir = dirReadWrite[0]; String writeDir = dirReadWrite[1]; // Loading CV file CVFile cvf = LoadCVFile(dataDir); // Getting list of CVs (3 CVs probably) List <CVBasedQuestionList> cvList = cvf.CVBasedQuestionList; // For each CV for (int i = 0; i < cvList.Count; i++) { List <CVBasedQuestion> snippetList = cvList[i].CVBasedQuestions; // get list of snippets (4) // For each snippet in CV for (int j = 0; j < snippetList.Count; j++) { // start and end times long start = snippetList[j].TimeStamp; long end = snippetList[j].CompletedTimeStamp; EEGDataIO dataIO = new EEGDataIO(dataDir, GetExpStartEnd(dataDir)[0]); dataIO.LoadData(start, end); dataIO.WriteToMat(writeDir + "CV_" + (i + 1) + "_snippet_" + (j + 1) + ".mat"); } } }
public static void GenerateSnippetEvents(String dataDir, String writeDir) { // Generates epoch/event times for CV snippets // Default length is 1s, overlap 0.5s // So e.g. for 2s snippet, there will be 3 epochs // Output is tab-separated .txt file (for import to EEGLAB) // Loading CV file CVFile cvf = LoadCVFile(dataDir); // Getting list of CVs (3 CVs probably) List <CVBasedQuestionList> cvList = cvf.CVBasedQuestionList; // File string String eventString = "latency\ttype\tcv\tsection\tenum"; String[] type = { "start", "during", "during", "during", "during", "during", "during" }; // For each CV for (int i = 0; i < cvList.Count; i++) { List <CVBasedQuestion> snippetList = cvList[i].CVBasedQuestions; // get list of snippets (4) // For each snippet in CV for (int j = 0; j < snippetList.Count; j++) { // start timestamp, relative to experiment start; in seconds double start = Convert.ToDouble(snippetList[j].TimeStamp) / 1000; if (j == 0 || j == 1) { // 2 seconds; 3 snippets for (int k = 0; k < 3; k++) { eventString += "\r\n" + (start + k * 0.5) + "\t" + type[k] + "\t" + (i + 1) + "\t" + (j + 1) + "\t" + (k + 1); } } else if (j == 2 || j == 3) { // 3 seconds; 5 snippets for (int k = 0; k < 5; k++) { eventString += "\r\n" + (start + k * 0.5) + "\t" + type[k] + "\t" + (i + 1) + "\t" + (j + 1) + "\t" + (k + 1); } } } } // Writing to file System.IO.File.WriteAllText(writeDir + @"eventtable.txt", eventString); }