Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
SoVRSegyReader.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : T. DUFOUR (MMM yyyy)
22**=======================================================================*/
23
24#ifndef _SO_VRSEGY_READER_
25#define _SO_VRSEGY_READER_
26
27#include <VolumeViz/readers/SoVolumeReader.h>
28
30
45{
46 public:
51
56 SEGY_TRACL, // Trace sequence number within line
57 SEGY_TRACR, // Trace sequence number within reel
58 SEGY_FLDR, // Field record number
59 SEGY_TRACF, // Trace number within field record
60 SEGY_EP, // Energy source point number
61 SEGY_CDP, // CDP ensemble number
62 SEGY_CDPT, // Trace number within CDP ensemble
63 SEGY_TRID, // Trace identification code
64 SEGY_NVS, // Number of vertically summed traces
65 SEGY_NHS, // Number of horizontally summed traces
66 SEGY_DUSE, // Data use
67 SEGY_OFFSET, // Distance from source point to receiver group
68 SEGY_GELEV, // Receiver group elevation from sea level
69 SEGY_SELEV, // Source elevation from sea level
70 SEGY_SDEPTH, // Source depth (positive)
71 SEGY_GDEL, // Datum elevation at receiver group
72 SEGY_SDEL, // Datum elevation at source
73 SEGY_SWDEP, // Water depth at source
74 SEGY_GWDEP, // Water depth at receiver group
75 SEGY_SCALEL, // Scale factor for previous 7 entries
76 SEGY_SCALCO, // Scale factor for next 4 entries
77 SEGY_SX, // X source coordinate
78 SEGY_SY, // Y source coordinate
79 SEGY_GX, // X group coordinate
80 SEGY_GY, // Y group coordinate
81 SEGY_COUNIT, // Coordinate units code
82 SEGY_WEVEL, // Weathering velocity
83 SEGY_SWEVEL, // Subweathering velocity
84 SEGY_SUT, // Uphole time at source
85 SEGY_GUT, // Uphole time at receiver group
86 SEGY_SSTAT, // Source static correction
87 SEGY_GSTAT, // Group static correction
88 SEGY_TSTAT, // Total static applied
89 SEGY_LAGA, // Lag time A
90 SEGY_LAGB, // Lag time B
91 SEGY_DELRT, // Delay Record Time
92 SEGY_MUTS, // Mute time--start
93 SEGY_MUTE, // Mute time--end
94 SEGY_NS, // Number of samples in this trace
95 SEGY_DT, // Sample interval, in micro-seconds
96 SEGY_GAIN, // Gain type of field instruments code
97 SEGY_IGC, // Instrument gain constant
98 SEGY_IGI, // Instrument early or initial gain
99 SEGY_CORR, // Correlated
100 SEGY_SFS, // Sweep frequency at start
101 SEGY_SFE, // Sweep frequency at end
102 SEGY_SLEN, // Sweep length in ms
103 SEGY_STYP, // Sweep type code
104 SEGY_STAS, // Sweep trace length at start
105 SEGY_STAE, // Sweep trace length at end
106 SEGY_TATYP, // Taper type
107 SEGY_AFILF, // Alias filter frequency
108 SEGY_AFILS, // Alias filter slope
109 SEGY_NOFILF, // Notch filter frequency
110 SEGY_NOFILS, // Notch filter slope
111 SEGY_LCF, // Low cut frequency
112 SEGY_HCF, // High cut frequncy
113 SEGY_LCS, // Low cut slope
114 SEGY_HCS, // High cut slope
115 SEGY_YEAR, // Year data recorded
116 SEGY_DAY, // Day of year
117 SEGY_HOUR, // Hour of day
118 SEGY_MINUTE, // Minute of hour
119 SEGY_SEC, // Second of minute
120 SEGY_TIMBAS, // Time basis code
121 SEGY_TRWF, // Trace weighting factor
122 SEGY_GRNORS, // Geophone group number of roll switch position one
123 SEGY_GRNOFR, // Geophone group number of trace one within original field record
124 SEGY_GRNLOF, // Geophone group number of last trace within original field record
125 SEGY_GAPS, // Gap size
126 SEGY_OTRAV, // Overtravel taper code
133 SEGY_TVMU, // Trace value measurement unit
134 SEGY_TRANSDUCTIONCONSTANTM, // Transduction Constant Mantissa
135 SEGY_TRANSDUCTIONCONSTANTP, // Transduction Constant Power of ten
137 SEGY_DTID, // Device/Trace Identifier
139
140 SEGY_NUM_FIELDS, // To count the number of fields
141 SEGY_CROSSLINE = SEGY_CDP, // Synonym for the crossline position
142 SEGY_INLINE = SEGY_TRACR // Synonym for the inline position
143 };
144
160
167 void setBytePosition( TraceAttribute attr, uint8_t position );
168 uint8_t getBytePosition( TraceAttribute attr ) const;
169
174 uint8_t getByteLength( TraceAttribute attr ) const;
175
185
191 int getFieldValue( TraceAttribute attr, const SoVRSegyTraceIdHeader &trHdr ) const;
192
193 private:
194 void resetObject();
195
196 private:
197 uint8_t m_BytePos[SEGY_NUM_FIELDS];
199};
200
215{
216
217 public:
219 int jobid;
221 int lino;
223 int reno;
225 short ntrpr;
227 short nart;
229 unsigned short hdt;
231 unsigned short dto;
233 unsigned short hns;
235 unsigned short nso;
246 short format;
248 short fold;
260 short tsort;
265 short vscode;
267 short hsfs;
269 short hsfe;
271 short hslen;
277 short hstyp;
279 short schn;
282 short hstas;
285 short hstae;
290 short htatyp;
294 short hcorr;
299 short bgrcv;
305 short rcvm;
309 short mfeet;
315 short polyt;
331 short vpol;
333 short hunass1[120];
335 unsigned short formatRevisionNumber;
347 short hunass2[47];
348};
349
350
365{
366
367 public:
369 int tracl;
371 int tracr;
373 int fldr;
375 int tracf;
377 int ep;
379 int cdp;
381 int cdpt;
441 short trid;
443 short nvs;
445 short nhs;
449 short duse;
454 int gelev;
456 int selev;
460 int gdel;
462 int sdel;
464 int swdep;
466 int gwdep;
469 short scalel;
472 short scalco;
474 int sx;
476 int sy;
478 int gx;
480 int gy;
489 short counit;
491 short wevel;
493 short swevel;
495 short sut;
497 short gut;
499 short sstat;
501 short gstat;
503 short tstat;
511 short laga;
515 short lagb;
521 short delrt;
523 short muts;
525 short mute;
527 unsigned short ns;
529 unsigned short dt;
535 short gain;
537 short igc;
539 short igi;
543 short corr;
545 short sfs;
547 short sfe;
549 short slen;
554 short styp;
556 short stas;
558 short stae;
560 short tatyp;
562 short afilf;
564 short afils;
566 short nofilf;
568 short nofils;
570 short lcf;
572 short hcf;
574 short lcs;
576 short hcs;
578 short year;
580 short day;
582 short hour;
584 short minute;
586 short sec;
592 short timbas;
594 short trwf;
596 short grnors;
598 short grnofr;
600 short grnlof;
602 short gaps;
606 short otrav;
608 int cdpX;
610 int cdpY;
630 short tvmu;
648 short dtid;
651 short tscale;
653 short unass[12];
654};
655
656#endif // _SO_VRSEGY_READER_
657
658
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> SEGY file trace heade...
void setBytePosition(TraceAttribute attr, uint8_t position)
Sets/Gets the byte position of a specific attribute within the trace header.
int getFieldValue(TraceAttribute attr, const SoVRSegyTraceIdHeader &trHdr) const
Gets the value of a specific field.
@ SEGY_IBM_FLOAT_FORMAT
Field format is IBM float.
@ SEGY_INTEGER16_FORMAT
Field format is integer 16 bits.
@ SEGY_IEEE_FLOAT_FORMAT
Field format is IEEE float.
@ SEGY_INTEGER32_FORMAT
Field format is integer 32 bits.
@ SEGY_INTEGER8_FORMAT
Field format is integer 8 bits.
uint8_t getBytePosition(TraceAttribute attr) const
void setByteFormat(TraceAttribute attr, TraceByteFormat format)
Sets/Gets the field format of a specific attribute within the trace header.
uint8_t getByteLength(TraceAttribute attr) const
Gets the field length of a specific attribute within the trace header.
SoVRSegyTraceHeaderBytePosition()
constructor
TraceByteFormat getByteFormat(TraceAttribute attr) const
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> SEGY file header.
short mfeet
Measurement system code: 1 = Meters 2 = Feet.
short nart
Number of auxiliary traces per record.
int jobid
Job identification number.
short bgrcv
Binary gain recovered code: 1 = Yes 2 = No.
short schn
Trace number of sweep channel.
short rcvm
Amplitude recovery method code: 1 = None 2 = Spherical divergence 3 = AGC 4 = Other.
short fixedLengthTraceFlag
Fixed trace length flag 1: All traces in this SEG Y file are guaranteed to have the same sample inte...
short hsfs
Sweep frequency at start.
short hunass1[120]
Unassigned.
unsigned short hns
Number of samples per trace for this reel.
short hunass2[47]
Unassigned.
short ntrpr
Number of data traces per record.
short fold
CDP fold expected per CDP ensemble.
unsigned short dto
Same for original field recording.
short tsort
Trace sorting code: -1 = Other 0 = Unknown 1 = As recorded (no sorting) 2 = CDP ensemble 3 ...
short hstyp
Sweep type code: 1 = Linear 2 = Parabolic 3 = Exponential 4 = Other.
unsigned short hdt
Sample interval in micro secs for this reel.
short htatyp
Sweep trace taper type code: 1 = Linear 2 = Cos-squared 3 = Other.
unsigned short nso
Same for original field recording.
short vpol
Vibratory polarity code:
short hstas
Sweep trace taper length at start if tapered (the taper starts at zero time and is effective for this...
short vscode
Vertical sum code: 1 = No sum 2 = Two sum... N = N sum (N = 32,767)
short hslen
Sweep length (ms)
short format
data sample format code: 0 = Fixed point (1 bytes) 1 = Floating point (4 bytes) 2 = Fixed point (...
short polyt
Impulse signal polarity code: 1 = Increase in pressure or upward geophone case movement gives negati...
short numTextHeaderExt
Number of 3200-byte Textual Header Extension records following the Binary Header.
short hstae
Sweep trace taper length at end (the ending taper starts at sweep length minus the taper length at en...
unsigned short formatRevisionNumber
SEG Y Format Revision Number, 0x0100 for revision 1.0.
short hcorr
Correlated data traces code: 1 = No 2 = Yes.
int lino
Line number (only one line per reel)
int reno
Reel number.
short hsfe
Sweep frequency at end.
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> SEGY trace identifica...
short igi
Instrument early or initial gain.
int gdel
Datum elevation at receiver group.
short sut
Uphole time at source.
int transductionConstantM
Transduction Constant Mantissa.
short sfe
Sweep frequency at end.
short year
Year data recorded.
short nofils
Notch filter slope.
int offset
Distance from source point to receiver group (negative if opposite to direction in which the line was...
short lcf
Low cut frequency if used.
int gwdep
Water depth at receiver group.
short hcf
High cut frequncy if used.
int gx
X group coordinate.
short laga
Lag time A, time in ms between end of 240- byte trace identification header and time break,...
short gain
Gain type of field instruments code: 1 = Fixed 2 = Binary 3 = Floating point 4....
short duse
Data use: 1 = Production 2 = Test.
short tstat
Total static applied.
short tatyp
Taper type: 1=linear, 2=cos^2, 3=other.
short mute
Mute time–end.
int gelev
Receiver group elevation from sea level (above sea level is positive)
int sy
Y source coordinate.
short igc
Instrument gain constant.
short muts
Mute time–start.
short scalel
Scale factor for previous 7 entries with value plus or minus 10 to the power 0, 1,...
short grnofr
Geophone group number of trace one within original field record.
int sdepth
Source depth (positive)
short lagb
Lag time B, time in ms between the time break and the initiation time of the energy source.
int cdp
CDP ensemble number.
short transductionUnits
Transduction Units 0 = Unknown 1 = Pascal (Pa) 2 = Volts (v) 3 = Millivolts (mV) 4 = Amperes (A) 5 = ...
unsigned short ns
Number of samples in this trace.
short tvmu
Trace value measurement unit 0 = Unknown 1 = Pascal (Pa) 2 = Volts (v) 3 = Millivolts (mV) 4 = Ampere...
short transductionConstantP
Transduction Constant Power of ten.
int ep
Energy source point number.
int crosslineNumber
Cross-line number, for 3D poststack data.
short swevel
Subweathering velocity.
short gut
Uphole time at receiver group.
short afilf
Alias filter frequency if used.
short scalco
Scale factor for next 4 entries with value plus or minus 10 to the power 0, 1, 2, 3,...
short hour
Hour of day (24 hour clock)
short minute
Minute of hour.
int sdel
Datum elevation at source.
unsigned short dt
Sample interval; in micro-seconds.
short grnors
Geophone group number of roll switch position one.
short dtid
Device/Trace Identifier.
short hcs
High cut slope.
short nofilf
Notch filter frequency if used.
short wevel
Weathering velocity.
short sec
Second of minute.
int cdpY
Y coordinate of ensemble (CDP) position of this trace.
short otrav
Overtravel taper code: 1 = Down (or behind) 2 = Up (or ahead)
short gstat
Group static correction.
short tscale
Scalar to be applied to - sut, gut, sstat, gstat, tstat, laga, lagb, delrt, muts, mute - header info ...
short corr
Correlated: 1 = No 2 = Yes.
short sstat
Source static correction.
short sfs
Sweep frequency at start.
int swdep
Water depth at source.
short counit
Coordinate units code: For previous four entries 1 = Length (meters or feet) 2 = Seconds of arc...
short timbas
Time basis code: 1 = Local 2 = GMT 3 = Other 4 = UTC.
int inlineNumber
Inline-line number, for 3D poststack data.
int fldr
Field record number.
int tracr
Trace sequence number within reel.
int cdpX
X coordinate of ensemble (CDP) position of this trace.
short grnlof
Geophone group number of last trace within original field record.
short shotPointScale
Scalar to be applied to shotPointNumber to give the real value.
short nvs
Number of vertically summed traces (see SoVRSegyFileHeader::vscode)
int tracf
Trace number within field record.
short trid
Trace identification code: 1 = Seismic data 2 = Dead 3 = Dummy 4 = Time break 5 = Uphole 6...
short delrt
Delay recording time, time in ms between initiation time of energy source and time when recording of ...
short trwf
Trace weighting factor, defined as 1/2^N volts for the least sigificant bit.
int sx
X source coordinate.
short lcs
Low cut slope.
int shotPointNumber
Shotpoint number, for 2D poststack data.
short unass[12]
Unassigned.
short slen
Sweep length in ms.
int gy
Y group coordinate.
short day
Day of year.
short stas
Sweep trace length at start in ms.
short stae
Sweep trace length at end in ms.
short afils
Alias filter slope.
short nhs
Number of horizontally summed traces (see SoVRSegyFileHeader::SoVRSegyFileHeader)
short gaps
Gap size (total number of groups dropped)
short styp
Sweep type code: 1 = Linear 2 = Cos-squared 3 = Other.
int cdpt
Trace number within CDP ensemble.
int tracl
Trace sequence number within line.
int selev
Source elevation from sea level (above sea level is positive)