43 {
return "Array 2D Filter Pars"; }
63 if ( !iop )
return false;
109 inline int nextStep();
133 inline void filterRow(
int);
134 inline void doPoint(
int,
int);
139 template <
class T>
inline 146 , inputrowsize_(a.info().getSize(0))
147 , inputcolsize_(a.info().getSize(1))
161 template <
class T>
inline 172 ,
nrcols_(2 * p.stepout_.col() + 1)
188 template <
class T>
inline 214 ErrMsg(
"Invalid parameters");
262 int firstrow = startrow;
263 if ( firstrow < 0 ) firstrow = 0;
265 int lastrow = endrow;
269 int firstcol = startcol;
270 if ( firstcol < 0 ) firstcol = 0;
272 int lastcol = endcol;
275 for (
int irow=firstrow; irow<=lastrow; irow++ )
277 const bool issiderow = irow == startrow || irow == endrow;
278 const int rowdist = row-irow;
279 const int rowdist2 = rowdist*rowdist;
280 const bool iscenterrow = irow == row;
282 const T* buf =
input_.getData()+
input_.info().getOffset(irow,firstcol);
284 for (
int icol=firstcol; icol<=lastcol; icol++, buf++ )
286 const bool issidecol = icol == startcol || icol == endcol;
287 const bool iscentercol = icol == col;
289 if ( !
linefilt_ && ( (issidecol && !iscenterrow )
290 || (issiderow && !iscentercol) ) )
295 const int coldist = icol - col;
296 const int coldist2 = coldist*coldist;
IdxType & row()
Definition: posidxpair.h:43
static const char * sKeyDistanceFactor()
Definition: array2dfilter.h:46
int nextStep()
Definition: array2dfilter.h:202
#define mIsUdf(val)
Use mIsUdf to check for undefinedness of simple types.
Definition: undefval.h:285
FixedString Type()
Definition: keystrs.h:135
int nrrowsdone_
Definition: array2dfilter.h:131
static const char * sKeyRowDistance()
Definition: array2dfilter.h:45
Setup for the Stats::RunCalc and Stats::ParallelCalc objects.
Definition: statruncalc.h:35
IOPar * subselect(const char *) const
returns iopar with key that start with <str>.
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
static int ErrorOccurred()
Definition: task.h:164
od_int64 totalNr() const
Definition: array2dfilter.h:113
bool usePar(const IOPar &par)
Definition: array2dfilter.h:60
void clear()
Definition: statruncalc.h:289
FixedString StepOut()
Definition: keystrs.h:176
#define od_int64
Definition: plftypes.h:34
od_int64 nrDone() const
Definition: array2dfilter.h:111
const Array2D< T > & output() const
Definition: array2dfilter.h:104
Implementation of Array2D.
Definition: arrayndimpl.h:101
Stats::RunCalc< float > * calc_
Definition: array2dfilter.h:119
void filterRow(int)
Definition: array2dfilter.h:232
Definition: uistring.h:88
static int MoreToDo()
Definition: task.h:166
double getValue(Type) const
Definition: statruncalc.h:299
RunCalc< T > & addValue(T data, T weight=1)
Definition: statruncalc.h:586
bool get(const char *, int &) const
bool linefilt_
Definition: array2dfilter.h:130
Array2DFilterPars(Stats::Type t=Stats::Average, RowCol rc=RowCol(1, 1), bool filludf=false)
Definition: array2dfilter.h:33
const int inputrowsize_
Definition: array2dfilter.h:127
const Array2DFilterPars & pars() const
Definition: array2dfilter.h:106
Type
Definition: stattype.h:19
void setScope(const Interval< int > &rowrg, const Interval< int > &colrg)
Definition: array2dfilter.h:194
virtual int getSize(int dim) const =0
static int Finished()
Definition: task.h:165
void ErrMsg(const char *, bool progr=false)
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:127
void mergeComp(const IOPar &, const char *)
merge entries, where IOPar's entries get a prefix
uiString message() const
Definition: array2dfilter.h:110
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:270
Stats::Type type_
Definition: array2dfilter.h:73
~Array2DFilterer()
Definition: array2dfilter.h:189
RowCol origin_
Definition: array2dfilter.h:122
bool fillPar(IOPar &par) const
Definition: array2dfilter.h:48
Definition: stattype.h:22
BufferString toString(const DBKey &ky)
Definition: dbkey.h:115
void setYN(const char *, bool)
uiString nrDoneText() const
Definition: array2dfilter.h:112
Array2D< T > & output_
Definition: array2dfilter.h:117
Array2D< T > & output()
Definition: array2dfilter.h:103
Array2DFilterPars pars_
Definition: array2dfilter.h:118
Interval< int > outputcolrg_
Definition: array2dfilter.h:125
Interval< int > outputrowrg_
Definition: array2dfilter.h:124
Array2DFilterer(Array2D< T > &, const Array2DFilterPars &)
Definition: array2dfilter.h:140
const Stats::RunCalc< float > & calc() const
Definition: array2dfilter.h:107
IdxPair used for its row() and col().
Definition: rowcol.h:23
const int inputcolsize_
Definition: array2dfilter.h:128
T stop
Definition: ranges.h:91
IdxType & col()
Definition: posidxpair.h:48
void doPoint(int, int)
Definition: array2dfilter.h:256
CalcSetup & require(Type)
RowCol stepout_
In nodes. Center point not counted.
Definition: array2dfilter.h:74
Parameters for Array2DFilterer.
Definition: array2dfilter.h:30
T start
Definition: ranges.h:90
static const char * sKeyFillUndefined()
Definition: array2dfilter.h:44
float distfac_
if weigthed, distance factor
Definition: array2dfilter.h:77
#define mClass(module)
Definition: commondefs.h:161
static const char * sKeyArray2DFilterPars()
Definition: array2dfilter.h:42
virtual const Array2DInfo & info() const =0
void set(const char *ky, const char *val)
float rowdist_
non-undef = weighted filter
Definition: array2dfilter.h:76
bool isWeighted() const
Definition: statruncalc.h:105
const int nrcols_
Definition: array2dfilter.h:129
bool getYN(const char *, bool &) const
bool filludf_
Output when center point is undef?
Definition: array2dfilter.h:75
Filters an Array2D.
Definition: array2dfilter.h:90
Specification to enable chunkwise execution of a process.
Definition: executor.h:38
Array2DImpl< T > input_
Definition: array2dfilter.h:121