lozovskaya / PRC-INT-utility

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Описание индивидуального проекта

Лозовская Алина, 11В, СУНЦ МГУ / Май, 2020

Содержание:

  1. Постановка задачи
  2. Алгоритмы и технологии
  3. Руководство пользователя
  4. Руководство программиста
  5. Ссылки

Постановка задачи

PRC-INT – утилита для автоматизации начального этапа обработки данных магнитотеллурических (МТ) и магнитовариационных (МВ) зондирований в программе PRC_MRR.

Программа обработки МТ/МВ данных PRC_MRR является частью программной системы PRC_MTMV и предназначена для робастного многоточечного оценивания импеданса, типпера, горизонтального МВ отклика по синхронным МТ/МВ записям в серии точек наблюдения. Методика оценивания передаточных операторов основана на получении частных оценок для отдельных отрезков (окон) записей, их отбраковке/взвешивании по когерентностным и иным критериям. Оценивание ведется независимо для набора окон увеличивающейся длины и серии удаленных точек с последующим многоуровневым робастным осреднением.

Для обработки МТ/МВ данных в программе PRC_MRR необходимо предварительно подготовить файл-задание *.DAT. DAT-файл содержит всю необходимую для обработки МТ/МВ данных информацию: режим обработки, число окон обработки, значения параметров обработки и др.

На первом этапе обработки DAT-файл подается на вход программы PRC_MRR вместе с МТ/МВ данными. Выходные файлом, который программа выдает после обработки: файл *.INF, содержащий рапределение значений параметров обработки для данного оператора и результаты обработки в формате .FTF.

INF-файл содержит результаты распределения параметров обработки по квантилям (Q90, Q75, MED, Q25, Q10, Q3, Q1) для каждого независимого окна (обычно общее число окон составляет 7-13); общее число значений для данного окна (NUMBER OF EXTENTS) и число отобранных после обработки (отбраковки не удовлетворяющих установленным параметрам обработки) значений (SELECTED EXTENTS).

На втором этапе обработки значения параметров обработки (следуя определяемым пользователем правилам) переносятся вручную из INF-файла в DAT-файл, и DAT-файл снова подается в программу PRC_MRR в качестве входного.

На третьем этапе обработки пользователь оценивает результат обработки, полученный на втором этапе, и, при необходимости, повторяет описанные выше процедуры, внося изменения в параметры обработки, пока результат обработки его не удовлетворит.

ФУНКЦИИ УТИЛИТЫ:

  1. Открывать, считывать и выводить на экран значения из DAT-файла (ASCII);
  2. Открывать, считывать и выводить на экран значения из INF-файла (ASCII);
  3. Автоматически устанавливать параметры обработки в DAT-файле, исходя из значений параметров обработки, содержащихся в INF-файле, в соответствии с правилами, установленными в утилите.
  4. Изменять правила переноса значений параметров из INF-файла в DAT-файл по умолчанию для различных режимов обработки – в настройках утилиты (файл .SET);
  5. Позволять вручную производить корректировку значений параметров обработки, содержащихся в DAT-файле;
  6. Сохранять внесенные пользователем изменения в DAT-файл.

Алгоритмы и технологии

Для работы над проектом я сначала написала на C# (код по первому требованию выдается), но после перешла на Python ввиду огромного количества библиотек. Для графической составляющей были использованы PySide2, Matplotlib Попробовала объектно-ориентированное программирование на вкус, старалась всё описывать в классах, код соотвественно разделяла на отдельные файлы, которые при неоходимости подключались снаружи. Проект был разделен и реализован в четыре этапа:

  • 1 этап - воссоздать SINGLE MODE существующей программы, чтобы он работал для примера входных данных
  • 2 этап - дополнительное тестирование программы с разными режимами файла DAT
  • 3 этап - пакетная обработка
  • 4 этап - визуализация INF-файлов и пикировка на графиках параметров пороговых значений

Руководство пользователя

Таблицы WINDOW NUMBER 1 и 2 на рисунке – это независимые окна – число окон (таблиц) задается в DAT-файле, обычно их 7-13. Число таблиц в утилите соответствует числу окон во входном DAT-файле.

Каждая таблица-окно заполняется значениями из INF- и DAT-файлов.

Параметры отбора значений из INF в DAT-файл считываются из файла .SET.

Данные из dat-файла загружаются в столбец .DAT.

Данные из INF-файла заполняют во все остальные столбцы.

Запуск программы

Чтобы запустить программу, неоходимо установить самостоятельно Python Чтобы загрузить необходимый файл соответствующего расширения, следует просто нажать на кнопку и выбрать нужный файл, после всех выбранных файлов, на красную кнопку analyse.

Руководство программиста

Формат входных данных

С иллюстрациями находится по ссылке - https://github.com/lozovskaya/School-final-project/blob/master/input.pdf

Непосредственно код

DATFile.py - парсит файлы с расширением .DAT

Класс DAT содержит несколько необходимых переменных, требуемых для решения поставленной задачи. Windows показывает общее число независимых окон, regime - режим обработки, parameters - таблица с параметрами №1-6 для каждого предложенного окна. Соответствующие этим переменным функции вычисляют и сопоставляют значение в исходной файле с переменными.

INFFile.py - парсит файлы с расширением .INF

Класс DAT аналогично содержит несколько необходимых переменных, требуемых для решения поставленной задачи. Каждый класс представляет собой ровно одно окно, хранящее всю нужную информацию. Win_number показывает номер окна, index - точка отсчета данного окна, number_of_extents и selected_extents - соответствующие строки, parameters - таблица со значениями параметров для обработки квантилей (реализована в качестве двумерного словаря), также plain_table - просто таблица, собранная в одни руки.

SETFile.py - парсит файлы с расширением .SET

union.py - формирует итоговую таблицу из предоставленных данных, объединяет параметры вышеперечисленных файлов

main.py - отвечает за графическую составляющую

Планируемые улучшения в будущем:

  1. Введение интерактивных графиков на основе данных пользователя
  2. Адаптация программы для пользователей, не готовых устанавливать дополнительные приложения самостоятельно: перевод в .exe через pyinstaller
  3. Улучшение цветовой гаммы и дизайна

Ссылки

About


Languages

Language:Python 100.0%