public SpectralQuantity Randomize(double constPart, double relPart) { var randomizedSpectralQuantity = new SpectralQuantity($"{Name} - randomized"); foreach (var value in spectralValues) { double r1 = RandomUtil.GetUniformNoise(relPart); double r2 = RandomUtil.GetUniformNoise(constPart); double newValue = value.Value * (1.0 + r1) + r2; if (newValue < 0) { newValue = 0.0; } randomizedSpectralQuantity.AddValue(value.Lambda, newValue); } return(randomizedSpectralQuantity); }
public static SpectralQuantity LoadFromCsv(string filename) { SpectralQuantity spectrum = new SpectralQuantity(Path.GetFileNameWithoutExtension(filename)); var reader = new StreamReader(File.OpenRead(filename)); while (!reader.EndOfStream) { var line = reader.ReadLine(); var tokens = line.Split(','); if (tokens.Length == 2) { double x = MyParse(tokens[0]); double y = MyParse(tokens[1]); if (!double.IsNaN(x) && !double.IsNaN(y)) { spectrum.AddValue(new SpectralQuantityValue(x, y)); } } } reader.Close(); return(spectrum); }