| OpendTect 8.0

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
InverseDistanceArray2DInterpol Class Reference
Algo

Interpolates 2D arrays using inverse distance method. More...

`#include <array2dinterpolimpl.h>`

Inheritance diagram for InverseDistanceArray2DInterpol:
[legend]

## Public Member Functions
| InverseDistanceArray2DInterpol ()
| ~InverseDistanceArray2DInterpol ()
bool | canUseArrayAccess () const override
bool | fillPar (IOPar &) const override
bool | getCornersFirst () const
int | getNrSteps () const
float | getSearchRadius () const
int | getStepSize () const
bool | nothingToFill () const override
bool | setArray (Array2D< float > &, TaskRunner *) override
| Set AFTER all settings.
bool | setArray (ArrayAccess &, TaskRunner *) override
| Set AFTER all settings.
void | setCornersFirst (bool n)
void | setNrSteps (int n)
void | setSearchRadius (float r)
void | setStepSize (int n)
bool | usePar (const IOPar &) override
Public Member Functions inherited from Array2DInterpol
virtual | ~Array2DInterpol ()
void | doPolygonCrop ()
FillType | getFillType () const
float | getMaxHoleSize () const
virtual uiString | infoMsg () const
bool | isClassification () const
void | setClassification (bool)
void | setColStep (float r)
void | setFillType (FillType)
void | setMask (const Array2D< bool > *, OD::PtrPolicy=OD::UsePtr)
void | setMaxHoleSize (float)
void | setOrigin (const RowCol &)
void | setRowStep (float r)
void | setSampling (const TrcKeySampling &)
| Set both steps and the origin.
void | setTrendOrder (PolyTrend::Order ord)
bool | trimArray (int step, Array2D< char > &edgesmask)
uiString | uiMessage () const override
Public Member Functions inherited from ParallelTask
virtual | ~ParallelTask ()
void | doParallel (bool yn)
bool | execute () override
virtual bool | executeParallel (bool parallel)
od_int64 | nrDone () const override
| May be -1, i.e. class does not report nrdone.
od_int64 | totalNr () const override
Public Member Functions inherited from ReportingTask
| ReportingTask (const ReportingTask &)=delete
virtual | ~ReportingTask ()
void | getProgress (const ReportingTask &)
ReportingTask & | operator= (const ReportingTask &)=delete
void | setSimpleMeter (bool yn, int repperc)
int | simpleMeterStep () const
bool | useSimpleMeter () const
Public Member Functions inherited from Task
| Task (const Task &)=delete
virtual | ~Task ()
virtual void | controlWork (Control)
virtual void | enableWorkControl (bool=true)
| Must be called before execute()
virtual uiRetVal | errorWithDetails () const
virtual Control | getState () const
Task & | operator= (const Task &)=delete
bool | workControlEnabled () const
Public Member Functions inherited from NamedCallBacker
| NamedCallBacker (const char *nm=nullptr)
| NamedCallBacker (const NamedCallBacker &)=delete
| ~NamedCallBacker ()
virtual Notifier< NamedCallBacker > & | objectToBeDeleted () const
NamedCallBacker & | operator= (const NamedCallBacker &)=delete
bool | operator== (const NamedCallBacker &oth) const
bool | operator== (const NamedObject &oth) const
Public Member Functions inherited from CallBacker
| CallBacker ()
| CallBacker (const CallBacker &)
virtual | ~CallBacker ()
bool | attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const
bool | attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const
void | detachAllNotifiers () const
| Call from the destructor of your inherited object.
void | detachCB (const NotifierAccess &, const CallBack &) const
void | detachCB (const NotifierAccess *notif, const CallBack &cb) const
virtual bool | isCapsule () const
bool | isNotifierAttached (const NotifierAccess *) const
| Only for debugging purposes, don't use.
CallBacker & | operator= (const CallBacker &)=delete
void | stopReceivingNotifications () const
virtual CallBacker * | trueCaller ()
Public Member Functions inherited from NamedObject
| NamedObject (const char *nm=nullptr)
| NamedObject (const NamedObject &oth)
virtual | ~NamedObject ()
virtual BufferString | getName () const
bool | getNameFromPar (const IOPar &)
const name_type & | name () const override
NamedObject & | operator= (const NamedObject &)
bool | operator== (const NamedObject &oth) const
virtual void | setName (const char *nm)
Public Member Functions inherited from ObjectWithName
virtual | ~ObjectWithName ()
bool | hasName (const char *nm) const
bool | hasName (const name_type &nm) const
void | putNameInPar (IOPar &) const

