微信一键登录

科吉思石油论坛

搜索
查看: 3374|回复: 0
打印 上一主题 下一主题

tNavigator-Python API - Graph Calculator解读

[复制链接]

136

主题

205

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
跳转到指定楼层
楼主
发表于 2020-5-20 16:19:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 乔聪颖 于 2020-5-20 16:22 编辑

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。
--《老子》

Graph Calculator是tNavigator中最早(18.1版)开放的Python API接口,将数模的后处理工作质量提升了一个层次,而且随着后续的不断完善与更新,功能愈加强大,目前也已嵌入到Advanced History Matching GUI以及ModelDesigner GUI中,并支持自定义曲线在泡泡图中的调用。
--------------------------------
【认识graph对象的数据结构】
Graph Calculator中通过Python代码调用模型数据的核心是围绕graphs(曲线)展开的,尤其是SUMMARY关键字,但并不限于此。从编程的角度而言,graph对象是一个包含时间、对象类型、模型信息等的复杂数据结构,可以进行复杂的运算,从而提取特定的有效信息。
简单而言,graph对象是一个多维数组:

参考下图,可以获得更为直观的认识:

值得注意的是,对于这种抽象化的数组数据,通过专业开发的第三方库可能处理起来会更方便,如Pandas、Numpy(这两个第三方库已经在tNavigator中集成,仅调用自带Python解释器时,无需额外安装)。
# example
importnumpy
importpandas
a1 =numpy.array(wopr)
print(a1.shape)
df=pandas.DataFrame(a1)
print(df.axes)

【预定义的graph属性与函数】
Graph Calcualtor中预定义了各类对象的函数与属性,如同功能丰富的工具箱,操控数据时会让人得心应手。

Function本质上是为了方便数据调用、运算而打包好的函数,其中的具体含义不做过多赘述,需要时可自行查阅手册并在Graph Calculator窗口中实践。

【应用案例-后处理】
Graph Calculator在后处理方面的应用想必已经为很多人所熟知了,详细些的内容可以阅读文末的“其它参考链接”。此处提供个小案例,供大家消遣:
# findthe amount of oil accumulated by each well during certain time interval
x =wopr * (time >= 215) * (time <= 550)
w1 =cum_sum_t(x)
export(w1, name = 'PeriodProd', units = "liquid_surface_volume")

【应用案例-AHM】
Graph Calculator中的自定义曲线可以用于智能历史拟合的目标函数。
比如在注水模型中,当我们有现场实际的生产数据-产油量和注水量时,可以将相渗端点、特定区域的渗透率等作为拟合变量,将采收率(Oil Recovery Factor)的误差和注水倍数(WaterInjection/PV)的误差之和作为优化目标:
#Addingthe squared deviation to the objective function value
objective+= (float (kin[min_t]) - ref_kin) ** 2 + (float (prok[min_t]) - ref_prok) ** 2
(完整代码较为复杂,暂不提供,此处仅提供思路。)

从实际数据、原始模型以及优化模型的结果数据对比中,可以明显看出智能历史拟合得到了很好的效果。
其它Python在AHM中的应用可以文末其它参考链接

参考链接:
《tNavigator-Python解释器及第三方库安装指导》
《tNavigator-Python入门(基本数据类型、程序控制结构以及函数式编程)》

其他参考链接:
《tNavigator-Graph Calcuator-输出统计信息至txt文件》
《tNavigator-Graph Calcuator-自定义任意小层合采曲线》
《tNavigator-Python高级应用汇总》
《智慧油田特色解决方案:定制化的“经济指标优化” (智能历史拟合高级应用)》
《用户案例分享-tNavigator中通过Python接口整合多井信息并在泡泡图中应用》
《tNavigator小技巧20-Python应用之泡泡图调用自定义曲线》
《Graph Calculator - tNavigator实现Python私人定制(应用篇:灵活统计贡献井数)》
《Graph Calculator - tNavigator实现Python私人定制(基础篇)》
《tNavigator 18.1开放Python接口——实现图形输出的“私人定制”》

End.
------------------------------------------------
更多tNavigator技巧及应用,欢迎加入tNavigator技术交流QQ群:777385939。
更多石油行业前沿资讯与应用,请关注科吉思石油:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|服务支持:DZ动力|科吉思石油技术咨询有限公司 ( 京ICP备15057753号

GMT+8, 2024-4-27 07:03 , Processed in 0.405449 second(s), 33 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表