научная статья по теме СИСТЕМА ЦЕНТРАЛИЗОВАННОЙ ОБРАБОТКИ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ ИССЛЕДОВАНИЯ ЕСТЕСТВЕННЫХ И ИСКУССТВЕННЫХ ВОЗМУЩЕНИЙ ИОНОСФЕРЫ Общие и комплексные проблемы естественных и точных наук

Текст научной статьи на тему «СИСТЕМА ЦЕНТРАЛИЗОВАННОЙ ОБРАБОТКИ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ ИССЛЕДОВАНИЯ ЕСТЕСТВЕННЫХ И ИСКУССТВЕННЫХ ВОЗМУЩЕНИЙ ИОНОСФЕРЫ»

Митяков С.Н., доктор физико-математических наук, зав. кафедрой Катаева Л.Ю., доктор физико-математических наук, профессор Беляев И.В. Петрухин Р.А. Катаева Н.А.

(Нижегородский государственный технический университет им. Р.Е. Алексеева)

СИСТЕМА ЦЕНТРАЛИЗОВАННОЙ ОБРАБОТКИ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ ИССЛЕДОВАНИЯ ЕСТЕСТВЕННЫХ И ИСКУССТВЕННЫХ ВОЗМУЩЕНИЙ

ИОНОСФЕРЫ

В работе рассмотрена идеология организации гибких систем, позволяющих связывать различные технологии в рамках одного проекта, и дается описание программного комплекса, показаны его преимущества и недостатки, связанные с использованием Python.

Ключевые слова: сура, ионосфера, программный комплекс, зондирование.

CENTRAL PROCESSING OF EXPERIMENTAL DATA STUDIES OF NATURAL AND ARTIFICIAL IONOSPHERIC DISTURBANCES

The document says regarding ideology of the organization of the flexible systems, allowing to connect various technologies within the limits of one project, and the description of a program complex is given, its advantages and the lacks connected with use Python are shown.

Keywords: sura, an ionosphere, a program complex, sounding.

Всего четыре мощных стенда для возбуждения радиоволнами существуют в мире: стенд в Пуэрто-Рико (Аресибо), в России (Нижний Новгород), в Норвегии (Тромсе) и на Аляске. Существуют различные способы воздействия на ионосферу - от достаточно радикальных, в которые входят и выбросы химически активных реагентов с борта ракет и спутников, до весьма деликатных, к которым относится возбуждение ионосферы мощными пучками радиоволн от наземных радиопередатчиков. При проведении экспериментов на установке «Сура» Н.Новгород были получены и обработаны данные по исследованию естественных и искусственных возмущений ионосферы.

Обычно ожидается, что Python программы выполняются медленнее, чем программы Java, но они при этом требуют намного меньше времени для разработки. Python программы типично в 3-5 раз короче, чем эквивалентные Java программы. Эта разница может быть объяснена за счет встроенных высокоуровневых типов данных Python, и его динамической типизации.

Из-за типизирования во время выполнения, Python должен выполнять больше работы, чем Java. Например, при обработке выражения a+b, он должен сперва исследовать объекты a и b, чтобы выяснить их типы, которые не известны во время компиляции. Затем вызывается соответствующая операция сложения, которая может оказаться перегруженным пользователем методом. Java, с другой стороны, может выполнять эффективное сложение целых или чисел с плавающей точкой, но требует описания переменных a и b, и не позволяет перегружать оператор + для экземпляров классов, определенных пользователем. По этим причинам, Python намного более подходит как «склеивающий» язык, в то время как Java лучше характеризуется как низкоуровневый язык для реализации. Фактически, они вместе могут образовать отличную пару. Компоненты можно реализовывать на Java, а затем использовать в приложениях на Python. Для поддержки такого типа разработки, создается реализация Python, написанная на Java, она позволяет вызывать Python код из Java и наоборот. В этой реализа-

ции исходный код Python транслируется в байт-код Java (с помощью библиотеки времени выполнения, для поддержки динамической семантики Python).

Javascript «Объектно-основанная» часть Python приблизительно эквивалентна JavaScript. Подобно JavaScript (и в отличие от Java), Python поддерживает стиль программирования, использующий простые функции и переменные без включения в определение класса. Python, с другой стороны, поддерживает написание намного более объемных программ, и лучшее повторное использование кода через действительно объектно-ориентированный стиль программирования, в котором классы и наследование играют важную роль.

Perl Python и Perl родом из похожих окружений (скрипты Unix, которые оба значительно переросли) и несут много сходных особенностей, но имеют разную философию. Perl нацелен на поддержку общих программно-ориентированных задач, например, имеет встроенную обработку регулярных выражений, сканирование файлов и генерирование отчетов. Python концентрируется на общих методологиях программирования, таких как разработка структур данных и объектно-ориентированное программирование, способствует написанию удобочитаемого (а значит легко поддерживаемого) кода, путем предоставления элегантной, но не чрезмерно зашифрованной нотации.