## Static Public Member Functions
static const char * | sKeyCornersFirst ()
static const char * | sKeyNrSteps ()
static const char * | sKeySearchRadius ()
static const char * | sKeyStepSize ()
Static Public Member Functions inherited from Array2DInterpol
static const char * | sKeyColStep ()
static const char * | sKeyCropPolygon ()
static const char * | sKeyFillType ()
static const char * | sKeyMaxHoleSz ()
static const char * | sKeyNrCells ()
static const char * | sKeyNrCols ()
static const char * | sKeyNrRows ()
static const char * | sKeyOrigin ()
static const char * | sKeyPolyNode ()
static const char * | sKeyPolyNrofNodes ()
static const char * | sKeyRowStep ()
Static Public Member Functions inherited from ParallelTask
static uiString | sPosFinished ()
static uiString | sTrcFinished ()
Static Public Member Functions inherited from ReportingTask
static PtrMan< ProgressMeter > | getTextProgressMeter (od_ostream &, const IOPar *iop=nullptr)
static bool | needSimpleLogging (const IOPar &)
static const char * | sKeySimpleLogging ()
static const char * | sKeySimpleLoggingStep ()
Static Public Member Functions inherited from Task
static uiString | uiStdNrDoneText ()
Static Public Member Functions inherited from CallBacker
static void | createReceiverForCurrentThread ()
static void | removeReceiverForCurrentThread ()

## Protected Member Functions
bool | doPrepare (int) override
bool | doWork (od_int64, od_int64, int) override
od_int64 | getNextIdx ()
virtual bool | initFromArray (TaskRunner *)
od_int64 | nrIterations () const override
void | reportDone (od_int64)
uiString | uiNrDoneText () const override
Protected Member Functions inherited from Array2DInterpol
| Array2DInterpol ()
void | excludeBigHoles (const bool *isdef, bool *shouldinterpol) const
void | floodFillArrFrom (int seed, const bool *isdef, bool *shouldinterpol) const
void | getNodesToFill (const bool *isdef, bool *shouldinterpol, TaskRunner *) const
bool | isDefined (int idx) const
virtual void | setFrom (od_int64 target, const od_int64 *sources, const float *weights, int nrsrc)
Protected Member Functions inherited from ParallelTask
| ParallelTask (const char *nm=0)
void | addToNrDone (od_int64 increment)
od_int64 | calculateThreadSize (od_int64 totalnr, int nrthreads, int thread) const
virtual int | maxNrThreads () const
virtual int | minThreadSize () const
void | quickAddToNrDone (od_int64 loopidx)
void | resetNrDone ()
virtual bool | stopAllOnFailure () const
Protected Member Functions inherited from ReportingTask
| ReportingTask (const char *nm=nullptr)
void | incrementProgress ()
ProgressMeter * | progressMeter () const
void | reportProgressFinished ()
void | reportProgressStarted ()
void | resetProgress ()
void | setProgressMeter (ProgressMeter *) override
| Must be called before execute()
void | updateProgressMeter (bool forced=false, od_int64 *totalnr=0)
void | updateReportedName ()
Protected Member Functions inherited from Task
| Task (const char *nm=nullptr)
virtual bool | shouldContinue ()
Protected Member Functions inherited from NamedCallBacker
void | sendDelNotif () const

## Protected Attributes
TypeSet< od_int64 > | addedwithcursuport_
Threads::ConditionVar & | condvar_
bool | cornersfirst_
bool * | curdefined_
TypeSet< od_int64 > | definedidxs_
TypeSet< RowCol > | neighbors_
TypeSet< float > | neighborweights_
bool * | nodestofill_
int | nraddedthisstep_
int | nrinitialdefined_
TypeSet< od_int64 > | nrsources_
int | nrsteps_
int | nrthreads_
int | nrthreadswaiting_
od_int64 | prevsupportsize_
float | searchradius_
bool | shouldend_
int | stepidx_
int | stepsize_
TypeSet< od_int64 > | todothisstep_
int | totalnr_
bool | waitforall_
Protected Attributes inherited from Array2DInterpol
Array2D< float > * | arr_
ArrayAccess * | arrsetter_
float | colstep_
bool | croppoly_
FillType | filltype_
bool | isclassification_
const Array2D< bool > * | mask_
bool | maskismine_
float | maxholesize_
int | nrcells_
int | nrcols_
int | nrrows_
RowCol | origin_
ODPolygon< double > * | poly_
float | rowstep_
Stats::CalcSetup * | statsetup_
PolyTrend * | trend_
Protected Attributes inherited from Task
Control | control_ = Task::Run
Threads::ConditionVar * | workcontrolcondvar_ = nullptr
Protected Attributes inherited from NamedCallBacker
Threads::Atomic< bool > | delalreadytriggered_
Notifier< NamedCallBacker > | delnotif_
Protected Attributes inherited from NamedObject
BufferString | name_

