Public Member Functions | Protected Member Functions | Protected Attributes

SeisTrcReader Class Reference

reads from a seismic data store. More...

Inheritance diagram for SeisTrcReader:
SeisStoreAccess

List of all members.

Public Member Functions

 SeisTrcReader (const IOObj *=0)
 SeisTrcReader (const char *fnm)
 Open 'loose' CBVS files only.
 ~SeisTrcReader ()
void forceFloatData (bool yn=true)
 Only effective if called before prepareWork().
bool prepareWork (Seis::ReadMode rm=Seis::Prod)
int get (SeisTrcInfo &)
bool get (SeisTrc &)
void fillPar (IOPar &) const
bool isPrepared () const
Seis::BoundsgetBounds () const
 use after prepareWork(). If not avail: survinfo
void setComponent (int ic)
int curLineIdx () const
StepInterval< int > curTrcNrRange () const
LineKey lineKey () const
LineKeyProviderlineKeyProvider () const

Protected Member Functions

void init ()
ConnopenFirst ()
bool initRead (Conn *)
int nextConn (SeisTrcInfo &)
bool doStart ()
bool ensureCurLineAttribOK (const BufferString &)
bool isMultiConn () const
void startWork ()
int getPS (SeisTrcInfo &)
bool getPS (SeisTrc &)
int get2D (SeisTrcInfo &)
bool get2D (SeisTrc &)
bool mkNextFetcher ()
bool readNext2D ()
Seis::Boundsget3DBounds (const StepInterval< int > &, const StepInterval< int > &, const StepInterval< float > &) const
bool initBounds2D (const PosInfo::Line2DData &, Seis::Bounds2D &) const

Protected Attributes

bool foundvalidinl
bool foundvalidcrl
bool new_packet
bool needskip
bool forcefloats
bool prepared
bool inforead
int prev_inl
int curlineidx
int nrfetchers
HorSamplingouter
SeisTrcBuftbuf_
Executorfetcher
Seis::ReadMode readmode
bool entryis2d
StepInterval< int > curtrcnrrg
SeisPS3DReaderpsrdr_
PosInfo::CubeDataIteratorpscditer_
BinID curpsbid_
int selcomp_

Detailed Description

reads from a seismic data store.

If you don't want all of the stored data, you must set use the SeisTrcTranslator facilities (SelData and ComponentData) after calling prepareWork(). If you don't call prepareWork(), the reader will do that but you cannot use SeisTrcTranslator facilities then.

Then, the routine is: get(trc.info()) possibly followed by get(trc). Not keeping this sequence is at your own risk.

Note: 2D Pre-Stack data cannot (yet) be read via this class.


Constructor & Destructor Documentation

SeisTrcReader::SeisTrcReader ( const IOObj = 0  ) 

Open 'real user entries from '.omf' file Can be anything: SEGY - CBVS - database

SeisTrcReader::SeisTrcReader ( const char *  fnm  ) 

Open 'loose' CBVS files only.

SeisTrcReader::~SeisTrcReader (  ) 

Member Function Documentation

int SeisTrcReader::curLineIdx (  )  const [inline]
StepInterval<int> SeisTrcReader::curTrcNrRange (  )  const [inline]
bool SeisTrcReader::doStart (  )  [protected]
bool SeisTrcReader::ensureCurLineAttribOK ( const BufferString  )  [protected]
void SeisTrcReader::fillPar ( IOPar  )  const [virtual]

Reimplemented from SeisStoreAccess.

void SeisTrcReader::forceFloatData ( bool  yn = true  )  [inline]

Only effective if called before prepareWork().

bool SeisTrcReader::get ( SeisTrc  ) 

It is possible to directly call this without checking the get(SeisTrcInfo&) result. Beware that the trace selections in the SelData may be ignored then - depending on the Translator's capabilities.

int SeisTrcReader::get ( SeisTrcInfo  ) 

-1 = Error. errMsg() will return a message. 0 = End 1 = Usable info 2 = Not usable (trace needs to be skipped) If 1 is returned, then you should also call get(SeisTrc&).

int SeisTrcReader::get2D ( SeisTrcInfo  )  [protected]
bool SeisTrcReader::get2D ( SeisTrc  )  [protected]
Seis::Bounds* SeisTrcReader::get3DBounds ( const StepInterval< int > &  ,
const StepInterval< int > &  ,
const StepInterval< float > &   
) const [protected]
Seis::Bounds* SeisTrcReader::getBounds (  )  const

use after prepareWork(). If not avail: survinfo

int SeisTrcReader::getPS ( SeisTrcInfo  )  [protected]
bool SeisTrcReader::getPS ( SeisTrc  )  [protected]
void SeisTrcReader::init (  )  [protected, virtual]

Reimplemented from SeisStoreAccess.

bool SeisTrcReader::initBounds2D ( const PosInfo::Line2DData ,
Seis::Bounds2D  
) const [protected]
bool SeisTrcReader::initRead ( Conn  )  [protected]
bool SeisTrcReader::isMultiConn (  )  const [protected]
bool SeisTrcReader::isPrepared (  )  const [inline]
LineKey SeisTrcReader::lineKey (  )  const
LineKeyProvider* SeisTrcReader::lineKeyProvider (  )  const
bool SeisTrcReader::mkNextFetcher (  )  [protected]
int SeisTrcReader::nextConn ( SeisTrcInfo  )  [protected]
Conn* SeisTrcReader::openFirst (  )  [protected]
bool SeisTrcReader::prepareWork ( Seis::ReadMode  rm = Seis::Prod  ) 

After this, you can set stuff on the translator If not called, will be done automatically

bool SeisTrcReader::readNext2D (  )  [protected]
void SeisTrcReader::setComponent ( int  ic  )  [inline]

use before startWork() -1 (default) is all components

void SeisTrcReader::startWork (  )  [protected]

Member Data Documentation

int SeisTrcReader::curlineidx [protected]
bool SeisTrcReader::entryis2d [protected]
bool SeisTrcReader::forcefloats [protected]
bool SeisTrcReader::foundvalidcrl [protected]
bool SeisTrcReader::foundvalidinl [protected]
bool SeisTrcReader::inforead [protected]
bool SeisTrcReader::needskip [protected]
bool SeisTrcReader::new_packet [protected]
int SeisTrcReader::nrfetchers [protected]
bool SeisTrcReader::prepared [protected]
int SeisTrcReader::prev_inl [protected]
int SeisTrcReader::selcomp_ [protected]