/measurelook

Measurelook это формат и просмотровщик для хранения и визуализации результатов вычислительных экспериментов. Пример эксперимента можно запустить по ссылке http://trechkalov.com/measurelook/example.html. Полученные результаты визуализируются в просмотровщике http://trechkalov.com/measurelook/app.html

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Просмотр экспериментов

При выполнении научных исследований необходимо сохранять данные проведенных вычислительных экспериментов. Наивный подход это сохранение всей информации в неструктурированный текстовый файл. У этого подхода есть множество недостатков:

  • чтобы понять что содержится в файле его нужно явно прочитать
  • не фиксированный формат файла увеличивает время обращения к информации
  • данные находящиеся в файле требуют постобработки как для визуализации, так и для любых других целей

Чтобы решить названные проблемы был разработан специальный формат файла и механизм визуализации.

Measurelook формат

Результаты эксперимента сохраняются в JSON файл в следующем формате (версия 0.2.0):

  • meta, объект - описание проводимого эксперимента в произвольном формате.
  • constantParams, массив - массив неизменяемых параметров алгоритма
    • name, строка - название параметра
    • units, строка - единицы измерения параметра
    • value, число или строка - значение константы
  • changedParams, массив - массив изменяемых параметров алгоритма
    • name, строка - название параметра
    • units, строка - единицы измерения параметра
  • measuredParams, массив - массив измеряемых параметров алгоритма
    • name, строка - название параметра
    • units, строка - единицы измерения параметра
    • Зафиксированный (прямой) параметр
      • type, "direct" - зафиксированный (прямой) параметр, реально измеренный параметр
    • Косвенный параметр
      • type, "indirect" - косвенный параметр, являющийся суммой нескольких прямых параметров
      • sumOf, массив строк - названия прямых параметров
  • measures, объект - данные по каждому измерению. Хранятся по measureKey (см. пример)
    • measureKey, строка - уникальный ключ каждого измерения. Рекомендуется собирать его как набор всех изменяемых параметров + номер прогона.
    • passId, число - номер прогона
    • changedParams.name, число - значения всех изменяемых параметров, зафиксиованных на время прогона
    • measuredParams.name, число - значения всех измеренных параметров, полученных во время прогона
    • raw, объект - произвольные данные о прогоне, которые вы хотите сохранить. Например чтобы в будущем перепроверить значения измеренных параметров
  • version, строка - версия формата. В систему встроен мигратор, автоматически обновляющий файлы в старом формате до нового для обеспечения обратной совместимости.

Пример файла

Measurelook просмотр

Для файлов указанного типа разработан просмотровщик в виде интерактивной веб-страницы. Использование - откройте app.html в браузере.

Внимание! В текущий момент визуализатором поддерживается только один изменяемый параметр.

В комплекте с визуализатором идёт база с результатами эксперимента, который иллюстрирует основные функции просмотра.

Для загрузки своих данных нажмите кнопку "Загрузить базу из файла" в правом верхнем углу программы.

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

Примеры

Вы можете выполнить примеры вычислительных экспериментов, возращающих результат в Measurelook формате. Использование - откройте example.html в браузере и следуйте инструкциям.

Развертывание

Ленивый вариант - открыть Measurelook с моего сайта http://trechkalov.com/measurelook/app.html

Автономный вариант - скачивать релиз, распаковывать, запустить app.html

FAQ

В: Какой используется бэкенд?

О: Бэкенд не используется. В данном случае бэкенд это JSON объект в памяти, а DBMS это интерфейс для взаимодействия с ним.