SoOpenCLSeismic Class Reference
[OpenCL algorithms]

VSG extension Seismic attribute functions for OPENCL buffers More...

#include <Inventor/OpenCL/algorithms/SoSeismic.h>

Inheritance diagram for SoOpenCLSeismic:
SoSeismic

List of all members.

Public Member Functions

 SoOpenCLSeismic ()
virtual int computeInstPhase (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, int traceSize, int numTrace)
virtual int computeEnvelope (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, int traceSize, int numTrace)
virtual int computeHilbert (SoBufferObject *sourceBufferObject, SoBufferObject *targetBufferObject, int width, int height)
int computeInstPhase (SoOpenCLBufferObject *sourceBufferObject, SoOpenCLBufferObject *targetBufferObject, int traceSize, int numTrace)
int computeEnvelope (SoOpenCLBufferObject *sourceBufferObject, SoOpenCLBufferObject *targetBufferObject, int traceSize, int numTrace)
int computeHilbert (SoOpenCLBufferObject *sourceBufferObject, SoOpenCLBufferObject *targetBufferObject, int width, int height)

Detailed Description

VSG extension Seismic attribute functions for OPENCL buffers

The Seismic module provides functions for computing seismic attributes.

NOTE: The classes in this module do not exist in Open Inventor 10.0 and later.

Examples:


Constructor & Destructor Documentation

SoOpenCLSeismic::SoOpenCLSeismic (  ) 

Constructor.


Member Function Documentation

int SoOpenCLSeismic::computeEnvelope ( SoOpenCLBufferObject sourceBufferObject,
SoOpenCLBufferObject targetBufferObject,
int  traceSize,
int  numTrace 
)

Compute envelope (amplitude) attribute on a set of seismic traces.


OPENCL optimized version.

  • This function handles SoOpenCLBufferObject input output type only.
  • Data stored in buffers must be of type float.
virtual int SoOpenCLSeismic::computeEnvelope ( SoBufferObject sourceBufferObject,
SoBufferObject targetBufferObject,
int  traceSize,
int  numTrace 
) [virtual]

Compute envelope (amplitude) attribute on a set of seismic traces.


amp(t) = sqrt( re^2(t) + im^2(t))

  • Reimplements the SoSeismic version to check if input and output buffers are both of type SoOpenCLBufferObject. If yes, then OPENCL optimized version is used, else the CPU version is used.
  • Data stored in buffers must be of type float.
Parameters:
sourceBufferObject Should contain the real part of the complex trace (original trace data).
targetBufferObject should contain the imaginary part of the complex trace (Hilbert transform of trace data).
Note: targetBufferObject will be overwritten with the result values.
traceSize Number of samples in each trace (must be same for all traces).
numTrace Number of traces.

Reimplemented from SoSeismic.

int SoOpenCLSeismic::computeHilbert ( SoOpenCLBufferObject sourceBufferObject,
SoOpenCLBufferObject targetBufferObject,
int  width,
int  height 
)

Compute Hilbert transform on a set of seismic traces.


OPENCL optimized version.

  • This function handles SoOpenCLBufferObject input output type only.
  • Data stored in buffers must be of type float.
virtual int SoOpenCLSeismic::computeHilbert ( SoBufferObject sourceBufferObject,
SoBufferObject targetBufferObject,
int  width,
int  height 
) [virtual]

Compute Hilbert transform on a set of seismic traces.


The Hilbert transform is computed by convolving sourceBufferObject with a windowed (approximate) version of the ideal Hilbert transformer.

  • Reimplements the SoSeismic version to check if input and output buffers are both of type SoOpenCLBufferObject. If yes, then OPENCL optimized version is used, else the CPU version is used.
  • Data stored in buffers must be of type float.

Reimplemented from SoSeismic.

int SoOpenCLSeismic::computeInstPhase ( SoOpenCLBufferObject sourceBufferObject,
SoOpenCLBufferObject targetBufferObject,
int  traceSize,
int  numTrace 
)

Compute instantaneous phase attribute on a set of seismic traces.


OPENCL optimized version.

  • This function handles SoOpenCLBufferObject input output type only.
  • Data stored in buffers must be of type float.
virtual int SoOpenCLSeismic::computeInstPhase ( SoBufferObject sourceBufferObject,
SoBufferObject targetBufferObject,
int  traceSize,
int  numTrace 
) [virtual]

Compute instantaneous phase attribute on a set of seismic traces.


phase(t) = arctan( im(t)/re(t))

  • Reimplements the SoSeismic version to check if input and output buffers are both of type SoOpenCLBufferObject. If yes, then OPENCL optimized version is used, else the CPU version is used.
  • Data stored in buffers must be of type float.
Parameters:
sourceBufferObject Should contain the real part of the complex trace (original trace data).
targetBufferObject should contain the imaginary part of the complex trace (Hilbert transform of trace data).
Note: targetBufferObject will be overwritten with the result values.
traceSize Number of samples in each trace (must be same for all traces).
numTrace Number of traces.

Reimplemented from SoSeismic.


The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/