基于Python的油田生产资料预处理软件设计与应用
2020-06-03张田王辰昊
张田,王辰昊
(中国石油新疆油田公司 勘探开发研究院,新疆 克拉玛依 834000)
在实际工作中,由于基础资料类型繁多、数据零散,整理起来让技术人员费尽脑汁[1],整理数据的时间约占项目周期的30%~40%[2]。通过前期调研,梳理了国内各大油田内部主要使用的资料整理软件,见表1所列,可以归纳为六大类,分别是地质类、测井类、绘图类、地震解释类、地震反演类及建模数模类。在软件使用过程中发现,从建立工区到数据成图,主要涉及到钻井、录井、测井、试油四大类基础地质资料[3]。油田软件对于数据加载格式主要包括以下四种[4-6],分别是.las,.txt,.lis,.xls格式。各大油田建立的资料数据库中,原始数据格式类型多,包括文本文件格式、716存储格式、表格格式等。除了数据格式的多样性外,文件表头也不统一,有中文表头、英文表头、中英文表头。不同油田软件对数据格式的要求,以及数据之间格式转换都是资料预处理面临的问题。
除了上述问题外,目前,油田内部使用的资料预处理软件也有多种,见表2所列。该类软件功能均过于单一,并未达到集成化和针对性解决油田资料预处理的目的,国内外已有的大型资料预处理平台,比如斯伦贝谢推出的Geofram平台[7],中国石油集团测井有限公司技术中心研发的LEAD平台等[8],对于操作系统、运行环境都有严格的要求,并且维护难度较大[9-11]。除此之外,对于试油试采资料方面,暂未有相关的预处理软件,该类资料在日常的工作中,不仅数据量庞大,而且整理耗时长,对试油试采资料的预处理,也是油田日常工作中需重视的问题。
表1 油田常用资料整理
表2 资料预处理软件清单
1 软件设计思路及功能体系建立
1.1 编程语言优选
目前,主流的编程语言主要有Java,C++,C,Python,Visual Basic等。从实际编译方面出发,归纳出5种编程语言的特点见表3所列。
表3 五种编程语言特点简介
相比于其他编程语言,Python语言具有更加快捷的开发速度,语法简洁易于扩展和嵌入,便于充分利用不同编程语言的优势[12]。因此,选用Python语言来开发油田生产资料预处理软件——红番茄,这也是将Python编程语言运用到油田生产中的探索性尝试。
1.2 软件功能体系建立
为充分调用Python语言的多种数据库,进一步实现实际工作中对于资料预处理工作的需求,根据Python语言自身特点,提出功能集成化的软件设计思路,如图1所示。
图1 红番茄软件设计思路示意
红番茄软件运用Python语言编写,共有五大模块,分别是: 试油参数提取模块、原始数据转Forward模块、原始数据转标准模块、原始数据转LAS模块以及原始曲线拼接模块。截止目前,红番茄软件一共可实现13项预处理功能,如图2所示。同时,考虑到实际工作中问题的多样性,红番茄软件预留了更新模块,用于后续的软件升级和优化。
图2 红番茄软件资料预处理功能框架示意
针对windows XP及以上版本测试了软件模块,均可正常运行,红番茄软件应用程序直接安装后即可运行,无需其他配套要求。
试油参数提取模块主要用于试油数据的提取工作,既可以提取整列数据,也可以通过设定首尾关键字提取关键字间的数据。原始数据转Forward模块,主要有4项功能: 为测井曲线批量添加Forward表头;利用比例系数统一气测曲线数量级;从测井曲线集中挑选所需曲线转为Forward格式;对曲线重采样并剔除奇异值。
原始数据转标准模块也具有4项功能: 批量去除特殊表头,主要用于Forward工区导出的曲线数据,以及从原始数据库中下载的716存储格式曲线数据;将原始的岩性数据转换为标准的石文软件加载格式;从测井曲线中挑选所需曲线转为标准格式;对曲线进行重采样并剔除奇异值。原始数据转LAS模块,主要用于原始数据向LAS格式的批量转换,同时也可以实现曲线重采样以及异常值剔除。原始曲线拼接模块,主要将多次测量的测井曲线进行深度拼接,该模块提供自动和手动两种拼接方式。
通过分模块测试和集中封装测试,红番茄软件对于原始数据加载、数据格式转换、试油参数提取、测井曲线拼接均能很好实现,尤其是从原始测井数据中自动拾取常规9条曲线的功能,提高了科研分析人员筛选有效数据的效率,为室内油田生产资料预处理提供新方法。
2 实例分析
以新疆油田实际生产资料数据为例进行软件测试,随机选取154口开发井和312口评价井数据,利用红番茄软件分析数据加载格式和转换耗时两方面性能。
2.1 兼容性分析
红番茄软件具有较好兼容性,主要表现在两方面: 一方面对文件格式的兼容性好,可以直接转换文本格式和Excel格式的文件;另一方面对数据格式兼容性好,如数据格式为中文表头、英文表头或中英文混合表头的,均可直接批量转换,以批量添加Forward表头为例,通过使用Forward表头添加功能,可批量将原先的中文表头、英文表头及中英文表头转换为标准的Forward格式,便于Forward软件加载成图。
利用红番茄软件兼容性好的特点,不仅简化了资料预处理过程,而且为后期软件数据加载提供了方便。
2.2 高效性分析
为进一步验证红番茄软件的执行效率,从X1井区选取了154口开发井的测井曲线,从X2井区评价系统数据库中随机选取了312口评价井的测井曲线分别进行了测试。测试结果表明,利用红番茄软件对生产资料进行预处理,相比于手工和半自动化处理的模式,大幅缩减至原耗时间的约33%。
总的来说,对于测井曲线快速批量格式转换、有效信息提取、曲线批量挑选以及特殊表头批量处理等,红番茄软件均能高效完成。随着生产资料数量的增大、数据类型的增多、格式混杂程度的增加,红番茄软件兼容好、效率高的优势便会更加突显。
3 结束语
在将计算机语言的优势应用到油田实际生产资料预处理过程中,得到以下结论:
1)将Python编程语言易扩展的优点引入到油田生产资料预处理软件中是能够实现的。
2)利用Python语言编写的红番茄软件,实现
了油田生产资料预处理功能集成化的目的,并添加了试油资料整理功能,进一步弥补了之前预处理软件的不足。
3)红番茄软件对提高实际油田生产资料预处理工作效率能够发挥积极作用,该结论也为国内面临相同生产资料预处理问题的油田提供参考。