public static SpectrumTransition GetPeaks(SpectrumTransition source) { SpectrumSearchSettings settings = new SpectrumSearchSettings(); double[] resultDataY; double[] peakX; _search(source.GetDataYArray(), out resultDataY, out peakX, source.Data.Count, settings); List <Bin> resultDataYList = new List <Bin>(); for (int i = 0; i < source.Data.Count; i++) { resultDataYList.Add(new Bin(source.Data[i].X, (float)resultDataY[i])); } var result = new SpectrumTransition(); result.Name = "Peaks"; for (int i = 0; i < peakX.Length; i++) { if (peakX[i] == 0) { continue; } var nearestBin = GetNearestBin(peakX[i], resultDataYList); result.Data.Add(nearestBin); } return(result); }
internal static SpectrumTransition GetOptimized(SpectrumTransition source) { var result = new SpectrumTransition(); result.Name = "Optimized"; SpectrumSearchSettings settings = new SpectrumSearchSettings(); double[] smoothedSpectrum; double[] peakX; Spectrum._search(source.GetDataYArray(), out smoothedSpectrum, out peakX, source.Data.Count, settings); for (int i = 0; i < source.Data.Count; i++) { result.Data.Add(new Bin(source.Data[i].X, (float)smoothedSpectrum[i])); } return(result); }