OpendTect  7.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SeisImpBPSIF Class Reference

reads a BPSIF prestack data exchange file into a PS data store More...

Inheritance diagram for SeisImpBPSIF:
[legend]

Public Member Functions

 SeisImpBPSIF (const char *filenm, const MultiID &)
 
virtual ~SeisImpBPSIF ()
 
const BufferStringSetheader () const
 
bool isIrregular () const
 
int nextStep () override
 
od_int64 nrDone () const override
 
int nrFiles () const
 
int nrRcvrs () const
 
int nrRejected () const
 
int nrShots () const
 
const BufferStringSetrcvAttrs () const
 
void setMaxInlOffset (int)
 
const BufferStringSetshotAttrs () const
 
uiString uiMessage () const override
 will be message() again in 7.x More...
 
uiString uiNrDoneText () const override
 will be nrDoneText() in 7.x More...
 
- Public Member Functions inherited from Executor
 Executor (const char *nm)
 
virtual ~Executor ()
 
int doStep () override
 
bool execute () override
 
bool go (od_ostream &s, bool isfirst=true, bool islast=true, int delaybtwnstepsinms=0)
 
bool go (od_ostream *s=0, bool isfirst=true, bool islast=true, int delaybtwnstepsinms=0)
 
- Public Member Functions inherited from SequentialTask
 SequentialTask (const char *nm=nullptr)
 
virtual ~SequentialTask ()
 
bool execute () override
 
- Public Member Functions inherited from ReportingTask
virtual ~ReportingTask ()
 
void getProgress (const ReportingTask &)
 
- Public Member Functions inherited from Task
virtual ~Task ()
 
virtual void controlWork (Control)
 
virtual void enableWorkControl (bool=true)
 Must be called before execute() More...
 
virtual uiRetVal errorWithDetails () const
 
virtual Control getState () const
 
virtual std::int64_t totalNr () const
 
bool workControlEnabled () const
 
- Public Member Functions inherited from NamedCallBacker
 NamedCallBacker (const char *nm=0)
 
 NamedCallBacker (const NamedCallBacker &)
 
virtual Notifier< NamedCallBacker > & objectToBeDeleted () const
 
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. More...
 
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. More...
 
void stopReceivingNotifications () const
 
virtual CallBackertrueCaller ()
 
- 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_typename () const override
 
