OpendTect
7.0
|
A table of elastic prop layers with processing utilities Like the RefLayer class, uses SI values exclusively. More...
Public Member Functions | |
ElasticModel () | |
ElasticModel (const ElasticModel &) | |
ElasticModel (const ObjectSet< RefLayer > &) | |
~ElasticModel () | |
double | aboveThickness () const |
void | append (const ObjectSet< RefLayer > &) override |
void | block (float relthreshold, bool pvelonly) |
void | checkAndClean (int &firsterroridx, bool dodencheck=true, bool dosvelcheck=true, bool onlyinvalid=false) |
ElasticModel * | clone () const override |
ElasticModel & | copyFrom (const ElasticModel &mdl, RefLayer::Type reqtyp) |
bool | createFromAI (const ZSampling &zrange, const float *ai, const float *si=nullptr, const float *den=nullptr) |
bool | createFromAI (const ZValueSeries &zsamp, const float *ai, const float *si=nullptr, const float *den=nullptr) |
bool | createFromVel (const ZSampling &zrange, const float *pvel, const float *svel=nullptr, const float *den=nullptr) |
bool | createFromVel (const ZValueSeries &zsamp, const float *pvel, const float *svel=nullptr, const float *den=nullptr) |
void | erase () override |
float | getLayerDepth (int layerix) const |
RefLayer::Type | getMinType () const |
Interval< float > | getTimeSampling (bool usevs=false) const |
RefLayer::Type | getType () const |
bool | getUpscaledBackus (RefLayer &, float theta=0.) const |
bool | getUpscaledByThicknessAvg (RefLayer &) const |
bool | getValues (bool isden, bool issvel, TypeSet< float > &) const |
bool | getValues (bool vel, bool den, bool svel, Array2D< float > &) const |
void | interpolate (bool dovp, bool doden, bool dovs) |
bool | isElastic () const |
bool | isHTI () const |
bool | isManaged () const override |
int | isOK (bool dodencheck=true, bool dosvelcheck=true, bool dofracrhocheck=true, bool dofracazicheck=true) const |
bool | isVTI () const |
void | mergeSameLayers () |
ElasticModel & | operator-= (RefLayer *) override |
ElasticModel & | operator= (const ElasticModel &) |
RefLayer * | pop () override |
RefLayer * | removeAndTake (int, bool kporder=true) |
void | removeRange (int from, int to) override |
RefLayer * | removeSingle (int, bool kporder=true) override |
RefLayer * | replace (int, RefLayer *) override |
void | setMaxThickness (float maxthickness) |
ElasticModel & | setOverburden (double thickness, double starttime) |
double | startTime () const |
void | upscale (float maxthickness) |
void | upscaleByN (int nblock) |
Public Member Functions inherited from ObjectSet< RefLayer > | |
ObjectSet () | |
ObjectSet (const ObjectSet &) | |
ObjectSet (RefLayer *) | |
ObjectSet (RefLayer *, RefLayer *) | |
ObjectSet (RefLayer *, RefLayer *, RefLayer *) | |
virtual | ~ObjectSet () |
ObjectSet & | add (RefLayer *t) |
bool | addIfNew (RefLayer *) |
void | allowNull (bool yn=true) |
virtual void | append (const ObjectSet &) |
iterator | begin () |
const_iterator | begin () const |
const_iterator | cbegin () const |
const_iterator | cend () const |
ObjectSet * | clone () const override |
virtual void | copy (const ObjectSet &) |
bool | empty () const |
iterator | end () |
const_iterator | end () const |
void | erase () override |
RefLayer * | first () |
const RefLayer * | first () const |
virtual RefLayer * | get (const RefLayer *) const |
check & unconst More... | |
virtual RefLayer * | get (idx_type) |
virtual const RefLayer * | get (idx_type) const |
idx_type | getIdx (const_iterator it) const |
idx_type | getIdx (iterator it) const |
virtual idx_type | indexOf (const RefLayer *) const |
virtual void | insertAfter (RefLayer *newptr, idx_type) |
virtual void | insertAt (RefLayer *newptr, idx_type) |
virtual bool | isPresent (const RefLayer *) const |
RefLayer * | last () |
const RefLayer * | last () const |
size_type | max_size () const |
std::int64_t | nrItems () const override |
bool | nullAllowed () const |
bool | operator!= (const ObjectSet &oth) const |
ObjectSet & | operator+= (RefLayer *t) |
virtual ObjectSet & | operator-= (RefLayer *) |
ObjectSet & | operator= (const ObjectSet &) |
bool | operator== (const ObjectSet &) const |
const RefLayer * | operator[] (const RefLayer *t) const |
RefLayer * | operator[] (idx_type i) |
const RefLayer * | operator[] (idx_type i) const |
void | plainErase () |
void | push (RefLayer *t) |
virtual RefLayer * | replace (idx_type, RefLayer *) |
void | reverse () override |
void | setNullAllowed (bool yn=true) |
size_type | size () const |
void | swap (idx_type, idx_type) |
void | swap (ObjectSet &oth) |
void | swapItems (std::int64_t i1, std::int64_t i2) override |
void | useIndexes (const idx_type *) |
bool | validIdx (std::int64_t) const override |
Public Member Functions inherited from OD::Set | |
virtual | ~Set () |
bool | isEmpty () const |
void | setEmpty () |
Private Member Functions | |
bool | doBlocking (float threshold, bool pvelonly, TypeSet< Interval< int > > &blocks) const |
bool | getRatioValues (bool vel, bool den, bool svel, Array2D< float > &ratiovals, Array2D< float > &vals) const |
void | removeSpuriousLayers (float zstep) |
void | removeSpuriousLayers (float zstep, bool zistime) |
Additional Inherited Members | |
Public Types inherited from ObjectSet< RefLayer > | |
typedef impl_type::const_iterator | const_iterator |
typedef const value_type & | const_reference |
typedef size_type | difference_type |
typedef size_type | idx_type |
typedef impl_type::iterator | iterator |
typedef RefLayer | object_type |
typedef value_type & | reference |
typedef int | size_type |
typedef RefLayer * | value_type |
Static Public Member Functions inherited from OD::Set | |
static std::int32_t | maxIdx32 () |
static std::int64_t | maxIdx64 () |
Protected Types inherited from ObjectSet< RefLayer > | |
typedef VectorAccess< RefLayer *, size_type > | impl_type |
Protected Member Functions inherited from ObjectSet< RefLayer > | |
virtual ObjectSet & | doAdd (RefLayer *) |
Protected Attributes inherited from ObjectSet< RefLayer > | |
bool | allow0_ |
impl_type | vec_ |
A table of elastic prop layers with processing utilities Like the RefLayer class, uses SI values exclusively.
<>
ElasticModel::ElasticModel | ( | ) |
ElasticModel::ElasticModel | ( | const ElasticModel & | ) |
ElasticModel::~ElasticModel | ( | ) |
double ElasticModel::aboveThickness | ( | ) | const |
void ElasticModel::block | ( | float | relthreshold, |
bool | pvelonly | ||
) |
Merged consecutive layers with same properties.
void ElasticModel::checkAndClean | ( | int & | firsterroridx, |
bool | dodencheck = true , |
||
bool | dosvelcheck = true , |
||
bool | onlyinvalid = false |
||
) |
Get several properties, in the order vel - den - svel
|
inlineoverridevirtual |
Implements OD::Set.
Reimplemented in ElasticModelOv.
ElasticModel& ElasticModel::copyFrom | ( | const ElasticModel & | mdl, |
RefLayer::Type | reqtyp | ||
) |
mdl | input model (can be itself) |
reqtyp | return type for all layers in model |
bool ElasticModel::createFromAI | ( | const ZSampling & | zrange, |
const float * | ai, | ||
const float * | si = nullptr , |
||
const float * | den = nullptr |
||
) |
bool ElasticModel::createFromAI | ( | const ZValueSeries & | zsamp, |
const float * | ai, | ||
const float * | si = nullptr , |
||
const float * | den = nullptr |
||
) |
creates an ElasticModel from sampled impedance /param zsamp Times in zsamp must be TWT in seconds Depths in zsamp must be TVDSD in meters /param ai Acoustic Impedance in SI units /param si Shear Impedance in SI units /param den bulk density in kg/m3
bool ElasticModel::createFromVel | ( | const ZSampling & | zrange, |
const float * | pvel, | ||
const float * | svel = nullptr , |
||
const float * | den = nullptr |
||
) |
bool ElasticModel::createFromVel | ( | const ZValueSeries & | zsamp, |
const float * | pvel, | ||
const float * | svel = nullptr , |
||
const float * | den = nullptr |
||
) |
creates an ElasticModel from sampled interval velocities /param zsamp Times in zsamp must be TWT in seconds Depths in zsamp must be TVDSD in meters /param pvel compressional velocities in m/s /param svel shear velocities in m/s /param den bulk density in kg/m3
|
private |
Computes first derivative of the elastic properties May also return the input values
|
overridevirtual |
Implements OD::Set.
float ElasticModel::getLayerDepth | ( | int | layerix | ) | const |
RefLayer::Type ElasticModel::getMinType | ( | ) | const |
|
private |
Interval<float> ElasticModel::getTimeSampling | ( | bool | usevs = false | ) | const |
RefLayer::Type ElasticModel::getType | ( | ) | const |
bool ElasticModel::getUpscaledBackus | ( | RefLayer & | , |
float | theta = 0. |
||
) | 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 computes an upscaled elastic layer from an elastic model using backus upscaling method. The thickness of the input and output remains constant. returns false if the input model does not contain a single valid input layer
theta | Incidence angle in radians |
bool ElasticModel::getUpscaledByThicknessAvg | ( | RefLayer & | ) | const |
Block elastic model so that no blocks have larger difference than the threshold. Attempts will be made to put boundaries at large changes.
relthreshold | |
pvelonly | Will use density and SVel as well if false |
bool ElasticModel::getValues | ( | bool | isden, |
bool | issvel, | ||
TypeSet< float > & | |||
) | const |
Checks if all layers have valid property values returns index of first invalid layer
bool ElasticModel::getValues | ( | bool | vel, |
bool | den, | ||
bool | svel, | ||
Array2D< float > & | |||
) | const |
Get one of the properties
void ElasticModel::interpolate | ( | bool | dovp, |
bool | doden, | ||
bool | dovs | ||
) |
bool ElasticModel::isElastic | ( | ) | const |
bool ElasticModel::isHTI | ( | ) | const |
|
inlineoverridevirtual |
Reimplemented from ObjectSet< RefLayer >.
int ElasticModel::isOK | ( | bool | dodencheck = true , |
bool | dosvelcheck = true , |
||
bool | dofracrhocheck = true , |
||
bool | dofracazicheck = true |
||
) | const |
bool ElasticModel::isVTI | ( | ) | const |
void ElasticModel::mergeSameLayers | ( | ) |
Ensures that all layers in the elastic model are not thicker than a maximum thickness. Splits the blocks if necessary
|
override |
ElasticModel& ElasticModel::operator= | ( | const ElasticModel & | ) |
|
overridevirtual |
Reimplemented from ObjectSet< RefLayer >.
RefLayer* ElasticModel::removeAndTake | ( | int | , |
bool | kporder = true |
||
) |
|
overridevirtual |
Reimplemented from ObjectSet< RefLayer >.
|
overridevirtual |
Reimplemented from ObjectSet< RefLayer >.
|
private |
|
private |
If a layer thickness is strictly identical to zstep, maybe split that layer over the last/previous layers /param zstep sampling rate in either time or depth (meter) /param zistime ZDomain corresponding to zstep
void ElasticModel::setMaxThickness | ( | float | maxthickness | ) |
Smashes every consecutive set of nblock layers into one output layer
ElasticModel& ElasticModel::setOverburden | ( | double | thickness, |
double | starttime | ||
) |
double ElasticModel::startTime | ( | ) | const |
void ElasticModel::upscale | ( | float | maxthickness | ) |
Replaces all undefined or invalid values
void ElasticModel::upscaleByN | ( | int | nblock | ) |
Ensures a model does not have layers below a given thickness last layer may not comply though
Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2024