TA的每日心情 | 开心 2014-1-11 00:20 |
---|
签到天数: 38 天 [LV.5]常住居民I
|
马上注册,下载丰富资料,享用更多功能,让你轻松玩转阳光石油论坛。
您需要 登录 才可以下载或查看,没有账号?欢迎注册
x
本帖最后由 Joseph 于 2021-5-14 10:38 编辑
早期版本Petrel的一个缺点,是无法实现测井曲线的选择输出。
这样输出的LAS或者类似LAS的ASCII码文件每口井一个文件,LAS里包含了所有的曲线,无法进行特定筛选。这个问题好像一直到v2020才解决。正在使用早期版本的同行可以通过一个Python的LAS模组lasio(目前版本号0.29,文档参考lasio - Log ASCII Standard (LAS) files in Python — lasio 0.29 documentation)来解决这个问题。
import lasio
import os
import re
def getLAScurves (path, *curvename):
for filepath,dirnames,filenames in os.walk(path, topdown=False):
for filename in filenames:
if ( ".las" in filename ):
fullname = os.path.join(filepath,filename)
LASw = lasio.LASFile()
print (fullname + ':')
LASr = lasio.read(fullname)
writeFlag = 0
for items in LASr.well:
## items.mnemonic = re.sub(u"\\<.*?>", "", str(items.mnemonic))
## items.unit = re.sub(u"\\<.*?>", "", str(items.unit))
items.value = re.sub(u"\\<.*?>", "", str(items.value))
## items.descr = re.sub(u"\\<.*?>", "", str(items.descr))
if (len(str(items.value))>90):
items.value = ""
print ( LASr.well )
LASw.well = LASr.well
LASw.add_curve ('DEPT', LASr.index, unit='m')
for curve in LASr.curves:
for curveselect in curvename:
if (curve.mnemonic == curveselect):
writeFlag = 1
print (str(curve.mnemonic))
LASw.add_curve (curveselect, LASr[curveselect], curve.unit)
if ( writeFlag == 1):
LASw.write (fullname.replace(".las","_slct.LAS"), version=2)
getLAScurves ( "Reservoir_Interpretation_Data20200309", "PORO", "SW" )
这一段脚本就是需要你在当前工作目录内建立一个文件夹“Reservoir_Interpretation_Data20200309”,然后把你从Petrel输出的LAS文件(目前规定.las为小写)放进这个文件夹,然后按自己需要输人曲线名(不是类型,而是名字),等它运算完成即可。脚本中间有一段蓝色字段是因为Techlog输出的解释数据出现大量表格一样的东西,目前因Petrel对此并不敏感而且lasio模组仍不支持所以进行了粗暴剪切处理。如果las没有这种情况脚本更简短些。
|
|