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);
            }
        }
Ejemplo n.º 2
0
        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();
        }