/// <summary> /// Subtract Operation /// </summary> /// <param name="result">ResultResampling Class</param> /// <returns>ResultSpectrumCalculation</returns> private SpectrumCalculationResult OperationSubtract(ResamplingResult result) { if (!ValidateResult(result)) { return(null); } SpectrumCalculationResult spectrumResult = new SpectrumCalculationResult(); ClrDataPoints basePts = result.GetResultData(0); List <ClrDataPoints> subtract = new List <ClrDataPoints>(); for (int i = 1; i < result.GetXYDataNum(); i++) { ClrDataPoints temp = new ClrDataPoints(); for (uint j = 0; j < basePts.getLength(); j++) { if (_stopFlag == true) { return(null); } temp.addPoint(basePts.getX(j), result.GetResultData(i).getY(j) - basePts.getY(j)); } subtract.Add(temp); } for (int i = 0; i < subtract.Count; i++) { if (_stopFlag == true) { return(null); } spectrumResult.AddResult(subtract[i], _specList[i + 1], SPECTRUMNAME_SUBTRACTED); } return(spectrumResult); }
/// <summary> /// Divide Operation /// </summary> /// <param name="result">ResultResampling Class</param> /// <returns>ResultSpectrumCalculation</returns> private SpectrumCalculationResult OperationDivide(ResamplingResult result) { if (!ValidateResult(result)) { return(null); } SpectrumCalculationResult spectrumResult = new SpectrumCalculationResult(); ClrDataPoints basePts = new ClrDataPoints(); ClrDataPoints firstPts = result.GetResultData(0); double threshold = firstPts.getMaxY() * Math.Pow(10, -6); for (uint i = 0; i < firstPts.getLength(); i++) { if (_stopFlag == true) { return(null); } double value = Math.Max(firstPts.getY(i), threshold); basePts.addPoint(firstPts.getX(i), value); } List <ClrDataPoints> subtract = new List <ClrDataPoints>(); for (int i = 1; i < result.GetXYDataNum(); i++) { ClrDataPoints temp = new ClrDataPoints(); for (uint j = 0; j < basePts.getLength(); j++) { if (_stopFlag == true) { return(null); } temp.addPoint(basePts.getX(j), result.GetResultData(i).getY(j) / basePts.getY(j)); } subtract.Add(temp); } //2013/11/26 - del //spectrumResult.AddResult(basePts, _specList[0], SPECTRUMNAME_DIVIDED); //enddel for (int i = 0; i < subtract.Count; i++) { if (_stopFlag == true) { return(null); } spectrumResult.AddResult(subtract[i], _specList[i + 1], SPECTRUMNAME_DIVIDED); } return(spectrumResult); }
/// <summary> /// Sum Operation /// </summary> /// <param name="result">ResultResampling Class</param> /// <returns>ResultSpectrumCalculation</returns> private SpectrumCalculationResult OperationSum(ResamplingResult result) { if (!ValidateResult(result)) { return(null); } SpectrumCalculationResult spectrumResult = new SpectrumCalculationResult(); spectrumResult.AddResult(CalculateDataPointsSum(result), _specList[0], SPECTRUMNAME_SUMMED); if (_stopFlag == true) { return(null); } return(spectrumResult); }
/// <summary> /// Set Spectrum calculation result to active object. /// </summary> /// <param name="resultSpecCal">Spectrum calculation result</param> private static void SetResultToActiveObject(SpectrumCalculationResult resultSpecCal) { // Preparing Output files. SampleSetResampling sampleSet = new SampleSetResampling(); SampleResampling sample = new SampleResampling(sampleSet); sample.openSample(); DataGroupNodeWrapper root = sample.getRootDataGroupNode(); // _resultSpecCal.Spectrums[0].getName() returns // "Average" or "Summed" or "Subtracted" or "Divided". sample.setName(resultSpecCal.Spectrums[0].getName() + " " + SAMPLE_STRING); root.setName(resultSpecCal.Spectrums[0].getName() + " " + SAMPLE_STRING); int cnt = 0; foreach (SpectrumResampling sr in resultSpecCal.Spectrums) { ClrDataPoints xyd = new ClrDataPoints(); SpectrumResampling spec; if (resultSpecCal.Spectrums.Count == 1) { spec = new SpectrumResampling(sample, sr.getName() + " " + SPECTRUM_STRING); } else { cnt++; spec = new SpectrumResampling(sample, sr.getName() + " " + SPECTRUM_STRING + "_" + cnt.ToString()); } ClrDataPoints pts = new ClrDataPoints(); sr.getXYData(pts, false); spec.getXYData(xyd, false); spec.SetData(pts); spec.setMinX(pts.getMinX()); spec.setMaxX(pts.getMaxX()); spec.setMaxIntensity(pts.getMaxY()); spec.onGetXYData(xyd, -1.0, -1.0); spec.setMsStage((int)sr.getMsStage()); sample.setSampleIndex((int)0); root.addSpectrum(spec); } sampleSet.addSample(sample); // -out kome.clr.ActiveObjectsManagerWrapper aoMgr = kome.clr.ActiveObjectsManagerWrapper.getInstance(); aoMgr.setActiveSample(sample); }
/// <summary>Execute</summary> public void Execute() { _resultSpecCal = null; SetXYDataToResamplingCalculation(); if (_stopFlag == true) { return; } _resampCal.Execute(); if (_stopFlag == true) { return; } ResamplingResult resultRs = _resampCal.Result; _resultSpecCal = Operation(resultRs); if (_stopFlag == true) { return; } }
/// <summary> /// Average Operation /// </summary> /// <param name="result">ResultResampling Class</param> /// <returns>ResultSpectrumCalculation</returns> private SpectrumCalculationResult OperationAverage(ResamplingResult result) { if (!ValidateResult(result)) { return(null); } SpectrumCalculationResult spectrumResult = new SpectrumCalculationResult(); ClrDataPoints sum = CalculateDataPointsSum(result); ClrDataPoints average = new ClrDataPoints(); for (uint i = 0; i < sum.getLength(); i++) { if (_stopFlag == true) { return(null); } average.addPoint( sum.getX(i), sum.getY(i) / result.GetXYDataNum()); } spectrumResult.AddResult(average, _specList[0], SPECTRUMNAME_AVERAGED); return(spectrumResult); }