UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ZdUSeismic Class Reference

#include <zd_useismic.hpp>

Inheritance diagram for ZdUSeismic:
ZdSeismicSet ZdSeismicFile ZdSeismicFile ZdCoordObjStream ZdCoordObjStream ZdCoordObjStream ZdCoordObjStream ZdDocument ZdDocument ZdDocument ZdDocument ZdDocument ZdDocument ZdDocument ZdDocument

Classes

struct  TraceItem
 

Public Member Functions

 ZdUSeismic (TrSet *pTS, int nExtraHW=0, const char *szDocName=NULL)
 
 ZdUSeismic (const char *szProject, const char *szSeisFile, int nExtraHW=0, const char *szDocName=NULL)
 
virtual ~ZdUSeismic ()
 
TrSethandle ()
 
const TrSethandle () const
 
const TrIndexTableindexTable () const
 
int extraHeaderWords () const
 
virtual bool getCoordRange (double c[2])
 
virtual double averageCoordStep ()
 
virtual const ZqbAbstrTracetracePar () const
 
virtual int traceCount () const
 
virtual void getAllTraceIds (TraceIdsV &viTraceIds) const
 
virtual int coordCount () const
 
virtual int coordToTraceId (double fCoord, int iEnsIndex=0)
 
virtual void coordToTraceIds (double fCoord, TraceIdsV &viTraceIds)
 
virtual void getCoords (CoordsV &vfCoords)
 
virtual double traceIdToCoord (int iTraceId, int *piEnsIndex=NULL)
 
virtual bool modify ()
 
virtual bool isModifiable () const
 
virtual bool setHeader (int id, const ZqbHeader &hdr)
 
virtual bool setTrace (int id, const ZqbRealTrace &rtr)
 
virtual bool setSamples (int id, const float *pSamples)
 
virtual const ZqbHeaderheaderById (int id)
 
virtual const float * samplesById (int id)
 
virtual const ZqbRealTracetraceById (int id)
 
virtual void setCustomCoord (int iCoordHW, ZqbOrder eOrder=Z_O_ASCENT)
 
virtual void setSecondaryOrder (int iSecondaryHW, ZqbOrder eOrder=Z_O_ASCENT)
 
virtual void setTertiaryOrder (int iTertiaryHW, ZqbOrder eOrder=Z_O_ASCENT)
 
virtual void setCustomHdrWord (int iCustomHW)
 
virtual bool goFirstCoord ()
 
virtual bool goNextCoord ()
 
virtual double coord ()
 
virtual void * custom (int ens_index=0, ZqbType *pRetType=NULL)
 
virtual int ensembleLength ()
 
virtual int maxEnsembleLength ()
 
virtual const ZqbRealTracetrace (int ens_index=0)
 
virtual const ZqbHeaderheader (int ens_index=0)
 
virtual int traceId (int ens_index=0)
 
void getValuesList (int hwId, std::vector< int > &vValues)
 
void getValuesList (int hwId, std::vector< float > &vValues)
 
virtual void globalAmplInfo (double pfAmm[2])
 
virtual const char * coordMeaning () const
 
virtual const char * coordUnit () const
 
virtual const char * timeMeaning () const
 
virtual const char * timeUnit () const
 
bool properOrder () const
 
void applyOrder ()
 
- Public Member Functions inherited from ZdSeismicSet
 ZdSeismicSet (const char *szDocName=NULL)
 
virtual void setCoordPrecision (double fPrec)
 
virtual double getCoordPrecision () const
 
virtual bool headerById (int id, ZqbHeader &hdr)
 
virtual bool samplesById (int id, float *pSamples)
 
virtual bool traceById (int id, ZqbRealTrace &rtr)
 
virtual bool compatibleType (const char *szType) const
 
 ZdSeismicSet (const char *szDocName=NULL)
 
virtual void setCoordPrecision (double fPrec)
 
virtual double getCoordPrecision () const
 
virtual void resetOrder ()
 
virtual bool removeTrace (int)
 
virtual bool appendTrace (int, const ZqbRealTrace &)
 
virtual bool headerById (int id, ZqbHeader &hdr)
 
virtual bool samplesById (int id, float *pSamples)
 
virtual bool traceById (int id, ZqbRealTrace &rtr)
 
virtual bool compatibleType (const char *szType) const
 
- Public Member Functions inherited from ZdSeismicFile
 ZdSeismicFile (const char *szDocName=NULL)
 
