Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }