13 #include "attributeenginemod.h" 21 namespace Seis {
class SelData;
class MSCProvider; }
24 #define mMAXDIP 300 * 1e-6 25 #define mMAXDIPSECURE 2000 * 1e-6 26 #define mMAXDIPSECUREDEPTH 6 32 class DataHolderLineBuffer;
42 friend class ProviderTask;
48 virtual bool isOK()
const;
52 const Desc& getDesc()
const;
59 {
return outputinterest_.size(); }
60 void enableOutput(
int output,
bool yn=
true);
61 bool isOutputEnabled(
int output)
const;
62 void setOutputInterestSize(
bool preserve=
false);
63 void enableAllOutputs(
bool yn=
true);
66 virtual bool isSingleTrace()
const;
67 virtual bool usesTracePosition()
const;
68 virtual void setReqBufStepout(
const BinID&,
bool wait=
false);
69 virtual void setDesBufStepout(
const BinID&,
bool wait=
false);
71 {
return reqbufferstepout_; }
73 {
return desbufferstepout_; }
78 {
return desiredvolume_; }
79 void resetDesiredVolume();
86 {
return possiblevolume_; }
87 int getTotalNrPos(
bool);
88 void setCurLineName(
const char*);
89 virtual void adjust2DLineStoredVolume();
93 virtual int moveToNextTrace(
BinID startpos =
BinID(-1,-1),
94 bool firstcheck =
false);
99 void computeNewStartPos(
BinID&);
104 void resetZIntervals();
107 BinID getCurrentPosition()
const;
108 virtual bool setCurrentPosition(
const BinID&);
109 void updateCurrentInfo();
110 virtual bool needStoredInput()
const;
112 void addLocalCompZIntervals(
116 void updateInputReqs(
int input=-1);
117 virtual void updateStorageReqs(
bool all=
false);
121 void setNeedInterpol(
bool);
124 void computeRefStep();
128 void setRefStep(
float step);
129 float getRefStep()
const;
135 void setRefZ0(
float z0);
138 virtual BinID getStepoutStep()
const;
146 virtual bool prepPriorToOutputSetup();
149 virtual void prepPriorToBoundsCalc();
153 virtual void prepareForComputeData();
170 virtual bool compDistBetwTrcsStats(
bool force=
false);
171 float getApplicableCrlDist(
bool)
const;
172 virtual float getDistBetwTrcs(
bool,
173 const char* linenm =0)
const;
175 void setDataUnavailableFlag(
bool yn);
176 bool getDataUnavailableFlag()
const;
183 virtual bool checkInpAndParsAtStart();
194 virtual bool getInputOutput(
int input,
TypeSet<int>&)
const;
198 virtual bool getInputData(
const BinID& relpos,
int idx);
209 virtual bool computeData(
const DataHolder& output,
211 int t0,
int nrsamples,
212 int threadidx)
const = 0;
219 int getDataIndex(
int input)
const;
222 void fillInputRangesArray(
238 void removeDataHolder(
const BinID& relpos);
241 virtual BinDataDesc getOutputFormat(
int output)
const;
244 void computeDesInputCube(
int inp,
int out,
246 bool usestepout=
true)
const;
251 void setUsedMultTimes();
257 {
return prevtrcnr_ > currentbid_.crl(); }
259 virtual const BinID* desStepout(
int input,
int output)
const;
268 virtual const BinID* reqStepout(
int input,
int output)
const;
301 virtual const Interval<int>* desZSampMargin(
int input,
int output)
const;
313 virtual const Interval<int>* reqZSampMargin(
int input,
int output)
const;
329 float getInterpolInputValue(
const DataHolder&,
332 float getInterpolInputValue(
const DataHolder&,
333 int inputidx,
float sample,
335 float getInputValue(
const DataHolder&,
int inputidx,
336 int sampleidx,
int z0)
const;
338 int outputidx,
int sampleidx,
339 int z0,
float val)
const;
340 float getExtraZFromSampPos(
float)
const;
341 float getExtraZFromSampInterval(
int,
int)
const;
342 virtual bool useInterTrcDist()
const;
344 {
return refz0_ + idx*refstep_; }
346 bool zIsTime()
const;
347 float zFactor()
const;
348 float dipFactor()
const;
349 float inlDist()
const;
350 float crlDist()
const;
351 float lineDist()
const;
352 float trcDist()
const;
356 void stdPrepSteering(
const BinID&);
401 #define mAttrDefCreateInstance(clss) \ 402 Attrib::Provider* clss::createInstance( Attrib::Desc& desc ) \ 404 clss* res = new clss( desc ); \ 406 if ( !res->isOK() ) \ 412 res->unRefNoDelete(); \ 416 #define mAttrStartInitClass \ 417 Attrib::Desc* desc = new Attrib::Desc( attribName()); \ 420 #define mAttrStartInitClassWithUpdate \ 421 Attrib::Desc* desc = new Attrib::Desc( attribName(), updateDesc ); \ 424 #define mAttrStartInitClassWithDescAndDefaultsUpdate \ 425 Attrib::Desc* desc = new Attrib::Desc( attribName(), updateDesc,\ 429 #define mAttrStartInitClassWithDefaultsUpdate \ 430 Attrib::Desc* desc = new Attrib::Desc( attribName(), 0,updateDefaults ); \ 433 #define mAttrEndInitClass \ 434 Attrib::PF().addDesc( desc, createInstance ); \ bool isUsedMultTimes()
Definition: attribprovider.h:255
#define mExpClass(module)
Definition: commondefs.h:157
int getSteeringIndex(const BinID &)
For every position there is a single steering index ...?
Seismics.
Definition: segydirectdef.h:20
#define mMAXDIPSECUREDEPTH
Definition: attribprovider.h:26
ObjectSet< Provider > parents_
Definition: attribprovider.h:359
const BinID & getReqBufStepout() const
Definition: attribprovider.h:70
virtual void initSteering()
Definition: attribprovider.h:143
const Seis::SelData * seldata_
Definition: attribprovider.h:377
Interval< float > extraz_
Definition: attribprovider.h:378
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
virtual void updateCSIfNeeded(TrcKeyZSampling &) const
Definition: attribprovider.h:169
int nrOutputs() const
Definition: attribprovider.h:58
#define mGlobal(module)
Definition: commondefs.h:160
Reads seismic data into buffers providing a Moving Virtual Subcube of seismic data.
Definition: seismscprov.h:55
bool is2D(GeomType gt)
Definition: seistype.h:32
int prevtrcnr_
Definition: attribprovider.h:375
virtual bool allowParallelComputation() const
Definition: attribprovider.h:227
static uiRetVal OK()
Definition: uistring.h:307
Definition: i_layout.h:33
BinID reqbufferstepout_
Definition: attribprovider.h:363
const TrcKeyZSampling * getPossibleVolume() const
Definition: attribprovider.h:85
Implementation of Array2D.
Definition: arrayndimpl.h:101
virtual bool getZStepStoredData(float &step) const
Definition: attribprovider.h:324
BinID trcinfobid_
Definition: attribprovider.h:380
VolumeDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:42
ObjectSet< Provider > inputs_
Definition: attribprovider.h:358
float getRefZ0() const
Definition: attribprovider.h:136
Definition: uistring.h:88
ProviderTask * providertask_
Definition: attribprovider.h:372
Set of BufferString objects.
Definition: bufstringset.h:25
TypeSet< float > exactz_
Definition: attribprovider.h:368
#define mMAXDIPSECURE
Definition: attribprovider.h:25
const BinID & getDesBufStepout() const
Definition: attribprovider.h:72
float maxSecureDip() const
Definition: attribprovider.h:353
Attribute DataHolder Line Buffer.
Definition: attriblinebuffer.h:27
void setUseSC()
Definition: attribprovider.h:118
virtual void fillDataPackWithTrc(RegularSeisDataPack *) const
Definition: attribprovider.h:158
TypeSet< Interval< int > > localcomputezintervals_
Definition: attribprovider.h:366
TypeSet< int > outputinterest_
Definition: attribprovider.h:361
bool needinterp_
Definition: attribprovider.h:388
Set of pointers to objects.
Definition: commontypes.h:28
virtual uiRetVal isActive() const
Definition: attribprovider.h:49
FixedString Desc()
Definition: keystrs.h:60
FixedString Provider()
Definition: keystrs.h:103
void addParent(Provider *prov)
Definition: attribprovider.h:240
Set of (small) copyable elements.
Definition: commontypes.h:26
float getZAtSample(int idx) const
Definition: attribprovider.h:343
const TrcKeyZSampling * getDesiredVolume() const
Definition: attribprovider.h:77
Description of an attribute in an Attrib::DescSet. Each attribute has a name (e.g. "Similarity"), a user reference (e.g. "My similarity"), and at least one output. In addition, it may have parameters and inputs. If it has multiple outputs, only one of the outputs are selected.
Definition: attribdesc.h:87
ObjectSet< Provider > allexistingprov_
Definition: attribprovider.h:367
Desc & desc_
Definition: attribprovider.h:360
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
bool useshortcuts_
Definition: attribprovider.h:381
virtual bool getZ0StoredData(float &z0) const
Definition: attribprovider.h:326
float refz0_
Definition: attribprovider.h:383
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:24
virtual int minTaskSize() const
Definition: attribprovider.h:230
virtual bool preProcCommonToAllThreads(const DataHolder &out, const BinID &relpos)
Definition: attribprovider.h:201
const SeisTrcInfo * curtrcinfo_
Definition: attribprovider.h:379
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:78
bool isNew2DLine() const
Definition: attribprovider.h:256
Index_Type GeomID
Definition: commontypes.h:48
virtual bool doNotReUseDH() const
Definition: attribprovider.h:242
TrcKeyZSampling * desiredvolume_
Definition: attribprovider.h:364
Holds the attribute data.
Definition: attribdataholder.h:39
virtual const SeisTrcInfo * getCurrentTrcInfo() const
Definition: attribprovider.h:106
static uiHor3DInterpol * create(uiParent *)
bool dataunavailableflag_
Definition: attribprovider.h:390
bool alreadymoved_
Definition: attribprovider.h:385
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
virtual void prepSteeringForStepout(const BinID &)
Definition: attribprovider.h:144
Definition: uistring.h:299
DataHolderLineBuffer * linebuffer_
Definition: attribprovider.h:373
uiString errmsg_
Definition: attribprovider.h:389
Pos::GeomID geomid_
Definition: attribprovider.h:376
virtual bool finalizeCalculation(bool scs)
Definition: attribprovider.h:231
Provides the actual output to ...
Definition: attribprovider.h:40
BinID currentbid_
Definition: attribprovider.h:374
ObjectSet< Provider > & getInputs()
Definition: attribprovider.h:139
const char * errMsg() const
Definition: horizontracker.h:59
float refstep_
Definition: attribprovider.h:384
Description of binary data.
Definition: bindatadesc.h:41
BinID desbufferstepout_
Definition: attribprovider.h:362
bool isusedmulttimes_
Definition: attribprovider.h:387
TrcKeyZSampling * possiblevolume_
Definition: attribprovider.h:365
BinID getTrcInfoBid() const
Definition: attribprovider.h:140
virtual bool setNrThreads(int idx)
Definition: attribprovider.h:229
Semblance Attribute.
Definition: attribdataholder.h:21