Обработка LAS-файлов с помощью Python

Задумались о том, как открыть или визуализировать лас-файл? Библиотека lasio для Python предлагает все основные функции для того, чтобы обрабатывать данные каротажа в пакетном режиме.

LAS-файл – это текстовый файл в кодировке dos, создаваемый по определенному стандарту и содержащий дискретные значения каротажных кривых, записанные с определенным шагом по глубине в процессе проведения геофизических исследований скважин. Сокращение LAS расшифровывается как Log ASCII Standard.

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

В России расстояние по вертикали между двумя последовательными отсчетами в лас-файле обычно принимается равным 0.2 м. Это расстояние называется шагом квантования по глубине.

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

лас-файл
Типичный вид LAS файла, открытого с помощью текстового редактора

Возможности языка программирования Python позволяют значительно упростить различные повторяющиеся операции с las-файлами. В данной статье мы рассмотрим использование библиотеки lasio для чтения и обработки las-файлов с помощью Python.

Данная библиотека позволяет создавать, записывать, обрабатывать лас-файлы, экспортировать их в файлы других форматов, таких как CSV, XLSX. Lasio имеет удобную интеграцию с pandas.

Нижеприведенный код содержит все, что нужно для того, чтобы прочитать Las-файл с помощью lasio:

import lasio

las = lasio.read(r"c://Users//PY3/Well logs/147.las")

Keys=las.keys()

Как видно, чтение .las файлов с помощью данной библиотеки производится всего в одну строчку. На выходе в переменной Keys мы получим список кривых (мнемоники), содержащиеся в обрабатываемом лас-файле. В нашем тестовом файле это:

[‘DEPT’, ‘GR’, ‘NGL’, ‘DS’, ‘DTP’, ‘GGK-P’, ‘PZ’]

Затем, для простоты дальнейшего обращения с загруженными кривыми можно присвоить им соответствующие переменные:

gr= las['GR']
dept= las['DEPT']
ngl = las['NGL']
dtp = las['DTP']

print (dept)

Следующий блок кода – это исключительно отображение кривых каротажа в виде изображения. По сути, данный код направлен только на то, чтобы настроить визуальное отображение данных (подписываем названия кривых, изменяем их цвет).

#визуализация кривых лас-файла
import matplotlib.pyplot as plt

fig, ax1 = plt.subplots(figsize=(12, 4))

color = 'tab:red'
ax1.set_xlabel("Depth, m")
ax1.set_ylabel("GR, gAPI", color=color)
ax1.plot(dept, gr, color=color, label=str(Keys[1]))
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx() 

color = 'tab:blue'
ax2.set_ylabel("NGL, m3/m3", color=color)
ax2.plot(dept, ngl, color=color, label=u'NGL')
ax2.tick_params(axis='y', labelcolor=color)

ax3 = ax1.twinx() 

color = 'tab:green'
ax3.set_ylabel("DTP, us/ft", color=color)
ax3.plot(dept, dtp, color=color ,label=u'DTP')
ax3.tick_params(axis='y',size=12, labelcolor=color, pad=40)

plt.grid(True)

fig.tight_layout() 

#сохранение изображения
fig.savefig('Logs.png', dpi=200, orientation='landscape')
plt.show()

В итоге, запустив все вышеуказанные блоки нашего кода мы получим изображение, содержащее три выбранных кривых из нашего файла. В нашем случае мы отобразили GR – гамма каротаж, NGL – нейтронник и DTP (интервальное время пробега P-волны).

обработка las-файла в python
Визуализация кривых лас-файла в Python

Следующими действиями можно приступить, например, к расчетам синтетических кривых ГИС, расчету или прогнозированию пористости с помощью нейронных сетей, записи las-файлов с выбранным набором кривых, или записи необходимых параметров в шапке лас файла и т.д.

Рекомендуем также прочитать статью о том, как открывать segy-файлы с помощью библиотеки obspy.

Понравилась статья? Сделай репост: