收藏 分销(赏)

GeoReveal极睿解释平台集成开发技术.doc

上传人:仙人****88 文档编号:12021176 上传时间:2025-08-28 格式:DOC 页数:7 大小:371KB 下载积分:10 金币
下载 相关 举报
GeoReveal极睿解释平台集成开发技术.doc_第1页
第1页 / 共7页
GeoReveal极睿解释平台集成开发技术.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
GeoReveal极睿解释平台集成开发技术 赵中明 齐宝权 张树东 摘 要:集成开发技术是当前软件工程领域的一个热点,本文通过川庆钻探工程有限公司测井公司《极睿解释平台2010》开发实例介绍了石油测井解释专业软件平台集成开发中的平台集成管理技术、平台扩展开发技术及平台综合绘图技术;实践证明,它能较好地解决了一个公司多年来研究成果的软件化和集成化问题,实现较低成本和用户风险、在较短的时间内完成测井解释专业软件平台的集成开发工作。 关键词:集成开发技术 测井解释 软件平台 集成管理 扩展开发 综合绘图 Integrated development technology for GeoReveal software Zhao zhongming Qi baoquan Zhang shudong ABSRACT:The integrated development technology is a hot point in current software engineering field, this article introduced the integrated platform management technology、the platform expansion development technology and the platform Synthesis plotting technique by the example of GeoReveal2010 of CCDC Well Logging Company. The practice result shows that it could be used to solve the long existed problem that how to turn the research achievements into software and at the same time integrate them., it could lower cost and reduce consumer's risk, and complete the integrated development work of the specialized logging interpretation software platform in a short time. KEY WORDS:integrated development technology,well logging interpretation,software platform,integration management,expansion development,synthesis plotting 0 引言 软件集成开发是一项实实在在的技术[1],当今微软的Windows操作系统、Office办公系统能在个人计算机上占据主导地位,软件集成开发是他做得最优秀的技术之一。为了适应测井现场及解释基地的需要,川庆钻探工程有限公司测井公司通过多年的软件集成研发技术的探索,形成了一套从4mm磁带读写、数据格式解编、数据预处理、专业解释处理、测井综合分析到测井图形输出等一系列功能齐全的测井资料处理解释软件包(极睿解释平台2010)。 1 平台集成管理技术 LogShell为极睿解释平台的集成管理软件,由井资源管理、解释服务管理和网络数传输三大功能模块构成。具体完成4mm磁带读写、测井数据格式转换、平台内部数据管理、数字处理方法快速起动、图形分析模板及成果文档管理、平台用户间数据传输等主要工作。如图1所示,在用户界面上可以清晰地分两大区域,共13个属性夹方式的层叠窗口,上部为资源管理、下部为解释服务管理;常驻内存的NetShell完成用户间在局域网内点对点的通讯和井资源传输,实现平台用户间的网络数据共享。 1.1 井资源管理 在图1中,集成管理软件界面上半部份4 个窗口完成用户工区管理、单井管理、测井项目管理和普通文件管理等工作。在井资源管理模块中实现单井、测井项目、测井曲线的快速拷贝、复制、粘贴功能,用户可以方便地实现测井项目的合并及预处理前的数据备份。 图1 平台集成管理主界面 1)用户工区管理 在集成管理软件左上部“工区地图”层叠窗口中,工区地图目前为表单形式显示出用户工区中所有单井资源。对工区下单井资源的管理都是在该窗口中,利用鼠标右键,弹出菜单来起动单井资源的各项管理功能。 2)单井资源管理 在“工区地图”中设置当前工作的目标井后,集成管理软件右上角会以目录树的形式显示出目标井中所有的测井项目。选中某一测井项目后,左边“测井曲线”层叠窗口中会以表的形式显示出该测井项目中所有的测井曲线,同时“成果文档”层叠窗口中也会以表的形式显示出该测井项目中所有的成果文件。 “目标井资源”窗口完成该井中所有测井项目的管理,也是“测井曲线”及“成果文档”窗口的导航目录树。在该窗口中,利用鼠标选中某一测井项目后,单击鼠标右键,弹出菜单来起动单项目或多项目的各项处理功能。 “测井曲线”窗口完成某测井项目中所有测井曲线的属性查询及各项处理功能。在该窗口中,利用鼠标选中曲线后,右键弹出菜单来起动单曲线或多曲线的各项处理功能。 1.2 解释服务管理 在平台扩展开发技术支撑下,目前完成了7个方面共80个模块的软件集成研发工作,均以解释服务子项目的方式进行管理,解释服务子项目实现了专业处理方法与相关的图形分析模板一并进行分类管理。图1底部为平台中的全波处理服务子项,它包括了新建综合绘图、全波处理流程管理、全波信提取、井眼补偿处理、环向异性分析、地层渗透率反演及相关质量控制和图形分析模板。 解释平台完全注册后,按测井解释工作所面临的主要任务,缺省情况由8个解释服务子项进行管理:数据In/Out、常规数据预处理、常规数据分析、裸眼井储层评价、工程测井评价、成像资料处理、全波资料处理、辅助工具;用户可根据需要来增减或修改服务子项,如:作一个区块评价项目时,用户可以将扩展开发的适应这个区块的专用处理程序和新的一些图形分析或数据交会分析模板一起新建一解释服务子项,这样用户就可以方便地在该服务子项中完成近期的解释评价工作。在图1中, “土库曼储层评价” 为用户新增的服务子项。 2 平台扩展开发技术 平台扩展开发技术是整个软件工程中最关键的部份,它不但决定项目的研发进度,而且关系软件平台的稳定性,同样影响以后软件平台的推广使用范围。对C++开发人员比较成熟的是动态链结库技术[2],它即可以让项目研究人员减少重复工作、实现软件成果共享,又能较好地解决技术保密的问题。 2.1 C++用户扩展开发 表1为用户扩展开发中常用的一此函数库,这5类函数库都进行了面向对象封装,可以较好地满足各种层次开发人员的编程需要。表中简单地列出了单条曲线(常规、阵列)管理的基础类CFIDio和常规处理程序数据接口函数类CLogProcess,以及用于测井绘图和数据分析的函数类;C++程序开发人员可以按照Microsoft Visual S规则调用其中的类或函数来轻松完成用户所需要的二次开发。 分类 头文件 主要应用 目标接口文件 动态链结库 软件界面 UIFlatBar.h 统一风格的工具栏 TopUINet.Lib TopUINet.dll UIMenuBar.h 统一风格的菜单栏 SkinWin.h 统一风格的皮肤 数据接口 DataBase.h 数据库文件读写 LogBaseNet.Lib LogBaseNet.dll FIDio.h 单条曲线读写 FIDioNet.Lib FIDioNet.dll LogProcess.h 处理软件读写接口 LogSysNet.Lib LogSysNet.dll 测井绘图 MinFontDialog.h 字体设置 PlotNet.Lib PlotNet.dll LineListPage.h 框线设置 FillListPage.h 填充设置 Style.h 填充及曲线绘制 数学方法 DIPCalculate.h 倾角计算 GeoMathNet.Lib GeoMathNet.dll MathString.h 表达式计算 FitCircle.h 拟合圆 Gradient.h 配色方案计算 … … 表1 扩展开发函数库文件对应表 2.2 Fortran用户扩展开发 对较早的一些使用Fortran语言开发的成果,以及解释平台的主体用户,提供可视化、简洁独立的Fortran语言开发工具是一个较完整的测井解释平台所必不可少的任务。 LogFortran测井解释处理程序开发环境,以前按3700软件包格式开发的程序,只需稍作修改就可以编译、链接生成Windows图形环境下的执行程序,川庆测井公司原有DOS下开发的解释处理程序可以直接编译链接。 图2 LogFortran开发环境 1)Fortran扩展库 Fortran扩展库LogSys.lib主要是针对常规测井资料处理而开发的多曲线输入、输出、多参数输入的一系列子程序包,又称为Fortran程序数据接口。 LogSys.lib主要包括以下内容: RDFLNM:定位用户区内井的数据,并在该测井项目中寻找是否有处理程序所需要的参数文件,若有则将参数文件加载到缓冲区,否则利用省参数值,在缓冲区中建立参数文件。 CONST:按照所处理的深度在缓冲区中读取参数变量值。 IN:按照程序所定义的输入曲线情况将该深度点的数据读入缓冲区中,并对应匹配给程序的曲线变量。 OUT:按照程序所定义的输出曲线情况将该深度点的输出曲线变量值写入缓冲区,并将缓冲区输出块数据写回用户区该井所在磁盘目录中。 2)LogFortran开发环境 如图2所示,LogFortran是一个利用标准Fortran90编译器将Fortran代码编译成目标代码后,自动链接所需要的测井处理图形界面和Fortran扩展库LogSys.lib数据接口,形成能独立运行的测井解释处理程序。 3)新建解释处理程序向导 LogFortran开发环境为用户提供了新建程序向导,在菜单文件项中有一新建子项,起动新建子项后会出现新建程序向导,开发人员可以在向导的帮助下,轻松地完成新建一测井处理程序的所有工作。 3 平台综合绘图技术 测井综合绘图继承了国内外主流测井处理系统的多井绘图思路并进行了全面创新,建立了以面向对象为基础的测井资料复合型文档新概念。它采用面向对象的设计方法,将各种测井资料、地质资料、录井资料、岩心分析资料等测井信息都设计成图形对象,以图形方式进行显示,定义各图形对象的特性及其相互之间的关系来完成图形排列和制图。用户可以轻松地将各种资料(测井曲线、成果剖面、交会图、频谱图、倾角成果图、声电成像图、波形变密度图、质量控制图...)任意组合;综合绘图文档能够在任意Window驱动的标准打印机和绘图仪上连续打印输出。 3.1 类的划分和继承 图3 测井绘图软件类示意图 一个多功能的绘图软件,就可以是一项庞大的工程,测井绘图的研究较为成熟,从PE机到工作站到微机,从打印机到绘图仪都有各自较为完善的底层绘图模块,但以前的绘图软件功能相对单一,针对不同目的都开发了各自独立的软件,这此图件很难组合到一起,更不用说多井对比图形的绘制。要解决这些问题,采用面向对象程序设计理念是佳的选择[3],图3为软件主要类的划分及继承关系图。 在测井绘图软件里,我们设计开发了以下三种成熟的类: ①与深度有关的类:格线道、常规曲线、岩芯剖面、录井剖面、解释符号、波形及变密度、倾角矢量图、倾角及方位统计频率图、综合解释表。 ②与深度无关的标注类:直线、折线、圆、椭圆、矩形、多边形、文字、图片、OLE崁入对象等。 ③用于修改类属性的工具类:字体选择、颜色选择、曲线线型选择、道格线修改,岩性符号选择等,因为这些类在图形输出程序设计中经常使用,我们将它进行了面向对象封装,形成了绘图类动态链结库,可以极大地方便C++用户的二次软件开发。 在图3中,CDrawObj类是直接从CObject继承而来的所有测井图形类的基类,主要保存着图形对象的绘图区域(m_Rect)和当前绘图文档的指针(*pDoc),完成光标在屏幕上的滚动DoScroll(CScrollView* pView),保存、显示当前光标所在位置等功能,它是测井绘图软件所有对象动态识别的入口。 3.2 测井复合型文档 测井绘图支持对象嵌入,可将第三方软件的处理结果嵌入到测井绘图中,例如嵌入其它绘图程序产生的图形、Word生成的文档、Excel产生的数据表等等。 插入对象可以是“新建”文件,也可以是“由文件创建” 若是由“新建”对象,在“对象类型”框中,选择要创建对象的类型。若是“由文件创建”则可浏览选择已存在的文件,选择“连接”可以保持与原始文件连接。选中嵌入的对象后,可用鼠标拖拉方式来移动、缩放嵌入对象,可双击嵌入对象可以打开产生该嵌入对象的第三方软件进行编辑。 3.3 程序实现方法 测井绘图采用了最具特色的多文档多视(MultiDocument_MultiView)框架,文档类从OLE文档类继承而来(class CLogPlotDoc : public ColeDocument),支持对象嵌入,可将第三方软件的处理结果嵌入到测井绘图中。 利用MFC类库中的窗体拆分类(CSplitterWnd)实现了将整个绘图文档分为:图头区、曲线区、表格区三大部分,用户可以将三部份分开打印,也可一次全部打印输出。 整个绘图文档采用三个对象链表类(CObList)来管理所有对象,图头对象管理类m_HeadList,与深度有关对象管理类m_TrackList,标注对象管理类m_RemObjList。由于链表类支持动态空间分配,所以整个绘图文档不存在对象数目多少的限制,用户可以根据自己的需要来组合复杂的图件。 在绘图设备的映射模式上,我们采用了“逻辑单位转换为任意比例的任意单位”映射模式,MM_ANISOTROPIC模式,SetMapMode(MM_ANISOTROPIC),这样就可以轻松地实现图件的灵活缩放功能。 格线道对象不受限制,利用道对象可以容纳曲线对象、子道对象的特性,可以将一口井的所有曲线放在一道中,各道可以设置自己的深度,链接各自的数据源,多个这样的代表一口井的道对象就组合成一张多井图件。 1)屏幕上图形平滑过渡 为实现在屏上图形的平滑滚动和用户在对某一对象操作时图形的平滑过渡,我们采用了双设备描述表,在内存中定义一个与显示设备完全兼容的设备描述表m_MemDC,在m_MemDC上实现用户的所有操作,再利用CDC类的BitBlt功能将剪裁框内的图像拷贝到显示设备上。 2)保存为超长位图文件 将CDC绘图设备上的图形保存为位图文件是一件较容易的事情,但针对测井行业来说,图件常常很长,有时绘出的图长达20米,按通常的方法根本行不通。在程序里我们采用了将设备里的绘图区内容分块读出,然后按位图文件格式写入磁盘文件,这样既可以解决超长位图的问题,又可以灵活改变位图文件图像点的颜色,如单色、16色、16位色、24位色等位图文件,以减小位图文件的大小。 3)形成Unix系统下的光栅文件 Unix系统下的光栅文件可以利用系统的CAT命令在V80、GS612、XEROX等绘图仪上输出,Unix系统下的光栅文件它实际上是单色图形点阵,一字节对应绘出8个点,1着色,0不着色,程序解决方案是在磁盘上形成单色位图文件后,将位图文件里位图点阵区的数据读出,对二进制数据的每位取反(“~”操作),写入光栅文件。 4 平台应用情况 目前该软件平台正担负着川庆钻探工程有限公司测井公司内外部市场主要测井解释处理任务,为测井解释技术成果集成提供了有形化的平台;并在川庆地研院、西油公司10家二级单位相关专业人员的近百多台计算机上广泛使用,取得了较好的应用效果;它的全面推广使用,最大限度地提高了测井解释人员的工作效率和工作质量,并为多专业中间技术成果共享提供很好的技术支撑。 5 结束语 集成开发技术使《极睿解释平台2010》具有较好的稳定性和扩展性。在系统数据管理能力方面,较好地解决了常见格式的测井数据向解释平台的转换和存储;在专业分析能力方面,简单直观的流程链操作方式,实现了测井解释工作的完全屏幕化和电算化,极大地减少了测井解释人员日常繁琐的事务;在系统图形绘制能力方面,以面向对象为基础的测井资料复合型文档新概念,实现了各类测井处理成果同通用办公软件的无缝对接,统一规范的测井解释图件,最大限度地提高了测井解释人员的工作效率和工作质量。 参考文献: [1] 胡广书,数字信号处理—理论、算法与实现,清华大学出版社,1999 [2] 官章全等,Visual C++ 6.0 类库大全,电子工业出版社,1999. [3] 兰芸,Visual C++ 6.0编程实例精解,北京希望电子出版社,2000.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服