Pull to refresh

Как визуализировать и анимировать (геофизические) модели. Информативность визуализации

Open sourceData visualization

Также смотрите другие статьи серии "Как визуализировать и анимировать (геофизические) модели":



Наглядная визуализация позволяет быстро понять суть работы и полученных результатов, но, случается, — понять неправильно. Как однозначно продемонстрировать результаты и, притом, избежать груды подтверждающих формул и ссылок на другие работы — так, чтобы все было визуально очевидно (в хорошем смысле слова)?


Build Super-resolution Gravity from GGMplus Free-Air Gravity Anomaly enhanced by SRTM topography


На картинке выше представлены результаты улучшение гравитационных данных GGMplus Free-Air Gravity Anomaly 200м с помощью рельефа SRTM 30м техникой переноса компонент пространственного спектра.


Постановка задачи


Рассмотрим задачу улучшения качества исходных данных — это может быть как отдельным проектом, так и частью большего проекта. Например, для получения детальных 3D геологических моделей, показанных в предыдущих статьях серии, использованы детальные данные гравики и рельефа, полученные данным способом.


Существуют разные методы улучшения пространственного разрешения, в том числе, так называемые техники супер-разрешения (super-resolution), основанные на комбинировании множества датасетов или использования априори известных закономерностей. Ключевой проблемой является доказательство качества полученных результатов — а значит, визуализация результата должна это учитывать.


И вот тут я неоднократно попадал в так называемую ловушку очевидности — показав результаты графически, я дополнял их формулами с обоснованием валидности и аккуратности этих результатов с выводом вида "корреляция пространственных спектров равна -0.98, что и доказывает качество полученного результата". Увы, но мало кто может воспринимать формулы так же свободно, как картинки, и тем более мало кто захочет когда-нибудь потом тратить время на их изучение… Таким образом, слушатели (читатели) оставались в сомнениях относительно представленных результатов, что их в немалой степени обесценивало. Что же делать? Путем проб и ошибок я пришел к тому, что проблема… в визуализации! То, что мне, как автору, кажется очевидным и, в принципе, видно на картинке, воспринимается совсем иначе другими людьми. Также может помочь еще одна визуализация, из которой понятно, как получена оценка точности. Посмотрим, как это сделать.


Исходные данные


Ноутбук Python 3 и все исходные данные выложены на GitHub, смотрите ссылку в конце статьи.


Визуализация результатов


Ниже представлен оформленный средствами matplotlib результат:


Build Super-resolution Gravity from GGMplus Free-Air Gravity Anomaly enhanced by SRTM topography


Здесь видно, что правая картинка имеет значительно более высокое разрешение, что и требовалось получить. Все очевидно? Да… но нет. Из графиков совершенно непонятна вертикальная точность. Попробуем показать то же самое в 3D с помощью ParaView (хотя matplotlib и позволяет отображать 3D поверхности, выглядит это для сложных поверхностей так себе):


Build Super-resolution Gravity from GGMplus Free-Air Gravity Anomaly enhanced by SRTM topography


Теперь те же самые данные представлены так, что совершенно ясны и вертикальный масштаб, и горизонтальная и вертикальная точность. А вот вместо слов "корреляция пространственных спектров равна -0.98" мы можем показать двумерную коррелограмму пространственных компонент гравики и рельефа с помощью matplotlib:


Spatial spectrums of the gravity and topography correlation


Как видно, корреляция исходных растров очень близка к -1 везде, кроме области высоких частот, где и требуется выполнить перенос компонент взамен отсутствующих для гравики. Кстати, также показательно, что реальное разрешение гравики отличается от заявленного — что вполне интуитивно (посколько наоборот быть просто не может). Этот график наиболее информативен именно в таком виде — не нужно пытаться сделать его в 3D виде, так как это только затруднит восприятие.


При наличии референсных точек на поверхности Земли их также легко добавить на 3D графики и дополнить численной оценкой вертикальной точности, вынесенной на графике.


Ссылки


Python 3 source code (Jupyter notebook)


Build Super-resolution Gravity from GGMplus Free-Air Gravity Anomaly (200m) enhanced by SRTM topography (30m) — более техническая статья на английском языке на LinkedIn.

Tags:visualization3dmodelinggeodatavtkparaviewmatplotlib
Hubs: Open source Data visualization
Total votes 3: ↑3 and ↓0+3
Views981

Popular right now

Top of the last 24 hours