Восстановление геометрии геологических пластов на базе моделей машинного обучения

Восстановление геометрии геологических пластов на базе моделей машинного обучения

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

Авторы публикации

Рубрика

Информационные технологии

Журнал

Журнал «Научный лидер» выпуск # 23 (25), август ‘21

Поделиться

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

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

В условиях Западной Сибири, ключевой территории для отрасли, где сосредоточены уникальные по своему количеству и составу углеводороды, в непосредственной близости от нефтегазоносного объекта располагаются водоносные горизонты [1]. В упрощённой схеме проводки пространственное расположение горизонтального ствола должно быть оптимально удалено от кровли и подошвы пласта. Чтобы прояснить, какие требования к точности действий предъявляются, вот некоторые цифры: бригада непрерывно в течение нескольких дней бурит скважину оборудованием массой свыше 100 тонн, при этом инструмент может располагаться на глубине до 6 километров, непосредственный визуальный обзор отсутствует, а положение ствола должно до метра соответствовать проектным расчётам (в редких случаях, когда позволяет мощность пласта, погрешность может быть +–5 метров). Любая ошибка приведёт к дорогостоящим операциям по её устранению или потере скважины в целом.

И ожидается, что доля строительства горизонтальных скважин будет только увеличиваться [2].

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


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

График 1. Схема горизонтального ствола

 

    Данные каротажа при вертикальном бурении

    VertWellLog = pd.read_excel('VertWell/VertWellLog.xlsx')

 

    # Глубины кровлей и подошв пластов

    VertWellTops = pd.read_excel('VertWell/VertWellTops.xlsx')

    VertWellTops.rename(columns={'Depth''Top'}, inplace=True)

    VertWellTops['Bottom'] = [VertWellTops['Top'][value] \

                            for value in \

                            range(1len(VertWellTops['Top']))] + [0.0]

    VertWellTops = VertWellTops[:(len(VertWellTops) - 1)]                        

    # h - мощность пласта

    VertWellTops['h'] = [VertWellTops['Bottom'][i] - VertWellTops['Top'][i] \

                        for i in range(len(VertWellTops))]

 

    # Данные о геометрии горизонтального ствола и естественной радиоактивности

    hz_well_geometry_logs = pd.read_excel('HorizWell/hz_well_geometry_logs.xlsx')


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

График 2. Данные о естественной радиоактивности пород

 

На этапе исследования были выбраны следующие алгоритмы из библиотеки scikit-learn:

from sklearn.neighbors import KNeighborsClassifier

from sklearn.svm import LinearSVC

from sklearn.linear_model import LogisticRegression

from sklearn.ensemble import RandomForestClassifier

from sklearn.svm import SVC

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

    # Определим группы пластов для обучения моделей

    datasets = [['above_Cleveland_Shale''Cleveland_Shale''TA'],

                ['Cleveland_Shale''TA''TZ'],

                ['TA''TZ''TB'],

                ['TZ''TB''Three_Lick_Bed'],

                ['TB''Three_Lick_Bed''Bottom_hrz']]

По результатам произведено сравнение базовых моделей и исключены неперспективные.

На втором этапе в целях увеличения точности регрессионных моделей применён GridSearchCV с заданными параметрами для тонкой настройки моделей. Получены оптимальные значения.

from sklearn.model_selection import GridSearchCV

opt_hyperparameters = {} # для записи оптимальных гиперпараметров

Полученный словарь имеет вид (представлен один ключ):

    r_opt_hyperparameters = {

    'Cleveland_Shale': {

        'SVR': {'R^2'0.20776241327293254,

        'MAE'11.076387030381216,

        'MSE'171.89376978613865,

        'best_params_': {'C'1.0,

                        'kernel''rbf'}}},

 

# Теперь с учётом полученных оптимальных гиперпараметров и эстиматоров

    # обучим классификационные модели `model1`-`model5` для групп пластов

 

    right_model = {}

    n = 1

    for groupmodel in opt_hyperparameters.items():

        layers = group.split(' + ')

        for model_namemetrics_and_params in model.items():

            model_id = f'model{n}'

            right_model[model_id] = {model_namemetrics_and_params['best_params_']}

            right_model[model_id]['layers'] = [*layers]

            n += 1

 

    np.random.seed(42)

 

    # Для каждой группы пластов подготовим таблицу

    model1_frame = pd.DataFrame(columns=VertWellLog2.columns)

    model2_frame = pd.DataFrame(columns=VertWellLog2.columns)

    model3_frame = pd.DataFrame(columns=VertWellLog2.columns)

    model4_frame = pd.DataFrame(columns=VertWellLog2.columns)

    model5_frame = pd.DataFrame(columns=VertWellLog2.columns)

Далее полученные модели сохраняются для дальнейшего инференса.

    for model in right_model:

        pickle.dump(modelopen(f"{model}.pkl""wb"))

Ещё одной из задач, которую предстояло решить – это правильная обработка данных кривой естественной радиоактивности пород в неоднородном разрезе. Был применён метод батчинга, когда значение глубины и текущие координаты забоя относились к конкретному пласту только после получения нескольких значений при работе моделей с высокой степенью уверенности по нескольким последним запросам. Это позволило «сгладить» графики восстановленных геометрий геологических пластов (графики 3, 4).

График 3. Геологический разрез с восстановленной геометрией пластов (до сглаживания)

График 4. Геологический разрез с восстановленной геометрией пластов (после сглаживания)

 

Модуль по ETL, анализу данных и подготовке моделей упакован в докер контейнер [3]. В качестве средства оркестрации контейнерами предлагается к применению kubernetes [4].

Достигнутая точность MVP ~ 94 % усреднённая по пластам позволяет судить о перспективности разработки. В настоящее время проводятся работы по оптимизации сервиса, как системы реального времени при режимах работы на средних и высоких нагрузках, и подготовке экономического обоснования ОПИ.

Список литературы

  1. Нефтегазоносная провинция, бассейн [Электронный ресурс] – URL: https://neftegaz.ru/tech-library/ngk/147608-neftegazonosnaya-provintsiya/ (дата обращения 09.08.2021).
  2. Кульчицкий В.В., Закиров А.Я., Овчинников В.П. и др. Состояние и перспективы горизонтального бурения в России [Электронный ресурс]: Специализированный журнал «Бурение & нефть», 2020. – URL: https://burneft.ru/archive/issues/2020-10/11 (дата обращения 09.08.2021).
  3. Docker: Empowering App Development for Developers [Электронный ресурс] – URL: https://www.docker.com/ (дата обращения 09.08.2021).
  4. Kubernetes [Электронный ресурс] – URL: https://kubernetes.io/ru/ (дата обращения 09.08.2021).

Предоставляем бесплатную справку о публикации,  препринт статьи — сразу после оплаты.

Прием материалов
c по
Осталось 2 дня до окончания
Размещение электронной версии
Загрузка материалов в elibrary