张敏 史纪强 任恩茂 王川川 苗勇
Petrel软件是一种广泛应用于油气勘探和开发领域的三维地质建模软件。该软件拥有强大的数据处理和可视化功能,可以帮助用户更加直观地了解地质情况,并进行精确的分析和预测。但是,在实际应用中,综合解释用户经常要将特定数据库中的数据集成到Petrel中进行进一步的研究和应用。目前油田已逐步建成包括生产动态、地震、录井、测井、试油等高度共享并兼顾油田生产、科研、管理、决策的勘探数据库。因此,如何实现Petrel软件与勘探数据库之间的数据交互,以获取更加全面和准确的数据信息成为了一个重要的问题。本文基于Ocean二次开发平台,设计了一个数据通道插件,用于实现Petrel软件与勘探数据库之间的数据交互。
Ocean是一个以加速勘探开发软件输出成果为目的的开放式API软件开发框架,用户可以利用Ocean这一软件开发框架来自由地设计新的应用插件,是用户进行应用软件开发的工具。Ocean for Petrel是专门针对Petrel的二次开发平台,开发人员可以借助Petrel自身强大的数据管理以及展示功能开发插件,插件依托于Petrel的运行环境,实现用户的一些特定的需求或算法。Ocean提供了丰富的API接口和组件库,使得用户可以自定义各种功能模块,以满足特定的需求。
Petrel数据模型的分析从其涉及的专业领域入手,按照专业领域分析其数据类型及数据字段,大体分为测井曲线数据模型、井分层点数据模型、层解释结论(沉积相)数据模型、射孔数据模型、录井岩性解释数据模型、圈闭数据模型、储量(有效厚度)数据模型、地震体数据模型、地震层位解释数据模型、地震断层解释数据模型、结构化规则网格面数据模型、基于Pillar的断层面数据模型、基于Pillar的角点网格体模型、属性体数据模型等。
结合勘探数据库的数据模型,从对象组织方式、命名差异、属性值差异、专业应用差异等方面,寻找模型之间的差异点,探讨两模型之间差异的解决方法,制定数据映射规则。由于Petrel软件和勘探数据库中数据的组织方式不同,因此在进行数据交互时,需进行相应的数据格式转换,以便Petrel软件能够正确地解析和显示数据。
系统以微服务架构方式进行开发,从切面观察每个应用服务进行垂直独立开发,根据职责划分层次,从上而下分为四个层次,分别为Web 层、服务接口层、业务逻辑层及数据访问层。在Petrel数据通道插件开发中,采用Ocean框架实现与Petrel系统的无缝对接,以plug-in组件的方式嵌入到Petrel系统中,实现Petrel与勘探数据库之间的高效对接。
(一)数据服务接口
面向勘探数据库,采用WCF服务和JSON报文格式,定义数据接口规范,使用数据服务接口连接到数据库,实现数据的查询、提取等功能。经过剔除无效信息等数据处理,最后生成JSON格式的数据。通过对业务需求的调研和提炼,提出了面向业务研究的数据服务接口设计方案,大致分为地震类、钻井类、录井类、测井类、试油类、分析化验类、油藏开发类等。
(二)数据格式转换
在设计数据通道插件时,针对数据格式转换的问题,采用编写代码方式实现,将获取到的数据按照Petrel软件可识别格式进行解读、格式转换等操作。提供数据服务和客户端的开发模板,建立起勘探数据库数据通道,加载数据包括地震数据、井数据、断层、层位、建模数据等。
(三)测井曲线的提取
測井曲线包括声波时差、自然电位曲线等多条曲线,并且在勘探数据库中,存在测井曲线分段存储为多个文件的情况,所以本插件实现了对多种测井曲线及多段曲线单独处理及加载的功能。
(四)岩性数据加载
由于不同综合解释人员在使用岩性分类时的要求不同,因此在本插件设计时,将勘探数据库中上百种岩性数据按照四种分类方式进行划分。分别为三类、五类、七类和九类。用户可自行在下拉列表中选择所需岩性分类。对于部分岩性数据从数据库下载后,出现的上下层段深度重叠交叉的情况,插件分别针对顶底深区间覆盖和交叉等情况进行了处理。
综合解释人员在井位、致密油井位、产能建设等多项工作多个地震工区中,应用本插件加载数据,包括井口、井斜、测井曲线、井分层、断层、岩性数据等,加载数据格式正确,大大缩短了数据收集工作的时间,提高了效率。
基于Ocean二次开发平台的数据通道插件使用数据服务接口获取勘探数据库中的数据,应用0cean在数据处理领域中提供的各类服务、组件和公共图形用户接口,实现了在Petrel中直接查询、提取数据库中数据的功能,改变了传统数据加载模式,大大提高了数据处理加载的效率。同时,该插件还可以扩展其他数据源,满足不同领域的需求。