OFM培训讲义全.docx
《OFM培训讲义全.docx》由会员分享,可在线阅读,更多相关《OFM培训讲义全.docx(40页珍藏版)》请在冰豆网上搜索。
OFM培训讲义全
OFM软件培训
培训第一天
前言:
地质建模
数值模拟
提高采收率
1.OFM软件是项目管理工程师的桌面工具,主要完成生产监测和数据分析。
1.1全面的可视化:
动态图(网格图、泡泡图等)、散点图。
1.1.1绘制图件:
多图、多轴、多变量。
1.1.2定制报表:
可以进行灵活的分类、排序、计算、求和、筛选等功能。
1.1.3动态散点交会图:
泡泡图、网格图、等值图、全程产量监测图和立体图。
动态泡泡图和网格图主要动态追踪产量的历史变化趋势和未来预测分析的结果。
二图可以叠加反映单井的动态变化情况。
1.2灵活分析:
计算变量、用户函数、预测分析、网格计算、等。
数据是很有限的。
将油相非均质系数绘制在象限图中可以划分油井的产油类型,如高产油井、低产液量井等。
结合网格图,再结合测井曲线就可以分析。
计算变量:
方便灵活,可以充分调动油藏工程师的研究潜能。
1.3方便的数据管理:
成果管理、多项目管理、工作流程管理等。
最大优势是根据数据的不同可以发生变化。
建立项目工作流程,直接调用研究成果。
图版中保存的不是数据,而是作图的方式,图件的属性等。
2.为什么选择OFM?
囊括了所有软件的功能,集成化
数据的成果,标准化
可以为Eclipse软件提供Schedule模块,开放性
3.OFM2007的新功能
3.1协同合作加强corporatedeployments
sourcedatateamdatabaseandworkspacefile
3.2支持高频数据highfrequencydatacapabilities
ScadaoperationshistorianDecide(real-time)
月度、日度、散点小时、分钟和秒级数据
3.3计算变量和分类表
3.4绘图和报表之间的联系
报表可以转化成图表,图表可以转化成报表
3.5变量可以建立井组的概念
3.6散点数据sporadicdata
OFMisnotjustdoingthingsbetter,butdoingbetterthings!
Borrowlicensesampledatabasesofmplus
LM_LICENSE_FILE1700@192.168.10.1
文件夹:
EXCELEXERCISE2007
包括:
1.井位坐标
2.分类文件sortcategrary:
基础信息,地层、区块详细信息
3.生产数据信息:
日度生产数据PROD、小时级生产数据、试井数据
1.启动OFM
2.打开关闭项目:
2007是向下兼容,在打开的同时升级了,注意在升级之前要备份。
FILE-OPEN-*.Mdb
FILE-CLOSEWORKSPACE关闭的时候有提示:
是否保存工作流?
是否压缩数据库?
建立工作流程的步骤:
1.FILE-NEWWORKSPACE找到新建的文件夹放置,同时会生产*.OFM(所做的所有工作)和*.MDB(所有的基础数据)等两个文件。
如何建立文件:
用模板、建立交互文件(常用)、从数据源建立(项目定义文件)、链接到公共数据库
点击OK即可
把默认生成的表格用右键删除,这样项目就是空的,下面加载数据
2.点击ADDLINKTABLES找到文件夹,选择数据类型文件。
2.1选择文件时一定要注意:
第一个加载的数据必须是井位坐标数据,选择HEADERID,点击OPEN即可。
尽管打开了,但还没有激活,在前面的方框中选择激活,表格内容全部会显示(每一列的列头会显示),点击OK就可以显示井位。
井位坐标表中尽量简洁,因为要影响统计速度,应该包括:
井名、X、Y、Alias、WELLBORE
点击ADDLINKTABLES,加载别的表格,这时候没有顺序可言。
2.2添加分类表,选择数据类型,点击相应的数据表就可以添加,但一定要注意选择相应的表的类型TableType,包括STATIC(基础信息表)、Monthly、Minute、Sporadic、SporadicDualkey(一口井同时有好几种参数发生变化时用)。
点击Static,就会出来一个对话框,注意有一个UniqueToUnique类型的语句,注意To前后的一定要相同,否则说明数据不正确。
注意:
分类表尽可能详细,应该包括很多相关内容。
水平井有不同类型的坐标类型:
地面和地下,可以在Static表格中加载。
然后在EDIT-associate中关联一下即可。
对于井斜数据也可以在static中添加,然后在view菜单中就可以看见。
点击Monthly,等等
2.3添加完成以后在view菜单中需要激活。
在前面的方框中选择,然后激活即可,点击OK。
可以通过作图Plot来检查数据是否加载成功
2.4添加动态数据
注意:
RES-PROD数据是油藏或区块级别的数据,里面没有井名,时间是月度的。
加载RES-PROD数据之前,一定要加载分类表:
Database菜单中有Categories,打开,就可以看见对话框,把其中的Sortcategory的数据类型前面打勾激活。
告诉它是月度数据,加载过程中出现To前后不一致的情况,KEYTYPE中选择Category,在Category中选择RESVOIR这样在数据类型下拉菜单中逐个选择,看看是否一致,直到一致才能确定。
2008.3.10下午
属性定义:
表格中数据的单位定义。
数据库中只可记录数据,不能记录数据单位
在加载完成的数据表中展开,检查各参数,设定参数的单位。
所有动态参数都需要设定下面的步骤。
Unit标签:
定义参数的单位。
DatabaseUnitsystem中的单位由客观的数据库决定的,个人不能随意改动。
DisplayUnitSystem中的单位是数据显示的单位,个人可以随意改动。
Math标签:
Carryforward是否可以携带(0表示无穷多次)
Multiplier-单位换算乘数。
Input与数据库中的单位一致,客观决定的,不能随意改动。
Output由主观意愿决定的。
GroupingOption井组计算选项(Sum、Average(含水率))
Report标签:
报表中显示的字符,字符长度,小数位数等
Plot标签:
曲线名称
注意:
对于一个项目来说,前面完成的工作只需要做一次即可。
Database菜单的Units菜单中可以添加自己需要的单位(支持汉语),也可以找到所有单位的转化,并且可以修改,但建议不要修改。
添加以后就可以在表格管理器的Unit标签中找到添加进去的单位。
Database菜单的Multiplier菜单中可以添加自己需要的单位转化。
添加以后就可以在表格管理器的Unit标签的Multiplier中找到添加进去的单位转化率。
Database菜单
SchemaTables:
表格管理器
CalculatedVariables:
计算变量
Categories:
激活分类信息
Data:
底层数据库,可以查看底层数据库。
当数据是通过远程链接而来的时候不可以编辑,而当数据是通过本地存储的则可以编辑。
SchemaTables中有一个选项Type,如果为link,表明是远程链接的,所以不可以修改。
远程链接数据只保存了数据文件存放的目录,而没有保存具体的数据。
好处有:
可以实现数据的自动实时更新、数据存储容量小,但当数据改变后,也发生被动修改,项目本身没有辨别能力。
解决缺点的途径是数据的本地化,用Database菜单下的WorkspaceSnapshot,存储数据即可,出来的提示框,选择Yes即可,这时可以在存储的目录下找到相应的文件。
本地化的缺点是不能实现数据的实时更新。
将Type从link修改为Local以后,就可以修改了,但一定要小心。
如何将新的数据添加到本地数据库中?
File菜单下面的Local.OFM和Link.OFM。
首先打开Link的数据库,然后在database菜单下的Export菜单SelectedDatabaseTables中选择需要更新的数据库。
其它附加内容:
OFMDefinedTableManager:
指定哪些项目来源于公共数据,哪些数据来自自己的项目。
ChangeDatabase:
将地上部分(图件模板)拿走,放在另一个数据库上进行(绘图)分析。
SharedWorkspace:
检查有没有公共的数据源
Export-SelectedTextLoadFile(TableDefinitions表格列的含义;TableData表格数据;Calculated计算变量;DCAData预测数据)
Import-DataLoader输入计算变量
PVT高压流体物性,包括油、气、水,对预测影响很大。
DataLable日期的标签范围,有date,time等
PassWord:
保密密码
Completion、Wellbore和Patterns:
层、井、井组的名称。
可以修改、删除,但这种删除是很彻底的,需要谨慎。
Edit-Map底图的编辑
Association:
WellType-Table井的类别,数据库中已经有的。
SortCategory中选择
WellType-Expression通过定义计算变量来更改井的类别,譬如通过判断产油量、产水量等的变化判断或划分井的类型。
Ok以后有对话框,选择井的标记符号,一般选择第三中Createfromdata。
可以在属性对话框中显示Legend。
XCoordinate-HeaderId中选择
YCoordinate-HeaderId中选择
Wellbore-HeaderId中选择
AliasName-HeaderId中选择
Symbols:
修改井别,用不同的符号来表示
Annotations:
标注。
可以把底图等值线添加进来。
所有的*.ano为注释文件。
可以把Petrel文件整理成如下格式加载到OFM文件中:
MXY
DXY
DXY
DXY
DXY
―――――
MXY
Header:
图件的标题,可以随意修改
Scale:
比例尺,数据库的比例尺。
总结:
建立新项目保存删除自动的表格添加自己的表格,注意第一个表格然后定义各个变量的单位项目的本地化如何编辑项目
培训第二天2008-3-11上午
练习
需要注意的问题:
文件的类型一定要明白
存在的主要问题:
1.在建立过程中如果对同一张表多添加了一次,处理方式是按照正常程序完成,完成后就可以在SchemaTables中删除,或者直接在*.mdb文件中删除。
2.对于同一时间同一口井进行了很多次事件,可以用sporadicdualkey数据类型处理。
3.Maps-Association、Symbol、等等。
4.如果左边的功能菜单栏关闭了,则可以在View菜单中的Panes中打勾选择。
如果一次性打开很多,就可以在Panes中的layout中打开OFMDefault
5.Properties为属性窗口,重点是网格和边框,WellName井名,Legend图例显示;Analysis为工作流窗口;Filter为过滤窗口;Step为布景栏窗口,主要完成选井。
Annotation文件的制作:
制作如下格式的文件
MX_valueY_value
DX_valueY_value
DX_valueY_value
DX_valueY_value
DX_valueY_value
―――――
MX_valueY_value
文件名称应该为*.ano
在Edit-Maps-Annotation中打开*.ano文件,add-load-ok,就可以出现等值线。
删除时可以在annotation中选中,再remove即可。
可以加载很多张底图。
加载完成以后就可以用MapAnnotationEditor对话框编辑注释文件,选中某一条等值线,就可以修改相应的数值。
MapAnnotationEditor激活以后,其余的工具按钮也都激活了,可以用了。
2008-3-11下午
Properties菜单:
WellName中的MapLabel用于标注井所在的区块(Lease.xls文件中存储)
Step布景栏:
功能:
1.选择和切换观察的对象
2.控制数据级别,通过下拉菜单切换数据级别,可以是单井、区块、油藏。
所观察的井的颜色和别的井不同。
Completion最小级别的数据
Filter菜单栏:
功能:
快速筛选出要观察的对象,快速分析出要观察的内容
求和功能按钮:
井组统计
Clear:
清除所有过滤条件
原则:
允许多重过滤,可以设置多个条件
不同条件之间取交集部分
Filter下面的每一个小菜单都是一种过滤方法
Category:
通过分类表来过滤,其中的内容都是分类表中的内容,有completion、wellbore、lease、reservoir等等。
TableData:
用表格数据来过滤,凡是在表格上出现过的都可以显示。
DCAData:
对做过预测的井进行过滤。
下面有case1,case2,等,即预测方案的编号。
Match:
模糊查询。
双击或者右键“Add”,就可以输入要查询的井,其中,一个“*”可代替无数个字符串,一个“?
”只可代替一个字符。
如:
要查找以B开头的井,则用“B*”查询。
WellList:
帮助保存过滤成果。
井单的保存用SaveFiltertoWellList按钮,保存在相应的位置即可。
然后右击“WellList”就可以打开刚才保存的文件。
OFMQuery:
条件查询。
双击或右击“OFMQuery”,然后点击“Edit”按钮就可以输入查询条件。
CFirst(date,Monthlyprod.oil>0|Monthlyprod.gas>0)为找到第一次的时间
ValueAt(Monthlyprod.oil,20000101)返回某一个日期的Monthlyprod.oil值
Year(20000101)找到任何一个日期的年度。
譬如,找到所有在2000年投产的井,用语句:
Year(CFirst(date,Monthlyprod.oil>0)=2000
CFirst(date,Monthlyprod.oil>0|Monthlyprod.gas>0)为找到第一次的时间
Analysis工作流窗口:
工作的成果,大厦地面部分。
保存的是图形中的设置,而不是具体的数据。
可以将研究成果分类管理,右键New-folder
可以链接其它的应用程序,右键New-LinkApplication,找到其它的文件即可,可以添加网址、Word,等等。
在OFM2005中可以右键用AttachWorkspace找到别人的工作流*.ofm文件,借用。
右键可以删除。
在OFM2007中,选择自己需要的工作流,右击ExporttheNode,保存为*.NODE文件,拷贝到自己的机器中,右击ImporttheNode,选择拷贝的*.NODE文件
如何保存工作流?
用File-SaveWorkSpace
Analysis菜单:
Plot
在图形中添加公司的logo,可以用systemfunction中的image(“全路径及图形全名和扩展名”),修改Font字体。
2008-3-12上午
Plot绘图练习:
1.一个图中画多条曲线
2.一个图有两个或多个Y轴
3.一个版面可以画多个图,也可以将多个图公用同一个X轴或Y轴
4.可以通过Step布景栏控制来画同一数据级别的曲线,譬如:
区块、单井、油藏,等等
5.在同一个版面中画不同数据级别的图,可以同时显示单井和区块的相关动态参数。
6.坐标轴的范围用Condition通过编辑条件限制来控制
7.在同一张图中比较两口井或两口井的产量,在画图中的category下拉菜单中选择。
比较层用completion,比较单井用wellbore,比较区块用lease,然后在后面继续选择需要比较的单井、区块或层。
在这种情况下,布景栏Step不起作用了。
8.多个曲线同级别数据的比较。
用AddMultipleCurves按钮,依次回答Category,Variables等问题。
多条曲线公用一个Y轴时,可以通过View中的Toolbar-plot可以绘制堆积曲线、求和、贡献图等曲线。
9.曲线的标注:
包括井史标注和数据标注等,可以通过加载把Annotation文件加载进来,数据类型为sporadic类型的,通过筛选栏中的TableData选择Annotate就可以只显示有标注的井。
选择曲线,然后在属性窗口中的event中选择annotation.note,oncurve,就可以在曲线上显示相应的井史。
对于标注数据的筛选,可以用Database-CalculatedVariables-AddVariable中添加If语句。
If(month(date)=1,monthlyprod.oil,null()),保存这个变量,然后在event下拉菜单中选择刚刚保存的变量,就可以在曲线上显示一月份的产油量。
Report报表:
在编辑区中选择在报表中需要显示的参数
Where只用于报表的
项目变量:
项目不同,变量不同。
包括:
真实数据和根据真实数据衍生推算而来的其它数据。
系统函数:
OFM规定的计算方法和判断方法。
譬如:
加、减、乘、除
UserFunction按钮:
可以添加自己定义的函数,在Database菜单中的UserFunction添加自己的函数。
可以显示出报表,如下:
报表的属性:
表格中数据小数位数的修改用DecimalPlace修改即可
表列中标题的修改用HeadingFirstRow
Justification修改对齐方式
报表中右击,选择HeaderandFooter就可以添加表的相关信息
选中一列,可以在属性窗口中用Subtotal来统计,Break可以选定统计的终止条件。
如果在break中选择atcondition,则可以在下面出现editcondition,这样可以编辑统计条件,如Month(Date)=4,则每年4月统计出了sum和average。
右击-ReportDisplay可以控制报表内容,控制显示的时间段。
FindDailyDatabaseRange就可以看日数据的起止时间范围。
属性窗口中的Frequency中选择数据显示的频率,有allrows、annually、semiannually等等。
也可以在报表中添加一列月份的标签,而后用Where来筛选。
格式如下:
@Name(),Date,Monthlyprod.Oil,@Month(Date)WHERE@Month(Date)=6|@Month(Date)=12
报表中显示数据的抽稀:
1.可以设置属性窗口中frequency的办法
2.用where来设置,@Name(),Date,Monthlyprod.Oil
如where@Month(Date)=4|@Month(Date)=12
如where@Monthlyprod.Oil>3000&date>19980101
@Name(),Date,@if(Monthlyprod.Oil>3000&date>19980101,Monthlyprod.Oil,@Null())WHERE@if(Monthlyprod.Oil>3000&date>19980101,Monthlyprod.Oil,@Null())>0
计算报表:
1.各列之间可以相互加减乘除运算:
@Name(),Date,Monthlyprod.Oil,Monthlyprod.Water,Monthlyprod.Gas,Monthlyprod.Oil+Monthlyprod.Water,Monthlyprod.Water/(Monthlyprod.Oil+Monthlyprod.Water)
2.将报表输出。
右击报表,选择EXCEL,可以进行修改,以在Excel中显示,然后点击CloseandUpdate按钮就可以将报表输出到Excel中:
选择如下的复选框,就可以将报表输出到指定的Excel表格的A表单中,如下:
可以将报表回写到Access表格中:
1.在报表中右击,选择Access,出现下面的窗体,注意:
将AccessField一列的Name()修改为UniqueID(为了和原来的Access表中的字符段一致),并将其设置为Key,同样也将Date设置为key,然后命名,存储。
2.打开Database中的SchemaTable,激活刚添加的报表。
3.做一个新的报表,选择新Access中的相应的数据。
如何更新数据?
1.如果新的数据发来后,按照原来数据的格式在Excel表中修改好格式,然后打开SchemaTable中AddLinkTable中添加新表。
2.做一个新的报表,选择新表中的所有项目,然后右键Access,然后在TableName中选择原来的旧表,检查新表和旧表的项目是否一一对应,如果不对应,应该修改,修改完成后可以CloseandUpdate进行更新。
如何用报表中的数据进行绘图?
报表中右击,选择sendtoplot就可以绘图
同样,在图形中右击,选择sendtotable可以得到相应的报表。
计算变量:
独立的,并不依赖于任何数据而存在,实际上就是计算方法。
当计算一口井的时候,方法保存
对于区块含水率,先把所有井的分子加起来,然后把所有的分母加起来,最后相除即可。
对于产油能力用计算字段来实现,而不是通过计算变量来实现。
SchemaTable中选择Monthlyprod,右击,新建,然后选择Calculated(double),IIF(Days>0&Oil>0,Oil/Days,NULL)。
计算字段是物理表格的衍生,只在OFM中能看,但实际上没有写进去。
2008-3-13上午
计算变量:
计算变量可以跨表进行操作,还可循环套用,即新的计算变量可以引用已经定义了的计算变量。
编写计算变量时,建议细分功能模块。
ClrTSum清零求和,可用于求年产量等。
ClrRSum与上一函数相同,只不过要显示中间结果
DOM返回一个自然月的天数
Rrec相对定位函数,找到到前位以前的几条记录。
DBDate找到数据库当中的最后一天。
Tmax,Tmin最大值与最小值
If,ifstr
计算变量的借用:
Export->SelectedTextLoadFiles->CalculatedVariables然后选择输出选项。
计算变量文件存为Par后缀文件。
2005与2007的计算变量可以互用。
前提条件是数据结构要匹配。
下午:
系统函数包括有关日期的,有关计算的,有关
Month,Date,Year,DBdate数据库中找到最后一个日期
CFirst
RREC相对定位指针函数,找到每一条记录的前几条记录
ValueAt
Tmax找到最大值
Tmin找到最小值
CumInput找到累计值
ClrTSum清零求和
ClrTSum(Dailyprod.Oil,@Change(@Month(Date)))
判断语句:
If(MonthlyprodOil,)
@Ifstr(Monthlyprod.Oil>0,“油井”,@IfStr(Month