Объединение каротажей 1. Если отдельные кривые не накладываются друг на друга. рис.1 2. Если есть наложения, необходимо использовать калькулятор или операции над каротажами. В этом случае надо решить, какую из кривых оставлять целиком, а какую срезать. рис.2 Здесь возможны два варианта: - Заранее известно, какие кривые необходимо оставить полностью - Решение о том, какую кривую оставить, а какую срезать, принимается после визуальной оценки кривых Итак, имеются 2 кривые А и В, которые необходимо склеить в одну. Прежде чем перейти непосредственно к объединению кривых, часто их необходимо привести к одному масштабу (нормировать). Другими словами, необходимо сдвинуть минимум и максимум кривой к заданным значениям min_value и max_value. В Petrel эта операция выполняется с помощью следующего выражения в калькуляторе (нормируется кривая Log): Log_norm = (Log – Log.min) * (max_value – min_value) / (Log.max – Log.min) + min_value где Log.min и Log.max – исходные минимальное и максимальное значения кривой. 1. Соединение отдельных непересекающихся частей а) При загрузке. Для того чтобы загрузка отдельных частей каротажа происходила в один и тот же объект Petrel, необходимо выбрать опцию «Add to existing logs» на вкладке Setting, и нужный глобальный каротаж (Global well log) на вкладке Input data – см. рисунок 3 и 4. Замечание: эта опция соединит кривые, только если их грузить по отдельности. Если каротажи находятся в одном файле, то надо либо удалить одну из кривых – например, B – при первой загрузке (рис. 5) и подгрузить ее после того, как будет загружена кривая А. рис.3 рис.4 б) После загрузки. Если кривые А и В были загружены вместе, их можно объединить двумя способами. Способ 1: Использовать опцию Add values from other log, расположенную на вкладке Operations диалогового окна настроек кривой – рис.5. Нажатие кнопки Execute adding в окне настроек кривой A полностью скопирует в эту кривую значения с выбранной кривой (В), оставив исходные значения кривой А только там, где кривая В не определена. рис.5 Способ 2: С помощью калькулятора для каротажей. Следующее выражение создаст новый каротаж, объединяющий в себя кривые A и В: New = If(A=U, B, A) Однако в этом случае может возникнуть проблема с заданием области определения каротажа – опция Sample MD from, рис.6. Здесь следует или указать кривую, которая определена на обоих участках (обычно это кривая глубины), или использовать постоянный шаг – specified. Следует отметить, что для корректной работы калькулятора кривые А и В должны иметь разные имена. 2. Соединение частей, имеющих общую область значений. Как упоминалось выше, возможны 2 варианта. а) Заранее известно, какие кривые необходимо оставить полностью Например, к кривой А надо добавить кривую В, причем только там, где кривая А не определена. Такого рода задача решается одним из двух способов, описанных в пункте 1.б. б) Решение о том, какую кривую оставить, а какую срезать, принимается после визуальной оценки кривых В этом случае рекомендуется заранее создать пустой глобальный каротаж, например, Merged_Log, и в него записывать результат объединения кривых по каждой скважине. После этого необходимо отобразить последовательно каждую скважину с кривыми А и В, и использовать калькулятор для объединения. Если существуют определенные правила объединения / выбора каротажей, то их можно использовать в workflow для автоматизации. Ниже представлена реальная задача, при решении которой удалось в значительной мере автоматизировать объединение каротажей. Пример: Исходные данные. 1119 скважин, в среднем 40-50 каротажей у каждой (многие каротажи разбиты по интервалам, много повторяющихся). Задача. Загрузить данные в Petrel. Удалить повторяющиеся каротажи, оставив наиболее представительные. В каждой скважине создать 2 объекта для каждого каротажа, соответствующие 2-м зонам интереса – в районе 1300м и 2000м. Решение. При загрузке данных для контроля качества и редактирования использовалась утилита Well Manager. Например, в начале работы над проектом данные альтитуды для нескольких скважин отсутствовали. Когда они были предоставлены клиентом, утилита Well Manager позволила сразу их добавить. Также, у данных инклинометрии скважин было 3 флага качества. Соответственно, требовалось организовать скважины по этому признаку. Для этого был создан новый пользовательский атрибут, и при загрузке новых скважин в проект в Well Manager устанавливалось нужное значение этого атрибута. Впоследствии, с помощью Saved Searches отфильтровывались скважины с определенным значением флага инклинометрии. Рабочий процесс был довольно прямолинеен: 1. Одинаковые каротажи переименовывались в «<Name>_a», «<Name>_b» и т.д. для корректной работы с ними в калькуляторе. 2. Создавался сохраненный поиск по наличию одинаковых каротажей. 3. Отфильтрованные скважины отображались в окне Well Section. 4. После визуальной отдельной скважины проверки ненужные каротажи с помощью калькулятора копировались в каротаж «Bad_<name>», тот каротаж, который решали оставить – в «<Name>». 5. Проверив отдельный каротаж по всем скважинам, из Global well logs удалялись кривые «<Name>_a», «<Name>_b» и т.д. В процессе работы были написаны несколько Workflow для автоматизации отдельных этапов. Workflow приведены ниже. 1. Workflow, который ищет каротажи со значениями ниже определенной глубины и добавляет «_J» в конец имени. В качестве входных данных в том числе подается каротаж со значениями на всей области определения (используется как шаблон в калькуляторе) 2. Workflow для создания таблицы статистики по каротажам и экспорта ее в Excel.