private static void CalculateSpectra(SiteData data, int window, Action <double> progress) { var cmps = data.GetAllData(); for (int i = 0; i < cmps.Count; i++) { var sp = PowerSpectraCalculation.Run(cmps[i].Ts, window, p => progress((i * 100.0 + p) / cmps.Count)); Application.Current.Dispatcher.Invoke(() => cmps[i].Spectra = sp); } }
static void Main(string[] args) { System.Console.WriteLine(); System.Console.WriteLine(@"-- Расчёт электрического поля - 1.2 - 01.04.2018 --"); System.Console.WriteLine(@"-- Епишкин Дмитрий - [email protected] --"); System.Console.WriteLine(); if (!ReadSettings()) { System.Console.WriteLine(@"Программа завершена"); System.Console.ReadKey(); return; } System.Console.WriteLine(); System.Console.WriteLine("Проверка входных параметров.."); if (!CheckSettings()) { System.Console.WriteLine(@"Файл input.inf содержит недопустимые параметры"); System.Console.WriteLine(@"Программа завершена"); System.Console.ReadKey(); return; } System.Console.WriteLine("Всё в порядке!"); System.Console.WriteLine(); System.Console.WriteLine("Длина окна для преобразования поля: " + _windowGenerating); System.Console.WriteLine("Шаг окна преобразования поля: " + _step); System.Console.WriteLine("Длина окна для расчёта амплитуд и спектральных мощностей: " + _windowPowerSpectra); System.Console.WriteLine(); var data = new SynteticDataGenerator( new RealDataImporter(), new FtfTensorCurveImporter(), new ObservatoryDataExporter()) .Generate(_tsFile, _zFile, _outTsFile, _windowGenerating, _step, _acFilter); System.Console.WriteLine(); System.Console.WriteLine("Расчёт средней амплитуды и спектральной мощности Hx"); var hx = PowerSpectraCalculation.Run(data.Hx, _windowPowerSpectra); System.Console.WriteLine("Расчёт средней амплитуды и спектральной мощности Hy"); var hy = PowerSpectraCalculation.Run(data.Hy, _windowPowerSpectra); System.Console.WriteLine("Расчёт средней амплитуды и спектральной мощности Ex"); var ex = PowerSpectraCalculation.Run(data.Ex, _windowPowerSpectra); System.Console.WriteLine("Расчёт средней амплитуды и спектральной мощности Ey"); var ey = PowerSpectraCalculation.Run(data.Ey, _windowPowerSpectra); System.Console.WriteLine("Сохранение амплитуд и спектральных мощностей в файл"); PowerSpectraExporter.Export(_outPowerSpectraFile, ex, ey, hx, hy); System.Console.WriteLine(); System.Console.WriteLine("-- Готово --"); System.Console.ReadKey(); }