请选择 进入手机版 | 继续访问电脑版

微信一键登录

科吉思石油论坛

搜索
查看: 2006|回复: 0

tNavigator-Graph Calculator-统计油藏整体分层产量(二)

[复制链接]

136

主题

205

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
发表于 2020-9-15 16:27:08 | 显示全部楼层 |阅读模式
本帖最后由 乔聪颖 于 2020-9-15 16:47 编辑

1.png
在上期的解决方案中,我们通过Graph Calculator解决了“统计油藏整体分层产量”的问题,示例中仅展示了输出单一参数,多参数同时输出可以自行拓展。
不过,鉴于写Python代码需要一点编程基础,而且在尝试“多参数输出”时遇到了一点问题,特在此与大家分享。
本文主要内容:
1.通过Graph Calculator实现“统计油藏整体分层产量”多参数输出;
2.讨论当前Graph Calculator能够处理问题的边界-部分参数无法进行统计
3.特定参数统计输出的解决办法
------------------------------------------
【案例描述与分析】
需求:同时获取所有层位的、独立的、最后时间步(或任意时间步)的累产油等多个参数。
客户提出的参数有累产油、累产水、累产气、含水率地质储量、采出程度

【Graph Calculator多参数同步输出】
由于累产油、累产水、累产气、含水率等参数的基础数据存在,且属于一类,所以,将上期的代码做下简单修改即可实现,不做赘述:
2.png
  1. m =get_model_by_name('BLACK_OIL_DEMO')
  2. t_last= get_all_timesteps()[-1]

  3. stat_layer= {}

  4. print(m.name,'opt', 'gpt', 'wpt', 'wct')

  5. forlayer in range(1, 128+1):

  6.     stat_layer[layer] = []

  7.     stat_opt = 0
  8.     stat_wpt = 0
  9.     stat_gpt = 0
  10.     stat_wct = 0

  11.     for c in get_all_connections():
  12.         if c.k == layer:
  13.             stat_opt += copt[m, c, t_last]
  14.             stat_wpt += cwpt[m, c, t_last]
  15.             stat_gpt += cgpt[m, c, t_last]
  16.             stat_wct += cwct[m, c, t_last]

  17.     stat_layer[layer].append(float(stat_opt))
  18.     stat_layer[layer].append(float(stat_wpt))
  19.     stat_layer[layer].append(float(stat_gpt))
  20.     stat_layer[layer].append(float(stat_wct))

  21.     print("layer", layer,stat_layer[layer][0], stat_layer[layer][1], stat_layer[layer][2],stat_layer[layer][3])
复制代码

【Graph Calculator能够处理问题的边界】
在以上的问题中,基础数据均是射孔网格/Connections的数据,这些数据可以在tNavigator中直接获取(可参考上期微文《tNavigator-Graph Calculator-统计油藏整体分层产量》中Cut解决方案):
3.png
但是,地质储量、采出程度等数据则不同,它们的基础数据是场图数据/Properties,这类基础数据在Graph Calculator中暂时并不支持调用。
恭喜你,触及到了Graph Calculator能够处理问题的边界。主体上,Graph Calculator可以处理以connection、well、region、model等相关的基础Graph数据,对于以场图数据为基础的Properties数据,暂时还无能为力。
虽然在tNavigator中有了Cut/Map等神器支持对Properties数据进行处理,但是,毕竟与Graphs数据的处理有本质上的区别。值得高兴的是,tNavigator的研发人员正在努力将二者的处理能力融为一体,相信更便捷的功能很快会和大家见面,未来可期!

【特定参数统计输出的解决办法】
虽然我们暂时不能通过Graph Calculator便捷处理地质储量、采出程度等数据,但是依然可以通过其他的手段获取,只是有点繁琐。
方法一:User Arithmetics或者Model Designer中的Workflow
具体实现就不做尝试了,有兴趣的话可以参考文末的链接自行尝试,这里仅给出User Arithmetics的一个示例:
4.png

方法二:自定义分区,并计算模型
一般的数模中允许自定义分区,相应的数据统计会随着模拟运算而被计算出来。
5.png

重新加载模型并计算后,可以轻松获取前面想要的5个参数:
6.png

【分析与总结】
从直观上看,“方法二-自定义分区”似乎最直接、最简单,也最有效,那么为什么还要有其他的大篇幅内容介绍其他方法呢?主要是因为“方法二-自定义分区”需要重新计算模型,或者在模型运算前先做好相关定义;另外,当我们想要统计其他形式的参数时,需要再次定义文本以及运算模型。倘若模型较小,则时间成本或可接受。
而Graph Calculator等其他方法致力于在任意已计算好的模型的基础之上、基于已有的基础数据进行灵活、高效的处理,无需计算模型,且满足多种多样的复杂需求。
也许很快研发人员就能够推出更为优化的解决方案,鱼与熊掌,我们都能得到!

End.

参考链接:
请参考文章顶部专辑“tNav之Python应用”
《tNavigator-Graph Calculator-统计油藏整体分层产量》
http://bbs.colchis.cn/thread-7815-1-1.html
《tNavigator-Arithmetic-统计任意区域内的网格属性》
http://bbs.colchis.cn/thread-7816-1-1.html
《tNavigator-Workflow-批量输出场图的统计数据》
http://bbs.colchis.cn/thread-6158-1-5.html
-----------------------------------------
更多tNavigator技巧及应用,欢迎加入tNavigator技术交流QQ群:777385939。
更多石油行业前沿资讯与应用,请关注微信公众号“科吉思石油技术”!
tail.png

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 23:16 , Processed in 0.264939 second(s), 34 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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