Создание программных компонент для визуализации данных посредством интеграции «Python», «Matplotlib» и «PyQt» (PMP) Велешки С.И., Петухова Т.Б. Кирилов А.С., Мурашкевич С.М. Дубна 2011 Содержание • • • • • • Общие сведения о «Sonix+» Постановка задачи Общие сведения о «PMP» Создание компонента с помощью «PMP» Созданные программны Выводы Программный комплекс «Sonix+» «Sonix+» образован набором модулей: управляющих компонентами спектрометра (драйверы, серверы); выполняющих обработку данных; пользовательского интерфейса; визуализация данных. Пользовательский интерфейс «Sonix+» Включает в себя следующих программ: Sci – программа загрузки/выгрузки управляющих модулей «Sonix+»; Reflector – отображает текушее состояние параметров всех устройств; AxisControl – предназначена для ручного управления подвижными частями спектрометра; SpectraViewer – визуализация спектров; и другие. Возможности «SpectraViewer» Данная программа обладает следующие возможности: строить линейную графику (выводить линий с значениями x,y); строить карту плотности (выводить двумерный массив); маштабирование и перемещение спектра; отображение спектра в линейном и логарифмичном масштабе; настройки параметров сетки; выделение области суммирования с помощью курсоров; вывод на печать отображаемого спектра и проекции. Недостатки «SpectraViewer» Недостатки программы: очень сложно вносить изменения; невозможно интегрировать ее в другие программы; сложно изменять формат данных; предназначена для работы только с точечными детекторами и 1D ПЧД; не использует доступные графические библиотеки. «SpectraViewer» «SpectraViewer» – Вывод данных с точечных детектров «SpectraViewer» «SpectraViewer» – Вывод 1D ПЧД Постановка задачи Найти технологию позволяющую Компонент «A» содавать Объединение компонентов Компонент «Z» Программа визуализации Компонент «A» Программный комплекс Компонент «B» Компонент «Z» Sonix+ В з а и м о д е й с т в и е Требования к выбираемой технологии Выбраемая технология должна: использовать готовую библиотеку, например, «Matplotlib»; предоставлять возможность взаймодействия с языками программирования C++ и Python; обладать объектно-ориентированую архитектуру; предоставлять возможность создания собственных виджетов и их объединения между собой; позволять просто и быстро создавать графический интерфейс; Общие сведения о «PMP» «Matplotlib» - библиотека языка «Python», предназначенная для визуализации данных. Используется в комплексе «WebSonix+»; «PyQt» - представляет собой инструмент для создания GUI (графических) приложений. «PyQt» представляет собой сочетание языка программирования «Python» и превосходной библиотеки «Qt»; «Python» - скриптовый язык программирования. Основные черты – динамическая типизация, автоматическое управление памятью, полная интроспекция, обработка исключения, многопотомчных вычислении и т.д. Пользовательский интерфейс библиотеки «Matplotlib» Библиотека «Matplotlib» предоставляет возможность ее внедрения в графического приложения созданного с помощью: Графической библиотеки «Tkinter»; Графической библиотеки «PyGTK»; Графической библиотеки «PyQt». Сравнение графических библиотек Tkinter PyGTK PyQt Сложно возможные проблемы во время загрузки Просто создание динамически меняющихся форм + + + управления компоновки интерфейса Сложно Сложно Просто Отсутствует Glade Qt Designer сохранение интерфейса в виде XML файл - + + кроссплатформеность полная документация + + + - + + простота использования интегрированая среда разработки Выбранные средства Были выбранные следующие: Библиотека «Matplotlib» для вывода графиков (встроенные возможности); Графическая библиотека «PyQt» для оформление внешнего интерфейса; Язык Python для объединения «Matplotlib» и «PyQt»; «Qt Designer» для оформление интерфейса в виде XML дерева; Утилита «Pyuic4» для перевода XML дерева в коде на языке «Python»; Утилита «Pyinstall» для создания программы в виде exe-файла. Визуализация одномерных графиков «Component Simple Line» Визуализация двухмерных графиков (1D ПЧД) «SpectraViewer 2D» Визуализация трехмерных графиков «SpectraViewer 3D» – Владка XY Визуализация трехмерных графиков «SpectraViewer 3D» – Владка XZ Визуализация трехмерных графиков «SpectraViewer 3D» – Владка YZ Использование созданных компонент Созданные компоненты были использованные в программе юстировки ICE. «ICE» – вкладка «ControlPanel» Визуализация одномерного графика в программе ICE «ICE» – вкладка «GraphPanel» Визуализация 1D ПЧД в программе ICE «ICE» – вкладка «SpectrumPanel» Приемущества Выбранное решение позволяет: использовать разнообразные возможности визуализации данных, заложенных в Matplotlib; быстрое написание графических приложений для визуализаций данных; создавать новые функционально-самостоятельные компоненты графического интерфейса на основе «PyQt»; объединять созданных компонентов в единой программе; получить кросс-платформенность создаваемого программного обеспечения; выбранные средства распространяются под бесплатными лицензиями. Недостатки Трудное отслеживание программе, вызваного типизации; ошибок в отсутствия создаваемой статической Cкорость выполнение программы ниже, так как Python–это скриптовый язык; Выводы «PMP» позволяет создавать компоненты, которые могут выполнять визуализацию данных используя библиотеку «Matplotlib»; Предложен общий подход к создание программного обеспечения используя «PMP»; Созданные компоненты и программы с помощью «PMP» усовершенствовали «Sonix+»;