SoCudaSeismic Class Reference
[CUDA algorithms]

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

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

Inheritance diagram for SoCudaSeismic:
SoSeismic

List of all members.

Public Member Functions

 SoCudaSeismic ()
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 (SoCudaBufferObject *sourceBufferObject, SoCudaBufferObject *targetBufferObject, int traceSize, int numTrace)
int computeEnvelope (SoCudaBufferObject *sourceBufferObject, SoCudaBufferObject *targetBufferObject, int traceSize, int numTrace)
int computeHilbert (SoCudaBufferObject *sourceBufferObject, SoCudaBufferObject *targetBufferObject, int width, int height)

Detailed Description

VSG extension Seismic attribute functions for CUDA 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

SoCudaSeismic::SoCudaSeismic (  ) 

Constructor.


Member Function Documentation

int SoCudaSeismic::computeEnvelope ( SoCudaBufferObject sourceBufferObject,
SoCudaBufferObject targetBufferObject,
int  traceSize,
int  numTrace 
)

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


CUDA optimized version.

  • This function handles SoCudaBufferObject input output type only.
  • Data stored in buffers must be of type float.
virtual int SoCudaSeismic::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 SoCudaBufferObject. If yes, then CUDA 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 SoCudaSeismic::computeHilbert ( SoCudaBufferObject sourceBufferObject,
SoCudaBufferObject targetBufferObject,
int  width,
int  height 
)

Compute Hilbert transform on a set of seismic traces.


CUDA optimized version.

  • This function handles SoCudaBufferObject input output type only.
  • Data stored in buffers must be of type float.
virtual int SoCudaSeismic::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 SoCudaBufferObject. If yes, then CUDA optimized version is used, else the CPU version is used.
  • Data stored in buffers must be of type float.

Reimplemented from SoSeismic.

int SoCudaSeismic::computeInstPhase ( SoCudaBufferObject sourceBufferObject,
SoCudaBufferObject targetBufferObject,
int  traceSize,
int  numTrace 
)

Compute instantaneous phase attribute on a set of seismic traces.


CUDA optimized version.

  • This function handles SoCudaBufferObject input output type only.
  • Data stored in buffers must be of type float.
virtual int SoCudaSeismic::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 SoCudaBufferObject. If yes, then CUDA 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/