Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes

AIModel Class Reference

Acoustic Impedance model. More...

List of all members.

Classes

struct  DataPoint

Public Types

enum  Domain { Time, Depth }

Public Member Functions

 AIModel (const TypeSet< DataPoint > &)
 AIModel (const DataPoint *, int sz)
 AIModel (const float *vel, const float *den, int sz, const float *z)
 AIModel (const float *vel, const float *den, int sz, const SamplingData< float > &)
float convertTo (float, Domain) const
float aiAt (Domain, float) const
float velocityAt (Domain, float) const
float densityAt (Domain, float) const
void antiAlias (int sz=-1)
 If -1, auto from resamplefac.
void getReflectivity (TypeSet< float > &) const
const TypeSet< DataPoint > & inputData () const
const TypeSet< DataPoint > & modelData () const
SamplingData< float > timeSampling () const

Protected Member Functions

void init ()
const DataPointvalPt (Domain, float) const
int indexFor (Domain, float) const
int getPosForDepth (float, float &) const

Protected Attributes

TypeSet< DataPointinp_
TypeSet< DataPointmdl_
SamplingData< float > tsampling_

Detailed Description

Acoustic Impedance model.

Input must be depth sorted. A point indicates the start of a layer. Everything above the first point has the properties of the first point. The first point's depth and velocity determine the output start time.

The input arrays are const T* for ease of cross-use. Don't pass nulls though, users will be disappointed with the resulting crash. Similarly: don't give crazy values like vel or den <= 0. No checks for Undefs.

Additionally: (1) Everything must be in SI units, no ft, ft/s, g/cm3 or other trash. (2) Velocity is one-way (i.e. a rock property). (3) Time is in seconds.


Member Enumeration Documentation

Enumerator:
Time 
Depth 

Constructor & Destructor Documentation

AIModel::AIModel ( const TypeSet< DataPoint > &   ) 
AIModel::AIModel ( const DataPoint ,
int  sz 
)
AIModel::AIModel ( const float *  vel,
const float *  den,
int  sz,
const float *  z 
)
AIModel::AIModel ( const float *  vel,
const float *  den,
int  sz,
const SamplingData< float > &   
)

Member Function Documentation

float AIModel::aiAt ( Domain  ,
float   
) const
void AIModel::antiAlias ( int  sz = -1  ) 

If -1, auto from resamplefac.

float AIModel::convertTo ( float  ,
Domain   
) const
float AIModel::densityAt ( Domain  ,
float   
) const
int AIModel::getPosForDepth ( float  ,
float &   
) const [protected]
void AIModel::getReflectivity ( TypeSet< float > &   )  const
int AIModel::indexFor ( Domain  ,
float   
) const [protected]
void AIModel::init (  )  [protected]
const TypeSet<DataPoint>& AIModel::inputData (  )  const [inline]
const TypeSet<DataPoint>& AIModel::modelData (  )  const [inline]
SamplingData<float> AIModel::timeSampling (  )  const [inline]
const DataPoint& AIModel::valPt ( Domain  ,
float   
) const [protected]
float AIModel::velocityAt ( Domain  ,
float   
) const

Member Data Documentation

SamplingData<float> AIModel::tsampling_ [protected]