斯伦贝谢新技术秋季刊多功能开放式软件设计so精Word文档下载推荐.docx
《斯伦贝谢新技术秋季刊多功能开放式软件设计so精Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《斯伦贝谢新技术秋季刊多功能开放式软件设计so精Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。
JanEgilFivelstad
PaulHovdenak
Blueback油藏公司
挪威斯塔万格
TrygveRanden
《油田新技术》2009年秋季刊:
21卷,第3期。
©
2009斯伦贝谢版权所有。
在编写本文过程中得到以下人员的帮助,谨表
谢意:
休斯敦的NajibAbusalbi,MarcusGanz,
SusanLundgren,AndrewMuddimer,JeffRubenstein
和EricSchoen,以及美国马萨诸塞州堪布里奇的
DavidMcCormick。
Ocean和Petrel是斯伦贝谢公司的商标。
BRIDGEEM是Blueback油藏公司的商标。
.NET,VisualC#和Windows是微软公司的商标。
Rock3D和Rock3DSynthetics是壳牌公司的商标。
1.有关应用编程界面、免费在线计算词典
的更多信息,请参见:
http:
//foldoc.org/
Application+Program+Interface(2009年9月22日浏
览。
2.原始开发公司是软件的所有者。
此处的独立
开发者要么为软件添加新的功能,要么利用
软件中的组件生成另一种程序。
一般情况
下,软件所有者和独立开发者之间会签订一
份专利使用许可协议;
但书面协议条款也可
能注明是免费的。
3.软件开发商编写被称为源代码的文本行。
这
些指令一旦被转化成计算机代码之后就由计
算机处理部件实施处理。
4.高级编程语言比汇编语言更抽象,汇编语言
本身就是一台特定中央处理机计算机语言的
符号性表示。
高级语言通常包括诸如for、
loop或return之类的口头语言陈述(通常是英
语。
5.插件是一个常用的计算机术语,是为大型软
件程序提供新的功能而编写的小型软件程
序。
该术语代表为中央程序增加新的模块。
通常在未安装核心软件的情况下,这些模块
无法运行。
452009年秋季刊
46
油田新
技术
在油气行业,许多复杂的软件程序都旨在应对油气开采过程中出现的多方面的挑战。
例如,Petrel地震-模拟软件就包含了许多地质和地球物理(G&
G工作流组件方面的工具。
对于每个新版本,开发小组为了满足业界的技术需求为软件添加了一些新的功能,并提高软件效率、可靠性和用户友善性等。
项目经理需要对诸多拟定功能该不该开发做出艰难的抉择。
为了向客户提供具有更多功能的G&
G工作流,斯伦贝谢最近开发了一个API,旨在向第三方软件供应商开放Petrel软件。
这样做可以使公司开发者将精力主要集中在开发主要功能上,而独立开发者可以以插件形式给软件增加新的功能。
各种新模块的复杂程度各不相同。
任何具备基本编程技术的人员在几分钟内都能完成简单、省时的实现人工数据处理过程自动化算法的编写。
然而,能够提供诸如电磁建模之类的更复杂功能的插件,则需要编程小组和油田专家付出更大的努力。
开放式软件既有利于独立开发者,又有利于斯伦贝谢,因为这一措施使得插件开发过程与Petrel发布进程分离开来。
因此,新的功能可以随时得到开发和应用,而这些新功能的知识产权仍归其所有者所有。
独立开发者可以利用Ocean应用程序开发架构在该软件基础上自主开发新功能。
Ocean架构以微软公司.NET架构和VisualC#语言之类的业界标准编程工具为基础,可以为Petrel软件的内部工作提供一个编程接口。
独立编程人员可以编写自己的算法将新功能与现有组件(如属性建模或体积计算相结合,然后在软件环境中显示交互结果。
本文介绍了开放式软件的概念,并对其如何被用来增强复杂软件的功能做了阐述。
第一个实例介绍了客户利用Ocean架构来开发新的岩石物理分析功能的过程。
第二个实例重点介绍了独立软件供应商利用该软件开发
47
2009年秋季刊
叠前地震数据处理
实时地质导向
电磁数据解释
^G&
G工作流实例。
该流程从输入和解释包括地震数据(左上和电磁数据(左下在内的信息开始。
随后在建立油藏模型之前实施地震反演。
工作流中的一些步骤会对其他步骤产生影响:
例如,生成合成地震数据(中的目的是验证油藏模型属性的准确性。
如果数据之间存在明显的不一致性,那么就必须对模型进行更新,并重新进行检验。
在工作流早期识别此类问题非常重要。
油藏模拟(右过程成本高、耗时长,如果建立油藏模型过程中出现了差错,都必须重复该步骤及之前的多个步骤。
随着钻井过程中获得更多的井资料(右下,作业人员就有可能根据实时随钻测井数据(实时地质导向,上做出反应。
不同领域专家在同一共享数据模型中进行沟通是避免、识别和校正错误的有效手段。
各领域专家通过一个可以管理所有工作流步骤的集中式数据模型及统一的软件程序可以解决此类问题。
使用熟悉的共享系统也可以在解决任何问题过程中提高用户效率。
电磁模拟模块的情况。
同时,本文还对学术界对Ocean的采纳情况进行了讨论。
G&
G软件选项
地质和地球物理工作流程通常涉及多种来源的数据采集,数据处理,然后再将处理结果综合后进行解释。
该流程并非是单向或一维的,在后期工作流分支中的一些新发现都可能要求对前面的程序做出调整,或者对输入数据进行修改(上图。
G项目从始至终可能需要几个月的时间。
在一口井或多口井的规划
过程中需要许多地质师、地球物理师、工程师及利益相关人员的共同参与。
这一过程主要依靠软件来完成各种任务,如根据井眼数据反演岩石属性,或是通过地震叠加数据拾取层位等。
由于每项任务都很复杂,为了满足所有的工作流需求,勘探与生产公司往往选择利用多个软件程序。
此外,部分公司还自主研发专用软件或算法来解决特定地质环境中的特殊问题。
将多个不同的软件程序应用于同一个项目会增大数据移植相关误差发生的风险,如将前一个程序中保存下
来的结果输入到下一个程序中就可能出现误差。
此外,通过培训使分析人员能够应用多种不同程序也是不现实的。
利用一个能够处理所有G&
G工作流要素的软件程序可以简单地解决这一问题,但单一的软件程序不可能满足所有客户的需求,因为勘探与生产公司针对其资产组合都有其各自独特的需求。
一种可以使不同应用软件简单化的方法是在各软件程序之间建立实时链接。
在这种共生方式中,各软件共享中间数据,这样更便于技术人员
^API的工作。
独立程序设计者创建代码(左需要使用目标软件程序(右中的函数,但并未得到使用许可。
目标软件所有者创建API(中,用以提供私有代码的进入通道。
API可以在不影响目标程序的情况下共享数据、软件事件状态及程序功能。
本例中的目标软件由版本1更新到版本2。
独立软件未察觉到这一变化,而继续保持原有状态。
在没有API的情况下,这种联系将会中断。
目标软件开发者对API进行了更新,以考虑函数名从Additon转变到AddTwoIntegers,以及数据变量从X、Y解析到X、Y和Answer的这一情况。
然而,这些函数和数据变量的表现方式仍然与版本1相同,因而可以与独立程序相兼容。
只要独立程序和目标软件一直符合API语言,那么这些程序的任何变化都不会破坏它们之间的链接。
这一点非常重要,因为各开发公司之间的软件更新通常并不同步进行。
识别数据移植问题。
同时,由于应用
软件实施自动化处理,因此利用该方
法还可减少输入和输出过程引起的停
工时间。
这一概念的延伸可以让每个
程序控制下一个程序中的部分功能。
这一点更有利于那些无图形用户界面
(GUI的算法。
在这种情况下,其中
一个软件程序充当主程序,其GUI可以
被用于控制一个无界面算法,对部分
用户而言,这种方式比编写文本命令
更方便[6]。
此外,由于省略了开发和
调试GUI步骤,因此可以更快地编写出
此类算法。
共生方式会引发一个潜在问题,
即程序间的准确链接功能可能会取决
于其所发布的版本。
每次新版本发布
时大多数软件都会发生一些变化,结
果导致应用软件之间的链接可能会完
全中断,或者至少会出现一些问题。
虽然部分链接软件由同一家公司开
发,但许多软件包则是由多个公司开
发的。
因此,要想统一软件项目的开
发路径较为困难。
如果一项更新计划
推迟或出现变动,那么就可能对所有
相关应用之间的互动造成影响。
上述问题可以通过开发一种既不
会频繁发生变化,又可以与软件程序
开展交流的界面语言来解决。
应用程
序接口既可以提供访问软件包的功能
性,又是一种良好的通信语言。
它们
实际上可以被看作是一种译码器:
将
一种公开发布的输入语言转换成一种
私有语言,然后再将其应用于软件程
序中。
API的公开部分构成通信接口,
该接口一般不常变动,而API的私有部
分通常可以根据需要经常变动。
私有
部分常常出现变动,新创建的私有部
分可以增加软件的功能并改善其稳定
性(上图。
API非常适用于一些需要多个软件
程序一起运行、共享数据和控制功能
的工作流,因为API可以使所有软件程
序之间保持一种稳定的关系。
与软件
同时提供的GUI设计开发准则、数据类
型和事件状态,有助于在插件之间形
成并维持适当的关系。
尽管API在提供保持各更新软件之
间稳定链接开发环境方面取得了长足
发展,但它并不十全十美。
随着时间的推移,不仅软件程序会出现变化,编程技术和计算机硬件也会发生变化。
例如,由于目前主流CPU包括多个核心,多线程编程设计已成为工作站软件可行的编程技术。
从单线程编程到多线程编程是一个重大的变化。
这些变化可能需要对API进行重新编写,从而破坏了与现有软件之间的任何链接。
为了维护独立开发者的利益,软件所有者可以将任何重大更新限制在一个更长的开发期限内,如在2-5年间做出重大更新。
利用合成地震数据检验油藏模型建立油藏模型是一个漫长的过程。
各种数据经过专家解释和一系列
6.文本接口要求用户记住每个函数的名称或花时间查找其名称。
命令中出现任何拼写错误就会导致整个算法无法运行,或者导致计算结果不准确。
良好的GUI可以使用户避免或减少句法错误的产生;
但是,大多数GUI并不具备预防客户发生逻辑错误的功能。
48油田新
49
实例A
实例B
采集数据
合成数据
^闭环流程。
建模人员利用采集到的地震数据体(左生成油藏模型框架(中。
根据油藏模型生成合成地震数据体(右。
建模人员随后将该数据体与采集的数据进行比较,以便对相关的模型属性假设进行调整,然后重复以上流程。
^实例研究。
Rock3DSynthetics模块为两个研究实例提供了合成地震数据体。
在每个实例中,地球物理师将地震采集数据与垂直切片上属性模拟得到的合成数据并排显示。
可以看出突出显示区域(白色圆圈内两种数据的一致性不好。
在这两个实例中,都对油藏模型属性进行了调整,不断重复这一过程,直至两个剖面数据一致为止。
算法转换之后用来生成电子模型。
模型参数及其不确定性可能具有一定的主观性,由于这些不确定性范围较大,因此许多地质模型都可能无法与原始输入数据匹配。
为了确保地质模型的质量,壳牌公司实施了一个新的模型检验工作流。
建模人员利用正演模拟程序,根据地质模型获得合成地震数据。
然后可以将合成数据与原始地震数据进行比较,以检验其匹配情况,并确定与
油藏结构、油藏厚度和属性分布相关的不匹配因素。
壳牌公司将Petrel软件系列作为油藏地质建模的原始平台并将这种新的专用工作流作为一个模块纳入其自主建模工作流中。
该方法可以使软件开发者充分利用现有建模工具并致力于开发新的岩石物理分析功能。
与开发独立的应用软件相比,利用现有功能可以帮助壳牌公司减少开发时间。
最后开发出了两个插件:
Rock3D模块和
Rock3DSynthetics模块。
用户界面是Rock3D插件很重要的设计标准。
遵守现有界面特征既有助于用户减少培训时间,又有助于用户提高效率。
壳牌公司的设计人员通过利用Ocean提供的一系列设计工具和准则建立了与Petrel软件具有相同外观和响应的界面,该公司的地质建模人员经过培训已经对这一界面非常熟悉。
利用新的工作流程生成合成地震数据需要经过两个步骤。
第一步,建模人员将现有油藏模型中的岩石和流体性质数据输入到Rock3D模块,随后再利用模型属性和声波属性数据(如速度和体积密度之间的关系生成声波属性和阻抗数据。
第二步,建模人员利用Rock3DSynthetics模块根据这些声波属性数据生成合成地震数据体(上图。
在Petrel建模环境内直接实施该工作流具有许多优势。
油藏地质师和地球物理师可以就要应用的岩石属性展开讨论。
这样做有助于加深地学各领域的专家对地质模型建立过程及用于限制模型的地震数据不确定性的了解。
相同的建模环境也便于油藏建模人员、岩石物理师和地震解释人员之间的交流,以确定对输入解释做哪些
修改可以提高模型质量。
最后,通过Petrel软件获得每个建模步骤的历史检查追踪,从而为每个项目阶段的解释和建模决策工作提供详细信息。
在早期油藏建模过程中,解释人员一般会进行地震控制的质量评价,以确保在G&
G工作流内进行更加详细的模拟之前,使建立在高分辨率测井数据基础上的模型与较低分辨率的地震响应相一致。
质量评估也可以为各个建模项目所需的地震反演级别提供参考,从而使壳牌专用地震反演技术得到更好的应用。
新的检验工作流证明许多模型的合成地震数据和处理数据之间存在不一致的情况(前一页,下图)。
通过及早解决这些重大建模问题,壳牌公司在项目提交进度上节省了大量时间。
电磁建模实例独立软件开发公司可以利用Ocean开发软件产品,并可以充分利用Petrel软件庞大的用户群。
2007年,Blueback油藏公司(一家油藏建模咨询公司)针对这一市场组建了一个软件开发小组。
开发小组的首个项目就是与一家提供电磁服务的公司(ElectromagneticGeoServices公司)开展合作。
新的软件产品增强了Petrel软件的电磁建模(EM)能力,即BRIDGEEM数据集成器插件。
新功能证实了由第三方软件开发商将特定软件集成于广泛应用的建模程序包中的巨大威力。
项目初期,Blueback油藏公司的开发小组并没有电磁建模方面的经验,因此,所有的专业领域知识都是由服务公司提供。
尽管在斯伦贝谢没有参与的情况下也可以生成新的模块,但软件开发小组在整个项目开展过程中还是利用了Ocean支持网站来解决一些技术难题[7]。
该项目所面临的一个重大挑战是需要利用一种全新的数据类型表示电磁数据。
其中两大要求包括在诸如Petrel2D和3D图层之类的所有支持视图中对数据进行可视化分析,以及在诸如3D网格属性建模和体积及正交切片生成等相关功能之间实施数据处理[8]。
电磁技术通过检测地下电磁波的传播获得整个探区的电阻率数据[9]。
目前有两种基本的电磁勘探方法,即大地电磁勘探技术和受控源电磁技术(CSEM)。
前者利用太阳风和地磁层之间的相互作用产生的电磁波进行勘探,后者是一种较新的技术,使用人工电磁波源。
建模人员可以利用新的BRIDGEEM插件将CSEM反演数据与地震和重力测量数据有效地结合起来,从而改善对模型的标定(右图)。
利用新插件开展CSEM项目涉及到多个重要步骤。
首先,地质师要进行一项可行性研究,对CSEM勘探是否能够提供高质量的解释数据信号进行评估。
可行性研究中应考虑的因素包括:
是否有盐层存在、海床地形是否有巨大变化,以及构造是否高度断裂,所有这些因素都会对CSEM信号造成干扰。
研究人员在Petrel建模环境下进行研究:
地质师根据地震、地质勘探和测井获得的地下构造和岩石类型等现有信息建立电阻率模型。
然后,专家组对该模型进行评估,以最终决定是否应继续开展CSEM勘探。
下一步是规划现场作业。
CSEM检波器直接部署在海底。
勘探规划人员可以利用Petrel环境下的BRIDGEEM模块对检波器实施准确的定位:
对准地质目标,避免地下构造削弱CSEM信号及确定不适合布置检波器的海床位置。
同时,规划人员还利用插件绘制震源船的最佳航线,震源船经特殊配备后在勘探区域拖曳CSEM发射器进行测量作业。
一旦勘探作业完成之后,需要对所获得的数据实施质量控制,并对诸如电波幅度和相位之类的CSEM属性进行解释。
数据在这一阶段被纳入油藏模型。
BRIDGEEM插件具有质量控制和解释处理的能力,旨在尽可能地简化耗时流程。
通常在Petrel工作流内根^电磁数据的应用。
在利用地震勘探数据(右上)和井筒电阻率测量数据(左上)进行标定后,地面电磁数据可以用来生成勘探区域的电阻率地层模型。
经过电磁反演可以建立电阻率数据体,然后可以利用多种建模工具对该数据体进行可视化分析。
这些高阻层(紫色三维目标体及地震切片上红、橙、黄三种颜色,下)可能是盐层、玄武岩或含油气层。
据地震和测井数据等现有信息对CSEM结果进行标定。
利用反演后的三维CSEM数据能够生成电阻率数据体。
地学家可以通过Petrel建模工具确定三维电阻率单元。
7.BRIDGEEM产品与西方奇科电磁服务中的电磁插件无关。
8.计算机制图术语“图层”代表能够绘制诸如二维测井、图表、图形或三维目标体之类的电子内容的区域。
三维网格代表油藏被划分为不规则的三维单元网格。
每个单元格包含多种油藏属性,如孔隙度、渗透率和电阻率等。
该离散网格旨在简化计算方法并在现有计算能力范围内应用。
正交切片是锁定至某一轴线的一个二维平面,例如,垂直切片与Z轴平行。
数据体将平面数据向三维延伸,以层叠切片或一堆三维像素的方式(三维像元)显现。
9.BradyJ,CampbellT,FenwickA,GanzM,SandbergSK,BuonoraMPP,RodriguesLF,CampbellC,CombeeL,FersterA,UmbachKE,LabruzzoT,ZerilliA,NicholsEA,PatmoreS和StillingJ:
“电磁法油气勘探”,《油田新技术》,21卷,第1期(2009年春季刊):
4-19。
50油田新技术
CSEM勘探规划质量控制和解释标定箭头指示拖曳方向检波器^BRIDGEEM工作流。
该模块为Petrel软件内具体CSEM作业提供规划和质量控制工具。
经过标准化处理后,地面电阻率测量数据用来确定可以为CSEM检波器提供最佳信号的位置(左下)。
所选择的检波器位置随后被用于绘制CSEM勘探的拖曳路径(左上)。
完成测量后,应用程序为电磁数据(如磁场强度和相位)的输入提供数据格式,通过用户界面对数据进行质量控制,该界面经过优化以提高流程效率(右上)。
BRIDGEEM插件为Petrel数据模型提供了新的电磁数据类型,使用户能够同时查看CSEM勘探数据以及测井数据和地震数据等(右下)。
息共享达成一致。
在联合开发勘探开发软件过程中,必须制定安全措施,在为大学提供开发新理念所需信息的同时保护好发起方的知识产权。
建立在API技术基础之上的Ocean能使各大学以插件的形式开发G&
G软件,这些插件可以与发起企业提供的其他插件结合使用。
企业可以利用这一模式保护其知识产权,并可通过投资大学的研究项目进一步扩展其G&
G工作流。
通过利用现有插件及Petrel软件提供的工具和功能,大学可以在这些技术的基础上开展研究。
与每次都必须重新编写所有功能函数的软件开发结构相比,采用这种构架能够节省