OpendTect  6.6
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
ElasticModel Class Reference

A table of elastic prop layers with processing utilities. More...

Inheritance diagram for ElasticModel:
[legend]

Public Member Functions

void block (float relthreshold, bool pvelonly)
 
void checkAndClean (int &firsterroridx, bool dodencheck=true, bool dosvelcheck=true, bool onlyinvalid=false)
 
bool createFromAI (const StepInterval< float > &zrange, const float *ai, const float *si=0, const float *den=0)
 
bool createFromVel (const StepInterval< float > &zrange, const float *pvel, const float *svel=0, const float *den=0)
 
float getLayerDepth (int layerix) const
 
void getTimeSampling (Interval< float > &, bool usevs=false) const
 
bool getUpscaledBackus (ElasticLayer &outlay, float theta=0.) const
 
bool getUpscaledByThicknessAvg (ElasticLayer &outlay) const
 
bool getValues (bool isden, bool issvel, TypeSet< float > &) const
 
bool getValues (bool vel, bool den, bool svel, Array2DImpl< float > &) const
 
void interpolate (bool dovp, bool doden, bool dovs)
 
int isOK (bool dodencheck=true, bool dosvelcheck=true) const
 
void mergeSameLayers ()
 
void setMaxThickness (float maxthickness)
 
void upscale (float maxthickness)
 
void upscaleByN (int nblock)
 
- Public Member Functions inherited from TypeSet< ElasticLayer >
 TypeSet ()
 
 TypeSet (const ElasticLayer *t, size_type nr)
 
 TypeSet (const TypeSet &oth)
 
 TypeSet (ElasticLayer typ)
 
 TypeSet (size_type nr, ElasticLayer typ)
 
virtual TypeSetclone () const
 
- Public Member Functions inherited from OD::ValVec< T, IT >
virtual ~ValVec ()
 
ValVecadd (const T &)
 
virtual bool addIfNew (const T &)
 
virtual bool append (const T *, size_type)
 
virtual bool append (const ValVec &)
 
virtual T * arr ()
 3rd party access More...
 
virtual const T * arr () const
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
virtual ValVeccopy (const T *, size_type)
 
virtual ValVeccopy (const ValVec &)
 
size_type count (const T &) const
 
virtual void createDifference (const ValVec &, bool must_preserve_order=false)
 Removes all items present in other set. More...
 
virtual void createIntersection (const ValVec &)
 Only keeps common items. More...
 
virtual void createUnion (const ValVec &)
 
bool empty () const
 
iterator end ()
 
const_iterator end () const
 
virtual void erase ()
 
T & first ()
 
const T & first () const
 
T & get (idx_type)
 
const T & get (idx_type) const
 
virtual size_type getCapacity () const
 
idx_type getIdx (const_iterator it) const
 
idx_type getIdx (iterator it) const
 
virtual idx_type indexOf (T, bool forward=true, idx_type start=-1) const
 
virtual void insert (idx_type, const T &)
 
bool isPresent (const T &) const
 
T & last ()
 
const T & last () const
 
size_type max_size () const
 
virtual void move (idx_type from, idx_type to)
 
virtual int64_t nrItems () const
 
bool operator!= (const ValVec &oth) const
 
ValVecoperator+= (const T &t)
 
ValVecoperator-= (const T &t)
 
ValVecoperator= (const ValVec &oth)
 
bool operator== (const ValVec &) const
 
T & operator[] (idx_type i)
 
const T & operator[] (idx_type i) const
 
pop ()
 
bool push (const T &)
 
virtual void removeRange (idx_type from, idx_type to)
 
virtual void removeSingle (idx_type, bool preserver_order=true)
 
void replace (T, T)
 
virtual void reverse ()
 
void setAll (T)
 
virtual bool setCapacity (size_type sz, bool withmargin)
 
virtual bool setSize (size_type sz, T val=T())
 
size_type size () const
 
void swap (IT, IT)
 
void swap (ValVec &oth)
 
virtual void swapItems (int64_t i1, int64_t i2)
 
virtual void useIndexes (const idx_type *)
 
virtual bool validIdx (int64_t) const
 
std::vector< T > & vec ()
 
const std::vector< T > & vec () const
 
- Public Member Functions inherited from OD::Set
virtual ~Set ()
 
bool isEmpty () const
 
void setEmpty ()
 

Static Public Member Functions

static bool getTimeSampling (const TypeSet< ElasticModel > &, Interval< float > &timerg, bool usevs=false)
 
- Static Public Member Functions inherited from OD::Set
static int maxIdx32 ()
 
static int64_t maxIdx64 ()
 

Protected Member Functions

bool doBlocking (float threshold, bool pvelonly, TypeSet< Interval< int > > &blocks) const
 
bool getRatioValues (bool vel, bool den, bool svel, Array2DImpl< float > &ratiovals, Array2DImpl< float > *vals=0) const
 
void removeSpuriousLayers (float zstep)
 
- Protected Member Functions inherited from OD::ValVec< T, IT >
 ValVec ()
 
 ValVec (const T *, size_type nr)
 
 ValVec (const ValVec &)
 
 ValVec (size_type nr, T typ)
 
T * gtArr () const
 

Additional Inherited Members

- Public Types inherited from TypeSet< ElasticLayer >
typedef OD::ValVec< ElasticLayer, int >::idx_type idx_type
 
typedef OD::ValVec< ElasticLayer, int >::size_type size_type
 
- Public Types inherited from OD::ValVec< T, IT >
typedef impl_type::const_iterator const_iterator
 
typedef const value_typeconst_reference
 
typedef size_type difference_type
 
typedef size_type idx_type
 
typedef impl_type::iterator iterator
 
typedef T object_type
 
typedef value_typereference
 
typedef IT size_type
 
typedef T value_type
 
- Protected Types inherited from OD::ValVec< T, IT >
typedef VectorAccess< T, IT > impl_type
 
- Protected Attributes inherited from OD::ValVec< T, IT >
impl_type vec_
 

Detailed Description

A table of elastic prop layers with processing utilities.

<>

Member Function Documentation

◆ block()

void ElasticModel::block ( float  relthreshold,
bool  pvelonly 
)

Block elastic model so that no blocks have larger difference than the threshold. Attempts will be made to put boundaries at large changes.

Parameters
relthreshold
pvelonlyWill use density and SVel as well if false

◆ checkAndClean()

void ElasticModel::checkAndClean ( int &  firsterroridx,
bool  dodencheck = true,
bool  dosvelcheck = true,
bool  onlyinvalid = false 
)

◆ createFromAI()

bool ElasticModel::createFromAI ( const StepInterval< float > &  zrange,
const float *  ai,
const float *  si = 0,
const float *  den = 0 
)

◆ createFromVel()

bool ElasticModel::createFromVel ( const StepInterval< float > &  zrange,
const float *  pvel,
const float *  svel = 0,
const float *  den = 0 
)

◆ doBlocking()

bool ElasticModel::doBlocking ( float  threshold,
bool  pvelonly,
TypeSet< Interval< int > > &  blocks 
) const
protected

◆ getLayerDepth()

float ElasticModel::getLayerDepth ( int  layerix) const

◆ getRatioValues()

bool ElasticModel::getRatioValues ( bool  vel,
bool  den,
bool  svel,
Array2DImpl< float > &  ratiovals,
Array2DImpl< float > *  vals = 0 
) const
protected

Computes first derivative of the elastic properties May also return the input values

◆ getTimeSampling() [1/2]

static bool ElasticModel::getTimeSampling ( const TypeSet< ElasticModel > &  ,
Interval< float > &  timerg,
bool  usevs = false 
)
static

◆ getTimeSampling() [2/2]

void ElasticModel::getTimeSampling ( Interval< float > &  ,
bool  usevs = false 
) const

◆ getUpscaledBackus()

bool ElasticModel::getUpscaledBackus ( ElasticLayer outlay,
float  theta = 0. 
) const

◆ getUpscaledByThicknessAvg()

bool ElasticModel::getUpscaledByThicknessAvg ( ElasticLayer outlay) const

compute an upscaled elastic layer from an elastic model using simple weighted averaging. The thickness of the input and output remains constant. returns false if the input model does not contain a single valid input layer

◆ getValues() [1/2]

bool ElasticModel::getValues ( bool  isden,
bool  issvel,
TypeSet< float > &   
) const

Get one of the properties

◆ getValues() [2/2]

bool ElasticModel::getValues ( bool  vel,
bool  den,
bool  svel,
Array2DImpl< float > &   
) const

Get several properties, in the order vel - den - svel

◆ interpolate()

void ElasticModel::interpolate ( bool  dovp,
bool  doden,
bool  dovs 
)

Replaces all undefined or invalid values

◆ isOK()

int ElasticModel::isOK ( bool  dodencheck = true,
bool  dosvelcheck = true 
) const

Checks if all layers have valid property values returns index of first invalid layer

◆ mergeSameLayers()

void ElasticModel::mergeSameLayers ( )

Merged consecutive layers with same properties.

◆ removeSpuriousLayers()

void ElasticModel::removeSpuriousLayers ( float  zstep)
protected

◆ setMaxThickness()

void ElasticModel::setMaxThickness ( float  maxthickness)

Ensures that all layers in the elastic model are not thicker than a maximum thickness. Splits the blocks if necessary

◆ upscale()

void ElasticModel::upscale ( float  maxthickness)

Ensures a model does not have layers below a given thickness last layer may not comply though

◆ upscaleByN()

void ElasticModel::upscaleByN ( int  nblock)

Smashes every consecutive set of nblock layers into one output layer


Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2022