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

reads from a seismic data store. More...

Inheritance diagram for SeisTrcReader:
[legend]

Public Member Functions

 SeisTrcReader (const char *fnm)
 Open 'loose' CBVS files only. More...
 
 SeisTrcReader (const IOObj &, const Seis::GeomType *=nullptr)
 
 SeisTrcReader (const IOObj &, Pos::GeomID, const Seis::GeomType *=nullptr)
 Restricted to a given Pos::GeomID. More...
 
 SeisTrcReader (const IOObj *=nullptr)
 
 SeisTrcReader (const MultiID &, Seis::GeomType)
 
 SeisTrcReader (const SeisStoreAccess::Setup &)
 
 ~SeisTrcReader ()
 
int curLineIdx () const
 
StepInterval< int > curTrcNrRange () const
 
int expectedNrTraces () const
 
void fillPar (IOPar &) const override
 
void forceFloatData (bool yn=true)
 Only effective if called before prepareWork() More...
 
Pos::GeomID geomID () const override
 
GeomIDProvidergeomIDProvider () const
 
bool get (SeisTrc &)
 
int get (SeisTrcInfo &)
 
bool get3DGeometryInfo (PosInfo::CubeData &) const
 
Seis::BoundsgetBounds () const
 use after prepareWork(). If not avail: survinfo More...
 
bool getData (TraceData &)
 
bool getDataPack (RegularSeisDataPack &, TaskRunner *=nullptr)
 
int getNrOffsets (int maxnrpostobechecked=10) const
 
const ScalergetTraceScaler () const
 
bool prepareWork (Seis::ReadMode=Seis::Prod)
 
const SeisTrcTranslatorseis2Dtranslator ()
 
void setComponent (int ic)
 
- Public Member Functions inherited from SeisStoreAccess
virtual ~SeisStoreAccess ()
 
virtual bool close ()
 
ConncurConn3D ()
 
const ConncurConn3D () const
 
Seis2DDataSetdataSet ()
 
const Seis2DDataSetdataSet () const
 
uiString errMsg () const
 
Seis::GeomType geomType () const
 
const IOObjioObj () const
 
bool is2D () const
 
bool isOK () const
 
bool isPrepared () const
 
bool isPS () const
 
const SeisPSIOProviderpsIOProv () const
 
SeisTrcTranslatorseisTranslator ()
 
const SeisTrcTranslatorseisTranslator () const
 
const Seis::SelDataselData () const
 
void setIOObj (const IOObj *)
 
void setIOObj (const Setup &)
 
virtual void setSelData (Seis::SelData *)
 The Seis::SelData becomes mine. More...
 
int tracesHandled () const
 
Translatortranslator ()
 
Translatortranslator () const
 
virtual void usePar (const IOPar &)
 
const ZDomain::InfozDomain () const
 
bool zInFeet () const
 
bool zInMeter () const
 
bool zIsTime () const
 
const UnitOfMeasurezUnit () const
 

Protected Member Functions

 SeisTrcReader (const MultiID &)=delete
 
bool doStart ()
 
bool ensureCurLineAttribOK (const BufferString &)
 
bool get2D (SeisTrc &)
 
int get2D (SeisTrcInfo &)
 
bool get2DData (TraceData &)
 
Seis::Boundsget3DBounds (const StepInterval< int > &, const StepInterval< int > &, const StepInterval< float > &) const
 
bool getPS (SeisTrc &)
 
int getPS (SeisTrcInfo &)
 
void init ()
 
bool initBounds2D (const PosInfo::Line2DData &, Seis::Bounds2D &) const
 
bool initRead (Conn *)
 
bool isMultiConn () const
 
bool mkNextFetcher ()
 
int nextConn (SeisTrcInfo &)
 
ConnopenFirst ()
 
bool readNext2D ()
 
bool startWork ()
 
- Protected Member Functions inherited from SeisStoreAccess
 SeisStoreAccess (const IOObj *, const Seis::GeomType *)
 
 SeisStoreAccess (const IOObj *, Pos::GeomID, const Seis::GeomType *)
 
 SeisStoreAccess (const MultiID &, Seis::GeomType)
 
 SeisStoreAccess (const Setup &)
 
bool cleanUp (bool alsoioobj=true)
 
SeisTrcTranslatorstrl () const
 

Protected Attributes

int curlineidx = -1
 
BinID curpsbid_ = BinID(0,0)
 
StepInterval< int > curtrcnrrg
 
bool entryis2d = false
 
Executorfetcher = nullptr
 
bool forcefloats = false
 
bool foundvalidcrl = false
 
bool foundvalidinl = false
 
bool inforead = false
 
bool needskip = false
 
bool new_packet = false
 
int nrfetchers = 0
 
TrcKeySamplingouter
 
int prev_inl = mUdf(int)
 
PosInfo::CubeDataIteratorpscditer_ = nullptr
 
PosInfo::Line2DDataIteratorpslditer_ = nullptr
 
SeisPS2DReaderpsrdr2d_ = nullptr
 
SeisPS3DReaderpsrdr3d_ = nullptr
 
Seis::ReadMode readmode = Seis::Prod
 
int selcomp_ = -1
 
SeisTrcBuftbuf_ = nullptr
 
- Protected Attributes inherited from SeisStoreAccess
Seis2DDataSetdataset_ = nullptr
 
uiString errmsg_
 
IOObjioobj_ = nullptr
 
bool is2d_ = false
 
int nrtrcs_
 
bool prepared_ = false
 
const SeisPSIOProviderpsioprov_ = nullptr
 
Seis::SelDataseldata_ = nullptr
 
Translatortrl_ = nullptr
 

Additional Inherited Members

- Static Public Member Functions inherited from SeisStoreAccess
static PtrMan< IOObjgetFromPar (const IOPar &)
 
static IOObjgetTmp (const char *fnm, bool isps, bool is2d)
 
static const char * sKeyHeader ()
 
static const ZDomain::InfozDomain (const IOObj *)
 
- Static Public Attributes inherited from SeisStoreAccess
static const char * sNrTrcs
 

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 Prestack data cannot (yet) be read via this class.

<>

Constructor & Destructor Documentation

◆ SeisTrcReader() [1/7]

SeisTrcReader::SeisTrcReader ( const MultiID ,
Seis::GeomType   
)

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

◆ SeisTrcReader() [2/7]

SeisTrcReader::SeisTrcReader ( const IOObj ,
const Seis::GeomType = nullptr 
)

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

◆ SeisTrcReader() [3/7]

SeisTrcReader::SeisTrcReader ( const IOObj ,
Pos::GeomID  ,
const Seis::GeomType = nullptr 
)

Restricted to a given Pos::GeomID.

◆ SeisTrcReader() [4/7]

SeisTrcReader::SeisTrcReader ( const SeisStoreAccess::Setup )

◆ ~SeisTrcReader()

SeisTrcReader::~SeisTrcReader ( )

◆ SeisTrcReader() [5/7]

SeisTrcReader::SeisTrcReader ( const MultiID )
protecteddelete

◆ SeisTrcReader() [6/7]

SeisTrcReader::SeisTrcReader ( const IOObj = nullptr)

◆ SeisTrcReader() [7/7]

SeisTrcReader::SeisTrcReader ( const char *  fnm)
explicit

Open 'loose' CBVS files only.

Member Function Documentation

◆ curLineIdx()

int SeisTrcReader::curLineIdx ( ) const
inline

◆ curTrcNrRange()

StepInterval<int> SeisTrcReader::curTrcNrRange ( ) const
inline

◆ doStart()

bool SeisTrcReader::doStart ( )
protected

◆ ensureCurLineAttribOK()

bool SeisTrcReader::ensureCurLineAttribOK ( const BufferString )
protected

◆ expectedNrTraces()

int SeisTrcReader::expectedNrTraces ( ) const

Not the number of positions, as Pre-Stack datasets have many traces per position

◆ fillPar()

void SeisTrcReader::fillPar ( IOPar ) const
overridevirtual

Reimplemented from SeisStoreAccess.

◆ forceFloatData()

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

Only effective if called before prepareWork()

◆ geomID()

Pos::GeomID SeisTrcReader::geomID ( ) const
overridevirtual

Reimplemented from SeisStoreAccess.

◆ geomIDProvider()

GeomIDProvider* SeisTrcReader::geomIDProvider ( ) const

◆ get() [1/2]

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.

◆ get() [2/2]

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&).

◆ get2D() [1/2]

bool SeisTrcReader::get2D ( SeisTrc )
protected

◆ get2D() [2/2]

int SeisTrcReader::get2D ( SeisTrcInfo )
protected

◆ get2DData()

bool SeisTrcReader::get2DData ( TraceData )
protected

◆ get3DBounds()

Seis::Bounds* SeisTrcReader::get3DBounds ( const StepInterval< int > &  ,
const StepInterval< int > &  ,
const StepInterval< float > &   
) const
protected

◆ get3DGeometryInfo()

bool SeisTrcReader::get3DGeometryInfo ( PosInfo::CubeData ) const

◆ getBounds()

Seis::Bounds* SeisTrcReader::getBounds ( ) const

use after prepareWork(). If not avail: survinfo

◆ getData()

bool SeisTrcReader::getData ( TraceData )

◆ getDataPack()

bool SeisTrcReader::getDataPack ( RegularSeisDataPack ,
TaskRunner = nullptr 
)

◆ getNrOffsets()

int SeisTrcReader::getNrOffsets ( int  maxnrpostobechecked = 10) const

◆ getPS() [1/2]

bool SeisTrcReader::getPS ( SeisTrc )
protected

◆ getPS() [2/2]

int SeisTrcReader::getPS ( SeisTrcInfo )
protected

◆ getTraceScaler()

const Scaler* SeisTrcReader::getTraceScaler ( ) const

◆ init()

void SeisTrcReader::init ( )
protected

◆ initBounds2D()

bool SeisTrcReader::initBounds2D ( const PosInfo::Line2DData ,
Seis::Bounds2D  
) const
protected

◆ initRead()

bool SeisTrcReader::initRead ( Conn )
protected

◆ isMultiConn()

bool SeisTrcReader::isMultiConn ( ) const
protected

◆ mkNextFetcher()

bool SeisTrcReader::mkNextFetcher ( )
protected

◆ nextConn()

int SeisTrcReader::nextConn ( SeisTrcInfo )
protected

◆ openFirst()

Conn* SeisTrcReader::openFirst ( )
protected

◆ prepareWork()

bool SeisTrcReader::prepareWork ( Seis::ReadMode  = Seis::Prod)

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

◆ readNext2D()

bool SeisTrcReader::readNext2D ( )
protected

◆ seis2Dtranslator()

const SeisTrcTranslator* SeisTrcReader::seis2Dtranslator ( )

◆ setComponent()

void SeisTrcReader::setComponent ( int  ic)
inline

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

◆ startWork()

bool SeisTrcReader::startWork ( )
protected

Member Data Documentation

◆ curlineidx

int SeisTrcReader::curlineidx = -1
protected

◆ curpsbid_

BinID SeisTrcReader::curpsbid_ = BinID(0,0)
protected

◆ curtrcnrrg

StepInterval<int> SeisTrcReader::curtrcnrrg
protected

◆ entryis2d

bool SeisTrcReader::entryis2d = false
protected

◆ fetcher

Executor* SeisTrcReader::fetcher = nullptr
protected

◆ forcefloats

bool SeisTrcReader::forcefloats = false
protected

◆ foundvalidcrl

bool SeisTrcReader::foundvalidcrl = false
protected

◆ foundvalidinl

bool SeisTrcReader::foundvalidinl = false
protected

◆ inforead

bool SeisTrcReader::inforead = false
protected

◆ needskip

bool SeisTrcReader::needskip = false
protected

◆ new_packet

bool SeisTrcReader::new_packet = false
protected

◆ nrfetchers

int SeisTrcReader::nrfetchers = 0
protected

◆ outer

TrcKeySampling* SeisTrcReader::outer
protected

◆ prev_inl

int SeisTrcReader::prev_inl = mUdf(int)
protected

◆ pscditer_

PosInfo::CubeDataIterator* SeisTrcReader::pscditer_ = nullptr
protected

◆ pslditer_

PosInfo::Line2DDataIterator* SeisTrcReader::pslditer_ = nullptr
protected

◆ psrdr2d_

SeisPS2DReader* SeisTrcReader::psrdr2d_ = nullptr
protected

◆ psrdr3d_

SeisPS3DReader* SeisTrcReader::psrdr3d_ = nullptr
protected

◆ readmode

Seis::ReadMode SeisTrcReader::readmode = Seis::Prod
protected

◆ selcomp_

int SeisTrcReader::selcomp_ = -1
protected

◆ tbuf_

SeisTrcBuf* SeisTrcReader::tbuf_ = nullptr
protected

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