阳光石油网|石油技术交流|石油人论坛

 找回密码
 欢迎注册
查看: 1215|回复: 6

[Petrel使用技巧] 手把手教你workflow编写(续)

[复制链接]
  • TA的每日心情
    开心
    2014-1-11 00:20
  • 签到天数: 38 天

    [LV.5]常住居民I

    发表于 2019-4-17 10:27:54 | 显示全部楼层 |阅读模式

    马上注册,下载丰富资料,享用更多功能,让你轻松玩转阳光石油论坛。

    您需要 登录 才可以下载或查看,没有账号?欢迎注册

    x
    下图是一个简单的统计某个地震二维工区每条二维地震测线长度的workflow:


    Annotation 2019-04-17 101812.png

    目标结果:

    Annotation 2019-04-17 102309.png

    学习的主要内容是“loop”、“spreadsheet”相关语句。

    具体语句解释稍后奉上。


  • TA的每日心情
    开心
    昨天 18:57
  • 签到天数: 216 天

    [LV.7]常住居民III

    发表于 2019-4-17 12:24:57 | 显示全部楼层
    感谢老大持续支持~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    5 天前
  • 签到天数: 1856 天

    [LV.Master]伴坛终老

    发表于 2019-4-17 16:32:40 | 显示全部楼层
    admin 发表于 2019-4-17 12:24
    感谢老大持续支持~~~

    老板啊
    论坛现在网速太慢了吧
    卡的人心慌啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-1-11 00:20
  • 签到天数: 38 天

    [LV.5]常住居民I

     楼主| 发表于 2019-4-18 08:44:20 | 显示全部楼层
    Petrel的workflow中循环类型并不多。

    现在用的这种是最为常用的,叫做for all icons in folder。两个必选参数,一个可选参数。

    本例中,我们对于Survey 1(地震加载后的一个类似文件夹的东西,暂时在workflow中按文件夹看待即可)中的所有东西做一个“遍历”,遍历的方式就是设定Child reference的Variable。这个Variable的用处就是不具体指定某一个东西,而是可以根据workflow的运行条件来做赋值。类似编程中我们写:

    for i in range(Survey 1)

    然后这个i就可以在循环中获取每一个object。

    类似的例子,我们也可以做一个文件夹放好我们所有完成的surface,然后做for all icons in folder的循环来实现批量成图。

    总之,循环帮助我们可以不具体分配就能访问到文件夹中的每一个object。这句话最后一个参数“of type”是用来过滤数据类型的,本例中留空就意味着没有做任何过滤。比如我们希望做一个folder中全部厚度图的显示和输出,而其中还保存着多边形等等中间过程的内容,那么在of type中选择一个thickness depth surface就可以避免循环中variable指向到其它类型的数据了。

    除了这种循环,Petrel中还给你一种更为自主定义的循环:for all icons in list。

    这类似于

    for i in range([1,3,7])

    当然其过程会更加复杂,我们先不在这里讨论,感兴趣的可以尝试做一个简单的list试试。

    更为直接的循环是类似

    for i in range(10)

    这种,在Petrel中叫做for loop,打开以后就是Variable $i from 1 to 5。注意:Petrel里这种循环的步进缺省就是1,如果需要增加变化,需要在循环内追加一个

    Number expression: $i = $i +1

    另外还有一个while loop的条件循环,这里也先不讲了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-1-11 00:20
  • 签到天数: 38 天

    [LV.5]常住居民I

     楼主| 发表于 2019-4-19 13:41:20 | 显示全部楼层
    Petrel中做统计,最为常用的工具就是这些spreadsheet,用起来跟excel差不多。

    本例中也是选择了最为常用的Statistics to output sheet,感兴趣的同学可以尝试只写这一句,然后放入你工区里的数据看看输出,有很多有用的信息都可以看到,而且是会因为数据本身的类型不同而产生不同的Statistics的——是不是有一种OO的编程既视感?——

    Read output sheet和Output sheet这一对儿其实搭配很妙:他们的语句结构没有什么差异,都是“行”、“列”、“变量/恒量”、“表格名”这几项,最简单,却能组合成最为复杂的变化。找找自己感兴趣的某些类型——比如某些井、某些surface等等,试试你有没有办法统计出自己想要的表格罢。


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-30 17:37
  • 签到天数: 282 天

    [LV.8]以坛为家I

    发表于 2019-4-21 18:50:33 | 显示全部楼层
    kan kan ~~~ thnks
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-9-9 09:12
  • 签到天数: 37 天

    [LV.5]常住居民I

    发表于 2021-1-20 18:05:43 | 显示全部楼层
    xiexie
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 欢迎注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|阳光石油网 ( 鲁ICP备2021003870号-1 )

    GMT+8, 2024-5-18 07:31 , Processed in 0.064521 second(s), 22 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

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