/// <summary> /// Step through and calculate means+std devs for each voltage in .fullDATs /// </summary> public void GenerateStatsData() { StackTrace st = new StackTrace(); Debug.WriteLine("GenerateStatsData() caller name: " + st.GetFrame(1).GetMethod().Name); StatsDataList = new List <LJVStatsDatum>(); //remove scans where pixel did not light up for (int i = 0; i < LJVScanVMCollection.Count; i++) { if (!LJVScanVMCollection[i].TheLJVScan.PixelLitUp ?? false) { Debug.WriteLine(LJVScanVMCollection[i].TheLJVScan.DeviceLJVScanSummary.Device.Label + LJVScanVMCollection[i].TheLJVScan.Pixel.Site + " did not light up"); LJVScanVMCollection.Remove(LJVScanVMCollection[i]); } } //first find the maximum voltage across all LJVScans decimal maxVoltage = 0; LJVScanVM maxScan = new LJVScanVM(); foreach (LJVScanVM scan in LJVScanVMCollection) { try { if (scan.FullLJVDataList.Count != scan.RawLJVDataList.Count) { scan.GenerateFullLJVData(); } var scanMax = scan.FullLJVDataList.Max(x => x.Voltage); if (scanMax > maxVoltage) { maxVoltage = scanMax; maxScan = scan; } } catch (Exception e) { Debug.WriteLine("LJVScanSummaryVM GenerateStatsData error: " + e.ToString()); } } //assume that the StepSize is constant and loop through each step in maxScan for (int i = 0; i < maxScan.FullLJVDataList.Count; i++) { List <FullLJVDatum> dataAtVoltage = new List <FullLJVDatum>(); foreach (LJVScanVM scan in LJVScanVMCollection) { if (scan.FullLJVDataList.Count >= i) { FullLJVDatum datumAtIndex = scan.FullLJVDataList.Where(x => x.Voltage == maxScan.FullLJVDataList[i].Voltage).FirstOrDefault(); if (datumAtIndex != null) { dataAtVoltage.Add(datumAtIndex); } } } StatsDataList.Add(StatsDatumFromFullLJVList(dataAtVoltage)); } SetStatsDataPath(); DataProcessingService.WriteIENumberableToCSV(StatsDataList, _statsDataPath); }
private void SetStatsDataPath() { string firstRawDat = LJVScanVMCollection.First().TheLJVScan.RawDATFilePath; _statsDataPath = firstRawDat.Remove(firstRawDat.LastIndexOf("_")); _statsDataPath = _statsDataPath.Replace("Raw Data", "Statistical Data"); string directoryCheck = _statsDataPath.Remove(_statsDataPath.LastIndexOf(@"\")); Directory.CreateDirectory(directoryCheck); _statsDataPath = string.Concat(_statsDataPath, ".statsDAT"); TheLJVScanSummary.StatsDataPath = _statsDataPath; //ctx.Entry(TheLJVScanSummary).State = System.Data.Entity.EntityState.Modified; ctx.SaveChanges(); Debug.WriteLine("_statsDataPath = " + _statsDataPath); }