Python имеет отличающуюся философию касательно среды разработки и распределения кода. Там, где Smalltalk по традиции имеет монолитный «системный образ», который включает как среду, так и программу пользователя, Python хранит стандартные модули и модули пользователя в индивидуальных файлах, которые могут легко быть перестроены или распространены за пределами системы.

Почти все сказанное для Java, также применимо к C++, но там где код Python обычно в 35 раз короче, чем эквивалентный код Java, он часто в 5-10 раз короче эквивалентного кода C++. Python блестяще используется как клей, соединяющий компоненты, написанные на C++.

Работа с современными форматами данных - одно из сильных мест стандартной библиотеки Python. Например, при работе с источником данных, как с текстовым файлом пользовательского формата естественным будет использования регулярных выражений. SciPy - модуль, содержащий совокупность математических алгоритмов и функций. SciPy позволяет использовать интерактивную сессию интрепретатора python также, как это делается в таких системах, как Matlab, IDL, Octave, R-Lab и SciLab. Но в отличие от вышепреведенных аналогичных систем SciPy можно использовать для создания сложных и специализированных приложений. Научные приложения написанные с использованием SciPy выигрывают за счет огромного количества модулей в различных нишах. Не нужно забывать, что всё от параллельного программирования до web'а и баз данных доступно для программиста на Python. Именно эти преимущества Python позволили создать легко изменяемый, удобный и эффективный программный продукт.

Таким образом, для хранения и обработки полученных данных был создан программный комплекс на языке Python, позволяющий производить выполнение различных этапов обработки, систематизируя и структурируя исходные данные и отображая результаты обработки рис.1. Данная система позволяет легко добавлять новые этапы обработки. Для облегчения работы с комплексом был разработан единый пользовательский интерфейс.

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

Рис.1. Окно обработки и отображения информации

После анализа семантики задачи были выделены следующие поля:

1. id - идентификатор экперимента, используется для сохранения целостоности данных.

2. experiment_name - имя эксперимента, поле произвольное.

3. sampling_rate - частота дискритезации.

4. clock_cycle - временной интервал между импульсами

5. offset - смещение до начала первого импульса

6. description - описание экперимента, поле произвольное.

Чтобы произвести анализ корреляции большого объема экспериментальных данных возникает необходимость унифицированного централизованного хранения и доступа. Именно такая задача возникла в рамках проведения экспериментальных работ на установке СУРА (Васильсурск).

Для обработки экспериментальных данных, получаемых от установки СУРА, создан программный комплекс, включающий в себя: модуль по работе с экспериментальными данными, вычислительное ядро, аналогичное таковому с системе Matlab, удобный пользовательский интерфейс. Предварительная обработка сигнала заключается в применении совокупности фильтров: устранении выбранной гармоники по заранее вычисленному комплексному спектру, эллиптический фильтр, с заданными пользователем основными характеристиками.

При решении поставленной задачи использовались кроссплатформенные (Linux, Unix, Windows, Mac OS) технологии Python, NumPy, SciPy, PySqlite, PyQwt, PyQt. Использование этих технологий не требует материальных затрат на их приобретение (лицензия LGPL). Эти технологии общедоступны, а лицензия подразумевает возможность использовать и модифицировать исходные коды. Выбор был основан также на факте наличия большого количества специализированных библиотек, необходимых для решения поставленной задачи, возможности поставки конечного продукта на коммерческой основе без открытия исходных кодов. Использование других известных математических пакетов (Matlab, Maple, SciLab и д.р.) не дает возможности одновременного использования средств работы с базами данных и спектральной обработки сигнала для огромного количества исходных данных: 10 экспериментов по 100 файлов, примерно с 20-ю тысячами точек в каждом файле.

Средствами библиотеки RPyC организованна распределенная система, где в отличие от системы, организованной в рамках парадигмы традиционных персональных вычислений, под ресурсами подразумеваются не только дисковое пространство для программ и данных, процессор, оперативную память, видеоадаптер, клавиатуру и мышь, возможно, периферийные устройства ввода/вывода - принтеры, сканеры, аудиоустройства, модемы и т.д, но и совокупность компьютеров, которые имеют возможности передачи данных по сети, в качестве единиц более высокого уровня, что дает возможность рассматривать более разнообразные отношения между вычислительными ресурсами и самими компьютерами.

Рабата выполнена при финансовой поддержке гранта РФФИ 09-02-00257-а «Исследование естественных и искусственных возмущений ионосферы с помощью уникального радара на базе стенда СУРА».

ЛИТЕРАТУРА

1. Катаева Л.Ю. Постановка и проведение вычислительного эксперимента по исследованию аэро- и гидродинамических процессов в аварийных ситуациях природного и техногенного характера. М

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком