Академический Документы
Профессиональный Документы
Культура Документы
Практикум
по геологическому
3D моделированию.
Построение тестовой
модели в Petrel 2009
К. Е. Закревский
ПР А КТИК У М
по геологическому
3D моделированию
Москва
2010
УДК 553.9:551.252
ББК 26.343
З20
Закревский К.Е.
Практикум по геологическому 3D моделированию. Построение тестовой модели в
З20 Petrel 2009. – М., 2010. – 110 с.
ISBN 978-5-98422-099-6
ISBN 978-5-98422-099-6
© К.Е. Закревский, 2010
Содержание
Загрузку данных
начнем с импорта исходных
файлов из папки INPUT. Для
этого необходимо выполнить
команду Импорт файлов
(рис.1.1.). Все исходные
данные лежат в подпапках
папки INPUT.
Вначале зайдем в папку Заголовок скважины (Well Head) и загрузим текстовый
файл описания устьев
скважин «new well head»
(рис.1.2.), указав тип файла
«Well heads».
Укажем номера
колонок (рис.1.3.): имя
скважины – 1, символ
скважины – 2, координаты
устья - 3 и 4, альтитуда – 5,
глубина забоя – 6. Они соответствуют номерам столбцов в файле описания устьев
скважин.
После загрузки в
закладке исходных данных
Input должна появиться папка
скважин (рис.1.3.), где
разведочные скважины имеют
одинаковые символы. Также
одинаковые символы у
эксплуатационных скважин
одного куста.
1-1
Для загрузки
данных инклинометрии
зайдем в папку INCL и
выберем сразу все
скважины, указав тип
файла «well
path/deviation».
Программа (рис.1.4.),
выдаст таблицу
соответствия имен
скважин и имен файлов
инклинометрии.
Просмотрев всю таблицу, можно убедиться в их идентичности. При
необходимости можно поменять соответствие файлов, если в названии скважин или
файлов инклинометрии допущены ошибки.
Хотя в файлах инклинометрии содержатся, в том числе, и данные по углам и
азимутам с уже введенным магнитным склонением, предпочтительнее грузить
инклинометрию через позиционный каротаж (MD, X, Y, Z). Это позволяет избежать
расхождений в траекториях стволов скважин, вызванных различиями в алгоритмах
расчета траекторий в используемой программе и, например, в программе, применяемой
маркшейдерской службой. Укажем номера колонок: измеренная глубина MD – 1, X – 2,
Y - 3, Z – 4.
Для загрузки
стратиграфических
разбивок (рис.1.5.) по
разведочным
скважинам, откроем в
папке Well Tops R файл
«Well tops», указав тип
файла «Petrel well tops».
Укажем номера колонок:
имя скважины (well) – 1,
тип отбивки (type) – 2,
1-2
имя кровли пласта (surface) – 3, X – 4, Y - 5, Z – 6, измеренная глубина MD – 7.
Остальные колонки справа от седьмой, если необходимо, просто выделим и удалим.
Укажем число строк заголовка файла – 1. Затем, когда программа сообщит (рис.1.6.),
что она привяжет разбивки согласно измеренной глубине и инклинометрии, согласимся
и получим (рис.1.5.) в исходных данных папку Well tops.
1-3
DEPT привяжем к шаблону измеренных глубин Measured depth, кривую бокового
каротажа BK – к шаблону сопротивления Resistivity, кривую гамма-каротажа GK – к
шаблону гамма излучения Gamma ray, кривую индукционного каротажа IK – к шаблону
проводимости Conductivity, кривую нейтронного каротажа NKT – к шаблону
нейтронного излучения Neutron, кривую ПС (PS) – к шаблону потенциалов
собственной поляризации Spontaneous potential, кривую нефтенасыщенности Soil – к
шаблону Oil saturation, кривую пористости Kpor – к шаблону Porosity. Это все были
непрерывные кривые. Привяжем также дискретные кривые: кривую
коллектор/неколлектор Kod_coll – к шаблону литологии Lithologies, кривую характера
насыщения Kod_fluid – к шаблону флюида Fluids. После того как для каждого каротажа
определен подходящий шаблон, нажимаем OK. В открывшемся во второй раз
диалоговом окне на этот раз оставим включенной опцию самораспознавания
(Autodetect logs) кривых и осуществим загрузку всех остальных фалов: OK for all. Такое
выполнение загрузки в два этапа удобно, когда на первой скважине представлено
большинство каротажей. Задав шаблоны только для одной скважины, мы разрешаем
программе подобрать их для остальных скважин автоматически.
Если автоматически присвоенный шаблон не устраивает, то после загрузки его
можно изменить на закладке Info, зайдя в Настроки (Settings) каротажа, лежащего в
папке Global well logs (рис.1.8). Но если каротаж был загружен как непрерывный, то
Petrel не даст возможности привязать его к дискретному шаблону (и наоборот). Это
связано с принципиальными отличиями в программе этих двух типов данных. Поэтому,
если все-таки возникла необходимость поменять тип каротажа, можно в калькуляторе
для глобальных каротажей создать копию каротажа с новым шаблоном.
Лишнюю кривую глубины удалим из проекта (рис.1.9).
1-4
интервалами перфорации (кривая Perf). Загрузим результаты испытаний пластов из
папки Сomment (рис.1.10), указав тип файла «Comment well log».
Установим для каждого шаблона
соответствующее число знаков после
запятой, раскраску, название и рисунок
(Pattern) - рис.1.11-13. Для кривых
измеренных глубин, гамма-каротажа,
нейтронного каротажа, проводимости и
ПС выберем один знак после запятой,
один и тот же цвет от минимуму да
максимума.
Для этого надо предварительно перейти из закладки исходных данных Input в
закладку Templates.
1-5
Для пористости выберем три знака после запятой, нефтенасыщенности – два
знака, цвет переменный от синего до красного. Для шаблона литологии (рис.1.13)
зададим для нулевых значений название Clay, зеленый цвет, для единичных значений
название Sand и желтый цвет. Остальные строки удалим. Для шаблона флюида зададим
для нулевых значений название Clay, зеленый цвет, для единичных значений название
Oil и коричневый цвет, для значений двойки название Water и синий цвет.
1-6
Добавим в таблицу строки и зададим для
значений двенадцать название Und
(неопределенный характер насыщения) и белый
цвет. Подготовив, таким образом, загруженные
кривые ГИС и РИГИС для дальнейшей работы,
вернемся к папке стратиграфических разбивок и
переименуем ее, убрав txt. Переименуем зоны в
первую, вторую и третью (рис.1.14). К сожалению,
на некоторых рисунках в следующих главах названия зон остались старые,
непереименованные (Zone 1 – Zone_top_BC_1), за что автор приносит свои извинения.
Следующим шагом
загрузим полигон лицензии
(рис.1.15), указав тип файла
CPS-3 lines и тип линии –
контуры. Завершим этап
загрузкой структурной
сейсмической карты с именем
«seismic» и карту
сейсмического атрибута с
именем «seis_atribut», которые затем будем использовать в качестве трендов (формат карт
CPS-3 grid ASCII).
Создадим новую папку. Переименуем ее и перетащим две загруженные карты в
эту папку - рис.1.16.
1-7
2. Корреляция
2-1
2-2
Укажем для значков отбивок черный цвет, размер 40, а для подписей – размер 15
в 2D. В результате получим план расположения скважин, на котором черным цветом
видны места расположения скважин с уже имеющимися разбивками (рис.2.4).
2-3
Откроем первое окно корреляции (Well section 1) и включим одну за другой
скважины именно в этом порядке, чтобы потом не пришлось перетаскивать скважины,
задавая нужную последовательность.
Предварительно
для удобства поиска
отсортируем скважины
(рис.2.6) по номерам (по
имени).
На следующем
шаге в первой слева
скважине 16R включим
кривые ПС, ГК, БК и
НКТ (рис.2.7).
2-4
Теперь выставим для каротажей установки отображения. Будем поочередно
заходить в Settings для каждой кривой в скважине 16R в окне корреляции. Для кривой
ПС определим цвет «как свойство (as property)», ширину линии 3, а максимум и
минимум выставлять не будем, так как для кривой ПС в каждой скважине они могут
меняться очень значительно (рис.2.8). Для кривой ГК установим тот же цвет и ширину,
а максимум и минимум от 0 до 15. Для кривой БК – от 2 до 40, для кривой НКТ – от 1
до 10. В дальнейшем при необходимости для некоторых скважин для лучшей
визуализации мы будем в индивидуальном порядке менять диапазоны изменения
параметров.
2-5
2-6
Включим стратиграфические
отбивки, активизировав горизонт кровли
глины (выделив мышкой). Начнем
создание и редактирование отбивок
кровли глины (create/edit well tops),
проставляя отбивки в каждой скважине
слева направо (рис.2.11).
Проставлять отбивку кровли глины мы будем в основном по началу падения
показаний зондов нейтронного и бокового каротажа. Поскольку глины эти мягкие, то
при бурении они размываются буровым раствором, образуя каверну.
Кривая ПС практически не реагирует на каверну, показания гамма-каротажа
могут падать или оставаться прежними. А вот показания бокового каротажа (рис.2.12)
приближаются к показаниям для бурового раствора 1-3 Омм. Показания нейтронного
каротажа также приближаются к показаниям в баке с водой, составляя 1-1,5. Поскольку
каверна заполнена не водой, а раствором, и имеет ограниченные размеры, то показания
нейтронного каротажа должны несколько превышать единицу. Мощность каверны
составляет 4-5 м, ниже подошвы глины залегают песчаники пласта БС11.
2-7
После того, как отбивки кровли глины будут проставлены во всех скважинах
корреляционного набора, мы сделаем выравнивание скважин на этот горизонт, указав в
Настройках (Settings) корреляционной схемы «выравнивание на отбивки (flatten on well
top)» и забросив стрелочкой горизонт кровли глины (рис.2.12).
Теперь проставим
разбивки
стратиграфической
кровли пластов БС101,
БС102 и БС103. Будем
ориентироваться на
начало опесчанивания в
кровле каждого пласта. В
песчаниках показания ПС
и ГК уменьшаются влево,
показания БК и НКТ
увеличиваются вправо.
Для редактирования разбивок можно использовать отмену действия (Undo), удаление
или изменение глубины отбивки (рис.2.13).
В контейнере глобальных каротажей включим кривую кода коллектора, которая
визуализируется во всех скважинах. Пройдемся слева направо по схеме корреляции
(рис.2.14), проверяя, чтобы отбивки кровли пласта совпадали или были несколько выше
начала первого проницаемого пропластка по результатам интерпретации ГИС
(РИГИС). Для лучшей визуализации можно увеличить толщину линий в установках для
разбивок до 10.
2-8
Перейдя в двумерное окно расположения, скважин можно проконтролировать
наличие разбивок у всех скважин из данной корреляционной схемы (рис.2.15) –
напомним, что отбивки отображаются в виде черных кругов.
2-9
Это можно сделать либо используя операции экспорта/импорта, либо открыв
второй проект (Reference project tool) из меню операций с файлами и указав, что папку
разбивок будем копировать (галочка Copy mode) в наш проект (рис.2.17).
2-10
Проверив скважины на наличие разбивки, завершим этап предварительной
корреляции (возможные корректировки могут выявиться в процессе построения
модели). Не забудем отключить фильтр (Saved search), чтобы снова все скважины были
представлены на закладке Input.
2-11
3. Геометризация залежей
3-1
Иногда бывает так, что в некоторых скважинах
проставленные стратиграфические разбивки на какие-то
сантиметры залезают на каротаж другого пласта. И при
вычислении атрибутов песчанистости и эффективных
толщин в полностью заглинизированных скважинах
вычисляются ненулевые (но очень маленькие) значения
атрибутов. Чтобы избежать этого, встанем курсором на
атрибут песчанистости (ntg wells) и вызовем правой
кнопкой калькулятор для атрибутов разбивок. В
калькуляторе напишем (рис.3.2) условие: если значение
эффективной толщины в скважине меньше 0,2 м (один
каротажный отсчет), то значение атрибута равно 0, в
противном случае – самому себе. То же сделаем и с
атрибутом эффективных толщин (Kod_coll).
3-2
Рис.3.4.
Щелкнув два раза мышью, вызовем процесс создания карт (Make/edit surface) из
процессов Утилиты (Utilities). Укажем имя карты «ntg map zone 1» (рис.3.4). Закинем в
Main input первую зону и выберем атрибут ntg wells. В Boundary положим
сейсмическую карту и в закладке Геометрии (Geometry) выберем опцию получения
размеров выходной карты с данных Automatic (from input data/boundary), то есть – с
сейсмической карты. Выберем метод картопостроения Изохорная интерполяция
(Isochore interpolation). На закладке Post proc ограничим диапазон карты 0 и 0.8
(truncated, галочки в % отжаты). Кроме того, чтобы карта точно сидела на значениях,
укажем в Well adjustment Глобальную подгонку с радиусом влияния точек 300 м. Сами
точки песчанистости закинем стрелочкой в Input.
3-3
Начнем создавать полигоны зон глинизации (замещения). Активизируем в
Утилитах процесс Создание/редактирование полигонов, стартуем создание нового
полигона (рис.3.6) и начнем ставить точки вокруг скважин с нулевыми значениями
песчанистости. Последнюю точку ставим рядом с первой и два раза кликаем мышкой:
при этом возникнет окно с вопросом «замыкать ли полигон?», говорим «да». Если
вопрос не возник, то замкнуть полигон нужно используя операцию закрытия в правом
меню или на закладке Операций (Operations) в Настройках для полигона. Можно
сгладить полигон с увеличением числа точек. Границы полигонов можно провести
посередине между скважинами, можно более геологично – с учетом поведения
изолиний.
Переименуем первый полигон в glina zona 1 и добавим в него другие полигоны,
получив единый полигон (Append polygons). Для этого единого полигона сделаем
красный цвет в Info, толщину линии 4, тип раскраски цветом – Specified (рис.3.7).
Зайдем в статистику (Statistics) для полигона и убедимся, что число полигонов, из
которых он состоит, равно числу замкнутых полигонов. Если это не так, то надо еще
раз замкнуть единый полигон.
3-4
Рис.3.7.
3-5
Аналогично тому, как мы это делали для стратиграфических разбивок (рис.2.17),
откроем тестовый проект на диске как вторичный (Reference project tool) и скопируем в
наш проект полигон глинизации для первой зоны (галочка в copy mode включена).
Отредактируем точки полигона так, чтобы он был близок к полигону с диска,
используя опцию Select and Edit/Add points из правого меню внизу.
В настройках полигона на закладке Calculations присвоим ему значение 0
(рис.3.7). Теперь мы будем использовать этот полигон для перестроения карты
песчанистости с учетом линии глинизации.
Запустим
процесс создания карт
Рис.3.8.
(Make/edit surface) и
добавим созданный
единый полигон на
закладку для
дополнительных
исходных данных
(Additional inputs),
таким образом, при
построении карты
будут учитываться
как исходные точки
со значениями
песчанистости, так и
линии глинизации (рис.3.8 слева вверху). На закладке Well Adjustment изменим радиус
влияния точек на 100 метров, так как линии глинизации местами проходят достаточно
близко к скважинам, а при таком радиусе процесс «подсадки» на точки не затронет
нулевые значения, полученные из полигона.
Другим подходом к построению карт на основе нескольких разнородных типов
данных является конвертирование всех данных в точки (правой кнопкой мыши, Convert
to points) и объединение точек в один объект (Настройки точек, закладка Operations,
операция Append poins в папке Common operations). Это позволяет использовать один и
тот же объект (точки) в качестве исходных данных и точек для «подсадки» в Well
Adjustment (на рисунке именно так).
3-6
Отредактируем наиболее яркое место интерполяционного эффекта (рис.3.8)
картопостроения. Здесь значения песчанистости достигли 0.7, хотя по ближайшей
скважине значения 0.6. В правом меню при включенном процессе Make/Edit surface
активизируем метод Присвоение значения (Assign…) и зададим значение Z=0.6, радиус
влияния 10 (слева внизу). Кликая курсором в коричневую область, присвоим там
значения 0.6. Рассмотрим дополнительную возможность присвоения карте значения 0
внутри полигона. Для этого, щелкнем по карте правой кнопкой мыши, зайдем в
калькулятор (Calculator) для карт и присвоим в строке операций карте значение 0
(рис.3.9). Enter пока не нажимаем. Подведя курсор к кнопке использования фильтра
(Use filter) получим выпавшую синюю гиперссылку. Нажав на нее курсором, перейдем
в настройки фильтра для поверхностей. В фильтре закинем полигон глинизации и
нажмем OK. Обратим внимание, что обнуление должно быть внутри (Apply inside)
полигона. В калькуляторе нажмем на фильтр (он подкрасится коричневым) и только
после этого – на Enter. Карта закончена.
3-7
быть жирным. Для выходной карты нужно задать новое имя, удалив (delete) объект из
поля Result surface и ответив на появившийся вопрос – «нет».
Для третьего пласта ситуация осложняется наличием внутри южной зоны
отсутствия коллекторов маленькой залежи из одной скважины, в которой есть
коллектора (рис.3.10). Здесь мы должны сделать два замкнутых полигона, окружив
области наличия коллекторов, слить их в один, а в процессе обнуления карты в
фильтре, выбрать опцию Apply outside, чтобы обнуление шло не внутри, а снаружи.
3-8
Рис.3.11.
3-9
3-10
построить структурные карты. Вначале посмотрим, насколько сейсмическая
поверхность по кровле первого пласта согласуется с отбивками по скважинам.
Создадим атрибут значений сейсмической поверхности в скважинах. Для этого
создадим новый атрибут (рис.3.14) и в Операциях (Operations) укажем создание из
поверхности (Sample from: Surface), закинем сейсмическую поверхность. Откроем
Функциональное (Function) окно, в котором для первого пласта включим атрибуты
отметок по скважинам Z (X) и по сейсмической поверхности seismic (Y). Видим, что
сейсмическая поверхность в целом хорошо согласуется с отбивками на скважинах, но
некоторые точки вылетают. Чтобы узнать, какие это скважины, скопируем
сейсмическую поверхность (Copy-Paste) и перестроим ее в Make/edit surface (метод -
Surface resampling), сажая на отбивки, включив галочку для создания отчета (рис.3.15).
3-11
В отчете мы видим, что наибольший отскок имеют скважины 7Р и 44. В этих краевых
скважинах неверная инклинометрия, поэтому мы их не будем использовать в
структурных построениях. Щелкнув правой кнопкой мыши по разбивкам, откроем
таблицу (Spreadsheet) для разбивок и, щелкнув два раза по заголовку столбца с именами
скважин, отсортируем их по возрастанию. Найдя скважины 7Р и 44, отключим для них
во всех пластах галочки для использования в модели (Used by geo mod) и
преобразованиях время/глубина (Used by dep.conv.) (рис.3.16). Нажмем Apply.
3-12
Карту кровли второго пласта получим, вычтя из копии карты первого пласта
карту изохор первого пласта в калькуляторе для самой карты (рис.3.18). Карту кровли
третьего пласта получим, вычтя из копии карты второго пласта карту изохор второго
пласта в калькуляторе для карт. Для разнообразия подошву третьего пласта (кровлю
глины) сделаем в общем калькуляторе для карт. Следующим важным шагом является
процедура посадки всех полученных карт на соответствующие стратиграфические
разбивки. Поскольку скважины невертикальны, то точки изохор присваиваются не к
подошве пласта, а к середине между кровлей и подошвой. Поэтому при прибавлении к
кровле изохоры мы не можем получить подошву в точности и приходится
«подсаживать» поверхности на точки. При «подсаживании» на точки (Surface
resampling) видим, что по всем скважинам маленькое расхождение, кроме скважины
115, где расхождения в отчете нет вообще. Это произошло потому, что в скважине 115
нет каротажа вверху и, соответственно, нет отбивки кровли первого пласта. В
3-13
результате при натягивании вначале сейсмической поверхности на скважины в этом
месте коррекции сейсмической поверхности на отбивку первого пласта не было.
3-14
поверхности каркаса и складываем их в отдельную папку. Возможные корректировки
последуют в процессе анализа контактов.
Создадим атрибут, характеризующий в скважинах для каждого пласта долю
нефтеносных коллекторов в общей эффективной мощности (рис.3.20). Вначале
сделаем атрибут суммарных нефтенасыщенных толщин, для этого выберем при
создании атрибута из каротажа «код флюида» код 1 (нефть), метод – суммирование
мощности для дискретных переменных (thickness), масштаб глубин – абсолютные
отметки (SSTVD). Назовем его Kod_fluid oil. Аналогично сделаем второй атрибут для
водоносных коллекторов, указав код насыщения 2 - Kod_fluid water. Атрибут доли
dolo_oil сделаем в калькуляторе как
dolo_oil=Kod_fluid_oil/(Kod_fluid_oil+Kod_fluid_water). Обратим внимание на наличие
подчеркиваний – без них программа ругается на наличие синтаксических ошибок.
3-15
В двумерном окне включим поверхность кровли первого пласта, полигон зоны
глинизации (красным) и атрибут dolo_oil (рис.3.21). Мы видим, что для чисто нефтяных
скважин атрибут равен единице, для водоносных – нулю, для водонефтяных – от 0 до 1.
Точки без значений находятся в зонах глинизации или там неопределенные значения
кода характера насыщения. Открыв в Настройках (Settings) для каротажа кода
характера насыщения (Kod_fluid) закладку гистограммы (Histogram), мы видим, что
таких значений (код 12) немного.
Пока будем анализировать северную залежь для первого пласта. Нефтяные
скважины этого поднятия оконтуриваются замкнутой изогипсой на уровне примерно –
2260 м. Поэтому создадим по карте примерно по этой изогипсе замкнутый полигон.
Скопируем поверхность кровли, назовем ее «vnk sever 1» и присвоим значение – 2260
м. Отсечем (Eliminate outside) поверхность вне созданного замкнутого полигона в
Операциях (Operations). При необходимости немного расширим (Expand) или сожмем
(Shrink) поверхность, чтобы размер был примерно как на рис.3.21.
Перейдем ко второму пласту. Включив атрибут доли (рис.3.22) dolo_oil мы
видим, в скважине 1Р имеется аномально значение 1 среди водоносных скважин с
нулями. Будем считать, что мы сходили к каротажникам и они изменили характер
насыщения по скважине 1Р во втором и третьем пласте с нефти на воду. Далее мы
изменим каротаж в этой скважине, а пока исправим значения атрибута. Зайдем в
3-16
таблицу зон (View zone spreadsheet) для отбивок и в столбце для dolo_oil в скважине 1Р
поставим нули для второго и третьего пластов. Не забудем нажать OK.
3-17
Поскольку для третьего пласта очевидно наличие двух залежей на севере,
разделенных прогибом (рис.3.24), то мы сделаем две поверхности ВНК. Одну – как делали
раньше через копирование, обрезание и присвоение значения – 2280 м (vnk sever 3).
Другую, в районе скважины 8Р, для разнообразия сделаем немного по-другому -
через процесс картопостроения.
Нарисуем замкнутый полигон,
закинем его в Границу, снимем с
него геометрию Automatic (from
input data/boundary) (рис.3.24).
Выберем Artificial алгоритм с
постоянным значением – 2275
м и получим карту vnk sever
vostok 3.
3-18
Создадим две плоские карты ВНК для центральной залежи вокруг скважины 2Р:
«vnk center 1» со значением Z=-2255 м для первого пласта и «vnk center 3» со
значением Z=-2275 м для третьего пласта (по второму пасту в скважине вода). В
заключение создадим карту ВНК для южной залежи первого пласта (рис.3.25 -
коричневая) «vnk yug 1» со значением Z=-2246 м. Для общего обзора визуализируем
все поверхности в трехмерном окне (рис.3.25) и сложим в созданную папку VNK.
3-19
Скопируем папку с поверхностями ВНК, добавим к именам поверхностей red
(для редакции) и включим на профиле (рис.3.27) поверхности для северной и северо-
восточной залежей. При необходимости увеличим толщину линий в настройках
отображения (Settings, закладка Style). Сам профиль выставим на абсолютную глубину
(наберем -2000, это не принципиально). Обратим внимание, что в Настройках (Settings)
для профиля тип абсолютных глубин – SSTVD. Установим фиксированный масштаб
1:250. Включим каротажи кода флюида - исходный и для работы (work), а также
каротаж Комментариев для определения интервалов и результатов испытаний.
В процессе работы мы будем править рабочий каротаж кода флюида. Его
колонка не содержит тонких вертикальных линий, как у исходного каротажа.
Проанализировав профиль мы видим, что нижняя нефть по первому пласту на
северной залежи имеется в скважин 119. Учитывая, что при испытаниях было получено
немного воды, примем контакт по подошве нефти в этой скважине. В скважине 23Р
была получена нефть с водой, но данные контроля за притоком показали, что это вода с
заколонного перетока. Поэтому мы принимаем в этой скважине по первому пласту
насыщение нефть и заливаем неопределенный интервал нефтью (используя значок
«ведро»).
Чтобы совершенно точно узнать абсолютную отметку подошвы нефти в
скважине 119 сделаем следующее. Создадим в калькуляторе глобальный каротаж с
3-20
именем ABS, равный абсолютной отметке по стволу скважины. Для этого приравняем
ABS к Z – геометрической переменной, вызываемой кнопочкой Geometry. Откроем
скважину 119 и включим в ней измеренную глубину MD (рис.3.28). Подведем курсор к
подошве нефти и увидим, что глубина примерно 2508,2 м. Встанем на каротаж
насыщения в скважине на закладке Input, откроем через правую кнопку мыши таблицу
(Spreadsheet) и увидим, что в самом деле нулевые отсчеты после единицы начинаются с
глубины 2508,2 м.
3-21
Следующим шагом проверим замыкание залежей. Зайдем в Операции
(Operations) в Настройках (Settings) для карты ВНК первого пласта и сделаем
Пересечение с картой кровли (Create intersection with surface), забросив карту кровли в
строку со стрелкой. В двумерном окне визуализируем разбивки с номерами скважин,
структурную карту кровли,
поверхность ВНК, полигон
глинизации и
получившийся полигон
пересечения (рис.3.30).
Видим, что полигон
внешнего контура
замыкается и упирается в
зону глинизации. Строго
говоря, это не совсем точно
внешний контур,
поскольку мы сделали
пересечение со
стратиграфической
поверхностью, а не с
3-22
кровлей коллектора. Но поскольку первый коллектор почти везде рядом с кровлей, это
не существенно.
Аналогично сделаем и для второго и третьего пластов (рис.3.30). Для второго
пласта с принятой поверхностью ВНК мы имеем южную часть северной залежи (в
районе 26Р), не охарактеризованную скважинами. Можно было бы убрать эту часть,
удалив нижнюю половину поверхности ВНК. Мы же пока не будем этого делать,
считая, что это у нас перспективы для бурения.
Создадим другой профиль с единственной скважиной 2Р - Profil center.
Присвоим поверхностям ВНК по первому и третьему пласту значения -2252 и -2271 м,
чуть пониже подошвы нефти (рис.3.31). Создадим полигоны пересечения поверхностей
ВНК с кровлей пласта (внешние контуры) и проверим замыкания структур (рис.3.31).
Зайдем в Настройки для скважин, в закладку Отчет (Report) и закинем туда все
наши поверхности ВНК, кроме южной залежи (рис.3.31). Укажем, чтобы результаты
попали в папку Others стратиграфических разбивок и запустим процесс, создав отбивки
ВНК в скважинах как пересечение траекторий скважин с поверхностями ВНК.
3-23
стратиграфические разбивки (рис.3.32), рабочий каротаж флюида, комментарии по
испытаниям скважин, поверхность ВНК. Обратите вниманите, что в верхнем окошке
профиля должны стоять абсолютные отметки (SSTVD). Выровняем профиль на
абсолютную отметку и выставим постоянное расстояние между скважинами 5 мм,
чтобы профиль был более сжатым. Для этого также трэки Комментариев в тех
скважинах, где они есть, переместим курсором в трэки каротажа флюида рабочего
(см.рис3.32 слева внизу). Аналогично сделаем и профили со второго по пятый. В пятом
профиле удалим скважины 44 и 17Р. Видим, что поверхность ВНК с рядом скважин в
профилях не согласуется.
3-24
Начнем проставлять стратиграфические отбивки ВНК с именем «vnk yug 1 red».
Сначала во всех скважинах вручную (можно через Spreadsheet для отбивок) проставим
на отметке – 2246 м. Затем, с учетом консультаций у каротажников и результатов
испытаний (нефть с водой) в скважине 22Р передвинем отбивку на отметку -2245 м, а в
скважине 4Р – на отметку – 2247 м (рис.3.34). Зальем кисточкой на каротаже
Kod_fluid_work в этих скважинах коллектора первого пласта с неопределенным
характером насыщения выше ВНК – на нефть, ниже ВНК – на воду.
В папке разбивок сделаем активным атрибут Z (сделаем жирным) и
конвертируем этот активный атрибут для проставленных отбивок ВНК в точки (нажать
правой кнопкой мыши на отбивки ВНК и выбрать Convert active attribute to points). Для
того, чтобы выяснить, каков у нас наклон поверхности ВНК и в какую сторону,
построим по этим точкам аппроксимирующую плоскую поверхность (рис.3.35).
3-25
3-26
Используем метод Функциональной интерполяции, подгонку к плоской поверхности, с
равным весом точек. Анализируя полученную поверхность видим, что наклон
небольшой, допустимый для залежей данного региона. «Подсадим» плоскую
поверхность на точки (Surface resampling) и проверим замыкание структуры – создав
полигон пересечения поверхности с кровлей пласта. Теперь именно эту поверхность
назовем «vnk yug 1 red», а старую с этим именем удалим. При необходимости
расширим (Extend) поверхность.
Включим пятый профиль (рис.3.36) и поверхность ВНК. Обратим внимание, что
в скважина 53 коллектор с насыщением «вода» находится выше ВНК. Поскольку эта
скважина с большим удлинением, введем поправку в инклинометрию скважины,
изменив ее альтитуду в Настройках для скважины с 78 м на 74 м. При этом скважина
передвинется вниз и водоносный коллектор будет ниже ВНК. В скважинах 60, 47 и 42
коллекторам с неопределенным характером насыщения с помощью инструмента
«ведро» присвоим насыщение «нефть». Передвинем разбивки ВНК в скважинах на
месте пересечения поверхности, которая отображается пунктиром, с траекториями
скважин.
3-27
Аналогично поступим с четвертым профилем. Здесь добавим 3 м в альтитуду
скважины 45 (с 80 на 83), чтобы подошва нефти была выше ВНК. В скважине 36
высокая нефть не противоречит ВНК, но, как мы помним, она сильно
рассогласовывалась с сейсмической картой, да и углы наклона структуры в ее
окрестности аномально большие. Поэтому в ней тоже введем поправку в
инклинометрию 20 м (с 77 на 57). Проставим разбивки ВНК в скважинах в месте
пересечения поверхности с траекториями скважин.
Перейдем к третьему профилю. В скважине 99 зальем воду ниже ВНК, а в
скважинах 86 и 87 – нефть выше ВНК. Проставим разбивки ВНК в скважинах в месте
пересечения поверхности с траекториями скважин. Только в скважинах 32 и 59
поставим их чуть пониже подошвы нефти (рис.3.37).
Перейдем ко второму профилю. В аномально низкой скважине 55 введем
поправку в инклинометрию 20 м (с 78 на 98). В 18 – 4 м (с 78 на 82). В 16 – 9 м (с 78 на
69). Проставим разбивки ВНК в скважинах в месте пересечения поверхности с
траекториями скважин. Только в скважинах 31 и 16 поставим их чуть повыше кровли
воды (рис.3.37). В первом профиле ничего трогать не будем, проставим разбивки, в
скважине 15 – чуть выше кровли воды (рис.3.37).
3-28
Конвертируем отбивки ВНК этого пласта в точки, «подсадим» на них
поверхность (рис.3.38). Отредактируем краевые эффекты прямо в трехмерном окне и
окончательно «подсадим» на точки, но уже с малым радиусом. Для контроля
проделанной работы будем визуализировать каротаж насыщения по скважинам и
поверхность ВНК в трехмерном окне.
Но перед этим, поскольку мы вводили поправки в инклинометрию и разбивки
сдвинулись, обязательно «подсадим» все наши четыре поверхности структурного
каркаса на соответствующие отбивки (поверхность Str top bc10 1 – на top_BC10_1 и
т.д.). В скважинах, которые мы двигали, в отчете отмечается расхождение (diff. before)
перед корректировкой поверхности на отбивки. Можно также еще раз проверить
замыкание структуры.
3-29
Щелкнем правой кнопкой мыши по папке стратиграфических разбивок Well tops
и через контекстное меню создадим Зональный каротаж (Zone log) (рис.3.39). При
создании этого каротажа первая зона получает индекс 0, вторая – 1, третья – 2.
Используем этот каротаж для создания в калькуляторе каротажа характера насыщения
для визуализации в трехмерном окне. Мы хотим, чтобы этот каротаж существовал
только для первой зоны и только для коллекторов. Для этого в калькуляторе
Глобальных каротажей создадим каротаж Kod_fluid_viz=Kod_fluid_work с шаблоном
Fluids и напишем для него условие Kod_fluid_viz=If( Zone_log_linked_to_Well_tops=0
And Kod_coll=1, Kod_fluid_viz, U).
3-30
4. Построение каркаса и ВНК
При активном процессе Pillar gridding вызываем через правую кнопку мыши,
встав на полигон модели, опцию конвертации полигона в границу модели. Эта граница
(Boundary) появится в модели разломов (Fault model).
Отметим, что эта опция возникает только при активном процессе Pillar gridding,
если просто встать на полигон, то нажав правую кнопку мыши мы ее не увидим.
Теперь нажимаем Apply и потом обязательно OK, соглашаемся при вопросе о
создании сетки (Sceleton), и сетка создается. Зайдя на закладку Статистики (Statistics) в
Настройках (Settings) грида, можно посмотреть число созданных двумерных ячеек.
Приступим к созданию горизонтов каркаса. Активизируем процесс Создания
горизонтов (рис.4.2) и закинем туда в качестве исходных данных наши четыре
4-1
структурные поверхности по пластам (в столбец Input #1) и стратиграфические
разбивки (в столбец Well tops). Горизонты создадутся с именами стратиграфических
разбивок.
4-2
I или J сечение. Щелкая курсором по стрелочкам в правом меню, прогоним взад и
вперед сечения куба индекса зоны, анализируя куб на предмет наличия неестественных
увеличений или уменьшений мощности пластов. Если таковые имеют место, значит
что-то неправильно было сделано при построении каркаса.
Следует помнить, что правое меню с кнопочками сечений и фильтром
присутствует, если активен какой-либо из процессов моделирования свойств – при
редактировании, например, поверхностей правое меню будет другим.
Включим фильтр для свойств, кликнув воронку из правого меню или вызвав его
из Настроек (Settings) для папки Свойств (Properties) в 3D-гриде. Включим фильтр для
второй зоны (рис.4.3). В Petrel параметры, по которым в текущий момент установлен
фильтр, подкрашиваются пурпурным цветом. Посмотрим гистограмму высоты ячеек
для второй зоны. Для этого зайдем в Настройки (Settings) куба высоты ячеек и на
закладке Гистограммы (Histogram) нажмем кнопку фильтра, она подкрасится
коричневым. Убедимся, что величины толщин ячеек достаточно малы, нет аномально
больших значений.
Займемся созданием контактов. В первую очередь они нам будут нужны для
вычисления параметра удаленности ячейки от ВНК. Встанем на какой-нибудь из
горизонтов модели и через правую кнопку мыши конвертируем его в структурную
поверхность (рис.4.4).
4-3
После этого присвоим
этой поверхности значение -
1000 м, то есть заведомо выше
поверхностей ВНК, и назовем
ее vnk1calk.
Будем создавать из этой
поверхности поверхность ВНК
для первого пласта.
В Операциях для
поверхности выберем метод
Объединение поверхностей А
и Б, сохраняя Б (рис.4.4). В
качестве второй поверхности
выберем поверхность ВНК для
северной залежи первого
пласта, закинем ее и
объединим поверхности в одну. Далее сделаем эту процедуру еще два раза – с
поверхностями ВНК для первого пласта для центральной и южной залежей.
Для второго пласта сделаем все аналогично и получим поверхность vnk2_calk –
объединенную поверхность -1000 с поверхностью ВНК для северной залежи второго
пласта. Для третьего пласта поверхность vnk3_calk также получим из плоской
поверхности -1000 и двух поверхностей ВНК для северной и центральной залежей,
северо-восточную залежь моделировать не будем. Созданные поверхности сложим в
папку.
Активизируем (рис.4.5) процесс Создания контактов (Make contacts). Удалим,
если надо, кнопкой с красным крестом газовый контакт. Укажем галочкой, что создаем
для всех сегментов. Для каждой зоны закинем свою поверхность ВНК. Созданный
набор контактов (Set) появится в папке флюидных контактов в модели (внизу).
4-4
Зайдем в Операции для этого Contact set и создадим (Make property) дискретное
свойство Контакты (выше-ниже поверхностей контактов). При этом нужно следить, что
программа предлагает создать над контактом и что – под ним, в случае необходимости
исправить нефть на воду.
Прицепим его к шаблону General discrete с коричневым цветом выше ВНК и
синим – ниже ВНК. Активизировав процесс Геометрического моделирования
(Geometrical modeling), создадим куб удаленности ячеек от ВНК (Above contact),
закинув Oil water contact из папки Флюидных контактов в окно процесса. Сохраним
проект.
Визуализируем куб удаленности ячеек от ВНК Oil water contact и, включая
поочередно фильтр по зонам и щелкая мышкой по ячейкам, убедимся, что
положительные значения куба присутствуют только в структурах над поверхностями
ВНК, а остальные значения куба равны 0.
В папке Properties нашего 3D-грида создадим подпапку Dop cubes и перетащим
мышкой в нее все свойства, которые мы создали в процессе Геометрического
моделирования (Geometrical modeling).
4-5
5. Осреднение скважинных данных на сетку
Рис.5.1.
logs) для этих двух каротажей и получим в модели два новых куба Kod_coll[U] и
Litho_cont[U]. Наличие расширения U в названии указывает на наличие в кубе
осредненных из скважинных данных ячеек. При мелких ячейках выбор метода
осреднения практического значения не имеет.
Непрерывную литологию прицепим к шаблону Fraction и раскрасим от зеленого
до желтого.
Создадим в Properties папочку ScUp и переместим дискретный и непрерывный
кубы литологии по скважинам в эту папку.
5-1
Включим какую-нибудь схему корреляции, установим вертикальный масштаб
покрупнее (100 или 200) и включим кубы литологии (рис.5.2). Пересечения кубов с
траекториями скважин визуализируются в корреляционном окне. В правом меню
включим визуализацию ячеек сетки и прокрутим схему корреляции, сравнивая каротаж
Рис.5.2.
Рис.5.3.
5-2
Перейдем к осреднению пористости и насыщенности. Зайдем в Настройки
(Settings) скважин и перейдем в закладку Создание каротажей (Make logs), а в ней –
создание из зон (рис.5.3). Создадим каротаж зон Zonelog for 'Test model/3D grid'. К
сожалению, мы не могли воспользоваться сделанным ранее каротажем зон из
стратиграфических разбивок Zone log linked to 'Well_tops', поскольку он не создался
там, где некоторые разбивки отсутствовали, например в скважине 115 для верхнего
пласта. А каротаж зон Zonelog for 'Test model/3D grid' создался и там.
Сделаем рабочий каротаж пористости Poro=Kpor. Затем сделаем его
неопределенным вне наших продуктивных пластов и в неколлекторах Poro=If(
Zonelog_for_Test_model_3D_grid=U Or Kod_coll=0, U, Poro). Задание неопределенных
значений в неколлекторах страхует от занижения значений пористости в ячейках-
коллекторах, часть которых заезжает на каротаж неколлектора. Наконец, сделав
условие Poro=If( Poro<0.11 Or Poro>0.27, U, Poro), уберем ошибочные значения ниже и
выше граничных для коллекторов. Естественно, при этом перестроится гистограмма.
Рис.5.4.
5-3
Аналогично создадим рабочий каротаж насыщенности Sat=Soil, оставим
значения только в продуктивных интервалах скважин в пределах модели
Sat=If(Kod_fluid_work=1, Sat, U) и обрежем по граничным значениям для
нефтенасыщенных (рис.5.4) коллекторов Sat=If( Sat<0.3 Or Sat>0.8, U, Sat).
Следующим шагом запустим процесс осреднения скважинных данных на сетку
(scale up) для каротажей Poro и Sat (рис.5.5).
Рис.5.5.
5-4
6. Построение куба литологии
6-1
зону. Это можно сделать аналогично как для второй зоны, но мы сделаем это несколько
по-другому.
Вначале скопируем карту песчанистости для третьей зоны, переименуем ее в
glina map zone 3, прицепим к дискретному темплейту General integer, присвоим ей
значения 0 (обнулим) в калькуляторе.
Внутри полигона зон глинизации для третьей зоны присвоим этой карте
значения 1, используя фильтр, как мы это делали ранее. Помним, что выставляем
фильтр внутри (Apply inside) полигона. Имеем дискретную (0 и 1) карту зон
глинизации.
Вызовем процесс Фациального моделирования (Facies modeling) и выберем куб
зон глинизации (рис.6.1). Первую и вторую зону не трогаем, выбираем третью зону и
отжимаем замочек слева. Выбираем метод Присваивания значений (Assign values) и
закидываем карту glina map zone 3. Процесс создает по карте значения в кубе для
третьей зоны.
Визуализируем куб зон глинизации, включив фильтр по глинам. Включая
поочередно фильтр по зонам, убедимся, что все сделано корректно.
Заметим, что для непрерывного куба это можно было бы сделать проще, зайдя в
Операции для куба и выбрав там присвоение значения по карте с учетом зоны и
фильтра.
6-2
Перед началом моделирования литологии для первой зоны проанализируем
вертикальную степень изменчивости свойств. Откроем процесс Анализа данных (Data
analysis) и вверху выберем дискретное свойство литологии по скважинам для первой
зоны (рис.6.2). Процесс Анализа данных для достаточно большой модели (26 млн.
ячеек) требует существенных ресурсов оперативной памяти, поэтому на «слабых»
компьютерах может помочь отключение всех окон или даже их удаление (главное –
потом перезагрузить проект без сохранения). Укажем код фации песчаник (Sand),
перейдем в закладку Вариограмм (Variograms), выберем вертикальную, выставим
радиус поиска (Search radius) 5 метров.
Хватая за синие квадратики, подгоним вариограмму к точкам. Вертикальный
радиус (range) будет при этом около 4-4,5 метров. Следует помнить, что радиус
вариограммы – это величина, больше которой всякая взаимосвязь между точками
теряется. Достаточно сильная же корреляция свойств наблюдается на величине около
1/3 радиуса, то есть около 1,5 метров.
Откроем закладку толщин (Thickness), оставим только песчаники и зададим
величину бина полметра, нажмем Apply. Получим гистограмму распределения толщин
пропластков, среднее около 2 метров. Запомним это число.
Горизонтальные вариограммы строить не будем, обычно они плохо получаются
из-за нехватки данных, скважины ведь вертикальные. Исходить будем из следующего.
Измерим линейкой из правого меню (рис.6.2) расстояние от краевых скважин до
границы модели – будет около 6 км. Чтобы модель получилась достаточно гладкой
оценим горизонтальный радиус вдвое больше, то есть 12 км. Сделаем копию куба
непрерывной литологии по скважинам и запустим процесс Петрофизического
моделирования (рис.6.3). Выберем наш куб и первую зону, отожмем замочек слева,
выберем метод моделирования – кригинг (Kriging). Установим горизонтальные
радиусы 12 км. По поводу же ранга вертикальной вариограммы существует правило:
корректное моделирование свойств возможно в модели, средняя мощность слоя
которой меньше половины ранга вертикальной вариограммы. В данном случае средняя
толщина ячейки в модели 0,2-0,3 м, а ранг 4 м – следовательно связность при
моделировании свойств по вертикали с таким рангом сохраниться.
Диапазон выходных параметров поставим от 0 до 1, в качестве вторичной
переменной используем карту песчанистости для первого пласта, запустим процесс.
Хотя для реальных задач корреляция 0,3 между картой и моделируемым свойством
достаточно мала – в качестве примера мы все-таки ей воспользуемся.
6-3
Если у Вас устаревший или «слабый» компьютер и расчет идет очень медленно,
то можно остановить процесс моделирования и попробовать уменьшить ранги
вариограмм. Такие действия, конечно, могут привести к некорректному с точки зрения
геостатистики моделированию свойств, но в целях получения результата для перехода
к следующим упражнениям мы можем пойти на это.
6-4
песчанистости. Поэтому в образовательных целях на нашем примере воспользуемся
процессом Petrophysical modeling.
Сделаем для сравнения расчет куба литологии методом простой (рис.6.4)
интерполяции (Functional). Интерполировать будем по слоям, горизонтальная
интерполяция применяется только изредка при расчете нефтенасыщенности
параллельно ВНК. Зададим настройки как показано на рисунке, в качестве тренда
используем ту же карту песчанистости для первой зоны, масштабировать не будем
(галочка Scale отжата), поскольку карта у нас в том же диапазоне, что и данные.
Масштабирование будем использовать потом при использовании трендовой
сейсмической карты, где значения меняются совсем в другом диапазоне.
Рис.6.4.
6-5
коллекторов вне зоны глинизации, например, в этом примере – в районе скважины 29R.
Создадим вокруг этой области полигон для правки. Включим J сечение через этот
район и, кликнув курсором в нужную ячейку, увидим внизу номер слоя – четвертый (у
Вас может быть и другой). Можно также прогнать К сечения (слои) куба, чтобы
сообразить, какой слой править.
6-6
6-7
Сопоставим карты в окне функций (Function vindow). Напомним, что по
умолчанию в Установках стоит 1000 точек. А когда мы делаем кросс-плот карта-карта
или куб-куб, число точек существенно больше.
Поэтому в окне функций надо зайти в правое функциональную панель, открыть
Настройки (Show viewport settings) и там увеличить число точек, добавив несколько
нулей. Иногда, чтобы кросс-плот карта-карта создался, надо закинуть карты в одну
папку.
Сравним объемы коллекторов по картам. Для этого в картах в Операциях в
Калькуляторе сделаем расчет объемов, не забыв закинуть для двумерной карты
полигон модели, так как она больше по площади. В окошке сообщений (message)
видим, что объемы коллекторов практически одинаковы. Оценим связность
коллекторов (рис.6.8) путем создания в процессе Геометрическое моделирование куба
связанных объемов (Connected volumes) для фации песчаников по кубу дискретной
литологии по Кригингу. Визуальный анализ и статистика (число связанных объемов
менее сотни) показывает высокую связность коллекторов в объеме резервуара, причем
основная масса (более 90%) коллекторов находится в одном объеме (теле). Перенесем
созданное и отредактированное свойство в Kod_coll[U], с которым будем продолжать
работать дальше: ScUp\Kod_coll = If(ScUp\Kod_coll<>U, ScUp\Kod_coll, Lito_krig1).
Сохраним проект и перейдем ко второму пласту.
Откроем в процессе Анализ данных закладку Пропорция для куба литологии
Kod_coll[U] (рис.6.9). Выберем вторую зону для нашего куба. Подгоним кривую
изменения песчанистости по слоям в правом окне, нажав кнопочку Fit… Таким образом
6-8
мы создали Vertical Proportional Curve (VPC), то есть геолого-статистический разрез
(ГСР). Нажмем Apply.
Вызовем процесс Фациального моделирования (Facies modeling), для первой
зоны включим замочек (ее мы не будем моделировать), а для второй зоны выберем
метод последовательного индикаторного моделирования SIS (см.рис.6.9). Закинем
вправо моделируемые фации «песчаник» и «глина». Выставим горизонтальные
радиусы в 20 км, а вертикальный – 2 м. Нажмем кнопочку Использования VPC,
созданной в анализе данных, она чуть подкраситься коричневым.
6-9
коллекторов, число которых получается очень большое: много изолированных ячеек
коллектора (можно поставить и использовать фильтр по второй зоне).
6-10
Рис.6.11.
6-11
ScUp\Kod_koll=If(Dop_cubes\Zones_hierarchy=2,If(Work_cubes\Arithmetic_mean_seis_z3
<0.5,0, 1), ScUp\Kod_koll)
Теперь нам надо сгладить результат, не исказив значений на скважинах.
Сгладим куб Kod_koll[U] по горизонтали для третьей зоны (рис.6.12).
6-12
Но поскольку проект у нас тестовый, оставим такой вариант. Теперь
переименуем окончательный куб литологии в Lito_fin и переместим его в папку
Fin_cubes для использования в следующих упражнениях. А чтобы у нас всегда был под
рукой осредненный в ячейки каротаж литологии, запустим еще раз Scale up well logs
для каротажа Kod_koll и результат поместим в папку ScUp.
6-13
7. Построение куба пористости
для визуализации сеток (grid) для осей X и Y. Нажмем справа Создание линейной
функции (Make linear function from crossplot) и получим на графике прямую, которая
сохранится на закладке Input (Poro_vs_Kod_coll). Будем ее редактировать либо через
редактирование точек в правом меню, либо зайдя в Настройки (Settings) для самой
зависимости и там перейдя в закладку Функция (Function). Нарисуем зависимость так,
чтобы первая точка у нее была с координатами 0 по толщине и 0.11 (граничное) по
пористости. А в области больших толщин чтобы зависимость выполаживалась на
максимальные значения 0.25-0.27.
7-1
Теперь построим в калькуляторе для карт трендовую карту пористости для
первой зоны через карту эффективных толщин и зависимость:
poro_map_trend_from_coll_z1=Poro_vs_Kod_coll(heff1). Функция Poro_vs_Kod_coll
закидывается в калькулятор голубой стрелкой, а в скобках добавляется нужное
свойство.
Займемся картопостроением для первой зоны. Конвертируем атрибут Poro для
первой зоны в точки, удалим (Eliminate) их внутри полигона глинизации.
Конвертируем полигон зоны глинизации в точки, присвоим им значение 0.11, добавим
в точки из атрибута. Построим по совместным точкам карту poro_map_wells_z1,
используя (рис.7.2) изохорный алгоритм, а в качестве тренда карту
poro_map_trend_from_coll_z1.
7-2
Аналогично построим карту для второго пласта, элиминируем внутри полигона
глинизации. Глядя на карту (рис.7.3 слева) можно предположить, что песчаники
сформированы руслом, по фарватеру которого должна быть высокая пористость. Чтобы
7-3
выберем в правом меню Присвоение (assign) значений, слева внизу установим Z=0.2,
ширину колокольчика около 20 и отредактируем карту.
Проверим статистику и, если необходимо, обрежем карту по минимальным и
максимальным значениям точек для третьего пласта: poro_map_wells_z3=If(
poro_map_wells_z3<0.11, 0.11, poro_map_wells_z3) и poro_map_wells_z3=If(
poro_map_wells_z3>0.224, 0.224, poro_map_wells_z3).
Прежде чем создавать кубы пористости, в Анализе данных оценим
вертикальный радиус свойства Poro по скважинам – он также около 4. Только при этом
включим фацию «песчаника» из литологии (рис.7.5). Скопируем пере-
масштабированную (осредненную) пористость, откроем процесс Петрофизического
Рис.7.5.
7-4
Ограничим значения в коллекторах по нижнему пределу
Work_cubes\Poro_z_1=If(Fin_cubes\Lito_fin=1 And Work_cubes\Poro_z_1<0.11, 0.11,
Work_cubes\Poro_z_1). Сделаем неопределенными значения во второй и третьей зонах
Work_cubes\Poro_z_1=If(Dop_cubes\Zones_hierarchy=1 Or Dop_cubes\Zones_hierarchy=2,
U, Work_cubes\Poro_z_1).
Установим фильтр по коллекторам и, зайдя в закладку Операций в Настройках
для куба, построим карту (рис.7.6) средней пористости коллекторов (кнопочка фильтра
слева внизу включена).
7-5
Снова скопируем перемасштабированную (осредненную) пористость, откроем
процесс Петрофизического моделирования. Для фации «глин» из куба финальной
литологии выберем метод присвоения значения – нуля. Для коллекторов – SGS с одной
реализацией. Горизонтальные радиусы поставим по 20 км, вертикальный – 2 м.
Ограничим выходные значения по минимуму и максимуму, в качестве тренда
воспользуемся картой пористости для второй зоны (рис.7.7).
7-6
Построим карту средней пористости коллекторов для второй зоны, сохраним
проект, очистим память, перейдем к третьему пласту.
Для этого пласта построение куба пористости тоже выполним стохастическим
моделированием, как для второго, но сделаем 33 реализации (закладка Common).
В качестве трендовой карты для песчаников закинем, естественно, карту для
третьего пласта. Выходной минимум поставим 0.11. А то если мы просто нажмем
кнопку Estimate и получим, например, 0.13, то на граничные значения на зоне
глинизации мы не выйдем. Лучше запустить процесс на ночь.
Полученные реализации осредним, как в литологии, и назовем Poro_z_3.
Сглаживать не будем, после 33 реализаций и так достаточно гладко.
Для контроля обнулим глины Work_cubes\Poro_z_3=If( Fin_cubes\Lito_fin=0, 0,
Work_cubes\Poro_z_3). Ограничим значения в коллекторах по нижнему пределу
Work_cubes\Poro_z_3=If(Fin_cubes\Lito_fin=1 And Work_cubes\Poro_z_3<0.11, 0.11,
Work_cubes\Poro_z_3). Сделаем неопределенными значения в первой и второй зонах
Work_cubes\Poro_z_3=If(Dop_cubes\Zones_hierarchy=0 Or Dop_cubes\Zones_hierarchy=1,
U, Work_cubes\Poro_z_3).
Сделаем единый финальный куб пористости Poro_fin. Скопируем
перемасштабированную (осредненную) пористость, назовем Poro_fin. Последовательно
по зонам прицепим к нему кубы пористости.
Fin_cubes\Poro_fin=If(Dop_cubes\Zones_hierarchy=0 And Fin_cubes\Poro_fin=U,
Work_cubes\Poro_z_1, Fin_cubes\Poro_fin).
Fin_cubes\Poro_fin=If(Dop_cubes\Zones_hierarchy=1 And Fin_cubes\Poro_fin=U,
Work_cubes\Poro_z_2, Fin_cubes\Poro_fin).
Fin_cubes\Poro_fin=If(Dop_cubes\Zones_hierarchy=2 And Fin_cubes\Poro_fin=U,
Work_cubes\Poro_z_3, Fin_cubes\Poro_fin).
На всякий случай поставим фильтр по коллекторам и проверим по статистике и
гистограммам минимум и максимум, если надо – обрежем по граничным значениям.
Поставим фильтр по глинам, проверим значения, если надо – обнулим в
калькуляторе Fin_cubes\Poro_fin=0 при включенной кнопочке Use filter.
Очистим память (Free memory) сохраним проект.
7-7
8. Построение куба нефтенасыщенности
Теперь поставим фильтр по ячейкам выше контакта и для первой зоны сделаем
из этого куба Contacts какую-нибудь карту, среднюю или эффективную, все равно. По
этой карте через правую кнопку мыши сделаем оконтуривающую границу (Create
surface edge). Получили полигон вокруг залежей around_zal_z1.
Зайдем в Операции в Установках для куба литологии. Для первой зоны создадим
с куба карту кровли коллектора (рис.8.1 слева), указав код фации единицу. Пересечем
(Create intersection with surface) эту карту с поверхностью ВНК для первой зоны
vnk1_calk и получим полигон внешнего контура нефтеносности для первой зоны VNK
pol 1. Отредактируем его, удалив лишние хвостики в районе 19Р скважины (рис.8.1
справа).
8-1
Мы видим, что этот полигон уже отличается от полигона surface edge, который
был сделан по стратиграфической кровле, а, кроме того, прерывается в зонах
глинизации, где нет коллекторов.
Сделаем для разбивок атрибут средней нефтенасыщенности из каротажа Sat,
который мы делали неопределенным в воде и в глинах. Конвертируем этот атрибут в
точки для первой зоны и построим методом Isochore interpolation карту, задав
геометрию по полигону around_zal_z1, ограничив min и max по точкам, посадив на
точки.
Конвертируем полигон VNK pol 1 в точки, проредим их (filter every n’th points) и
присвоим граничное значение 0.3. Объединим эти точки c точками из атрибута
(операция Append points в папке Common operations) и переcтроим карту (алгоритм
Surface resampling), «подсаживая» на совместные точки с радиусом 800 м, либо, как в
предыдущих упражнениях, используем закладку Additional inputs в процессе Make/edit
surface. Удаляем данные внутри полигона глинизации (рис.8.2). Отредактируем
вручную карту, в основном, на краях и назовем Trend_sat_map_from_wells_z1.
8-2
And Lito_fin=1, 2, Fluid). Это позволит нам в дальнейшем фильтроваться по нефти или
воде только по одному этому кубу, без одновременного фильтра по литологии и
контакту (расстоянию от ВНК).
Скопируем перемасштабированную (осредненную) нефтенасыщенность по
скважинам Sat, назовем Sat z1. Активизируем процесс Петрофизического
моделирования (Petrophysical modeling). Будем моделировать методом кригинга первую
зону (рис.8.3). Нажмем кнопку фаций, выберем куб флюида, выберем нефть. Поставим
горизонтальные радиусы по 1 км, а вертикальный 0,2 м. Ограничим выходной диапазон
значений. В качестве тренда используем построенную карту средней
нефтенасыщенности для первой зоны. Для фаций глин и воды используем метод
присвоения неопределенного (undefined) значения.
Рис. 8.3.
8-3
Другие зоны попробуем сделать с использованием модели переходной зоны.
Предположим, что у нас существуют связи – чем меньше пористость, тем ниже
насыщенность. И чем дальше от ВНК, тем выше насыщенность.
Откроем окно функций (Function window) и сделаем кросс-плот по кубу
расстояния от ВНК Oil water contact (ось X) и перемасштабированному каротажу
нефтенасыщенности Sat[U] (ось Y). Включим сетку. Поставим фильтр по нефти и по
пористости – от 11% до 22%. Сделаем линейную зависимость и будем ее
модифицировать точками, создавая зависимость для плохих коллекторов
Sat_vs_Oil_water_contact_bad (рис.8.4 вверху слева).
Рис.8.4.
Предположим, что зеркало чистой воды у нас ниже ВНК на три метра. Поэтому
нижняя точка будет иметь координаты (-3, 0). На контакте будет граничное значение,
то есть обязательно будет точка (0, 0.3). Ну а выходить зависимость направо, удаляясь
от контакта, будет на асимптотическое значение нефтенасыщенности 0.45.
Теперь поставим фильтр по нефти и по пористости – от 22% до 26%. Сделаем
линейную зависимость и будем ее модифицировать точками, создавая зависимость для
хороших коллекторов Sat_vs_Oil_water_contact_good. Нижняя точка будет, естественно,
такой же - (-3, 0). На контакте же будет более высокое для хороших коллекторов
8-4
граничное значение 0.43. Больше будет и асимптотическое значение
нефтенасыщенности 0.57. Снимем фильтр по пористости и визуализируем обе
зависимости сразу.
В значительной части случаев, как, например для газовых шапок, переходная
зона отсутствует, однако имеет место корреляция насыщенности и пористости.
Поэтому включим фильтр по нефти и построим линейную зависимость
нефтенасыщенности от пористости Sat_vs_Poro (рис.8.4 вверху справа).
При включенном фильтре по нефти создадим трендовый куб
нефтенасыщенности для второй зоны Sat_trend_z2=Sat_vs_Poro(Fin_cubes\Poro_fin).
Обрежем его (рис.8.5) по граничному значению при включенном фильтре
Sat_trend_z2=If( Sat_trend_z2<0.3, 0.3, Sat_trend_z2).
Сделаем неопределенными значения в первой и третьей зонах
Sat_trend_z2=If(Dop_cubes\Zones_hierarchy=0 Or Dop_cubes\Zones_hierarchy=2, U,
Sat_trend_z2).
Так как вторая зона у нас очень небольшая, то куб нефтенасыщенности для нее
возьмем по трендовому кубу Sat_z2=Sat_trend_z2. Иногда для маленьких залежей
вообще присваивают одно значение нефтенасыщенности.
Для упражнения немного отредактируем этот непрерывный куб Sat_z2 при
включенном фильтре по нефти и активном процессе Петрофизического моделирования.
cut
Рис.8.5.
8-5
Кликнем курсором в какую-нибудь ячейку, перебьем значение в ней в верхнем
меню на немного более высокое и, когда рука с кубиком зажелтеет, нажмем ее –
значение в ячейке переприсвоится. К сожалению, здесь нельзя использовать кисточку,
только по одной ячейке можно вручную редактировать.
Присвоим нулевые значения в воде и глинах, которые сейчас неопределенные:
Work_cubes\Sat_z2=If(Dop_cubes\Zones_hierarchy=1 And Work_cubes\Sat_z2=U, 0,
Work_cubes\Sat_z2). Сохраним проект и перейдем к третьей зоне.
Построим, включив фильтр по нефти, трендовый куб нефтенасыщенности для
третьей зоны, используя сделанные зависимости:
Sat_trend_z3=If(Poro_fin<0.22, Sat_vs_Oil_water_contact_bad(Oil_water_contact),
Sat_vs_Oil_water_contact_good(Oil_water_contact)).
Сделаем неопределенными значения в первой и второй зонах:
Sat_trend_z3=If(Dop_cubes\Zones_hierarchy=2, Sat_trend_z3, U).
Сгладим куб Sat_trend_z3 (рис.8.6), чтобы избежать резких границ из-за
изменения зависимостей при переходе через пористость 22%. Сейчас нам надо
«подсадить» насыщенность на скважинные значения (в западной практике часто этого
не делают и пользуются кубами, рассчитанными через модель переходной зоны).
8-6
Создадим куб Дистанции до объекта (Distance to object), используя
Геометрическое моделирование, где в качестве объекта используем точки, сделанные
из стратиграфических отбивок для какого-нибудь пласта (рис.8.6). Можно было бы
взять в качестве объекта траектории скважин, но в этом случае процесс может
считаться долго.
Будем считать, что зона влияния скважин распространяется на 500 м. Вырежем
из куба Sat_trend_z3 «дырки» вокруг скважин, используя куб Дистанции:
Sat_trend_z3=If(Dop_cubes\Distance_from_Well_tops<500, U, Sat_trend_z3).
Скопируем перемасштабированный каротаж нефтенасыщенности по скважинам
Sat, назовем Sat_z3. Сделаем неопределенными значения в первой и второй зонах
Sat_z3=If(Dop_cubes\Zones_hierarchy=2, Sat_z3, U). Прицепим к нему трендовый куб с
вырезанными вокруг скважин значениями: Sat_z3=If(Dop_cubes\Zones_hierarchy=2 And
Sat_z3=U, Sat_trend_z3, Sat_z3).
Сделаем экстраполяцию значений (рис.8.6) и получим сводный куб. Примечание
– иногда при нажатой кнопке фильтра процесс не работает. А вот кнопочка сохранения
значений на скважинах обязательно должна быть нажата. В данном примере
приходится прибегать к экстраполяции, а не классическим методам моделирования
свойств, потому что нефтенасыщенность рассчитана по предполагаемым зависимостям
(функциям), которые в данном упражнении достаточно условны.
Обнулим значения в воде и глинах, просто поставив фильтр по третьей зоне, по
воде и глине и приравняв куб к нулю.
Единый для всех зон куб нефтенасыщенности получим, скопировав
перемасштабированный каротаж нефтенасыщенности по скважинам Sat и
переименовав его в Sat_fin.
Затем неопределенные ячейки этого куба в межскважинном пространстве
заменим на значения нефтенасыщенности из сделанных ранее кубов:
Fin_cubes\Sat_fin=If(Dop_cubes\Zones_hierarchy=0 And Fin_cubes\Sat_fin=U,
Work_cubes\Sat_z1, Fin_cubes\Sat_fin);
Fin_cubes\Sat_fin=If(Dop_cubes\Zones_hierarchy=1 And Fin_cubes\Sat_fin=U,
Work_cubes\Sat_z2, Fin_cubes\Sat_fin);
Fin_cubes\Sat_fin=If(Dop_cubes\Zones_hierarchy=2 And Fin_cubes\Sat_fin=U,
Work_cubes\Sat_z3, Fin_cubes\Sat_fin).
Проверим, включая фильтр по разному флюиду, статистику по нефти, воде и
глинам, если надо, еще раз обнулим воду и глины. Очистим память и сохраним проект.
8-7
9. Подсчет запасов
9-1
Вначале сделаем точный подсчет эффективных нефтеносных объемов в пласте
для первой зоны (чтобы получить потом запасы на поверхности, если необходимо, надо
будет умножить на плотность нефти и пересчетный коэффициент). Предварительно
зайдем в закладку Templates и для наших расчетных параметров (bulk volume, net
volume, pore volume, HCPV) увеличим количество знаков после запятой до 5 знаков
(рис.9.2).
9-2
дальнейшем использоваться для сравнения с величинами нефтесодержащих объемов,
рассчитанных другими способами подсчета.
Полученный куб объемов ячеек-коллекторов первой зоны над ВНК назовем Bulk
volume VNK koll z1.
Теперь поставим фильтр по нефти и по первой зоне и рассчитаем куб
HCPV_z1=Dop_cubes\Bulk_volume*Fin_cubes\Sat_fin*Fin_cubes\Poro_fin.
Куб геометрического объема ячеек Bulk_volume мы рассчитывали в
Геометрическом моделировании ранее (cell volume). Зайдя в Статистику и посмотрев
Sum мы видим близкую цифру - 6,47*106. Разница имеет место потому, что куб
HCPV_z1 мы рассчитывали без точного учета объема ячеек, секущихся поверхностью
ВНК.
Снимем фильтры и рассчитаем куб доли ячеек
Dola_cells=Dop_cubes\Bulk_volume_VNK_koll_z1/Dop_cubes\Bulk_volume. Он равен
единице для ячеек, удаленных от контакта, и меньше единицы - для ячеек, секущихся
поверхностью ВНК (рис.9.3).
9-3
Включим фильтр по коллекторам и перерасчитаем куб с учетом куба доли ячеек:
HCPV_z1=Dop_cubes\Bulk_volume*Fin_cubes\Sat_fin*Fin_cubes\Poro_fin*Dop_cubes\Do
la_cells [Filter ON]. Посмотрев Sum мы видим очень близкую цифру - 6,43*106, разница
в третьем знаке.
Построим карту эффективных толщин из куба доли ячеек при включенном
фильтре по коллекторам (рис.9.3) – это будет карта эффективных нефтенасыщенных
толщин. Более грубо можно было бы построить эту карту просто из единичного куба,
включив фильтр по нефти. Если бы у нас был куб песчанистости, то карту надо было
бы строить из него.
В Операциях для карты подсчитаем объем. При включенном фильтре по нефти
посмотрим среднее значение пористости и нефтенасыщенности продуктивных
коллекторов первой зоны по финальным кубам при нажатой кнопочке использования
фильтра. Перемножив объем из карты и средние значения пористости и
нефтенасыщенности, получим цифру эффективных нефтесодержащих объемов в пласте
6,3*106. Эту цифру можно вполне использовать для быстрых прикидок величин
запасов, так как на больших месторождениях процесс Volume calculation может считать
весьма долго.
Очистим память и сохраним проект.
9-4
10. Менеджер задач
Рис.10.1.
10-1
для использования в workflow (чтобы исходную поверхность не портить). Вернемся в
workflow, кликнув дважды по Калькулятору поверхностей, пропишем в нем выражение
VNK=vnk1_calk и, после нажатия Enter, оно появится в правой части строки. Добавим
еще одну строку Калькулятора поверхностей и в ней запишем выражение VNK=VNK-
3. Таким образом, мы начнем вычисления объемов продуктивных пород с поверхности
ВНК, которая на три метра ниже использовавшейся в модели.
Организуем цикл. Из утилит (Utilities), из папки Statements закинем Цикл (Loop).
Имя переменной, которая стоит после знака доллара, переименуем в Loop, а число
шагов цикла проставим семь (рис.10.1). Дважды кликнув, в строке Создание контактов
для первой зоны вместо vnk1_calk закинем VNK (рис.10.2). После строки Создания
контактов добавим строку Подсчета запасов (Volume calculation). Дважды кликнем по
Рис.10.2.
Volume calculation и начнем задавать параметры расчетов. Поскольку запасы нас сейчас
не интересуют, поставим пористость и насыщенность по константе-единице (рис.10.2).
Галочку в использовании границы-полигона снимем, а в использовании фильтра
оставим. Фильтр же установим по первой зоне и по коллекторам.
В выходных кубах (Output) снимем все галочки. Откроем Установки для отчета
(Report settings). В закладке Cases поставим галочку в Bulk volume. В закладке Format
10-2
снимем все галочки, кроме галочки для записи в одну строку и галочки для создания
выходного отчета (рис.10.2).
Теперь у нас внутри цикла каждый раз будет рассчитываться объем
продуктивных пород и его величина будет записываться в выходной отчет. В
следующую строку закинем папку Move, чтобы выходные результаты перемещались в
нужное место. В закладке Workflows откроем контейнер переменных (Variables). От-
туда возьмем переменную Output и положим в нашу строку (рис.10.2). В закладке
сценариев (Cases) создадим папку rezultat и ее положим в нашу строку в качестве места,
куда будут перемещаться данные.
Рис.10.3.
10-3
окно настроек (Settings). Там в Cases откроем контейнер результатов и пометим все
сценарии.
Рис.10.4.
Нажмем Make report и получим отчет. В нем для всех сценариев даны величины
объемов продуктивных пород.
Обратим внимание,
что для среднего сценария
(четвертого) величина
объема оказалась
практически такой же, что и
при расчете в модели, только
немного больше. Это
естественно, так как для
этого сценария поверхность
ВНК такая же, а объемов
чуть больше, так как полигон
был отключен и из-за этого
был просчитан водяной
куполок в районе скважины
Рис.10.5.
19Р.
10-4
Построим гистограмму распределения величин объемов.
Откроем через верхнее меню окно гистограмм (рис.10.6). В закладке Results
пометим параметр Bulk volume, а в закладке Cases в контейнере rezultat все наши
сценарии. Поскольку вероятности у всех сценариев одинаковые (1/7), то они
визуализируются одинаковыми по высоте столбиками.
Рис.10.6.
10-5
11. Двумерное картопостроение
Рис.11.1.
папку Copy_wells. В нее поочередно скопируем-вставим скважины 24R, 119, 122, 23R,
3R, 29R, 26R, 27R. В этих скважинах удалим все каротажи, кроме глубины и
абсолютной отметки (рис.11.1), а потом загрузим каротажи литологии и флюида
Litho_copy и Fluid_copy из папки дополнительных входных данных Dop input. Из этой
же папки загрузим карты стратиграфической кровли и подошвы StratBot и StratTop
этого участка (формат CPS-3 grid). Они отличаются от наших карт в модели меньшим
размером (обрезаны полигоном).
Создадим папку стратиграфических разбивок Well tops 2D (выравнивание на
абсолютную глубину, в верхнем меню SSTVD, 1:200). Зайдем в закладку создания
отчетов (Report) в папке скважин Copy_wells, закинем поверхности StratBot и StratTop и
создадим отбивки пересечения траекторий скважин с этими поверхностями.
В новом окне корреляции Well section 2D включим наши скважины Copy of 24R,
Copy of 119, Copy of 122, Copy of 23R, Copy of 3R, Copy of 29R, Copy of 26R, Copy of
11-1
27R, стратиграфические отбивки кровли и подошвы, каротажи Litho_copy и
Fluid_copy, поверхность ВНК для первой зоны северной залежи vnk sever 1 red
(рис.11.1).
Теперь нам будут нужны в первую очередь отбивки кровли первого и подошвы
последнего коллектора в скважинах. Создадим (рис.11.2) глобальный каротаж
измеренных глубин для наших скважин только в коллекторах mdcoll=If(Litho_copy=0
Or Litho_copy=U, U, DEPT). Сделаем из каротажа mdcoll два атрибута для разбивок.
Один – mdcollmin – минимального значения измеренной глубины (рис.11.2), другой –
mdcollmax - максимального значения измеренной глубины.
Рис.11.2.
11-2
атрибутов для зон (Zones spreadsheet) стратиграфических отбивок (рис.11.2), там
увидим заглинизированную скважину Copy of 29R, в которой не рассчитались значения
атрибутов mdcollmin и mdcollmax. Удалим эту скважину из Well tops 2D col (из
подпапки Well filter). Не закрывая таблицу Zones spreadsheet, откроем основную
таблицу (Spreadsheet) для отбивок Well tops 2D col и отсортируем данные по столбцу
Surface (дважды кликнуть по заголовку столбца) – сверим то, что у нас получилось с
рис.11.2. Теперь осталось включить режим редактирования значений измеренной
глубины (Edit point: MD) в основной таблице (Spreadsheet) и скопировать из Zone
spreadsheet два столбца, как показано на рисунке. Включим-выключим разбивки на
схеме корреляции Well tops 2D, убедимся, что все получилось правильно, отбивки
ColTop и ColBot соответствуют кровле первого и подошвы последнего коллектора в
скважинах.
В дальнейшем мы будем использовать полученные отбивки кровли и подошвы
коллектора вместе со стратиграфическими разбивками Well tops 2D. Поэтому, выделив
все строки таблицы (Spreadsheet) для Well tops 2D col, скопируем их (Copy). Откроем
таблицу (Spreadsheet) для Well tops 2D, создадим в ней дополнительную пустую
строчку и, предварительно выдели ее, вставим (Paste) на место этой строчки
скопированные данные. Не забудем нажать OK, чтобы изменения вступили в силу. В
результате мы увидим в папке с отбивками Well tops 2D два новых объекта в подпапке
Others. Папку отбивок Well tops 2D col теперь можно удалить.
Начнем делать карту эффективных толщин Heff map_2D. Вначале создадим
атрибут Heff по коллекторам из картотажа Litho_copy (рис.11.3). Cкопируем полигон
зоны глинизации для первой зоны, назовем его glina 2dmapping, удалим в нем все
полигоны, кроме полигона вокруг скважины Copy of 29R. Сконвертируем в точки и
присвоим им значения 0.1.
Конвертируем атрибут Heff в точки, добавим к ним точки из полигона (append) и
построим по ним карту (рис.11.3 справа) эффективных толщин Heff map_2D методом
изохор. Для геометрии используем карту StratBot.
Отредактируем карту в юго-восточном и юго-западных углах. Обнулим с
помощью фильтра для карт внутри полигона глинизации. Для сравнения можно
загрузить карту из папки дополнительных входных данных Dop input или из проекта на
диске.
11-3
Создадим на будущее
атрибут нефтенасыщенных
толщин Heff nn из каротажа
Fluid_copy по нефти (oil). В
скважине Copy of 3R,
расположенной в чисто
нефтяной зоне, он совпадает с Рис.11.3.
Heff.
После построения
карты эффективных толщин
будем строить карты по кровле
и подошве коллектора.
Перетащим отбивки ColTop и
ColBot из Others в папку
стратиграфии и создадим точки изохор между стратиграфической кровлей и кровлей
коллектора. По этим точкам построим (рис.11.4) карту изохор isoh colt str t. Скопируем
карту стратиграфической кровли, переименуем в ColTop, отнимем карту isoh colt str t и
для контроля посадим на отбивки кровли коллекторов.
Аналогично создадим
точки изохор между
Рис.11.4.
стратиграфической подошвой
и подошвой коллектора. По
этим точкам построим
(рис.11.4) карту изохор isoh
colb str b. Скопируем карту
стратиграфической подошвы,
переименуем в ColBot, теперь
уже прибавим карту isoh colb
str b и для контроля посадим
на отбивки подошвы
коллекторов. Включим карты в
корреляционном окне.
Поскольку мы построили карту эффективных толщин, плавно уменьшая
толщины к зоне замещения (постепенное выклинивание коллектора), на границе зоны
11-4
замещения карты кровли и подошвы коллекторов должны сходится вместе. Для этого
построим временную карту tmp=(ColTop+ColtBot)/2 (сходится будут посередине).
Полигону glina 2dmapping присвоим значения по этой карте и сконвертируем в точки.
Сконвертируем в точки и отбивки кровли коллектора, добавим к ним точки glina
2dmapping из полигона. Теперь с радиусом 800 м высадим на эти совместные точки
карту ColTop. Аналогично сконвертируем в точки отбивки подошвы коллектора,
добавим к ним точки glina 2dmapping из полигона, с радиусом 800 м высадим на эти
точки карту ColBot.
Сделаем полигон из пересечения поверхностей vnk sever 1 red и ColTop,
получим внешний контур нефтеносности Vnesh contur VNK, установим стиль тире с
одной точкой. Аналогично сделаем полигон из пересечения поверхностей vnk sever 1
red и ColBot, получим внутренний контур нефтеносности Vnutr contur VNK, установим
стиль тире с двумя точками (рис.11.4). Замкнем контуры, если надо. Включим
скважины, полигон глинизации и контура в двумерном окне (рис.11.4). На границе
зоны глинизации на западе полигоны должны сходится.
Скопируем карту кровли коллектора, элиминируем внутри зоны глинизации,
назовем Cut ColTop. Скопируем карту подошвы коллектора, элиминируем внутри зоны
глинизации, назовем Cut ColtBot.
Посмотрим на поведение поверхностей в трехмерном окне. Создадим прямой
полигон через точку схождения контуров (рис.11.4). Через правую кнопку мыши
сделаем вертикальное сечение (рис.11.4). Отобразим его в новом трехмерном окне.
Зайдем в Установки для сечения и отключим галочку визуализации внутренней
заливки сечения (show – рис.11.5). Толщину отображаемых поверхностей поставим 2.
В нижнем меню слева нажмем синий квадратик и все возможные для визуализации
объекты подкрасятся синим.
Включим карты Cut ColTop и Cut ColtBot, поверхность ВНК vnk sever 1 red.
Отключим синий квадратик. Снова включим карты Cut ColTop и Cut ColtBot, а также
полигон glina 2dmapping и поверхность ВНК vnk sever 1 red. Ножницами внизу
отрежем объекты перед сечением (рис.11.5).
Перейдем собственно к двумерному картопостроению. На первом этапе будем
карту строить простым методом «по точкам». Скопируем карту эффективных толщин и
элиминируем ее снаружи внутреннего контура нефтеносности. Сконвертируем эту
усеченную карту в точки. Однократно проредим точки (filter every n`th points), чтобы их
не было так много, иначе высаживание на точки будет происходить весьма долго.
11-5
Далее сконвертируем в точки полигон внешнего контура нефтеносности, присвоим
этим точкам значение нуля, один раз проредим точки (рис.11.6).
Рис.11.5.
=
Рис.11.6.
11-6
Сконвертируем в точки атрибут Heff nn, элиминируем внутри внутреннего
контура и снаружи внешнего контура нефтеносности. Соединим все три набора точек в
один объект, элиминируем внутри зоны глинизации.
Используем эти объединенные точки в качестве исходных для картопостроения
Heff nn 2D from points методом Kriging с радиусами 1000 м. Для геометрии возьмем
карту Heff map_2D. Подгонку с радиусом 100 м будем осуществлять на точки,
сделанные из атрибута Heff nn. Полученную карту обрежем (eliminate) снаружи
внешнего контура нефтеносности и внутри зоны глинизации.
Отобразим карту (рис.11.6) совместно с атрибутом Heff nn, контурами
нефтеносности и зоны глинизации. Обратим внимание на излом изолиний
нефтенасыщенных толщин на внутреннем контуре нефтеносности. Сохраним проект.
На втором этапе будем карту строить более сложным методом: «через
песчанистость», учитывающим изменения структурного плана в водонефтяной зоне.
Сначала нам надо создать карту общих толщин продуктивной части для коллекторов.
Скопируем карту ВНК и присвоим ей значения карты подошвы коллектора там, где
подошва коллектора находится выше поверхности ВНК - Copy_of_vnk_sever_1_red=If(
ColtBot>vnk_sever_1_red, ColtBot, Copy_of_vnk_sever_1_red). Вычтем из этой карты
карту кровли коллектора (рис.11.7). Обрежем (eliminate) снаружи внешнего контура и
Рис.11.7.
11-7
внутри зоны глинизации. Умножим на минус единицу. Присвоим значения нуля, там
где карта имеет маленькие значения меньше нуля. Назовем ее ob tol. Обратим
внимание, что значения карты уменьшаются к нулю на внешнем контуре, где сходятся
карты ВНК и кровли коллектора, а также уменьшаются к нулю к полигону зоны
глинизации, где сходятся карты кровли и подошвы коллектора.
Займемся построением карты песчанистости.
Чтобы затем окончательная карта совпадала с картой эффективных толщин в
пределах внутреннего контура нефтеносности, скопируем карту ob tol и обрежем
(eliminate) снаружи внутреннего контура нефтеносности (рис.11.8).
11-8
Скопируем папку стратиграфических разбивок Well tops 2D, назовем tmp,
удалим оттуда все отбивки, кроме кровли коллектора. Зайдем в папку скважин
Copy_wells и создадим отбивки пересечения поверхности ВНК vnk_sever_1_red и
траекторий скважин. Для нашей зоны между кровлей коллектора и ВНК создадим
атрибут песчанистости по нефтенасыщенным толщинам oil.
Сконвертируем атрибут в точки, элиминируем внутри внутреннего контура и, на
всякий случай, снаружи внешнего. Добавим эти точки к точкам песчанистости внутри
внутреннего контура (рис.11.9).
По этим точкам методом изохор построим карту Pesch, удалим значения внутри
зоны глинизации и снаружи внешнего контура. Обрежем максимальные значения по
единице.
Рис.11.9.
11-9
=
*
Рис.11.10.
11-10
12. Картооформление
Рис.12.1.
Кликнув два раза мышью, установим бумагу А4. А в Настройках собственно для
карты зададим шаг изолиний два метра, высоту подписей аннотации 10, отожмем, если
надо, галочку в подписывании только жирных (bold)
изолиний.
Скопируем внешний контур нефтеносности,
элиминируем внутри зоны глинизации, назовем Cut
Vnesh contur, визуализируем с толщиной 3 и стилем
линии точка-тире. Скопируем внутренний контур
нефтеносности, удалим значения внутри зоны
глинизации, назовем Cut Vnutr contur, визуализируем с
толщиной 3 и стилем линии тире-две точки. Для
Рис.12.2.
полигона зоны глинизации glina 2dmapping поставим
зеленый цвет, толщину 3 и стиль линии «реснички»
внутрь (рис.12.2). Скопируем карту эффективных
12-1
толщин, обрежем внутри внутреннего контура и зоны глинизации, назовем Cut Heff
map_2D. Визуализируем только изолинии пунктиром, аннотацию к ним 10 шрифтом.
Следующим шагом нам надо визуализировать скважинную информацию.
Включим в папке атрибутов стратиграфических разбивок имена скважин,
эффективные и нефтенасыщенные толщины. Кликнув два раза по каждому атрибуту,
установим позицию для каждого как на рисунке 12.3, размер 10.
Рис.12.3.
12-2
Теперь у нас визуализированы необходимые нам объекты и мы можем заняться
подписями к карте. Сперва импортируем из папки дополнительных исходных данных
Dop input файл картинки RGU.bmp.
Откроем Установки для Frame (рис.12.4) через верхнее меню или открыв
контейнер окна в закладке Windows. Закинем в качестве logo наш рисунок. Напишем
текст «Карта нефтенасыщенных толщин», установим для текста 16 шрифт жирный и
позицию по центру вверху. А для картинки (logo) установим позицию справа снизу.
Рис.12.4.
Для легенды установим высоту 3 см, позицию слева снизу. При необходимости
встанем курсором на край красной рамки и растянем. Карта будет похожа на
изображенную на рис.12.4. Очистим память и сохраним проект.
12-3
Закревский К. Е.
Практикум
по геологическому
3D моделированию.
Построение тестовой
модели в Petrel 2009