GeoReveal(极睿)解释平台集成开发技术

摘 要

GeoReveal解释平台解决了川庆钻探工程有限公司测井公司多年来研究成果的软件化和集成化问题,能以较低的成本和用户使用风险、在较短的时间内完成测井解释专业软件平台的集成开发工作。

摘要:集成开发技术是当前软件工程领域的一个热点。为了适应测井现场及解释基地的需要,川庆钻探工程有限公司测井公司通过多年的软件集成研发技术的探索,开发了一套从4 mm磁带读写、数据格式解编、数据预处理、专业解释处理、测井综合分析到测井图形输出等一系列功能齐全的测井资料处理解释软件包——GeoReveal(极睿)解释平台2010。现场应用效果表明:该平台在系统数据管理上较好地解决了常见格式测井数据向解释平台的转换和存储问题;在专业分析方面,以简单直观的流程链操作方式,实现了测井解释工作的完全屏幕化和电算化;在系统图形绘制能力方面,以面向对象为基础的测井资料复合型文档新概念,实现了各类测井处理成果同通用办公软件的无缝对接,统一、规范了测井解释图件。GeoReveal解释平台解决了川庆钻探工程有限公司测井公司多年来研究成果的软件化和集成化问题,能以较低的成本和用户使用风险、在较短的时间内完成测井解释专业软件平台的集成开发工作。
  关键词:测井;资料解释;集成开发技术;GeoReveal解释平台;软件;管理
  软件集成开发是一项实实在在的技术[1],当今微软的Windows操作系统、Office办公系统能在个人计算机上占据主导地位,软件集成开发是其做得最优秀的技术之一。为了适应测井现场及解释基地的需要,川庆钻探工程有限公司测井公司通过多年的软件集成研发技术的探索,开发了一套从4mm磁带读写、数据格式解编、数据预处理、专业解释处理、测井综合分析到测井图形输出等一系列功能齐全的测井资料处理解释软件包——GeoReveal(极睿)解释平台2010。
  1 平台集成管理技术
  LogShell为GeoReveal解释平台的集成管理软件,由井资源管理、解释服务管理和网络数据传输3大功能模块构成。具体完成4 mm磁带读写、测井数据格式转换、平台内部数据管理、数字处理方法快速启动、图形分析模板及成果文档管理、平台用户间数据传输等主要工作。如图1所示,在用户界面上可以清晰地分两大区域,共13个属性夹方式的层叠窗口,上部为资源管理,下部为解释服务管理;常驻内存的NetShell完成用户间在局域网内点对点的通讯和井资源传输,实现平台用户间的网络数据共享。
  1.1 井资源管理
  在图1中,集成管理软件界面上半部分4个窗口完成用户工区管理、单井管理、测井项目管理和普通文件管理等工作。在井资源管理模块中实现单井、测井项目、测井曲线的快速拷贝、复制、粘贴功能,用户可以方便地实现测井项目的合并及预处理前的数据备份。
  1.1.1 用户工区管理
  在集成管理软件左上部“工区地图”层叠窗口中,以表单形式显示出用户工区中所有单井资源。利用鼠标右键,弹出菜单来启动单井资源的各项管理功能。
  1.1.2 单井资源管理
  在“工区地图”中设置当前工作的目标井后,集成管理软件右上角会以目录树的形式显示出目标井中所有的测井项目。
  “目标井资源”窗口完成该井中所有测井项目的管理,也是“测井曲线”及“成果文档”窗口的导航目录树。在该窗口中,利用鼠标选中某一测井项目后,单击鼠标右键,弹出菜单启动单项目或多项目的各项处理功能。
  “测井曲线”窗口完成某一测井项目中所有测井曲线的属性查询及各项处理功能。在该窗口中,利用鼠标选中曲线后,右键弹出菜单来启动单曲线或多曲线的各项处理功能。
  1.2 解释服务管理
  在平台扩展开发技术支撑下,目前完成了7个方面共80个模块的软件集成研发工作,均以解释服务子项目的方式进行管理,解释服务子项目实现了专业处理方法与相关的图形分析模板一并进行分类管理。图1底部为平台中的全波处理服务子项,它包括了新建综合绘图、全波处理流程管理、全波信提取、井眼补偿处理、环向异性分析、地层渗透率反演及相关质量控制和图形分析模板。
  解释平台完全注册后,按测井解释工作所面临的主要任务,缺省情况由8个解释服务子项进行管理,即数据In/Out、常规数据预处理、常规数据分析、裸眼井储层评价、工程测井评价、成像资料处理、全波资料处理、辅助工具。用户可根据需要来增减或修改服务子项,例如:作一个区块评价项目时,用户可以将扩展开发的适应这个区块的专用处理程序和新的一些图形分析或数据交会分析模板一起新建一个解释服务子项,这样用户就可以方便地在该服务子项中完成近期的解释评价工作。
  2 平台扩展开发技术
  平台扩展开发技术是整个软件工程中最关键的部分,它不但决定项目的研发进度,而且关系软件平台的稳定性,同样影响以后软件平台的推广使用范围。对C++开发人员比较成熟的是动态链接库技术[2],它即可以让项目研究人员减少重复工作、实现软件成果共
  享,又能较好地解决技术保密的问题。
  2.1 C++用户扩展开发
  表1为用户扩展开发中常用函数库,这5类函数库都进行了面向对象封装,可以较好地满足各种层次开发人员的编程需要。表1中简单地列出了单条曲线(常规、阵列)管理的基础类CFIDi0和常规处理程序数据接口函数类Cl。ogProcess,以及用于测井绘图和数据分析的函数类;C++程序开发人员可以按照Microsoft Visual Studio.net规则调用其中的类或函数来轻松完成用户所需要的二次开发。
  2.2 Fortran用户扩展开发
  对较早的一些使用Fortran语言开发的成果,以及解释平台的主体用户,提供可视化、简洁独立的Fortran语言开发工具是一个较完整的测井解释平台所必不可少的任务。
  LogFortran测井解释处理程序开发环境,能将川庆测井公司原有DOS下开发的解释处理程序直接编译链接,生成Windows图形环境下的执行程序,主要包括以下几方面。
  2.2.1 Fortran扩展库
  Fortran扩展库LogSys.lib主要是针对常规测井资料处理而开发的多曲线输入、输出、多参数输入的一系列子程序包,又称为Fortran程序数据接口。
  CONST:按照所处理的深度在缓冲区中读取参数变量值。
  IN:按照程序所定义的输入曲线情况将该深度点的数据读入缓冲区中,并对应匹配给程序的曲线变量。
  OUT:按照程序所定义的输出曲线情况将该深度点的输出曲线变量值写入缓冲区,并将缓冲区输出块数据写回用户区该井所在磁盘目录中。
  2.2.2 LogFortran开发环境
  LogFortran是一个利用标准Fortran90编泽器将Fortran代码编泽成目标代码后,自动链接所需要的测井处理图形界面和Fortran扩展库LogSys.lib数据接口,形成能独立运行的测井解释处理程序。
  2.2.3 新建解释处理程序向导
  LogFortran开发环境为用户提供了新建程序向导,启动新建子项后,开发人员可以在向导的帮助下,轻松地完成新建一测井处理程序的所有工作。
  3 平台综合绘图技术
  平台综合绘图软件LogPlot继承了国内外主流测井处理系统的多井绘图思路,以面向对象为基础,将各种测井资料、地质资料、录井资料、岩心分析资料等信息设计成图形对象,分别定义对象的属性及其相互间关系来完成图形排列和制图。用户可以轻松地将各种资料(测井曲线、成果剖面、交会图、频谱图、倾角成果图、声电成像图、波形变密度图、质量控制图……)任意组合形成复合型测井绘图文档。
  3.1 类的划分和继承
  一个多功能的绘图软件,就可以是一项庞大的工程,测井绘图的研究较为成熟,但以前的绘图软件功能相对单一,针对不同目的都开发了各自独立的软件,这些图件很难组合到一起,更不用说多井对比图形的绘制。
  要解决这些问题,采用面向对象程序设计理念是最佳的选择[3]。在图2软件主要类的划分及继承关系图中,CDrawObj类是直接从CObject继承而来的所有测井图形类的基类,主要保存着图形对象的绘图区域(m_Rect)和当前绘图文档的指针(*pDoc),完成光标在屏幕上的滚动DoScroll(CScrollView*pView),保存、显示当前光标所在位置等功能,它是测井绘图软件所有对象动态识别的入口。
  3.2 程序实现方法
  LogPlot采用多文档多视(MultiDocument-MultiView)框架,文档类从OLE文档类继承而来(class CLogPlotDoc:public ColeDocument),支持对象嵌入。整个绘图文档采用3个对象链表类(CObList)来管理,图头对象管理类m_HeadList,与深度有关对象管理类m_TrackList,标注对象管理类m_RemObjList。链表类支持动态空间分配,用户可以根据自己的需要来任意组合复杂的图件。
  绘图设备的映射模式采用MM_ANISOTROPIC模式,SetMapMode函数可以轻松地实现图件的灵活缩放功能。
  3.2.1 屏幕上图形平滑过渡
  为实现屏幕图形的平滑滚动及对象操作时图形的平滑过渡,LogPlot采用了双设备描述表,在内存中定义一个与显示设备完全兼容的设备描述表m_MemDC,实现用户的所有操作,再利用CDC类的BitBlt功能将剪裁框内的图像拷贝到显示设备上。
  3.2.2 保存为超长位图文件
  生成测井行业的超长图形文件,按通常的方法很难实现。LogPlot采用了将绘图设备中的内容分块读出,然后按位图文件格式写入磁盘文件,这样既可以解决超长位图的问题,又可以灵活改变图形的灰度,减少文件大小。如单色、16色、16位色、24位色等位图文件。
  3.2.3 形成Unix系统下的光栅文件
  Unix系统下的光栅文件可以利用系统的CAT命令在GS612、XEROX等绘图仪上输出,Unix系统下的光栅文件它实际上是单色图形点阵,一字节对应绘出8个点,1代表着色,0代表不着色,LogPlot是在磁盘上形成单色位图文件后,将位图文件里位图点阵区的数据读出,对二进制数据的每位取反(“~”操作),写入光栅文件。
  4 平台应用情况
  目前该软件平台正担负着川庆钻探工程有限公司测井公司内外部市场主要测井解释处理任务,为测井解释技术成果集成提供了有形化的平台。在川庆钻探工程有限公司地质研究院、中国石油西南油气田公司等10家二级单位相关专业人员的近百台计算机上广泛使用,取得了较好的应用效果。平台的全面推广使用,最大限度地提高了测井解释人员的工作效率和工作质量,并为多专业中间技术成果共享提供很好的技术支撑。
  5 结束语
  集成开发技术使GeoReveal(极睿)解释平台具有较好的稳定性和扩展性。在系统数据管理能力方面,较好地解决了常见格式的测井数据向解释平台的转换和存储;在专业分析能力方面,简单直观的流程链操作方式,实现了测井解释工作的完全屏幕化和电算化,极大地减少了测井解释人员日常繁琐的事务;在系统图形绘制能力方面,以面向对象为基础的测井资料复合型文档新概念,实现了各类测井处理成果同通用办公软件的无缝对接,统一规范的测井解释图件,最大限度地提高了测井解释人员的工作效率和工作质量。
  参考文献
  [1] 胡广书.数字信号处理——理论、算法与实现[M].北京:清华大学出版社,1999.
  [2] 官章全,刘加明.Visual C++ 6.0类库大全[M].北京:电子工业出版社,1999.
  [3] 兰芸.Visual C++ 6.0编程实例精解[M].北京:北京希望电子出版社.2000.
  (本文作者:赵中明 齐宝权 张树东 川庆钻探工程有限公司测井公司)