Геоинформационное моделирование в задачах оценки распределения геотермальных ресурсов (24.10.2011)

Автор: Кобзаренко Дмитрий Николаевич

Опираясь на вышеизложенное, можно предложить следующую концепцию построения специализированной ГИС в виде системы трехмерного геоинформационного моделирования (СТГМ) (рис.2). Обозначения на рис.2: ГД – генераторы данных, БРД – библиотека расчетных данных, БВД – библиотека визуализируемых данных, ГИД – генераторы-импортеры данных, ГРД – генераторы расчетных данных, ГВД – генераторы визуализируемых данных, ПР – проект. На схеме разными цветами показана последовательность решения задачи в рамках геоинформационного моделирования, начиная от выбора объекта моделирования и заканчивая визуализацией результата.

Вторая глава посвящена рассмотрению системы организации данных в СТГМ. Приведена классификация данных, рассмотрены типы и структуры форматов данных. В отдельный параграф вынесено рассмотрение оптимизации объема данных непрерывной регулярной сети.

Базовой структурой данных СТГМ является проект. Проект (или модель) определяется как совокупность объединенных данных, ассоциируемая с объектом моделирования – определенной территорией и масштабом. При каждом проекте создаются две библиотеки данных: БРД и БВД. БРД – хранилище всей пространственно-атрибутивной информации в рамках текущего проекта, включающее как базовую (исходную), так и сгенерированную в процессе решения некоторой задачи информацию. БВД – хранилище информации, адаптированной для визуализации с использованием графической библиотеки OpenGL, и ее интерпретации (легенда).

Подобное разделение данных на две категории имеет преимущества. Они заключаются в: а) отсутствии временных затрат на получение адаптированной под визуализацию модели структуры данных, (включая формирование легенды); б) возможности создания для одних и тех же расчетных данных нескольких визуальных структур, по-разному интерпретирующих (разная легенда) информацию. К недостатку можно было бы отнести некоторую избыточность данных с увеличивающимся объемом хранимой информации, но современные запоминающие устройства персональных компьютеров позволяют хранить терабайты информации, поэтому экономию некоторого пространства дисковой памяти в ущерб указанным преимуществам можно считать не столь актуальной.

Расчетные данные проекта делятся на 4 типа: векторные объекты, триангуляционная сеть, непрерывная регулярная сеть и дискретная регулярная сеть.

Векторные объекты – расчетная структура данных, представляющая собой множество объектов, где каждый объект состоит из геометрической части (набор 2D узлов) и описательной части (набор атрибутов). Такая структура данных является универсальным средством для импорта разнородной информации (картографические объекты, каротажные данные, профили, дистанционные данные и др.) в систему. Триангуляционная сеть – расчетная структура данных, состоящая из массива 2D узлов + значение Z для каждого узла и массива треугольников, соединяющих узлы методом Делоне. Эта структура главным образом необходима для построения и визуализации цифровой модели рельефа. Непрерывная регулярная сеть – расчетная структура данных с заданными границами по X, Y и шагом между узлами, хранящая вещественные значения в узлах. Дискретная регулярная сеть – расчетная структура данных с заданными границами по X, Y и шагом между узлами, хранящая байтовые значения в узлах, соответствующие заданным N дискретам (N < 255). Регулярные сети могут быть однослойными (2D-режим) и многослойными (3D-режим).

Визуализируемые данные проекта также делятся на 4 типа: триангуляционная поверхность, картографические объекты (или покрытия), текстура и 3D-поле.

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

Каждая единица данных (файл), находящаяся в библиотеках расчетных и визуализируемых данных проекта, помимо полей «Название» и «Ключевое слово», используемых для быстрого поиска, содержит также поле, именуемое «История». Это поле аккумулирует в хронологическом порядке всю информацию, связанную с текущими данными. Таким образом, для каждой единицы данных доступна информация: а) об источниках и кратких описаниях всех данных, которые участвовали в цепочке получения текущего файла; б) о генераторах (моделях и методах), которые участвовали в цепочке получения текущего файла. Механизм учета «Истории данных» дает возможность пользователю в любой момент ответить на вопрос: что смоделировано, какие данные и какая методика вложены в модель?

Чтобы несколько сократить затраты вычислительных ресурсов при работе с регулярной сетью, предлагается оптимизировать объем хранимых в ней данных до минимально необходимого. Идея оптимизировать объем данных в сети основывается на анализе потока информации из реального окружения в модель. Общая особенность пространственных данных, хранящихся в регулярной сети заключается в том, что имеются пределы диапазона изменения величины (минимум и максимум) и минимально необходимая точность их представления применительно к предметной области и моделируемому объекту (территории). Практика показывает, что для обеспечения задания всех возможных значений моделируемой величины обычно хватает нескольких тысяч чисел. Исходя из вышесказанного, приходим к выводу, что в узлах регулярной сети можно хранить формальные данные беззнакового целого типа малой разрядности, а при непосредственной работе с сетью преобразовывать их в фактические значения вещественного типа. Использование 16 разрядов обеспечивает возможность хранить 65535 различных значений величины. Этого вполне достаточно в рамках подавляющего большинства решаемых задач. Предложенный способ оптимизации в 4 раза сокращает объем оперативной и внешней памяти, что увеличивает возможности геоинформационного моделирования на регулярных сетях, поскольку эти возможности всегда зависят от вычислительных ресурсов компьютера.

Алгоритмическое обеспечение СТГМ, рассматриваемое в третьей главе, можно разделить на две части: алгоритмы общего назначения (например, алгоритмы вычислительной геометрии) и специализированные алгоритмы, разрабатываемые с учетом специфики предметной области (построение трехмерных геологической и температурной моделей).

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

Рассмотрены некорректности стандартного алгоритма проверки принадлежности точки полигону и предложена модификация данного алгоритма. Предложенный алгоритм является более эффективным как с точки зрения объема программного кода, так и с точки зрения увеличения скорости работы (около 15%).

Алгоритм преобразования триангуляционной сети в непрерывную регулярную сеть. Простой алгоритм решения задачи преобразования триангуляционной сети в регулярную сеть заключается в том, чтобы для любого узла регулярной сети определить значение z = f(x,y) по данным триангуляционной сети. Неэффективность такого подхода очевидна – перебор треугольников из триангуляционной сети для вычисления значения каждого узла регулярной сети достаточно трудоемок. Эффективным решением данной задачи является алгоритм, в котором выделяется треугольник триангуляционной сети и заполняются все значения f=(x,y) для узлов регулярной сети, находящихся по x и y внутри данного треугольника. Данная операция повторяется для всех треугольников триангуляционной сети.

Алгоритмы ускорения поиска ближайших узлов в задаче 2D интерполяции в непрерывной регулярной сети при большом объеме исходных и результирующих данных. Двумерная (2D) интерполяция функции z=f(x,y) на регулярной сети заключается в нахождении z-координаты для каждого ее узла с известными координатами x и y. Исходными данными являются: 1) границы регулярной сети: Xmin, Ymin, Xmax, Ymax и шаг между ее узлами – Space; 2) массив известных значений функции z=f(x,y) (или исходных узлов для построения) – R0(x0, y0, z0), R1(x1, y1, z1),…,RN-1(xN-1, yN-1, zN-1) длиной N. Процедура интерполяции значения Z0 для каждого узла регулярной сети с координатами X0, Y0 состоит из двух частей: 1) поиск одного или нескольких ближайших (к точке X0,Y0) исходных узлов с известными значениями Z; 2) вычисление Z0 на основе координат найденных узлов по формулам одного из методов интерполяции. Подавляющая часть времени, затрачиваемого на интерполяцию, расходуется на поиск ближайших исходных узлов. Поэтому предлагается методика для ускорения поиска ближайших узлов в рамках 2D интерполяции на регулярной сети. Методика реализована на практике в виде алгоритма интерполяции, заключающейся в поиске ближайшего соседа. Это позволило сравнить скорость интерполяции, получаемой на основе предлагаемой методики, со скоростью интерполяции в современных системах, например, в Surfer и сделать выводы об эффективности ее использования в выполнении 2D интерполяции. Аналогичную методику поиска после некоторых модификаций и дополнений можно применить, например, для интерполяции методом инверсных расстояний.

Обеспечение поточных вычислений на основе введенной формулы. Актуальность данной задачи возникает в случае, когда необходимо построить карту распределения некоторой величины, которая является рассчитываемой, на базе математической модели (формулы). Пусть это будет, например, карта распределения теплового потока Q = – ? ? grad T. До бурного развития информационных технологий и ГИС такого рода карты, естественно, строились вручную. В настоящее время появилась возможность практически полностью автоматизировать этот процесс. Для автоматизации процесса построения карт необходимо разработать программный модуль (компонент), который обеспечивает ввод математической формулы, задание переменных и констант и выполнение расчета. Такой программный компонент, названный редактором математической формулы для поточных вычислений, разработан нами в среде Delphi.

Редактор математической формулы для поточных вычислений представляет собой инструмент, который обеспечивает: а) ввод математической формулы с традиционным ее изображением и автоматическую блокировку неверных действий пользователя; б) задание массивов данных для переменных формулы; в) задание длины массива для поточного вычисления; г) поточное вычисление на основе введенной формулы.

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

Построение трехмерной геологической модели необходимо для получения данных о средней мощности и глубинах залегания горизонтов. Исходные данные для построения геологической модели в рассматриваемом случае могут быть двух видов: 1) данные выхода стратиграфических горизонтов на поверхность, 2) данные глубины залегания стратиграфических горизонтов. Данные выхода стратиграфических горизонтов на поверхность берутся из геологической карты. Они представляют собой массив объектов – полигонов (на плоскости XY) с одним атрибутом, в котором прописано название горизонта, оконтуривающего данный полигон.

??$??$?????/?Ћ

??&???????????????????/

?????????/

????????? ???????/ ???????/???????¤?$????/

???????????/

Геологическая модель строится в два этапа. На первом этапе генерируется набор n непрерывных регулярных сетей S, где каждая сеть Si в узлах содержит значения мощности i-го горизонта. На втором этапе на основе массива регулярных сетей S генерируется трехмерная дискретная регулярная сеть D геологической модели. Набор дискрет соответствует стратиграфическим горизонтам модели, а в узлах сети содержится ссылка на один из горизонтов (рис.3).

Построение трехмерной модели температурного поля. Достоверными исходными данными, необходимыми для выполнения задачи построения трехмерной модели распределения температурного поля, являются термограммы – зависимости температуры от глубины, полученные на основе измерений в скважинах. Также достоверной является замеренная температура нейтрального слоя. Вся остальная недостающая информация получается путем выполнения интерполяции промежуточных значений и экстраполяции в глубину земной коры. Для решения данной задачи можно использовать разные подходы, которые зависят от полноты и формы представления исходной информации. Исходная информация может быть представлена, кроме собственно первичного скважинного материала, обработанными данными в виде изолиний температуры на определенных глубинах или изолиний глубины залегания геоизотерм. В диссертационной работе разработаны алгоритмы для различных вариантов наличия исходных данных. На выходе алгоритмов генерируется трехмерная непрерывная регулярная сеть со значениями температуры в узлах.

Рис.3. Принцип построения геологической модели

В четвертой главе рассмотрены вопросы визуализации данных в СТГМ. Для этого разработаны алгоритмы: тесселяции картографических объектов, отсечения триангуляционного объекта в плоскости XY и построения профилей трехмерной модели, а также рассмотрены вопросы отрисовки моделей посредством графической библиотеки OpenGL.

Генерация объемных изображений представляет сложную вычислительную задачу, в связи с чем на практике выполняют ее декомпозицию. Сложные изображения формируют фрагментарно, для чего их разбивают на составные части. Процесс разбиения поверхности объектов на полигоны получил название тесселяции, которая в настоящее время проводится полностью программно вне зависимости от технического уровня 3D-аппаратуры. На практике наиболее часто производится разбиение изображений на треугольники. Особый интерес к алгоритмам триангуляции определяется тем, что они используются во многих процедурах машинной графики, таких как закраска, удаление невидимых частей, отсечение, формирование поверхностей. В работе разработаны алгоритмы триангуляции для картографических объектов типа точка, полилиния и полигон.

Чтобы продемонстрировать структуру трехмерного объекта в разрезе, необходимо обладать программно-математическим аппаратом отсечения объекта, заданного массивом треугольников в проекции на плоскость XY. Причем, в общем случае для отсечения объекта может быть задан невыпуклый (произвольный) полигон (рис.4). Здесь могут быть сформулированы 2 задачи: 1) внешнее отсечение – когда отсекается все то, что находится за пределами отсекающего полигона, 2) внутреннее отсечение – когда отсекается все то, что находится внутри отсекающего полигона. Основные требования, связанные с применением задачи отсечения, следующие:

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

Задача может решаться и как плоскостная – отсечение плоского объекта (без учета z-координат), и как трехмерная – отсечение трехмерного объекта в плоскости XY.

Полигон отсечения задается массивом вершин в плоскости XY с заранее не известными координатами z (если задача трехмерная). Направление обхода полигона должно быть против часовой стрелки для внутреннего отсечения и по часовой стрелке для внешнего отсечения.

В процессе решения задачи в массив исходных вершин добавляются узлы отсекающего полигона, исключая совпадающие узлы (в плоскости XY). В массив исходных вершин также добавляются найденные cross-узлы (узлы пересечения отсекающего полигона и модели).

Рис.4. Внутреннее отсечение 3D-графического объекта произвольным полигоном

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

«Трехмерное поле» визуализируется в виде «слоеного пирога» на общей картине трехмерной визуализации всей модели, а также в виде двумерного профильного разреза. И в том и другом случае эффективным способом визуализации является генерация геометрических примитивов – фасет. В данном случае фасеты четырехугольные (рис.5).

Рис.5. Принцип визуализации структуры «трехмерное поле» в СТГМ

Для генерации геометрических примитивов «слоеного пирога» трехмерного поля необходимо определить границу триангуляционной поверхности (рис.5). Алгоритм определения границы триангуляционной поверхности должен быть максимально эффективен с точки зрения скорости выполнения, поскольку он используется в реальном времени каждый раз при визуализации модели. Задача определения границы триангуляционной поверхности ставится следующим образом. Имеется массив из n узлов триангуляционной поверхности (x0, y0, z0), (x1, y1, z1), (x2, y2, z2),…, (xn-1, yn-1, zn-1) и m фасетов (i00, i10, i20), (i01, i11, i21), (i02, i12, i22), …, (i0m-1, i1m-1, i2m-1), где i0, i1, i2 – ссылки на узлы – порядковые номера из массива узлов. Необходимо найти все k граничных ребер триангуляционной поверхности (F0, S0), (F1, S1), (F2, S2),…, (Fk-1, Sk-1), где F и S ссылки на начальный и конечный узлы ребра. Все найденные граничные ребра и будут представлять собой граничный контур триангуляционной поверхности. В любом случае решение задачи предполагает рассмотрение всех фасет триангуляционной поверхности. Если решать задачу очевидным образом, то алгоритм ее решения будет следующим: 1) на основе перебора всех треугольных фасет получаем массив всех ребер, 2) перебирая все ребра, выбираем несмежные, причем для проверки смежности ребра необходимо пройти по остальным, еще не обработанным ребрам. При большом количестве фасетов в триангуляционной поверхности такой алгоритм может существенно замедлять процесс подготовки модели к визуализации.

Для увеличения скорости выполнения процедуры нахождения контура триангуляционной поверхности в работе предложен алгоритм, суть которого заключается в следующем. Имеется текущий массив упорядоченных ребер L. Ребра упорядочиваются по возрастанию значений для ключей F и S (в случае равенства F идет сравнение по S). Изначально массив упорядоченных ребер пустой. Работа алгоритма заключается в последовательном переборе всех m фасет и рассмотрении всех m * 3 ребер триангуляционной поверхности. При рассмотрении очередного ребра (Fi, Si) выполняются следующие действия:


загрузка...