Визуализация информации является актуальной задачей в широком спектре современных направлений исследований, таких как картография и климатология, геоинформатика, социально-экономическое развитие регионов и природных территорий, обработка данных дистанционного зондирования Земли, навигация в мобильной робототехнике, прогнозирование, интеллектуальный анализ результатов моделирования природных и технических систем и др. [1]. При этом, как правило, основное внимание уделяется методам и средствам визуализации многомерных временных рядов данных, являющихся результатом наблюдений или выполнения натурных и/или вычислительных экспериментов и позволяющих настраивать (конфигурировать) отображение данных.
Визуализация призвана облегчить восприятие информации с целью ее дальнейшего анализа, выявления закономерностей в зависимости от влияния параметров исследуемых объектов и систем, а также поддержки принятия решений экспертами [2]. Поэтому важно иметь в наличии развитые методы и средства визуализации как первичных данных, так и вторичных данных, прошедших предварительную обработку и агрегирование. Это в равной степени относится как к визуализации текущих данных, собираемых различными системами измерения и контроля, так и к накопленной ретроспективной информации.
Зачастую визуализация данных реализует простейшую задачу отображения зависимости функции одной переменной (параметра). Сложность визуализации возрастает при отображении зависимости функции от нескольких переменных (параметров). Разнообразие данных и необходимость обеспечения их четкого восприятия обуславливает применение набора атрибутов процесса визуализации, к основным из которых относятся размер, форма, ориентация, цвет, текстура и значение цвета [3]. Эти атрибуты могут быть заданы с помощью различного рода шкал и уровней их значений. Поэтому любой метод визуализации должен сопровождаться инструментом, позволяющим настроить (конфигурировать) изображение данных.
В рамках решения задач экологического мониторинга [4] возникает необходимость визуализации результатов расчетов, получаемых в результате выполнения ресурсоемких научных приложений (распределенных пакетов прикладных программ) в высокопроизводительной вычислительной среде. В этой связи целью исследования является разработка инструментальных средств поддержки процессов визуализации расчетных схем и данных в приложениях.
Материалы и методы исследования
Распределенный пакет прикладных программ [5] представляет собой научное приложение, которое характеризуется следующими особенностями: решаемые задачи допускают их декомпозицию на более простые взаимосвязанные подзадачи; разработка прикладного ПО приложения производится на основе модульного подхода к созданию больших программных комплексов; предполагается разбиение исходных данных на блоки и независимая параллельная обработка этих блоков экземплярами модулей; расчеты осуществляются на основе выполнения научного рабочего процесса (НРП, англ., Scientific Workflow), представляющего собой схему решения задачи; управление вычислениями осуществляет диспетчер НРП. Инструментарии для разработки и применения подобных пакетов относятся к классу систем управления научными рабочими процессами. Примером такого инструментария является фреймворк Orlando Tools [6].
В рамках диспетчера НРП Orlando Tools разработаны технологические решения и инструментальные средства для визуализации параметров НРП и самих процессов [7]. НРП и их параметры задаются в описании предметной области на пользовательском входном языке CMDL [8]. Причем данное описание расширено новыми разделами, определяющими способы и параметры визуализации данных. Разработан конвертер описания предметной области на CMDL во внутреннее представление вычислительной модели диспетчера и планировщик НРП [9]. Конвертер производит преобразование описания предметной области на CMDL в ее формализованное описание вида
, , , …, , ,
где – множество параметров модели, oi – i-я операция модели, Inputs – операция, определяющая входные параметры НРП, Outputs – операция, определяющая выходные параметры НРП, , , .
Планировщик строит план решения задачи в виде направленного ациклического графа (англ., Directed Acyclic Graph – DAG) по непроцедурной постановке задачи вида «дано – вычислить» на вычислительной модели. Для построения плана решения задачи в планировщике применяются алгоритмы прямой и обратной волны [10].
Предложена спецификация параметров визуализации данных на языке JSON (https://www.json.org/). Данная спецификация включается в расширенное описание предметной области на CMDL. Спецификация определяет параметры визуализации данных, такие как название, тип, цвет диаграммы, максимальные и минимальные значения данных по осям X и Y, название и местоположение легенды, размеры и начертания шрифтов и т.д. Для разных видов диаграмм (диаграмма, график, круговая диаграмма, график с накоплением и др.) созданы типовые спецификации.
В листинге 1 приведены фрагменты типовой спецификации для построения графика. Параметр min (max) – это минимальное (максимальное) значение данных на координатной оси. Если параметры min и max явно не заданы, то подсистема визуализации автоматически определит и установит значения этих параметров. Параметр type – тип графика/диаграммы (line, spline, area, areaspline, column, bar, pie, scatter, gauge, arearange, areasplinerange и columnrange). Если в параметре series не заданы цвета рядов данных, то они определяются автоматически библиотекой Highcharts. При этом описание предметной области на CMDL расширено новым шаблоном, приведенным в листинге 2.
chart: { type: ‘Тип графика/диаграммы’,
title { text: ‘Название графика/диаграммы’,
verticalAlign: `top | bottom | middle’,
align: ‘left | right |center’ },
xAxis: {
title: { text: 'Название оси X',
style: { fontSize: 'Размер шрифта подписи по оси X' } },
label: { style: { fontSize: ‘Размер шрифта’, color: ‘Цвет шрифта’ } }
min: 0, max: 100 },
yAxis: {
title: { text: ‘Название оси Y’,
style: { fontSize: 'Размер шрифта подписи по оси Y' } },
min: 0, max: 100 },
legend: {
itemStyle: { "color": "цвет", "fontSize": "размер",
"fontWeight": "начертание” },
verticalAlign:`top | bottom | middle’, align: ‘left | right |center’ },
marker: { symbol: ‘Тип маркера’, radius: ‘Радиус’,
lineColor: ‘Цвет контура маркера’,
fillColor: ‘Цвет заливки маркера’, },
series: [{
name: ‘Название легенды ряда данных’,
marker: { symbol: 'Название вида маркера' },
color: ‘Цвет линии данных’,
lineWidth: ‘Толщина линии данных’ }],
}
Листинг 1. Фрагменты спецификации
Data Visualization <файл спецификации параметров визуализации расчетных данных на JSON> > <список сокращенных имен параметров предметной области приложения>
Листинг 2. Шаблон спецификации параметров визуализации расчетных данных
В качестве библиотеки для визуализации данных выбрана библиотека Highcharts 11.2.0 (https://www.highcharts.com) – одна из самых многофункциональных и популярных библиотек, таких как AnyChart, Chart.js, Chartist.js и др. (https://habr.com/ru/articles/457946/), написанных на языке JavaScript, для построения графиков и диаграмм в формате HTML с рендерингом в формат SVG (VML), в том числе в интерактивном режиме. Данная библиотека является достаточно легковесной, поддерживающей широкий спектр разнообразных типов визуализаций (графиков, диаграмм и др.) и обеспечивающей высокую производительность. Кроме того, функции библиотеки поддерживают автоматический выбор некоторых стилей графических объектов, если параметры этих стилей не заданы в спецификациях. Визуализация с использованием формата SVG осуществляется в стандартных браузерах, таких как Chrome, Firefox, Internet Explorer и др. Библиотека Highcharts имеет открытый исходный код и может бесплатно использоваться в некоммерческих целях. Разработано инструментальное средство на языке PHP 7.4.3, которое позволяет вывести результаты визуализации на экран и/или сохранить в виде файла в формате PNG. Примеры визуализации графика и графика с накоплением представлены на рис. 1 и 2.
Рис. 1. Визуализация параметра на графике
Рис. 2. Визуализация параметра на графике с накоплением
Разработано инструментальное средство на языке Python 3.8.10, которое выполняет визуализацию НРП в виде двудольного ориентированного графа. В качестве библиотеки для визуализации НРП используется библиотека Graphviz 0.20.1 (https://graphviz.org/) – одна из самых популярных библиотек, таких как NetworkX, igraph, Graph-tool и др. (https://tochmah.ru/graphviz-python-razberemsya-v-bazovyh-funktsiyah-i-vozmozhnostyah-biblioteki/), разработанных для работы с графами на языке Python.
Библиотека Graphviz представляет собой набор программ с открытым исходным кодом для верстки и визуализации графов. Данная библиотека поддерживает веб-ориентированный интерактивный пользовательский интерфейс, включает набор вспомогательных инструментов и программных библиотек, а также обеспечивает привязку к различным форматам и языкам представления данных. В частности, Graphviz включает функции для изображения графов в форматах SVG для веб-страниц и Postscript для PDF-документов. Graphviz также поддерживает формат GXL, диалект языка XML.
Граф описывается на простом и интуитивно понятном языке DOT (Graph Description Language). Кроме того, Graphviz поддерживает автоматическую раскладку графа с целью достижения оптимального расположения вершин и ребер графа на его изображении. Он также предоставляет подпрограммы для задания параметров конкретных графов, таких как цвета, шрифты, макеты узлов, стили линий, гиперссылки и пользовательские фигуры.
На основе описания графа на языке DOT разработан набор базовых спецификаций визуализации НРП. Описание предметной области на CMDL расширено дополнительным шаблоном, представленным в листинге 3. Пример визуализации НРП представлен на рис. 3.
Workflow Visualization <файл спецификации параметров визуализации НРП на JSON> > <список сокращенных имен НРП>
Листинг 3. Шаблон спецификации параметров визуализации НРП
Рис. 3. Визуализация НРП
Результаты исследования и их обсуждение
В отличие от бизнес-рабочих процессов, которые обычно ориентированы на потоки управления, НРП, как правило, ориентированы на потоки данных, что определяет дополнительные требования по визуализации процессов и данных. К сожалению, в известных системах управления НРП (например, Galaxy, BPEL Designer Project, GeoJModelBuilder и др. [4]) зачастую используется ограниченный набор встроенных типов диаграмм и графиков. Поэтому расширение функциональных возможностей Orlando Tools разработанными инструментальными средствами конфигурируемой и настраиваемой визуализации предопределяет его дополнительные преимущества в сравнении с вышеупомянутыми системами. Разработанные спецификации параметров визуализации НРП и расчетных данных позволяют разработчику приложения выбрать и детализировать используемые графики и диаграммы для акцентирования необходимых аспектов схемы решения задачи и результатов ее выполнения для конечных пользователей приложения.
Данные средства допускают их автономное использование. В частности, они будут использованы в цифровых двойниках компонентов различных информационно-вычислительных систем. Их применение позволит наглядно отобразить текущее состояние и изменение характеристик вычислительных ресурсов и выполняемых в них процессов.
Заключение
В рамках исследования разработаны новые инструментальные средства визуализации научных рабочих процессов и расчетных данных, а также спецификация параметров визуализации. Результаты исследования обеспечивают повыше