## Additional Inherited Members
Public Types inherited from Array2DInterpol
enum | FillType { HolesOnly , ConvexHull , Full , Polygon }
Public Types inherited from Task
enum | Control { Run , Pause , Stop }
Public Types inherited from ObjectWithName
typedef OD::String | name_type
Public Attributes inherited from ReportingTask
Notifier< ReportingTask > | progressUpdated

## Detailed Description

Interpolates 2D arrays using inverse distance method.

Parameters:

1. searchradius - sets the search radius. Should have the same unit as given in setRowStep and getColStep. If undefined, all defined nodes will be used, and no other settings will be used.
2. stepsize/nrsteps - sets how many nodes that will be done in each step. Each step will only use points defined in previous steps (not really true as shortcuts are made). In general, larger steps gives faster interpolation, but lower quality. If stepsize is 10, and nrsteps is 10, a border of maximum 100 nodes will be interpolated around the defined positions.

3. cornersfirst - if true, algorithm will only interpolate nodes that has the same number of support (i.e. neigbors) within +-stepsize, before reevaluating which nodes to do next. Enabling cornersfirst will give high quality output at the expense of speed.

   <>

## Constructor & Destructor Documentation

## ◆ InverseDistanceArray2DInterpol()

InverseDistanceArray2DInterpol::InverseDistanceArray2DInterpol | ( |  | ) |

## ◆ ~InverseDistanceArray2DInterpol()

InverseDistanceArray2DInterpol::~InverseDistanceArray2DInterpol | ( |  | ) |

## Member Function Documentation

## ◆ canUseArrayAccess()

bool InverseDistanceArray2DInterpol::canUseArrayAccess | ( |  | ) | const
| inline override virtual

Reimplemented from Array2DInterpol.

## ◆ doPrepare()

bool InverseDistanceArray2DInterpol::doPrepare | ( | int | nrthreads | ) |
| override protected virtual

Called once, before any doWork is called.

Reimplemented from Array2DInterpol.

## ◆ doWork()

bool InverseDistanceArray2DInterpol::doWork | ( | od_int64 | start,
|  | od_int64 | stop,
|  | int | threadidx )
| override protected virtual

The functions that does the job. The function will be called with all intervals from 0 to ParallelTask::nrIterations()-1. The function must be designed to be able to run in parallel.

Parameters

  start | first index
  stop | last index
  threadidx | gives an identifier (between 0 and nr of threads -1) that is unique to each call to doWork.

Implements ParallelTask.

## ◆ fillPar()

bool InverseDistanceArray2DInterpol::fillPar | ( | IOPar & |  | ) | const
| override virtual

Reimplemented from Array2DInterpol.

## ◆ getCornersFirst()

bool InverseDistanceArray2DInterpol::getCornersFirst | ( |  | ) | const
| inline

## ◆ getNextIdx()

od_int64 InverseDistanceArray2DInterpol::getNextIdx | ( |  | ) |
| protected

## ◆ getNrSteps()

int InverseDistanceArray2DInterpol::getNrSteps | ( |  | ) | const
| inline

## ◆ getSearchRadius()

float InverseDistanceArray2DInterpol::getSearchRadius | ( |  | ) | const
| inline

## ◆ getStepSize()

int InverseDistanceArray2DInterpol::getStepSize | ( |  | ) | const
| inline

## ◆ initFromArray()

virtual bool InverseDistanceArray2DInterpol::initFromArray | ( | TaskRunner * |  | ) |
| protected virtual

Reimplemented in InvDistHor3DGridder.

## ◆ nothingToFill()

bool InverseDistanceArray2DInterpol::nothingToFill | ( |  | ) | const
| inline override virtual

Reimplemented from Array2DInterpol.

## ◆ nrIterations()

od_int64 InverseDistanceArray2DInterpol::nrIterations | ( |  | ) | const
| inline override protected virtual

Returns
  the number of times the process should be run.

Implements ParallelTask.

## ◆ reportDone()

void InverseDistanceArray2DInterpol::reportDone | ( | od_int64 |  | ) |
| protected

