Задумались о том, как открыть или визуализировать лас-файл? Библиотека lasio для Python предлагает все основные функции для того, чтобы обрабатывать данные каротажа в пакетном режиме.
LAS-файл – это текстовый файл в кодировке dos, создаваемый по определенному стандарту и содержащий дискретные значения каротажных кривых, записанные с определенным шагом по глубине в процессе проведения геофизических исследований скважин. Сокращение LAS расшифровывается как Log ASCII Standard.
Один LAS файл может содержать данные только по одной скважине, но при этом может вмещать в себя неограниченное количество кривых каротажа. Содержащаяся в лас-файлах информация, например, может использоваться при построении геологических моделей.
В России расстояние по вертикали между двумя последовательными отсчетами в лас-файле обычно принимается равным 0.2 м. Это расстояние называется шагом квантования по глубине.
Несмотря на то, что на сегодняшний день существует большое количество геофизических пакетов и программ, позволяющих обрабатывать лас-файлы, тем не менее не всегда есть возможность их бесплатного или коммерческого использования.
Возможности языка программирования 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-файлов с выбранным набором кривых, или записи необходимых параметров в шапке лас файла и т.д.
Рекомендуем также прочитать статью о том, как открывать segy-файлы с помощью библиотеки obspy.