| OpendTect 8.0

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
SeisTrcReader Class Reference
Seis

reads from a seismic data store. More...

`#include <seisread.h>`

Inheritance diagram for SeisTrcReader:
[legend]

## Public Member Functions
| SeisTrcReader (const char *fnm)
| Open 'loose' CBVS files only.
| SeisTrcReader (const IOObj &, const Seis::GeomType *=nullptr)
| SeisTrcReader (const IOObj &, Pos::GeomID, const Seis::GeomType *=nullptr)
| Restricted to a given Pos::GeomID.
| 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
Pos::GeomID | geomID () const override
Pos::GeomIDProvider * | geomIDProvider () const
bool | get (SeisTrc &)
int | get (SeisTrcInfo &)
bool | get3DGeometryInfo (PosInfo::CubeData &) const
Seis::Bounds * | getBounds () const
| use after prepareWork(). If not avail: survinfo
bool | getData (TraceData &)
bool | getDataPack (RegularSeisDataPack &, TaskRunner *=nullptr)
int | getNrOffsets (int maxnrpostobechecked=10) const
const Scaler * | getTraceScaler () const
| mOD_DisableCopy (SeisTrcReader) void forceFloatData(bool yn
| Only effective if called before prepareWork()
const SeisTrcTranslator * | seis2Dtranslator ()
void | setComponent (int ic)
Public Member Functions inherited from SeisStoreAccess
virtual | ~SeisStoreAccess ()
virtual bool | close ()
Conn * | curConn3D ()
const Conn * | curConn3D () const
Seis2DDataSet * | dataSet ()
const Seis2DDataSet * | dataSet () const
uiString | errMsg () const
Seis::GeomType | geomType () const
const IOObj * | ioObj () const
bool | is2D () const
bool | isOK () const
bool | isPrepared () const
bool | isPS () const
const SeisPSIOProvider * | psIOProv () const
SeisTrcTranslator * | seisTranslator ()
const SeisTrcTranslator * | seisTranslator () const
const Seis::SelData * | selData () const
void | setIOObj (const IOObj *)
void | setIOObj (const Setup &)
virtual void | setSelData (Seis::SelData *)
| The Seis::SelData becomes mine.
int | tracesHandled () const
Translator * | translator ()
Translator * | translator () const
virtual void | usePar (const IOPar &)
const ZDomain::Info & | zDomain () const
bool | zInFeet () const
bool | zInMeter () const
bool | zIsTime () const
const UnitOfMeasure * | zUnit () const

## Public Attributes
int & | curlineidx
StepInterval< int > & | curtrcnrrg
bool & | entryis2d
Executor *& | fetcher
bool & | forcefloats
bool & | foundvalidcrl
bool & | foundvalidinl
bool & | inforead
bool & | needskip
bool & | new_packet
int & | nrfetchers
TrcKeySampling *& | outer
int & | prev_inl
Seis::ReadMode & | readmode

## Protected Member Functions
| SeisTrcReader (const MultiID &)=delete
bool | doStart ()
bool | ensureCurLineAttribOK (const BufferString &)
bool | get2D (SeisTrc &)
int | get2D (SeisTrcInfo &)
bool | get2DData (TraceData &)
Seis::Bounds * | get3DBounds (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 &)
Conn * | openFirst ()
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)
SeisTrcTranslator * | strl () const

