НОВОСТИ Как визуализировать и анимировать (геофизические) модели. Показываем исходные данные

BDFINFO2.0
Оффлайн
Регистрация
14.05.16
Сообщения
11.398
Реакции
501
Репутация
0
Также смотрите вводную статью со списком используемого программного обеспечения


В зависимости от проекта и масштаба данных мы можем выбрать различные варианты визуализации — и все же, для любого масштаба данных важным является именно позволить наглядно оценить этот масштаб. К примеру, на региональном уровне отображение на глобусе Земли позволит легко понять как масштаб, так и расположение изучаемой территории. Вот мы и займемся отображением данных на глобусе.


pidk7matvzmf5mc2lvxucb6fhu8.jpeg



Слева направо: EMAG2 Earth Magnetic Anomaly, Sandwell and Smith Free Air Gravity Grid, GEBCO Gridded Bathymetry Data.


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



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

Подготовка исходных данных



Ссылки на все используемые датасеты приведены в конце статьи.


Для целей визуализации будем использовать сферу, на которую накладывается рельеф и другие данные и раскрашиваются по значениям (например, высоты над уровнем моря). Рельеф можно дополнить графическим изображением (текстурой) для получения реального вида планеты из космоса. Эффекты освещения оставим "за кадром" — хоть ParaView и позволяет управлять источниками света, но это выходит за рамки статьи.


Для отображения на сфере нам потребуются исходные данные с географическими координатами (заданными в десятичных градусах) и в формате NetCDF. Воспользуемся консольной утилитой для конвертации форматов и уменьшения разрешения данных (выбранное разрешение вполне достаточно для просмотра целого глобуса):


gdal_translate -of NetCDF -r average -tr .25 0.25 EMAG2_V2.tif EMAG2_V2.15min.nc
gdal_translate -of NetCDF -r average -tr .25 0.25 grav_28.1.nc grav_28.1.15min.nc
gdal_translate -of NetCDF -r average -tr .25 0.25 GEBCO_2019.nc GEBCO_2019.15min.nc


Изображения планеты можно скачать с , далее будет использовано изображение 8081_earthmap4k.jpg:


1hox-u-l8lhpmdzsv2lxmoygbqk.jpeg



Для использования изображения в качестве текстуры в ParaView преобразуем его средствами :


convert -flip -crop 50%x100% 8081_earthmap4k.jpg _converted.png
convert _converted-1.png _converted-0.png +append 8081_earthmap4k.fixed.jpg


Теперь у нас есть готовые для отображения данные, которые мы можем показать на глобусе средствами ParaView.

Визуализация в ParaView



Загрузим NetCDF файлы в ParaView, сняв галочку "Spherical Coordinates" (хотя в сферических координатах тоже можно загрузить и отобразить, но это работает только для файлов NetCDF и, притом, добавляет излишнее сглаживание данных) и добавим фильтр "Calculator" с формулой


( 1 + (elevation/6370000)*40)*(cos(coordsY/180*3.141592) * cos(coordsX/180*3.141592) * iHat + cos(coordsY/180*3.141592) * sin(coordsX/180*3.141592) * jHat + sin(coordsY/180*3.141592) * kHat)


Здесь значение "6370000" это радиус Земли в метрах (можно указать и точнее, но визуально разница будет не различима), а "40" это коэффициент растяжения по высоте для более наглядной визуализации. Чтобы заменить исходные координаты посчитанными по указанной формуле, в фильтре следует выбрать галочку "Coordinate Results" и указать цветовую раскраску по высоте (elevation). Для набора данных GEBCO 2019 Gridded Bathymetry Data получаем следующую визуализацию:


ozgcmqnuoyr3x2ngfjxe8qf40oo.png



Дополнительно можно для глобуса с рельефом выбрать текстуру, добавив фильтр "TextureMaptoSphere" и указав в его параметре "Texture" ранее подготовленную картинку 8081_earthmap4k.fixed.jpg:


6ylvsiazhffhehfyul1fwa0umpi.png



Аналогично добавляются и другие данные с географическими координатами (заданными в десятичных градусах), например, эпицентры землетрясений:


l3r3extqonkdnafquvc-csvoudi.png



Здесь прекрасно видны границы континентальных плит, оконтуренные эпицентрами землетрясений. И не оконтуренные видны тоже — значит, визуализация удалась!


Теперь мы знаем, как сделать визуализацию из вводной статьи:


1251e346bc01c1bc7ca382b28d1a77f5.png



Если нет необходимости совмещать модель с полным глобусом, то в формуле для перехода к сферическим координатам мы можем уменьшить радиус сферы для большей наглядности.

Ссылки



— The GEBCO_2019 Grid is the latest global bathymetric product released by the General Bathymetric Chart of the Oceans (GEBCO) and has been developed through the Nippon Foundation-GEBCO .


— WGM2012 is the first release of a high resolution grids and maps of the Earth's gravity anomalies (Bouguer, isostatic and surface free-air), computed at global scale in spherical geometry.


— Magnetic anomaly maps provide insight into the subsurface structure and composition of the Earth's crust. Anomalies trending parallel to the isochrons (lines of equal age) in the oceans reveal the temporal evolution of oceanic crust.





— GDAL is a translator library for raster and vector geospatial data formats that is released under an X/MIT style Open Source by the .


— ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications.


— более техническая статья на английском языке на LinkedIn.
 
Сверху Снизу