OpendTect  6.3
seisimporter.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H. Bril
8  Date: Nov 2006
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "seiscommon.h"
14 #include "executor.h"
15 #include "bufstring.h"
16 class IOObj;
17 class Scaler;
18 class SeisTrc;
19 class SeisTrcBuf;
20 class BinIDSorting;
21 class SeisTrcWriter;
22 class SeisResampler;
24 namespace Seis { class SelData; class Provider; }
25 
30 public:
31 
41  mStruct(Seis) Reader
42  {
43  virtual ~Reader() {}
44 
45  virtual const char* name() const = 0;
46  virtual const char* implName() const = 0;
47  virtual bool fetch(SeisTrc&) = 0;
48  virtual od_int64 totalNr() const { return -1; }
49 
51  };
52 
53 
56  virtual ~SeisImporter();
57 
58  uiString message() const;
59  od_int64 nrDone() const;
60  uiString nrDoneText() const;
61  od_int64 totalNr() const;
62  int nextStep();
63 
64  int nrSkipped() const { return nrskipped_; }
65  Reader& reader() { return *rdr_; }
66  SeisTrcWriter& writer() { return wrr_; }
67 
68 protected:
69 
70  enum State { ReadBuf, WriteBuf, ReadWrite };
71 
72  Reader* rdr_;
74  int queueid_;
85  int nrread_;
88 
89  bool sortingOk(const SeisTrc&);
90  int doWrite(SeisTrc&);
91  int readIntoBuf();
92 
93  friend class SeisImporterWriterTask;
94  void reportWrite(const uiString&);
95 
96  mutable uiString errmsg_;
97  mutable uiString hndlmsg_;
98 };
99 
100 
103 public:
104  SeisStdImporterReader(const IOObj&,const char* nm);
106 
107  Seis::Provider* provider() { return prov_; }
108 
109  const char* name() const { return name_; }
110  const char* implName() const;
111  bool fetch(SeisTrc&);
112 
113  void removeNull( bool yn ) { remnull_ = yn; }
114  void setResampler(SeisResampler*);
115  void setScaler(Scaler*);
116  void setSelData(Seis::SelData*);
117 
118  od_int64 totalNr() const;
119 
120 protected:
121 
124  bool remnull_;
127 
128 };
#define mExpClass(module)
Definition: commondefs.h:157
Seismics.
Definition: segydirectdef.h:20
Is an object that faciliates many threads to wait for something to happen.
Definition: thread.h:108
Definition: ioobj.h:57
Threads::ConditionVar & lock_
Definition: seisimporter.h:76
SeisTrcWriter & writer()
Definition: seisimporter.h:66
int nrskipped_
Definition: seisimporter.h:87
is the access point for seismic traces. Instantiate a subclass and ask for what you need...
Definition: seisprovider.h:54
#define mStruct(module)
Definition: commondefs.h:162
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Definition: seisimporter.h:70
int nrread_
Definition: seisimporter.h:85
BinID sorting parameters.
Definition: binidsorting.h:25
BinIDSorting * sorting_
Definition: seisimporter.h:81
#define od_int64
Definition: plftypes.h:34
Definition: seiswrite.h:38
SeisTrc & trc_
Definition: seisimporter.h:78
Definition: uistring.h:88
int queueid_
Definition: seisimporter.h:74
Reader & reader()
Definition: seisimporter.h:65
SeisResampler * resampler_
Definition: seisimporter.h:125
State
Definition: seisimporter.h:70
void message(const char *)
default: to stderr
GeomType
Definition: seistype.h:31
Reader * rdr_
Definition: seisimporter.h:72
FixedString Provider()
Definition: keystrs.h:103
Seis::Provider * provider()
Definition: seisimporter.h:107
uiString errmsg_
Definition: seisimporter.h:96
int sort2ddir_
Definition: seisimporter.h:80
uiString hndlmsg_
Definition: seisimporter.h:97
Scaling of floating point numbers.
Definition: scaler.h:30
BinIDSortingAnalyser * sortanal_
Definition: seisimporter.h:82
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:78
will sub-sample in inl and crl, and re-sample in Z
Definition: seisresampler.h:27
Analyses whether input BinIDs are sorted.
Definition: binidsorting.h:66
Definition: seisimporter.h:101
int nrwritten_
Definition: seisimporter.h:86
int maxqueuesize_
Definition: seisimporter.h:75
Helps import or export of seismic data.
Definition: seisimporter.h:28
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
const char * name() const
Definition: seisimporter.h:109
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
Seismic trace.
Definition: seistrc.h:31
BufferString errmsg_
Definition: horizontracker.h:117
int nrSkipped() const
Definition: seisimporter.h:64
void removeNull(bool yn)
Definition: seisimporter.h:113
set of seismic traces.
Definition: seisbuf.h:28
Seis::Provider * prov_
Definition: seisimporter.h:123
Scaler * scaler_
Definition: seisimporter.h:126
BinID & prevbid_
Definition: seisimporter.h:79
State state_
Definition: seisimporter.h:84
bool remnull_
Definition: seisimporter.h:124
Seis::GeomType geomtype_
Definition: seisimporter.h:83
SeisTrcWriter & wrr_
Definition: seisimporter.h:73
Specification to enable chunkwise execution of a process.
Definition: executor.h:38
const BufferString name_
Definition: seisimporter.h:122
SeisTrcBuf & buf_
Definition: seisimporter.h:77

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