Новый формат суб-блокированной модели Leapfrog, в основе которого лежит структура октодерева, улучшит представление геометрии в блочном моделировании.
Leapfrog теперь предлагает совершенно новый формат суб-блокированной модели, основанный на подразделении октодерева, который обеспечивает гораздо более эффективное представление геометрии при блочном моделировании. В этой статье мы расскажем об этом новом формате и его значении для блочного моделирования.
Итак — что такое октодерево? Начнем с определения Википедии.
«Октодерево — это древовидная структура данных, в которой у каждого внутреннего узла ровно восемь «потомков». Восьмеричные деревья чаще всего используются для разделения трёхмерного пространства, рекурсивно разделяя его на восемь ячеек».
(Источник: Википедия. https://en.wikipedia.org/wiki/Octree )
Каждая рекурсия соответствует двоичному делению размеров родительского блока (или ранее созданного суб-блока). В нашей реализации октодерева допускается до 6 уровней двоичной рекурсии ниже уровня родительского блока, при этом самый маленький созданный суб-блок составляет 1/64 (=1/2^6) размера родительской ячейки. Мы изменили нашу реализацию, чтобы к каждой оси можно было применять разные уровни рекурсии. Если 6 уровней рекурсии применяются ко всем трем осям, объем наименьшего создаваемого суб-блока составляет 0,0003815% от родительского (=1/(1/64)^3) и теоретически для каждого родительского блока могут быть созданы до 262,144 (=64^3) суб-блоков. На практике такое количество суб-блоков не создается даже близко, потому что разделение блоков или суб-блоков запускается только в том случае, если через них проходит граница.
На рисунке показана геометрия суб-блоков, созданная в старом полностью суб-блокированном формате Leapfrog (слева) и в новом формате октодерева (справа).
Точное сокращение количества суб-блоков зависит от геометрии и количества запущенных блоков и будет различаться от проекта к проекту.
В качестве примера в таблице ниже сравнивается количество суб-блоков, необходимых для представления жильной системы с маломощными жилами, содержащей 4 жилы, с использованием существующего формата суб-блока Leapfrog и нового формата со структурой октодерева. В целом для модели со структурой октодерева требуется лишь 15% блоков, необходимых для старой полностью суб-блокированной модели. Непосредственно для системы жил сокращение меньше (55% от предыдущего), потому что жилы очень тонкие и в основном представлены самым маленьким суб-блоком. Для более объемных доменов пропорциональное уменьшение будет больше – обычно требуется только 25% от предыдущего (или уменьшение 75%).
Существующий суб-блок | Суб-блок октодерева | ||
Базовая точка: | 250, 2070, 1180 | 250, 2070, 1180 | |
Размер границы | 1040, 290, 600 | 1040, 290, 600 | |
Размер родительского блока | 20,10,20 | 20,10,20 | |
Размер в блоках | 52, 29, 30 | 52, 29, 30 | |
Суб-блокировка | 8,16,8 | 8,16,8 | |
Азимут / угол падения | 310°/ 0° | 310°/ 0° | |
Общее количество родительских блоков: | 45,240 | 45,240 | |
После запуска | |||
Количество разделенных родительских блоков | 6469 (14.3%) | 6173 (13.6%) | |
Родительские объекты 20,10,20 | 38,771 | 39,067 | |
суб-блок = 10,5,10 | 25,259 | ||
суб-блок = 5,2.5,5 | 103,340 | ||
суб-блок = 2.5,1.25,2.5 | 619,361 | ||
суб-блок = 2.5,0.625,2.5 | 6,624,256 | 195,838 | % от предыдущего |
Итого всех блоков / суб-блоков | 6,663,027 | 982,865 | 15% |
Только блоки системы жил | 404,082 | 224,008 | 55% |
Это обеспечивает меньшие размеры файлов при экспорте и ускорение обработки блочных моделей Leapfrog с меньшим количеством ячеек. Но более пристальное рассмотрение размеров проектов подчеркивает основную причину, по которой мы выбрали октодерево в качестве основы для нашей новой модели. Хорошо известно, что октодерево — не самый эффективный формат суб-блока с точки зрения минимизации количества ячеек, но иерархическая структура октодерева очень эффективна и обеспечивает большие преимущества при хранении и извлечении информации о блоках и более быструю визуализацию.
Для модели жилы, показанной выше, старой суб-блокированной модели необходимо 1,548 Гб на диске, в то время как новому октодереву — только 18 Мб. Размер этого конкретного проекта значительно уменьшается: с 1.74 Гб до 210 Мб.
Постоянно ведется работа по дальнейшей оптимизации размера и эффективности моделей со структурой октодерева.
Само собой разумеется, что для октодерева также доступны все стандартные инструменты проверки и отчетности, которые вы используете для работы с существующими суб-блокированными моделями: расчеты и фильтры, статистические отчеты, сводные отчеты, кривые тоннаж-содержание и заверочные графики.
Один вопрос, который часто возникает в связи с суб-блокированными моделями, заключается в том, является ли «геостатистически правильным» проецирование непосредственно на суб-блоки, что еще более актуально, когда у суб-блоков разный размер. Это слишком обширная тема, чтобы ее рассматривать здесь, и будет обсуждаться в следующей статье блога. Но достаточно сказать, что наша реализация проецирования на суб-блоки решает любые проблемы поддержки путем переноса сетки дискретизации, подходящей для родительского блока на каждый суб-блок, таким образом коррекция поддержки, подразумеваемая при использовании блочного кригинга, будет подходить размерам родительского блока.
Путь обновления для преобразования существующих блочных моделей прост – просто создайте новую модель и выберите объекты для запуска и проецирования. Вы можете экспортировать расчеты и фильтры и повторно импортировать их в новую модель. Вам потребуется заново создать отчеты и заверочные графики. Поскольку это очень простой процесс, мы решили не тратить силы на создание автоматического обновления. Повторное создание модели дает вам возможность оценить и сравнить старые и новые модели бок о бок. Это ценная дополнительная проверка. Мы уверены, что вы сразу же осознаете преимущества, которые дает наша новая модель, и выполните этот переход.
Если вам необходима переменная Z (и вы не можете использовать мелкое деление на одной оси для достижения геометрического разрешения, которое это дает), вы можете просто продолжить использовать существующую суб-блокированную модель.
Импорт суб-блокированной модели
Еще одна долгожданная разработка: теперь вы можете импортировать суб-блокированную модель со структурой октодерева в формате CSV в Leapfrog, что позволит вам визуализировать и проверять импортированные модели, а также составлять по ним отчеты. Вы можете добавлять новые триггеры, новые проекции и оценки к импортированным моделям, сохраняя целостность импортированных категорий и значений.
Важно отметить, что импортированные модели должны соответствовать правилу, согласно которому минимальный размер суб-блока должен равняться результату двоичного деления размера родительской ячейки (по x, y и z). Блоки с произвольными размерами суб-блока могут обрабатываться при условии, что они подчиняются этому правилу. На практике многие разработчики моделей в любом случае определяют свои произвольные модели в рамках этого геометрического ограничения, поскольку это облегчает перенос блочных моделей между различными приложениями.
На рисунке 2 показано, как интерфейс импорта следует знакомому шаблону выбора исходного файла и столбцов для импорта перед определением структуры сетки для импорта: размеры, положение и протяженность родительского блока и суб-блока.
Рисунок 2. Интерфейс импорта нового формата суб-блокированной модели следует знакомому шаблону выбора исходного файла и столбцов для импорта перед определением структуры сетки для импорта: размеры, положение и протяженность родительского блока и суб-блока. (A) отображение содержимого файла csv; (B) отображение параметров сетки.
Для невращающихся моделей это простая задача — указать минимальное и максимальное угловые положения в ортогональных координатах проекта.
Если модель повернута, в настоящее время мы предоставляем две предустановленные опции для импорта определенных экспортированных файлов CSV из Leapfrog и Surpac. Обе опции настроены на принятие минимумов, максимумов и вращений модели, указанных в информации заголовка, которая может (и должна) экспортироваться вместе с файлами данных.
Модели, экспортированные из других программных пакетов (где правила вращения могут отличаться), можно импортировать с помощью одной из этих опций. Если вам известны размеры модели, используйте опцию Surpac, чтобы указать максимальные углы — как минимальный угол плюс размеры модели (т.е. в пространстве до вращения). Мы рекомендуем сначала импортировать модель в виде точек, отфильтровать точки для изоляции родительских блоков, а затем использовать эти точки для проверки правильности расположения содержащейся модели относительно местоположений данных.
Мы знаем, что импорт вращаемых моделей еще не оптимизирован. Работа по доработке и совершенствованию механизма импорта продолжается.
Обобщенное описание преимуществ нового формата суб-блокированной модели
Ниже приведены основные преимущества использования нашего нового формата суб-блокированной модели с ветвлением по типу октодерева:
- Улучшенное представление геометрии при блочном моделировании без создания неуправляемых файлов блочной модели.
- Меньшее количество блоков и строк, а следовательно файлы блочной модели становятся меньше.
- Меньший размер файлов блочных моделей и проектов Leapfrog для экспорта или публикации в Central.
- Меньшее количество блоков, более быстрая оценка.
”Мы продолжаем активно инвестировать в Leapfrog. Внедряя этот новый формат суб-блокированной модели со структурой октодерева, мы позволяем нашим пользователям улучшить геометрическое представление доменов оценки и геологических моделей с помощью более легкой, быстрой и более эффективной в плане вычислений блочной модели.
Mike Stewart, Technical Doman Expert at Seequent