вторник, 3 января 2017 г.

SciPro: продолжаем обрабатывать данные на Python

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

SciPro (Scientific Processing) - рабочее название проекта, о котором я уже писал здесь. За прошедшие годы был расширен набор методов, появилась наследственность, расширены функции импорта и пр. Однако, общий принцип принцип остался неизменным - это объектно-ориентированное представление данных. Вот эти объекты:
  • Spectrum - данные формата (x,y), где 'x' может быть задан в длинах волн или частотах, а 'y' в линейном или логарифмическом масштабе
  • Oscillogram - (x,y), где 'x' - время, 'y' - линейный масштаб
  • Field - поле, формат (x,y), где 'y' - массив комплексных чисел, задающийся в алгебраическом или экспоненциальном виде
  • FROGTrace - работа с исходными данными FROG, здесь 'x' - двумерный массив длин волн и временных отстроек, а 'y' - массив измеренных интансивностей (также двумерный).
Кроме методов обработки у объектов также переопределены операции сложения, умножения и пр., что позволяет реализовывать конвеерую обработку данных последовательным вызовом соответствующих методов. На текущий момент данный набор перекрывает большинство моих повседневных потребностей в оперативной обработке и анализе, и я планирую развивать его по мере необходимости и возможности.