## Protected Attributes
int | curlineidx_ = -1
BinID | curpsbid_ = BinID::udf()
StepInterval< int > | curtrcnrrg_
bool | entryis2d_ = false
Executor * | fetcher_ = nullptr
bool | forcefloats_ = false
bool | foundvalidcrl_ = false
bool | foundvalidinl_ = false
bool | inforead_ = false
bool | needskip_ = false
bool | new_packet_ = false
int | nrfetchers_ = 0
TrcKeySampling * | outer_
int | prev_inl_ = mUdf(int)
PosInfo::CubeDataIterator * | pscditer_ = nullptr
PosInfo::Line2DDataIterator * | pslditer_ = nullptr
SeisPS2DReader * | psrdr2d_ = nullptr
SeisPS3DReader * | psrdr3d_ = nullptr
Seis::ReadMode | readmode_ = Seis::Prod
int | selcomp_ = -1
SeisTrcBuf * | tbuf_ = nullptr
Protected Attributes inherited from SeisStoreAccess
Seis2DDataSet * | dataset_ = nullptr
uiString | errmsg_
IOObj * | ioobj_ = nullptr
bool | is2d_ = false
int | nrtrcs_
bool | prepared_ = false
const SeisPSIOProvider * | psioprov_ = nullptr
Seis::SelData * | seldata_ = nullptr
Translator * | trl_ = nullptr

## Additional Inherited Members
Static Public Member Functions inherited from SeisStoreAccess
static PtrMan< IOObj > | getFromPar (const IOPar &)
static IOObj & | getTmp (const char *fnm, bool isps, bool is2d)
static const char * | sKeyHeader ()
static const ZDomain::Info & | zDomain (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 & |  | ) |
| protected delete

## ◆ 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
| override virtual

Reimplemented from SeisStoreAccess.

## ◆ geomID()

Pos::GeomID SeisTrcReader::geomID | ( |  | ) | const
| override virtual

Reimplemented from SeisStoreAccess.

## ◆ geomIDProvider()

Pos::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

## ◆ mOD_DisableCopy()

SeisTrcReader::mOD_DisableCopy | ( | SeisTrcReader |  | ) |

Only effective if called before prepareWork()

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

## ◆ nextConn()

int SeisTrcReader::nextConn | ( | SeisTrcInfo & |  | ) |
| protected

## ◆ openFirst()

Conn * SeisTrcReader::openFirst | ( |  | ) |
| protected

## ◆ 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

## ◆ curlineidx_

int SeisTrcReader::curlineidx_ = -1
| protected

## ◆ curpsbid_

BinID SeisTrcReader::curpsbid_ = BinID::udf()
| protected

## ◆ curtrcnrrg

StepInterval<int>& SeisTrcReader::curtrcnrrg

## ◆ curtrcnrrg_

StepInterval<int> SeisTrcReader::curtrcnrrg_
| protected

## ◆ entryis2d

bool& SeisTrcReader::entryis2d

## ◆ entryis2d_

bool SeisTrcReader::entryis2d_ = false
| protected

## ◆ fetcher

Executor*& SeisTrcReader::fetcher

## ◆ fetcher_

Executor* SeisTrcReader::fetcher_ = nullptr
| protected

## ◆ forcefloats

bool& SeisTrcReader::forcefloats

## ◆ forcefloats_

bool SeisTrcReader::forcefloats_ = false
| protected

## ◆ foundvalidcrl

bool& SeisTrcReader::foundvalidcrl

## ◆ foundvalidcrl_

bool SeisTrcReader::foundvalidcrl_ = false
| protected

## ◆ foundvalidinl

bool& SeisTrcReader::foundvalidinl

## ◆ foundvalidinl_

bool SeisTrcReader::foundvalidinl_ = false
| protected

## ◆ inforead

bool& SeisTrcReader::inforead

## ◆ inforead_

bool SeisTrcReader::inforead_ = false
| protected

## ◆ needskip

bool& SeisTrcReader::needskip

## ◆ needskip_

bool SeisTrcReader::needskip_ = false
| protected

## ◆ new_packet

bool& SeisTrcReader::new_packet

## ◆ new_packet_

bool SeisTrcReader::new_packet_ = false
| protected

## ◆ nrfetchers

int& SeisTrcReader::nrfetchers

## ◆ nrfetchers_

int SeisTrcReader::nrfetchers_ = 0
| protected

## ◆ outer

TrcKeySampling*& SeisTrcReader::outer

## ◆ outer_

TrcKeySampling* SeisTrcReader::outer_
| protected

## ◆ prev_inl

int& SeisTrcReader::prev_inl

## ◆ 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

## ◆ 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-2025