OpendTect-6_4  6.4
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

int isOK (bool dodencheck=true, bool dosvelcheck=true) const
 
bool getValues (bool isden, bool issvel, TypeSet< float > &) const
 
bool getValues (bool vel, bool den, bool svel, Array2DImpl< float > &) const
 
void checkAndClean (int &firsterroridx, bool dodencheck=true, bool dosvelcheck=true, bool onlyinvalid=false)
 
void interpolate (bool dovp, bool doden, bool dovs)
 
void upscale (float maxthickness)
 
void upscaleByN (int nblock)
 
void setMaxThickness (float maxthickness)
 
void mergeSameLayers ()
 
void block (float relthreshold, bool pvelonly)
 
bool getUpscaledByThicknessAvg (ElasticLayer &outlay) const
 
bool getUpscaledBackus (ElasticLayer &outlay, float theta=0.) const
 
bool createFromVel (const StepInterval< float > &zrange, const float *pvel, const float *svel=0, const float *den=0)
 
bool createFromAI (const StepInterval< float > &zrange, const float *ai, const float *si=0, const float *den=0)
 
float getLayerDepth (int layerix) const
 
void getTimeSampling (Interval< float > &, bool usevs=false) const
 
- Public Member Functions inherited from TypeSet< ElasticLayer >
 TypeSet ()
 
 TypeSet (int nr, ElasticLayer typ)
 
 TypeSet (const ElasticLayer *t, int nr)
 
 TypeSet (const TypeSet< ElasticLayer > &t)
 
- Public Member Functions inherited from TypeSetBase< ElasticLayer, int >
virtual ~TypeSetBase ()
 
TypeSetBase< ElasticLayer, int > & operator= (const TypeSetBase< ElasticLayer, int > &ts)
 
size_type size () const
 
virtual int64_t nrItems () const
 
virtual bool setSize (size_type, ElasticLayer val=ElasticLayer())
 
virtual bool setCapacity (size_type sz, bool withmargin)
 
virtual size_type getCapacity () const
 
void setAll (ElasticLayer)
 
void replace (ElasticLayer, ElasticLayer)
 
ElasticLayeroperator[] (size_type)
 
const ElasticLayeroperator[] (size_type) const
 
ElasticLayerfirst ()
 
const ElasticLayerfirst () const
 
ElasticLayerlast ()
 
const ElasticLayerlast () const
 
virtual bool validIdx (int64_t) const
 
virtual size_type indexOf (ElasticLayer, bool forward=true, size_type start=-1) const
 
bool isPresent (const ElasticLayer &) const
 
size_type count (const ElasticLayer &) const
 
TypeSetBase< ElasticLayer, int > & add (const ElasticLayer &)
 
virtual void insert (size_type, const ElasticLayer &)
 
bool push (const ElasticLayer &)
 
ElasticLayer pop ()
 
TypeSetBase< ElasticLayer, int > & operator+= (const ElasticLayer &t)
 
virtual bool append (const ElasticLayer *, size_type)
 
virtual bool append (const TypeSetBase< ElasticLayer, int > &)
 
virtual bool addIfNew (const ElasticLayer &)
 
virtual TypeSetBase< ElasticLayer, int > & copy (const ElasticLayer *, size_type)
 
virtual TypeSetBase< ElasticLayer, int > & copy (const TypeSetBase< ElasticLayer, int > &)
 
virtual void createUnion (const TypeSetBase< ElasticLayer, int > &)
 
virtual void createIntersection (const TypeSetBase< ElasticLayer, int > &)
 Only keeps common items. More...
 
virtual void createDifference (const TypeSetBase< ElasticLayer, int > &, bool must_preserve_order=false)
 Removes all items present in other set. More...
 
virtual void swap (int64_t, int64_t)
 
virtual void move (size_type from, size_type to)
 
virtual void getReOrdered (const size_type *, TypeSetBase< ElasticLayer, int > &)
 Fills as per the given array of indexes. More...
 
virtual void reverse ()
 
virtual void erase ()
 
virtual void removeSingle (size_type, bool preserver_order=true)
 
TypeSetBase< ElasticLayer, int > & operator-= (const ElasticLayer &)
 
virtual void removeRange (size_type from, size_type to)
 
virtual ElasticLayerarr ()
 3rd party access More...
 
virtual const ElasticLayerarr () const
 
std::vector< ElasticLayer > & vec ()
 
const std::vector< ElasticLayer > & 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)
 

Protected Member Functions

bool getRatioValues (bool vel, bool den, bool svel, Array2DImpl< float > &ratiovals, Array2DImpl< float > *vals=0) const
 
bool doBlocking (float threshold, bool pvelonly, TypeSet< Interval< int > > &blocks) const
 
void removeSpuriousLayers (float zstep)
 
- Protected Member Functions inherited from TypeSetBase< ElasticLayer, int >
 TypeSetBase ()
 
 TypeSetBase (size_type nr, ElasticLayer typ)
 
 TypeSetBase (const ElasticLayer *, size_type nr)
 
 TypeSetBase (const TypeSetBase< ElasticLayer, size_type > &)
 
virtual ElasticLayergtArr () const
 

Additional Inherited Members

- Public Types inherited from TypeSetBase< ElasticLayer, int >
typedef int size_type
 
typedef ElasticLayer object_type
 
- Protected Attributes inherited from TypeSetBase< ElasticLayer, int >
VectorAccess< ElasticLayer, int > vec_
 

Detailed Description

A table of elastic prop layers with processing utilities.

Member Function Documentation

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
pvelonlyWill use density and SVel as well if false
void ElasticModel::checkAndClean ( int &  firsterroridx,
bool  dodencheck = true,
bool  dosvelcheck = true,
bool  onlyinvalid = false 
)
bool ElasticModel::createFromAI ( const StepInterval< float > &  zrange,
const float *  ai,
const float *  si = 0,
const float *  den = 0 
)
bool ElasticModel::createFromVel ( const StepInterval< float > &  zrange,
const float *  pvel,
const float *  svel = 0,
const float *  den = 0 
)
bool ElasticModel::doBlocking ( float  threshold,
bool  pvelonly,
TypeSet< Interval< int > > &  blocks 
) const
protected
float ElasticModel::getLayerDepth ( int  layerix) const
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

static bool ElasticModel::getTimeSampling ( const TypeSet< ElasticModel > &  ,
Interval< float > &  timerg,
bool  usevs = false 
)
static
void ElasticModel::getTimeSampling ( Interval< float > &  ,
bool  usevs = false 
) const
bool ElasticModel::getUpscaledBackus ( ElasticLayer outlay,
float  theta = 0. 
) const
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

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

Get one of the properties

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

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

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

Replaces all undefined or invalid values

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

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

void ElasticModel::mergeSameLayers ( )

Merged consecutive layers with same properties.

void ElasticModel::removeSpuriousLayers ( float  zstep)
protected
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

void ElasticModel::upscale ( float  maxthickness)

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

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. 2019