virtual bool setSamples (const float *pSamples, int ens_index=0)
 
virtual bool setHeader (const ZqbHeader &hdr, int ens_index=0)
 
virtual bool setTrace (const ZqbRealTrace &rtr, int ens_index=0)
 
 ZdSeismicFile (const char *szDocName=NULL)
 
virtual const ZqbHeaderdefHeaderPar () const
 
virtual int getFieldsCount () const =0
 
virtual const ZqbHdrFieldheaderWordInfo (int hwId) const
 
virtual bool setSamples (const float *pSamples, int ens_index=0)
 
virtual bool setHeader (const ZqbHeader &hdr, int ens_index=0)
 
virtual bool setTrace (const ZqbRealTrace &rtr, int ens_index=0)
 
virtual double customCoord ()
 
- Public Member Functions inherited from ZdCoordObjStream
 ZdCoordObjStream (const char *szDocName=NULL)
 
 ZdCoordObjStream (const char *szDocName=NULL)
 
virtual void setCustomCoord (int iCoordId)
 
virtual int getCustomCoord () const
 
virtual void setFirstOrder (int iCoordId, ZqbOrder eOrder=Z_O_ASCENT)
 
virtual bool getFirstOrder (int &iCoordId, ZqbOrder &eOrder) const
 
virtual bool getSecondaryOrder (int &iCoordId, ZqbOrder &eOrder) const
 
virtual bool getTertiaryOrder (int &iCoordId, ZqbOrder &eOrder) const
 
virtual void setCoordsSelection (const CoordSelectionVec &selCoords)
 
virtual const CoordSelectionVecgetCoordsSelection () const
 
virtual void setInvisibleCoordinates (const CoordSelectionVec &unvisibleCoords)
 
virtual const CoordSelectionVecgetInvisibleCoordinates () const
 
virtual bool visibleCoord ()
 
virtual ZqbType coordTypeFromId (int coordId) const
 
- Public Member Functions inherited from ZdDocument
 ZdDocument (const char *szName=NULL)
 
virtual ~ZdDocument ()
 
virtual void updateViews ()
 
virtual bool isChanged ()
 
virtual void setChanges ()
 
virtual void resetChanges ()
 
 ZdDocument (const char *szName=NULL)
 
virtual ~ZdDocument ()
 
virtual void updateViews ()
 
virtual bool isChanged ()
 
virtual void setChanges ()
 
virtual void resetChanges ()
 
- Public Member Functions inherited from ZqbAutoName
 ZqbAutoName (int *pCounter, const char *szRoot, const char *szCustomName=NULL)
 
virtual ~ZqbAutoName ()
 
 ZqbAutoName (int *pCounter, const char *szRoot, const char *szCustomName=NULL)
 
virtual ~ZqbAutoName ()
 
- Public Member Functions inherited from ZqbName
 ZqbName (const char *szRoot, const char *szCustomName=NULL)
 
 ZqbName (const ZqbName &name)
 
virtual ~ZqbName ()
 
ZqbNameoperator= (const ZqbName &name)
 
virtual const char * getName () const
 
virtual const char * getType () const
 
bool hasName (const char *szString) const
 
 ZqbName (const char *szRoot, const char *szCustomName=NULL)
 
 ZqbName (const ZqbName &name)
 
virtual ~ZqbName ()
 
ZqbNameoperator= (const ZqbName &name)
 
virtual const char * getName () const
 
virtual const char * getType () const
 
bool hasName (const char *szString) const
 

Static Public Member Functions

static void initialize (int nExtraHW=0, const ZqbHdrField *pExtraHW=NULL, void(*InitExtraHW)(ZqbHeader &)=NULL)
 
static ZqbType hwType (int hwId)
 
static ZqbHdrFieldhwInfo (int hwId)
 

Protected Member Functions

int curEnsSize (int iCurTrace)
 
void constructor ()
 
void setSortOrder (ZqbHeader &hdr)
 

Protected Attributes

TrSetm_pTS
 
TrIndexTable m_it
 
std::vector< TraceItemm_vTraces
 
std::vector< std::pair< int,
ZqbOrder > > 
m_vOrder
 
ZqbAbstrTrace m_aTrace
 
ZqbRealTrace m_EmptyTrace
 
int m_iCurTrace
 
int m_nExtraHW
 
int m_nMaxEnsSize
 
std::vector< double > m_vfCoords
 
std::vector< int > m_viStartEns
 
std::vector< int > m_viEnsLengths
 
std::map< int, int > m_mId2I
 
UnitId m_eLengthUnitId
 
- Protected Attributes inherited from ZdDocument
ZqbViewVector m_Views
 
- Protected Attributes inherited from ZqbName
char * m_szName
 
char * m_szRoot
 

Static Protected Attributes

static void(* s_initExtraHW )(ZqbHeader &)
 

Additional Inherited Members

- Public Types inherited from ZdSeismicSet
typedef std::vector< int > TraceIdsV
 
typedef std::vector< double > CoordsV
 
typedef std::vector< int > TraceIdsV
 
typedef std::vector< double > CoordsV
 
- Public Types inherited from ZdCoordObjStream
typedef std::vector
< CoordSelection
CoordSelectionVec
 

Detailed Description

Class for accessing UNIVERS seismic data object using ZdSeismicSet abstraction. Identifier of the trace is just a sequence index of trace for the order through all ensembles.

Trace id is so called raw index. Index in applied order has name custom index. Index of ensemble is coordinate index. Index inside the ensemble is ensemble index.

Use TA_* ids to specify exact header words. To access extra header words use TA_EXTRA(x). Value of x should be from 0 to nExtraHW-1.

Constructor & Destructor Documentation

ZdUSeismic::ZdUSeismic ( TrSet pTS,
int  nExtraHW = 0,
const char *  szDocName = NULL 
)

Create seismic file access document. Additional header words may be used in number given by nExtraHW. Optional document name may be specified.

ZdUSeismic::ZdUSeismic ( const char *  szProject,
const char *  szSeisFile,
int  nExtraHW = 0,
const char *  szDocName = NULL 
)

Create seismic file access document directly accessing LDB by name of seismic file. Additional header words may be used in number given by nExtraHW. Optional document name may be specified.

virtual ZdUSeismic::~ZdUSeismic ( )
virtual

Deinitialize the object but don't close TrSet!

Member Function Documentation

void ZdUSeismic::applyOrder ( )
virtual

Called automatically after setCustomCoord(), setSecondaryOrder(), setTertiaryOrder() to apply these changes but before iterations started.

Reimplemented from ZdSeismicSet.

virtual double ZdUSeismic::averageCoordStep ( )
virtual

Get average primary coordinate step between objects.

Implements ZdCoordObjStream.

void ZdUSeismic::constructor ( )
protected

Constructor method.

virtual double ZdUSeismic::coord ( )
virtual

Get current coordinate in case of previous go???Coord() succeeded.

Implements ZdCoordObjStream.

virtual int ZdUSeismic::coordCount ( ) const
virtual

Returns number of different coordinates.

Implements ZdSeismicSet.

virtual const char* ZdUSeismic::coordMeaning ( ) const
virtual

Physical meaning of custom coordinate value. "Coord" by default.

Reimplemented from ZdSeismicSet.

virtual int ZdUSeismic::coordToTraceId ( double  fCoord,
int  iEnsIndex = 0 
)
virtual

Try to find coordinate in the seismic set and return id of the trace found. Ensemble index is taken into account too.

Implements ZdSeismicSet.

virtual void ZdUSeismic::coordToTraceIds ( double  fCoord,
TraceIdsV viTraceIds 
)
virtual

Return all trace ids which match given coordinate with known precision.

Implements ZdSeismicSet.

virtual const char* ZdUSeismic::coordUnit ( ) const
virtual

Unit of measure for custom coordinate. "" by default.

Reimplemented from ZdSeismicSet.

int ZdUSeismic::curEnsSize ( int  iCurTrace)
protected

Find number of traces in current ensemble.

virtual void* ZdUSeismic::custom ( int  ens_index = 0,
ZqbType *  pRetType = NULL 
)
virtual

Get the pointer to some custom value for the current coordinate or return NULL if no such value is defined. A type is returned in optional pRetType. Until the next call pointee contents rest the same.

Reimplemented from ZdCoordObjStream.

virtual int ZdUSeismic::ensembleLength ( )
virtual

Get number of records found for this primary coordinate (always >=1).

Implements ZdCoordObjStream.

int ZdUSeismic::extraHeaderWords ( ) const

Return number of extra header words.

virtual void ZdUSeismic::getAllTraceIds ( TraceIdsV viTraceIds) const
virtual

Returns all trace ids (raw indeces).

Implements ZdSeismicSet.

virtual bool ZdUSeismic::getCoordRange ( double  c[2])
virtual

Get range of primary coordinates respecting order of the stream or return false in case of empty range.

Implements ZdCoordObjStream.

virtual void ZdUSeismic::getCoords ( CoordsV vfCoords)
virtual

Return all different coordinates.

Implements ZdSeismicSet.

void ZdUSeismic::getValuesList ( int  hwId,
std::vector< int > &  vValues 
)

Return vector of sorted integer unique values of the given header word. Used to split seismic set by values of given header word.

void ZdUSeismic::getValuesList ( int  hwId,
std::vector< float > &  vValues 
)

Return vector of sorted floating point unique values of the given header word. Used to split seismic set by values of given header word.

virtual void ZdUSeismic::globalAmplInfo ( double  pfAmm[2])
virtual

Obtain amplitude distribution bounds.

Reimplemented from ZdSeismicFile.

virtual bool ZdUSeismic::goFirstCoord ( )
virtual

Reset iterator. Returns true on success and false on failure (empty stream).

Implements ZdCoordObjStream.

virtual bool ZdUSeismic::goNextCoord ( )
virtual

Go to next iteration. Returns true on success and false on failure (end of stream).

Implements ZdCoordObjStream.

TrSet* ZdUSeismic::handle ( )

Provide access to internal I/O handle.

const TrSet* ZdUSeismic::handle ( ) const

Provide constant access to internal I/O handle.

virtual const ZqbHeader& ZdUSeismic::header ( int  ens_index = 0)
virtual

Return header of the current trace of the stream with given index inside the ensemble.

Reimplemented from ZdSeismicFile.

virtual const ZqbHeader* ZdUSeismic::headerById ( int  id)
virtual

Returns pointer to the header of the trace with given id. Returns NULL if there is no such id in seismic set now.

Implements ZdSeismicSet.

static ZqbHdrField* ZdUSeismic::hwInfo ( int  hwId)
static

Return full description of given header word (only static one).

static ZqbType ZdUSeismic::hwType ( int  hwId)
static

Return type of given header word (only static one).

const TrIndexTable* ZdUSeismic::indexTable ( ) const

Provide constant access to internal index table.

static void ZdUSeismic::initialize ( int  nExtraHW = 0,
const ZqbHdrField pExtraHW = NULL,
void(*)(ZqbHeader &)  InitExtraHW = NULL 
)
static

Initialization of UNIVERS seismic definitions for Zq trace related functionality. Must be called once in the beginning of the application. Extra header words may be supplied. Each extra header word should have ZqbHdrField descriptor. A special procedure (one for all extra header words) may be supplied to initialize virtual header words.

virtual bool ZdUSeismic::isModifiable ( ) const
virtual

Return true if the container allows to change its content. By default returns false.

Reimplemented from ZdSeismicFile.

virtual int ZdUSeismic::maxEnsembleLength ( )
virtual

Get maximum length of ensemble. 0 means unknown.

Implements ZdCoordObjStream.

virtual bool ZdUSeismic::modify ( )
virtual

Change the mode of seismic set from read-only (default) to modifiable. Return true if succeeded and false otherwise. By default returns false.

Reimplemented from ZdSeismicFile.

bool ZdUSeismic::properOrder ( ) const

Just checks for proper result after applyOrder().

virtual const float* ZdUSeismic::samplesById ( int  id)
virtual

Returns pointer to the samples of the trace with given id. Returns NULL if there is no such id in seismic set now.

Implements ZdSeismicSet.

virtual void ZdUSeismic::setCustomCoord ( int  iCoordHW,
ZqbOrder  eOrder = Z_O_ASCENT 
)
virtual

Set custom primary seismic coordinate.

Reimplemented from ZdCoordObjStream.

virtual void ZdUSeismic::setCustomHdrWord ( int  iCustomHW)
virtual

Set custom value taken from given header word. See custom().

virtual bool ZdUSeismic::setHeader ( int  id,
const ZqbHeader hdr 
)
virtual

Set the header of trace with given id to the hdr contents and return true if succeeded and false otherwise. Failure may be if id is not found and if seismic set is not modifiable just now.

Implements ZdSeismicSet.

virtual bool ZdUSeismic::setSamples ( int  id,
const float *  pSamples 
)
virtual

Set the trace samples with given id to the pSamples contents and return true if succeeded and false otherwise. Failure may be if id is not found and if seismic set is not modifiable just now.