NamedObjectoperator= (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
 

Protected Member Functions

void addAttr (BufferStringSet &, char *)
 
int addTrcsAscii (const SeisTrc &, char *)
 
bool addTrcsBinary (const SeisTrc &)
 
int fileEnded ()
 
bool open (const char *)
 
bool openNext ()
 
int readAscii ()
 
int readBinary ()
 
bool readFileHeader ()
 
int writeData ()
 
- Protected Member Functions inherited from Executor
virtual bool goImpl (od_ostream *, bool, bool, int)
 
- Protected Member Functions inherited from ReportingTask
 ReportingTask (const char *nm=nullptr)
 
void incrementProgress ()
 
ProgressMeterprogressMeter () const
 
void reportProgressFinished ()
 
void reportProgressStarted ()
 
void resetProgress ()
 
void setProgressMeter (ProgressMeter *) override
 Must be called before execute() More...
 
void updateProgressMeter (bool forced=false, std::int64_t *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

bool binary_
 
int curfileidx_
 
od_istreamcurstrm_
 
SeisPSImpDataMgrdatamgr_
 
bool endofinput_
 
uiString errmsg_
 
BufferStringSet fnames_
 
BufferStringSet hdrlines_
 
bool irregular_
 
int nrrcvpershot_
 
int nrrejected_
 
int nrshots_
 
BufferStringSet rcvattrs_
 
BufferStringSet shotattrs_
 
- Protected Attributes inherited from Task
Control control_
 
Threads::ConditionVarworkcontrolcondvar_
 
- Protected Attributes inherited from NamedCallBacker
Threads::Atomic< bool > delalreadytriggered_
 
Notifier< NamedCallBackerdelnotif_
 
- Protected Attributes inherited from NamedObject
BufferString name_
 

Additional Inherited Members

- Public Types inherited from Task
enum  Control { Run , Pause , Stop }
 
- Public Types inherited from ObjectWithName
typedef OD::String name_type
 
- Static Public Member Functions inherited from SequentialTask
static int ErrorOccurred ()
 
static int Finished ()
 
static int MoreToDo ()
 
static int WarningAvailable ()
 
- Static Public Member Functions inherited from Task
static uiString stdNrDoneText ()
 
static uiString uiStdNrDoneText ()
 
- Static Public Member Functions inherited from CallBacker
static void createReceiverForCurrentThread ()
 
static void removeReceiverForCurrentThread ()
 
- Public Attributes inherited from Executor
Notifier< Executorpoststep
 Only when MoreToDo will be returned. More...
 
Notifier< Executorprestep
 
- Public Attributes inherited from ReportingTask
Notifier< ReportingTaskprogressUpdated
 

Detailed Description

reads a BPSIF prestack data exchange file into a PS data store

The BPSIF format is defined as follows: First line is "#BPSIF#" Then, a header follows with only empty lines and lines starting with '#'. Some are mandatory (see below). The header stops at a line starting with "#----" After the header, lines follow with one shot per line. The line starts with data specific for the shot, then the data per receiver (group) follows. Mandatory data for each shot is number, X and Y. For receivers: X and Y.

The header needs to define the 'attributes' with "#Value." lines. Example:

#Value.1.0: SHOT NUMBER
#Value.1.1: SOURCE X
#Value.1.2: SOURCE Y
#Value.1.3: SOURCE ATTRIBUTE-1 = SOURCE PRESSURE (PSI)
#Value.1.4: SOURCE ATTRIBUTE-2 = SPEED THROUGH WATER (KNOTS)

#Value.2.1: STREAMER-1 NEAR RECEIVER X
#Value.2.2: STREAMER-1 NEAR RECEIVER Y
#Value.2.3: RECEIVER ATTRIBUTE-1 = STREAMER-1 NEAR RECEIVER DEPTH (METRES)
#Value.2.4: RECEIVER ATTRIBUTE-2 = STREAMER-1 NEAR RECEIVER AMBIENT RMS NOISE

Typically, lines will be extremely long. The number of values per line is: 3 + nr_opt_shot_attribs + N * (2 + nr_opt_rcv_attribs).

This class will read a BPSIF and store the data in a prestack data store. Notes: The data will be sorted if the data store requires that The input filename may contain glob expression, e.g. line*.dat. These files will be handled in alphabetical order. This can be important if the data needs to be sorted. The 'real' name of the attribute is the part after the '=' sign, but it's not mandatory. If there is no '=' sign, the whole string after the ':' is used.

The actual stoarge is handled by the SeisPSImpDataMgr object - see more comments there.

<>

Constructor & Destructor Documentation

◆ SeisImpBPSIF()

SeisImpBPSIF::SeisImpBPSIF ( const char *  filenm,
const MultiID  
)

◆ ~SeisImpBPSIF()

virtual SeisImpBPSIF::~SeisImpBPSIF ( )
virtual

Member Function Documentation

◆ addAttr()

void SeisImpBPSIF::addAttr ( BufferStringSet ,
char *   
)
protected

◆ addTrcsAscii()

int SeisImpBPSIF::addTrcsAscii ( const SeisTrc ,
char *   
)
protected

◆ addTrcsBinary()

bool SeisImpBPSIF::addTrcsBinary ( const SeisTrc )
protected

◆ fileEnded()

int SeisImpBPSIF::fileEnded ( )
protected

◆ header()

const BufferStringSet& SeisImpBPSIF::header ( ) const
inline

◆ isIrregular()

bool SeisImpBPSIF::isIrregular ( ) const
inline

◆ nextStep()

int SeisImpBPSIF::nextStep ( )
overridevirtual
Return values
MoreToDo()Not finished. Call me again.
Finished()Nothing more to do.
ErrorOccurred()Something went wrong.
Note
if function returns a value greater than cMoreToDo(), it should be interpreted as cMoreToDo().

Implements SequentialTask.

◆ nrDone()

od_int64 SeisImpBPSIF::nrDone ( ) const
inlineoverridevirtual
Note
nrDone is only used for displaying progress and will be compared to totalNr to show user how large part of the task that is finished.

Reimplemented from Task.

◆ nrFiles()

int SeisImpBPSIF::nrFiles ( ) const
inline

◆ nrRcvrs()

int SeisImpBPSIF::nrRcvrs ( ) const
inline

◆ nrRejected()

int SeisImpBPSIF::nrRejected ( ) const
inline

◆ nrShots()

int SeisImpBPSIF::nrShots ( ) const
inline

◆ open()

bool SeisImpBPSIF::open ( const char *  )
protected

◆ openNext()

bool SeisImpBPSIF::openNext ( )
protected

◆ rcvAttrs()

const BufferStringSet& SeisImpBPSIF::rcvAttrs ( ) const
inline

◆ readAscii()

int SeisImpBPSIF::readAscii ( )
protected

◆ readBinary()

int SeisImpBPSIF::readBinary ( )
protected

◆ readFileHeader()

bool SeisImpBPSIF::readFileHeader ( )
protected

◆ setMaxInlOffset()

void SeisImpBPSIF::setMaxInlOffset ( int  )

◆ shotAttrs()

const BufferStringSet& SeisImpBPSIF::shotAttrs ( ) const
inline

◆ uiMessage()

uiString SeisImpBPSIF::uiMessage ( ) const
overridevirtual

will be message() again in 7.x

Reimplemented from Task.

◆ uiNrDoneText()

uiString SeisImpBPSIF::uiNrDoneText ( ) const
inlineoverridevirtual

will be nrDoneText() in 7.x

Reimplemented from Task.

◆ writeData()

int SeisImpBPSIF::writeData ( )
protected

Member Data Documentation

◆ binary_

bool SeisImpBPSIF::binary_
protected

◆ curfileidx_

int SeisImpBPSIF::curfileidx_
protected

◆ curstrm_

od_istream* SeisImpBPSIF::curstrm_
protected

◆ datamgr_

SeisPSImpDataMgr& SeisImpBPSIF::datamgr_
protected

◆ endofinput_

bool SeisImpBPSIF::endofinput_
protected

◆ errmsg_

uiString SeisImpBPSIF::errmsg_
mutableprotected

◆ fnames_

BufferStringSet SeisImpBPSIF::fnames_
protected

◆ hdrlines_

BufferStringSet SeisImpBPSIF::hdrlines_
protected

◆ irregular_

bool SeisImpBPSIF::irregular_
protected

◆ nrrcvpershot_

int SeisImpBPSIF::nrrcvpershot_
protected

◆ nrrejected_

int SeisImpBPSIF::nrrejected_
protected

◆ nrshots_

int SeisImpBPSIF::nrshots_
protected

◆ rcvattrs_

BufferStringSet SeisImpBPSIF::rcvattrs_
protected

◆ shotattrs_

BufferStringSet SeisImpBPSIF::shotattrs_
protected

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