/// <summary> /// 三次样条曲线插值(使用数据点数量) /// </summary> /// <param name="specDatas">第一行为X数据,后面几行为Y数据</param> /// <param name="specRows">数据的行数</param> /// <param name="specCols">数据的列数</param> /// <param name="firstX">起始波数</param> /// <param name="lastX">结束波数</param> /// <param name="dataCount">数据点数量</param> /// <returns>返回处理后的数据, 第一行是X轴,其余行为Y轴</returns> public static List <double[]> SplineCubicInterpolation(double[] specDatas, int specRows, int specCols, double firstX, double lastX, int dataCount) { try { double[] newDatas = SplineCubicInterpolation(specDatas, specRows, specCols, firstX, lastX, dataCount, true); if (newDatas == null) { return(null); } return(CommonMethod.SplitSpectrumDatas <double>(newDatas, specRows)); } catch (Exception ex) { ErrorString = ex.Message; return(null); } }
/// <summary> /// 光谱基线校正 /// </summary> /// <param name="xyDataList">第一项是X,后面是Y</param> /// <param name="method">基线校正方法.</param> /// <returns></returns> public static List <double[]> BaselineCorrect(List <double[]> xyDataList, BaseLineMethod method) { if (xyDataList.Count < 2) { ErrorString = "Invalid parameters"; return(null); } var xyDatas = CommonMethod.CombineSpectrumDatas(xyDataList); if (xyDatas == null) { ErrorString = CommonMethod.ErrorString; return(null); } if (BaselineCorrect(xyDatas, xyDataList.Count, xyDataList[0].Length, method) == false) { return(null); } return(CommonMethod.SplitSpectrumDatas(xyDatas, xyDataList.Count)); }