## ◆ setArray() [1/2]

bool InverseDistanceArray2DInterpol::setArray | ( | Array2D< float > & | ,
|  | TaskRunner * | )
| override virtual

Set AFTER all settings.

Reimplemented from Array2DInterpol.

## ◆ setArray() [2/2]

bool InverseDistanceArray2DInterpol::setArray | ( | ArrayAccess & | ,
|  | TaskRunner * | )
| override virtual

Set AFTER all settings.

Trend is active only when setTrendOrder is called

Reimplemented from Array2DInterpol.

## ◆ setCornersFirst()

void InverseDistanceArray2DInterpol::setCornersFirst | ( | bool | n | ) |
| inline

## ◆ setNrSteps()

void InverseDistanceArray2DInterpol::setNrSteps | ( | int | n | ) |
| inline

## ◆ setSearchRadius()

void InverseDistanceArray2DInterpol::setSearchRadius | ( | float | r | ) |
| inline

## ◆ setStepSize()

void InverseDistanceArray2DInterpol::setStepSize | ( | int | n | ) |
| inline

## ◆ sKeyCornersFirst()

static const char * InverseDistanceArray2DInterpol::sKeyCornersFirst | ( |  | ) |
| static

## ◆ sKeyNrSteps()

static const char * InverseDistanceArray2DInterpol::sKeyNrSteps | ( |  | ) |
| static

## ◆ sKeySearchRadius()

static const char * InverseDistanceArray2DInterpol::sKeySearchRadius | ( |  | ) |
| static

## ◆ sKeyStepSize()

static const char * InverseDistanceArray2DInterpol::sKeyStepSize | ( |  | ) |
| static

## ◆ uiNrDoneText()

uiString InverseDistanceArray2DInterpol::uiNrDoneText | ( |  | ) | const
| inline override protected virtual

Reimplemented from Task.

## ◆ usePar()

bool InverseDistanceArray2DInterpol::usePar | ( | const IOPar & |  | ) |
| override virtual

Reimplemented from Array2DInterpol.

## Member Data Documentation

## ◆ addedwithcursuport_

TypeSet<od_int64> InverseDistanceArray2DInterpol::addedwithcursuport_
| protected

## ◆ condvar_

Threads::ConditionVar& InverseDistanceArray2DInterpol::condvar_
| protected

## ◆ cornersfirst_

bool InverseDistanceArray2DInterpol::cornersfirst_
| protected

## ◆ curdefined_

bool* InverseDistanceArray2DInterpol::curdefined_
| protected

## ◆ definedidxs_

TypeSet<od_int64> InverseDistanceArray2DInterpol::definedidxs_
| protected

## ◆ neighbors_

TypeSet<RowCol> InverseDistanceArray2DInterpol::neighbors_
| protected

## ◆ neighborweights_

TypeSet<float> InverseDistanceArray2DInterpol::neighborweights_
| protected

## ◆ nodestofill_

bool* InverseDistanceArray2DInterpol::nodestofill_
| protected

## ◆ nraddedthisstep_

int InverseDistanceArray2DInterpol::nraddedthisstep_
| protected

## ◆ nrinitialdefined_

int InverseDistanceArray2DInterpol::nrinitialdefined_
| protected

## ◆ nrsources_

TypeSet<od_int64> InverseDistanceArray2DInterpol::nrsources_
| protected

## ◆ nrsteps_

int InverseDistanceArray2DInterpol::nrsteps_
| protected

## ◆ nrthreads_

int InverseDistanceArray2DInterpol::nrthreads_
| protected

## ◆ nrthreadswaiting_

int InverseDistanceArray2DInterpol::nrthreadswaiting_
| protected

## ◆ prevsupportsize_

od_int64 InverseDistanceArray2DInterpol::prevsupportsize_
| protected

## ◆ searchradius_

float InverseDistanceArray2DInterpol::searchradius_
| protected

## ◆ shouldend_

bool InverseDistanceArray2DInterpol::shouldend_
| protected

## ◆ stepidx_

int InverseDistanceArray2DInterpol::stepidx_
| protected

## ◆ stepsize_

int InverseDistanceArray2DInterpol::stepsize_
| protected

## ◆ todothisstep_

TypeSet<od_int64> InverseDistanceArray2DInterpol::todothisstep_
| protected

## ◆ totalnr_

int InverseDistanceArray2DInterpol::totalnr_
| protected

## ◆ waitforall_

bool InverseDistanceArray2DInterpol::waitforall_
| protected

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