Данная публикация это начало цикла статей. Если вам интересно, скажите об этом, а если не интересно, цикл на этом и закончится, тогда просто смотрите ниже список необходимого программного обеспечения и примеры.
Также смотрите другие статьи цикла:
- Вводная статья со списком используемого программного обеспечения
- Показываем исходные данные
- 3D анимация и визуализация 4D данных
- Информативность визуализации
- Воксельные модели и сетчатые поверхности
Это не пошаговое руководство по визуализации трех- и четырехмерных данных, а подход к тому, как и чем это можно сделать и, притом, сделать качественно. Вероятно, многие из нас бывали в ситуациях, когда уже есть подготовленные с большим трудом данные, которые необходимо визуализировать, но неизвестно, как же это сделать так, чтобы не испортить все впечатление от выполненной работы. Существует много коммерческого программного обеспечения для этих целей, но мы будем рассматривать исключительно Open Source программы.
Немного предыстории
Еще в мою бытность студентом-радиофизиком довелось столкнуться с проблемами визуализации физических моделей — для курсовых и дипломных работ (бакалавриат и магистратура). Задача была решена с помощью псевдотрехмерного представления, но оставила некоторое чувство неудовлетворенности. Аналогично, работая в студенческие времена в командах по некоторым исследовательским грантам и на кафедре, заметил, что именно задачи визуализации все стараются "спихнуть" на кого-нибудь еще. С тех пор прошло почти два десятилетия, в течении которых во множестве проектов пришлось придумывать различные способы отображения трехмерных и четырехмерных (изменяющихся во времени) данных и все эти варианты оставляли легкое сожаление о том, что полученные результаты несколько обесцениваются формой их визуализации.
И вот пришло время, когда накопившиеся недовольство заставило заняться темой визуализации всерьез… к счастью, я не догадывался, что это займет годы до получения такого результата, который бы оправдывал затраченные усилия. В прошлом году мы с коллегой занялись публикацией имеющихся у нас геофизических и геологических результатов на LinkedIn и на английском языке, и оказалось, что очень многим читателям очень интересна в том числе и тема визуализации, потому что они так же давно сталкиваются со сходными проблемами представления данных. Хабр я читаю очень давно и, само собой, возникло желание поделиться информацией и с аудиторией хабра.
Используемое программное обеспечение
Далее речь идет об Open Source библиотеке визуализации VTK и основанном на ней Open Source проекте ParaView. Также для загрузки в ParaView геоданных мне потребовалось создать свое Open Source расширение к нему N-Cube ParaView plugin for 3D/4D GIS Data Visualization с поддержкой GeoTIFF растров (рельеф, космоснимки, ортофотоснимки) и шейпфайлов (векторные данные такие, как границы стран, моря, реки) и табличных данных (скважины, данные о землетрясениях, извержениях вулканов).
Open Source проект PyVista предоставляет VTK для визуализации в среде Jupyter Notebook. То есть все то, что сделано в ParaView становится доступным и в Jupyter Notebook — и наоборот — с помощью PyVista. Также В PyVista есть дополнительные возможности работы с поверхностями, рекомендую смотреть интерактивные ноутбуки Jupyter Notebook в документации.
Фреймворк симуляции mantaflow позволяет моделировать движение жидкости, газа и твердых тел (к примеру, огонь или дым, или наводнение).
В конце статьи приведены ссылки на все перечисленные проекты.
Примеры визуализации
Структурная модель вулкана скомбинирована с симуляцией дыма от извержения:
Модель внутренних камер и жерл вулкана:
Визуализация трехмерной модели на глобусе с наложенной на рельеф полупрозрачной картой:
Ссылки
Jupyter Notebook — Project Jupyter exists to develop open-source software, open-standards, and services for interactive computing across dozens of programming languages.
mantaflow — open-source framework targeted at fluid simulation research in Computer Graphics and Machine Learning.
N-Cube ParaView plugin for 3D/4D GIS Data Visualization
ParaView — ParaView is an open-source, multi-platform data analysis and visualization application.
PyVista — 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)
VTK — The Visualization Toolkit (VTK) is open source software for manipulating and displaying scientific data. It comes with state-of-the-art tools for 3D rendering, a suite of widgets for 3D interaction, and extensive 2D plotting capability.