osv流程简解

demo3d.py

Main函数入口

def main(args):
    goPlanar()
    goFaultOrientScan()
    goSurfaceVoting()
    goFaultSurfaces()

共有四步:

  1. 计算地震平面度作为输入断层属性
  2. 大致估计断层走向
  3. 计算投票面和最终投票得分图
  4. 构造断层面

xs.dat输入地震图像

...
gxfile = "xs"  # input seismic image
...
...
gx = readImage3D(gxfile)
...

下面输出的图片并不全,因为其调用的子函数也会输出图像。
这些图片具体是什么,怎么计算的我没有了解,需要结合相关专业知识。
每个plot具体输出的是哪张图像,可以通过clab看出一点蛛丝马迹。

goPlanar 计算地震平面度

输出了三张图:

...
plot3(gx, ep, cmin=0.25, cmax=1.0, cmap=jetRamp(1.0),
      clab="Planarity", png="ep")
plot3(gx, fe, cmin=0.25, cmax=1.0, cmap=jetRamp(1.0),
      clab="Planarity", png="fl")
plot3(gx, fp, cmin=1, cmax=360, cmap=hueFill(1.0),
      clab="Fault strike (degrees)", png="ph")

goFaultOrientScan 计算投票面和最终投票得分图

输出两张图:

...
plot3(gx, ep, cmin=0.25, cmax=1.0, cmap=jetRamp(1.0),
      clab="Planarity", png="ep")
plot3(gx, fv, cmin=0.25, cmax=1.0, cmap=jetRamp(1.0),
      clab="Surface voting", png="fv")

goSurfaceVoting 计算投票面和最终投票得分图

输出两张图

plot3(gx, ep, cmin=0.25, cmax=1.0, cmap=jetRamp(1.0),
          clab="Planarity", png="ep")
plot3(gx, fv, cmin=0.25, cmax=1.0, cmap=jetRamp(1.0),
          clab="Surface voting", png="fv")

goFaultSurfaces 构造断层面

输出四张图:

...
plot3(gx, clab="Amplitude", png="seis")
plot3(gx, fv, cmin=0.25, cmax=1.0, cmap=jetRamp(1.0),
      clab="Voting score", png="fv")
plot3(gx, ft, cmin=0.25, cmax=1.0, cmap=jetRamp(1.0),
      clab="Thinned voting score", png="fvt")
plot3(gx, skinx=sks, au=80, ev=55, v3=0.05, png="skinv")