Implements ZdSeismicSet.

virtual void ZdUSeismic::setSecondaryOrder ( int  iSecondaryHW,
ZqbOrder  eOrder = Z_O_ASCENT 
)
virtual

Set custom secondary seismic coordinate.

Reimplemented from ZdCoordObjStream.

void ZdUSeismic::setSortOrder ( ZqbHeader hdr)
protected

Set sort order for given header.

virtual void ZdUSeismic::setTertiaryOrder ( int  iTertiaryHW,
ZqbOrder  eOrder = Z_O_ASCENT 
)
virtual

Set custom tertiary seismic coordinate.

Reimplemented from ZdCoordObjStream.

virtual bool ZdUSeismic::setTrace ( int  id,
const ZqbRealTrace rtr 
)
virtual

Set the trace with given id to the rtr contents and return true if succeeded and false otherwise. Failure may be if id is not found and if seismic set is not modifiable just now.

Implements ZdSeismicSet.

virtual const char* ZdUSeismic::timeMeaning ( ) const
virtual

Physical meaning of sample time. "Time" by default.

Reimplemented from ZdSeismicSet.

virtual const char* ZdUSeismic::timeUnit ( ) const
virtual

Unit of measure for sample time. "ms" by default.

Reimplemented from ZdSeismicSet.

virtual const ZqbRealTrace& ZdUSeismic::trace ( int  ens_index = 0)
virtual

Return current trace of the stream with given index inside the ensemble.

Implements ZdSeismicFile.

virtual const ZqbRealTrace* ZdUSeismic::traceById ( int  id)
virtual

Returns pointer to the trace with given id. Returns NULL if there is no such id in seismic set now.

Implements ZdSeismicSet.

virtual int ZdUSeismic::traceCount ( ) const
virtual

Returns number of traces.

Implements ZdSeismicSet.

virtual int ZdUSeismic::traceId ( int  ens_index = 0)
virtual

Get unique trace index which can be associated with underlying trace db or trace file. It's guaranteed the the index is unique among traces of the same seismic stream.

Implements ZdSeismicFile.

virtual double ZdUSeismic::traceIdToCoord ( int  iTraceId,
int *  piEnsIndex = NULL 
)
virtual

Return coordinate of given trace and optionally returns its ensemble index.

Implements ZdSeismicSet.

virtual const ZqbAbstrTrace& ZdUSeismic::tracePar ( ) const
virtual

Get common trace parameters.

Implements ZdSeismicFile.

Member Data Documentation

ZqbAbstrTrace ZdUSeismic::m_aTrace
protected

Trace parameters.

UnitId ZdUSeismic::m_eLengthUnitId
protected

Unit of measure for depth/length etc

ZqbRealTrace ZdUSeismic::m_EmptyTrace
protected

Special empty trace object.

int ZdUSeismic::m_iCurTrace
protected

Index of the current trace in sequence. It enumerates items in m_vfCoords, m_viStartEns, m_viEnsLengths vectors.

TrIndexTable ZdUSeismic::m_it
protected

Index table used to exteriorize seismic trace subset visualized currently.

std::map<int,int> ZdUSeismic::m_mId2I
protected

Mapping of raw trace id (used to address trace in TrSet with turned off index table) to ordered trace indeces (m_vTraces).

int ZdUSeismic::m_nExtraHW
protected

Number of extra header words.

int ZdUSeismic::m_nMaxEnsSize
protected

Maximum number of traces in ensemble.

TrSet* ZdUSeismic::m_pTS
protected

Object for accessing seismic in UNIVERS database.

std::vector<double> ZdUSeismic::m_vfCoords
protected

List of unique coordinates.

std::vector<int> ZdUSeismic::m_viEnsLengths
protected

List of ensemble lengths for each coordinate.

std::vector<int> ZdUSeismic::m_viStartEns
protected

List of starting indeces of ensembles in the index table.

std::vector<std::pair<int,ZqbOrder> > ZdUSeismic::m_vOrder
protected

Order rules.

std::vector<TraceItem> ZdUSeismic::m_vTraces
protected

Vector of traces to visualize. Don't load too large data sets to prevent long load time!

void(* ZdUSeismic::s_initExtraHW)(ZqbHeader &)
staticprotected

Procedure to initialize extra (virtual and transient) header words in existent (read from DB) header.


The documentation for this class was generated from the following file: