Сейсмо­геологическое моделирование «AmberLight»

Сейсмо­геологическое моделирование «AmberLight»

15 мая 2020

AmberLight — сейсмогеологическое моделирование нефтяных и газовых месторождений на основе интерпретации данных сейсморазведки. Программное обеспечение создавалось для внутреннего использования и для вывода на рынок в качестве более удобного аналога Roxar RMS. AmberLight строит сеточные двухмерные и трехмерные геологические модели с последующей выгрузкой в графические и текстовые файлы.

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

Описание

Графическая часть реализована на .NET WPF, алгоритмическая часть — на C++ и подключается к приложению в виде динамической библиотеки. Растровые спутниковые снимки используются как картографический фон исследуемой местности.

3D модель

Модули:

  • импорт/экспорт данных;
  • визуализация;
  • построение карт;
  • расчет изолиний.

Виды объектов:

  • точки;
  • полигоны;
  • поверхности;
  • растровое изображение.

При геологическом моделировании используется интерполяция для построения карт на основе набора точек.

Методы интерполяции:

Графический интерфейс

Главное окно приложения разделено на зоны.

Графический интерфейс
01 Схема с галками Дерево данных Представляет собой список папок и подпапок, содержащих перечень объектов, которые можно выключать и включать для отображения нажатием на галочку слева от названия. Видимые объекты будут отображены во всех открытых окнах визуализации. Объекты внутри дерева можно перетаскивать из папки в папку. При перетаскивании одного объекта на объект аналогичного типа происходит полное копирование первого объекта во второй с сохранением имени последнего.
02 Схема в окне приложения Окно визуализации Отображает наборы точек, полигонов, поверхностей и растровых изображений в 2D- или 3D-режиме.
03 Простая страница текста Логи Снизу отображается окно, в котором выводятся текстовые сообщения, уведомляющие пользователя о статусе и об ошибках.
04 Слайдеры Раскрываемое меню В верхнем левом углу раскрываются списки операций: открыть, сохранить проект, выйти из приложения, информация о приложении и т.п.
05 Настройки Панель инструментов Иконки быстрого вызова часто используемых операций: «Новый проект», «Открыть проект», «Сохранить проект».
06 Функция Панель операций Находится слева. Операции разделены по категориям и изначально скрыты. При выборе объекта из дерева данных на панели появляются доступные операции.

Сохраняются 20 последних состояний проекта и действий пользователя. Нажатие сочетания клавиш Ctrl+Z возвращает к предыдущему, а Ctrl+Y переводит к следующему состоянию.

Импорт

Проект начинается с импорта данных: на дереве выбирается тип объекта, который инженер хочет импортировать, затем в диалоговом окне выбирается файл.

AmberLight позволяет импортировать набор точек, полигоны в текстовом формате XYZ, карты поверхностей SUR, растровые изображения форматов BMP, JPG, PNG, TIFF. Выгрузка данных происходит в аналогичных форматах.

3D точки
3D полигон
3D поверхность с масштабированием
3D изображение

Построитель карт

Основное назначение программы — построение поверхностей в заданной области с помощью различных методов интерполяции на основе набора точек от сейсморазведки.

Триангуляция Делоне

Триангуляция является точным интерполяционным методом:

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

Метод является точным, поскольку исходные точки используются для построения треугольников и, следовательно, принадлежат интерполяционной функции. Метод триангуляции работает наилучшим образом, когда множество экспериментальных данных содержит от 200 до 1000 точек, равномерно распределенных по рассматриваемой области. Использование метода Делоне для построения интерполяционной функции по небольшому числу хаотически распределенных точек приводит к появлению явных треугольных граней на графике поверхности и больших прямолинейных сегментов на карте изолиний. При больших множествах экспериментальных данных (>1000 точек) триангуляция становится очень медленной. Метод особенно эффективен, когда требуется сохранить линии разрывов поверхности.

Триангуляция Делоне

Интерполяция методом ближайшего соседа

Самый простой метод интерполяции, где в качестве искомого значения выбирается ближайшее известное значение. Разработан преимущественно для тестирования и проверки других методов интерполяции.

Интерполяция методом ближайшего соседа 3D

Интерполяция методом кригинга

Наиболее популярный метод в геостатистике, является линейно-взвешенным методом усреднения. Однако, вес зависит не только от расстояния, но и от направления и ориентации соседних данных в месте расчета.

Интерполяция методом кригинга 3D

Интерполяция методом многоуровневого B-сплайна

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

Интерполяция методом многоуровневого B-сплайна 3D

Статистика объектов

После расчета статистики пользователь может построить карты с ограниченным интервалом координат для исключения заведомо ошибочных данных. Для каждого вида объектов набор рассчитываемых показателей отличается.

Для набора точек:

  • общее количество точек в наборе;
  • среднее значение Z;
  • максимальное и минимальное значения для X-, Y-, Z-координат точки.

Для полигонов:

  • общее количество точек;
  • минимальное и максимальное значения по каждой координате точки;
  • среднее значение Z;
  • количество полигонов (ломаных линий) внутри объекта;
  • сумма длин всех полигонов внутри данного объекта;
  • площадь всех замкнутых полигонов — где первая и последняя точки совпадают.

Для поверхностей:

  • количество узлов;
  • минимальные и максимальные значения координат X, Y, Z;
  • среднее значение Z;
  • площадь;
  • объем.

Операции над поверхностями

Реализованы операции с двумя поверхностями.

01 Математические операции Математические Над каждой Z-координатой (аппликатой) каждой точки поверхности А выполняется операция со значением аппликаты точки с теми же координатами (X, Y, Z) поверхности B. Возможные операции: A = A + B; A = A − B; A = A × B; A = A / B; A = B.
02 Условные выражения Условные Значение аппликаты точки поверхности A приравнивается значению аппликаты точки поверхности B, если выполнено условие. Возможные условия: A > B; A < B.
03 Уничтожающие операции Уничтожающие Удаляет узлы поверхности A, если выполняется условие. Возможные условия: A > B; A ≥ B; A < B; A ≤ B.

Над поверхностью и полигоном можно применить логические операции, если полигон замкнут. В расчете используются координаты X, Y:

  • удаление всех точек вне полигона;
  • удаление всех точек внутри полигона;
  • установка аппликаты, равной заданной константе, у всех точек вне полигона;
  • установка аппликаты, равной заданной константе, у всех точек внутри полигона.

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

Режимы просмотра объектов:

  1. 2D — двухмерная визуализация;
  2. 3D — трехмерная визуализация.

Окна визуализации можно открывать при помощи специальной кнопки. По умолчанию, если еще нет окон визуализации, создается окно 2D-просмотра.

При появлении первого объекта окно подстраивается так, чтобы объект целиком помещался в центре, а по краям оставалось свободное место равное 1/10 части общего размера окна. При выделении объекта на дереве он отображается во всех открытых окнах визуализации.

Объект с наибольшим значением Z-координаты находится выше остальных — отображается поверх остальных. При пересечении двух поверхностей перекрывающая часть поверхностей рисуется, а перекрываемая — скрывается. Если точка или полигон лежит ниже отрисованной поверхности, то они не появляются.

В зависимости от настроек, растровые изображения рисуются позади или поверх всех остальных объектов. Можно задать степень прозрачности, чтобы при отображении не возникало полного перекрытия объектов, находящихся позади.

Поддерживается отображение нескольких исходных файлов. «На лету» подхватываются изменения цветовой палитры поверхности, прозрачности растрового изображения и так далее. При нажатии «Ctrl + левая кнопка мыши» можно определить высоту в заданной точке поверхности, а сочетание клавиш «Ctrl + F» направляет «камеру» на выделенный в дереве объект.

Объекту «растровое изображение» присваиваются координаты, чтобы привязать растр и исключить сдвиг при изменении масштаба. У каждого объекта свои настройки визуализации.

Настройки визуализации полигонов и точек
Настройка визуализации поверхностей

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

Создание непрерывной палитры

2D-визуализация позволяет просматривать растровые изображения, точки, полигоны и поверхности в горизонтальной плоскости. Логика компонента реализована «с нуля» средствами .NET WPF. При увеличении масштаба или передвижении объектов, рисуется только видимая часть объектов.

Точки и изолинии
Точки и поверхность
Точки и кригинг

В 3D-визуализации рисуется координатная сетка. Можно выбрать один из трех типов источника света: солнечный, трехточечный, стандартный.

В левом нижнем углу отображается стрелка, которая вращается со всеми объектами и указывает на север, в сторону увеличения ординат (координаты Y). Нижняя часть стрелки (в сторону уменьшения координаты Z) окрашена в красный цвет, а верхняя часть (в сторону увеличения координаты Z) окрашена в синий цвет.

3D поверхность

Расчет изолиний

Изолинии — линии поверхности с одинаковым значением высоты. С помощью изолиний можно визуализировать плоские и крутые объекты. Чем ближе располагаются изолинии друг к другу, тем больше кривизна поверхности.

На основе минимальной и максимальной высот поверхности и заданного в настройках шага считается набор высот, на которых будут рисоваться изолинии. Затем на каждом уровне высоты рассчитывается набор изолиний с помощью алгоритма «Marching squares».

Изолинии с подписями