Petrel小技巧之统计指定厚度以上的小层
Petrel小技巧之统计指定厚度以上的小层...
今天分享一个Petrel小技巧。
在实际工作过程中,通常需要统计指定厚度以上的小层。例如,在进行储量计算上,有时候太薄的小层(比如小于4m的小层)不参与计算;或者在进行压裂选层时,对于太薄的砂体也是不考虑压裂的。
这就带来了一个问题,对于薄互层频繁的砂体,如何快速的统计每个油层组或砂层组指定厚度以上的小层呢?以前,利用Excel编了宏程序来处理这些数据,后来在Petrel中进行了尝试,发现Petrel在处理这个问题有着先天的优势,让我也再一次爱上了Petrel,没有Petrel解决不了的问题,只有自己摸索不到的Petrel技巧。
本次演示数据来自Petrel培训材料中的B9井,大家可以利用该井按着本文的步骤进行测试。
该井剖面如下:
第一步,数据准备
在进行操作之前,首先准备数据,特别是单井有效厚度或者砂体或沉积相等离散型曲线。如上图中的(1)道,是根据GR和Porosity曲线利用计算器计算得到的。由于计算器是严格的遵循给定的下限值来判断True/False,因此就会出现很多薄层。如本例的道(1):NetPay
第二步,消除同值
这一步很重要,为了准确的得到每一个NetPay的顶底深度,首先需要消除连续的同值,这样就可以得到每一个小层的顶底深度。利用Remove equals来完成。如本例的道(2)。
第三步,计算每一个小层的顶底深度
计算器中输入:
Depth_Z=-Z
SingleLayerThickness=Depth_Z[K+1]-Depth_Z[K]
注意事项:利用计算器时,要注意模板和采样曲线的设置。
第四步,消除指定厚度的小层
计算器中输入:
NetPay_5mCutoff_Bln=If( SingleLayerThickness_Net>=5, 1, U)
这样就可以得到本例中的道(3),统计的是大于5m以上的小层。可以看到所有小于5m厚度的单个小层都剔除了。
是不是很简单,只要4步就可以完成原来可能需要编程才能完成的工作,而且一个很大的优点是可以随时在单井剖面上观察到利用不同的下限值来卡层,其结果的变化,从而可以更好的辅助分析。
至此,该工作已完成。
但是,如果大家仔细的再思考下就会发现一个问题,那就是在第一步计算NetPay的时候,由于用到的计算器是严格遵循给定的下限值来完成计算的,其实这个过程存在一些不合理性。比如在一大套河道砂体中,由于GR曲线或者其他曲线在某一点的值刚好小于给定下限值,从而导致该深度计算的值为False,表现为极薄的泥岩层或非有效层,在这地质上不合理,因此需要消除这些由于纯粹的计算器导致的不合理层。
因此在上述第二步之后增加一步,在计算器中输入:
NetPay_RemoveExtraThinClay=If( NetPay_CleanNull=U And SingleLayerThickness
关注 iPetrel
微信扫一扫关注公众号