Commit 111837bb authored by thomas.forbriger's avatar thomas.forbriger Committed by thomas.forbriger
Browse files

prepared for integration of new SU module

This is a legacy commit from before 2015-03-01.
It may be incomplete as well as inconsistent.
See COPYING.legacy and README.history for details.
adjusted documentation of modules (doxygen groups)


SVN Path:     http://gpitrsvn.gpi.uni-karlsruhe.de/repos/TFSoftware/branches/libdatrwxx.su
SVN Revision: 3433
SVN UUID:     67feda4a-a26e-11df-9d6e-31afc202ad0c
parent ac0047d0
......@@ -51,10 +51,10 @@ CHECKVARS=$(foreach var,$(1),$(call CHECKVAR,$(var)))
$(call CHECKVARS,LOCINCLUDEDIR LOCLIBDIR LOCBINDIR)
$(call CHECKVARS,TF_BROWSER TF_WWWBASEDIR)
LIBHEADERS=$(wildcard *.h sff/*.h tsoft/*.h tfascii/*.h)
LIBHEADERS=$(wildcard *.h sff/*.h tsoft/*.h tfascii/*.h su/*.h)
LIBHEADERS+=$(wildcard bonjer/*.h pdas/*.h mseed/*.h hpmo/*.h sac/*.h gse/*.h)
LIBSRC=$(wildcard *.cc sff/*.cc tsoft/*.cc tfascii/*.cc)
LIBSRC=$(wildcard *.cc sff/*.cc tsoft/*.cc tfascii/*.cc su/*.cc)
LIBSRC+=$(wildcard bonjer/*.cc pdas/*.cc mseed/*.cc hpmo/*.cc sac/*.cc gse/*.cc)
TESTHEADERS=$(wildcard tests/*.h)
......@@ -180,7 +180,7 @@ DOXYWWWPATH=$(TF_WWWBASEDIR)/libdatreadxx
doxyclean: ;/bin/rm -rfv $(DOXYWWWPATH)
DOXYSRC=$(LIBSRC) $(HEADERS) README
DOXYSRC=$(LIBSRC) $(LIBHEADERS) README
PWD=$(shell env pwd)
# create doxygen intermediate configuration
......
......@@ -49,7 +49,7 @@ namespace datread {
/*! \brief all functions, classes, etc. to read K. Bonjers data format
*
* \defgroup bonjer Read file format defined by K. Bonjer
* \defgroup bonjer Reading module for: file format defined by K. Bonjer
*/
/*! \brief all functions, classes, etc. to read K. Bonjers data format
......
......@@ -61,7 +61,7 @@ SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
SORT_BY_SCOPE_NAME = YES
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
......
......@@ -50,7 +50,7 @@
namespace datread {
/*! \brief all the stuff to read raw GSE data.
* \defgroup gse Read raw GSE data
* \defgroup gse Reading module for: raw GSE data
*/
/*! \brief all the stuff to read raw GSE data
......
......@@ -53,7 +53,7 @@ namespace datread {
/*! \brief All classes and functions to extract data from HPMO files
*
* \defgroup hpmo HPMO data reading interface
* \defgroup hpmo Reading module for: HPMO data
*/
/*! \brief All classes and functions to extract data from HPMO files
......
......@@ -52,7 +52,7 @@ namespace datread {
/*! \brief all the stuff to read mini-SEED data
*
* \defgroup mseed Read mini-SEED data
* \defgroup mseed Reading module for: mini-SEED data
*/
/*! \brief all the stuff to read mini-SEED data
......
......@@ -53,7 +53,7 @@ namespace datread {
/*! \brief all functions, classes etc. to read PDAS data.
*
* \defroup pdas Read PDAS data
* \defgroup pdas Reading module for: PDAS data
*/
/*! \brief all functions, classes etc. to read PDAS data.
......
......@@ -51,7 +51,7 @@ namespace datread {
/*! \brief all the stuff to read SAC binary data
*
* \defgroup sac Read SAC binary data
* \defgroup sac Reading module for: SAC binary data
*/
/*! \brief all the stuff to read SAC binary data
......
......@@ -48,7 +48,7 @@ namespace datread {
/*! \brief SFF reading interface
*
* \defgroup sff Read SFF data
* \defgroup sff Reading module for: SFF data
*/
/*! \brief class to read SFF data
......
/*! \file su.h
* \brief read Seismic Unix data (prototypes)
*
* ----------------------------------------------------------------------------
*
* $Id$
* \author Thomas Forbriger
* \date 19/11/2010
*
* read Seismic Unix data (prototypes)
*
* Copyright (c) 2010 by Thomas Forbriger (BFO Schiltach)
*
* REVISIONS and CHANGES
* - 19/11/2010 V1.0 Thomas Forbriger
*
* ============================================================================
*/
// include guard
#ifndef DATREAD_SU_H_VERSION
#define DATREAD_SU_H_VERSION \
"DATREAD_SU_H V1.0 "
#define DATREAD_SU_H_CVSID \
"$Id$"
namespace datread {
} // namespace datread
#endif // DATREAD_SU_H_VERSION (includeguard)
/* ----- END OF su.h ----- */
This is a legacy version of the repository. It may be incomplete as well as
inconsistent. See README.history for details. For the old stock of the
repository copyright and licence conditions apply as specified for versions
commited after 2015-03-01. Use recent versions as a base for new development.
The legacy version is only stored to keep a record of history.
/*! \file su.cc
* \brief read Seismic Unix data (implementation)
*
* ----------------------------------------------------------------------------
*
* $Id$
* \author Thomas Forbriger
* \date 19/11/2010
*
* read Seismic Unix data (implementation)
*
* Copyright (c) 2010 by Thomas Forbriger (BFO Schiltach)
*
* REVISIONS and CHANGES
* - 19/11/2010 V1.0 Thomas Forbriger
*
* ============================================================================
*/
#define DATREAD_SU_CC_VERSION \
"DATREAD_SU_CC V1.0 "
#define DATREAD_SU_CC_CVSID \
"$Id$"
#include <datreadxx/su.h>
namespace datread {
namespace su {
} // namespace su
} // namespace datread
/* ----- END OF su.cc ----- */
/*! \file suheader.cc
* \brief handle a Seismic Unix trace header (implementation)
*
* ----------------------------------------------------------------------------
*
* $Id$
* \author Thomas Forbriger
* \date 19/11/2010
*
* handle a Seismic Unix trace header (implementation)
*
* Copyright (c) 2010 by Thomas Forbriger (BFO Schiltach)
*
* REVISIONS and CHANGES
* - 19/11/2010 V1.0 Thomas Forbriger
*
* ============================================================================
*/
#define DATREAD_SUHEADER_CC_VERSION \
"DATREAD_SUHEADER_CC V1.0 "
#define DATREAD_SUHEADER_CC_CVSID \
"$Id$"
#include <datreadxx/suheader.h>
namespace datread {
namespace su {
} // namespace su
} // namespace datread
/* ----- END OF suheader.cc ----- */
/*! \file suheader.h
* \brief handle a Seismic Unix trace header (prototypes)
*
* ----------------------------------------------------------------------------
*
* $Id$
* \author Thomas Forbriger
* \date 19/11/2010
*
* handle a Seismic Unix trace header (prototypes)
*
* Copyright (c) 2010 by Thomas Forbriger (BFO Schiltach)
*
* REVISIONS and CHANGES
* - 19/11/2010 V1.0 Thomas Forbriger
*
* ============================================================================
*/
// include guard
#ifndef DATREAD_SUHEADER_H_VERSION
#define DATREAD_SUHEADER_H_VERSION \
"DATREAD_SUHEADER_H V1.0 "
#define DATREAD_SUHEADER_H_CVSID \
"$Id$"
namespace datread {
/*! \brief All classes and functions to extract data from Seismic Unix files
*
* Seismic Un*x is available from
* http://www.cwp.mines.edu/cwpcodes/
*
* \defgroup su Reading module for: Seismic Uni*x data
*/
/*! \brief All classes and functions to extract data from Seismic Unix files
*
* \ingroup su
*/
namespace su {
} // namespace su
} // namespace datread
#endif // DATREAD_SUHEADER_H_VERSION (includeguard)
/* ----- END OF suheader.h ----- */
/*! \file suheaderstruct.h
* \brief SU and SEG-Y trace header struct (prototypes)
*
* ----------------------------------------------------------------------------
*
* $Id$
* \author Thomas Forbriger
* \date 19/11/2010
*
* SU and SEG-Y trace header struct (prototypes)
*
* Copyright (c) 2010 by Thomas Forbriger (BFO Schiltach)
*
* REVISIONS and CHANGES
* - 19/11/2010 V1.0 Thomas Forbriger
*
* ============================================================================
*/
// include guard
#ifndef DATREAD_SUHEADERSTRUCT_H_VERSION
#define DATREAD_SUHEADERSTRUCT_H_VERSION \
"DATREAD_SUHEADERSTRUCT_H V1.0 "
#define DATREAD_SUHEADERSTRUCT_H_CVSID \
"$Id$"
namespace datread {
namespace su {
//SEG-Y and SU trace header as taken from segy.h coming with SeismicUnix
/*! \brief SEG-Y and SU trace header as taken from segy.h coming with
* SeismicUnix
*
* segy - trace identification header
*
* Only brief descriptions are available in the list.
* Some fields are described in detail in the detailed section of the
* field.
*/
struct SEGY {
int tracl; /**< Trace sequence number within line.
Numbers continue to increase if the
same line continues across multiple
SEG Y files.
*/
int tracr; /**< Trace sequence number within SEG Y file.
Each file starts with trace sequence one.
*/
int fldr; /**< Original field record number */
int tracf; /**< Trace number within original field record. */
int ep; /**< Energy source point number.
Used when more than one record occurs
at the same effective surface location.
*/
int cdp; /**< Ensemble number (i.e. CDP, CMP, CRP,...) */
int cdpt; /**< Trace number within the ensemble.
each ensemble starts with trace number one.
*/
short trid; /**< Trace identification code (see details).
Trace identification code:
- -1 = Other
- 0 = Unknown
- 1 = Seismic data
- 2 = Dead
- 3 = Dummy
- 4 = Time break
- 5 = Uphole
- 6 = Sweep
- 7 = Timing
- 8 = Water break
- 9 = Near-field gun signature
- 10 = Far-field gun signature
- 11 = Seismic pressure sensor
- 12 = Multicomponent seismic sensor,
Vertical component
- 13 = Multicomponent seismic sensor,
Cross-line component
- 14 = Multicomponent seismic sensor,
in-line component
- 15 = Rotated multicomponent seismic sensor,
Vertical component
- 16 = Rotated multicomponent seismic sensor,
Transverse component
- 17 = Rotated multicomponent seismic sensor,
Radial component
- 18 = Vibrator reaction mass
- 19 = Vibrator baseplate
- 20 = Vibrator estimated ground force
- 21 = Vibrator reference
- 22 = Time-velocity pairs
- 23 ... N = optional use, (maximum N = 32,767)
Following are CWP id flags:
- 109 = autocorrelation
- 110 = Fourier transformed - no packing
xr[0],xi[0], ..., xr[N-1],xi[N-1]
- 111 = Fourier transformed - unpacked Nyquist
xr[0],xi[0],...,xr[N/2],xi[N/2]
- 112 = Fourier transformed - packed Nyquist
- even N:
xr[0],xr[N/2],xr[1],xi[1], ...,
xr[N/2 -1],xi[N/2 -1]
(note the exceptional second entry)
- odd N:
xr[0],xr[(N-1)/2],xr[1],xi[1], ...,
xr[(N-1)/2 -1],xi[(N-1)/2 -1],xi[(N-1)/2]
(note the exceptional second & last entries)
- 113 = Complex signal in the time domain
xr[0],xi[0], ..., xr[N-1],xi[N-1]
- 114 = Fourier transformed - amplitude/phase
a[0],p[0], ..., a[N-1],p[N-1]
- 115 = Complex time signal - amplitude/phase
a[0],p[0], ..., a[N-1],p[N-1]
- 116 = Real part of complex trace from 0 to Nyquist
- 117 = Imag part of complex trace from 0 to Nyquist
- 118 = Amplitude of complex trace from 0 to Nyquist
- 119 = Phase of complex trace from 0 to Nyquist
- 121 = Wavenumber time domain (k-t)
- 122 = Wavenumber frequency (k-omega)
- 123 = Envelope of the complex time trace
- 124 = Phase of the complex time trace
- 125 = Frequency of the complex time trace
- 130 = Depth-Range (z-x) traces
- 201 = Seismic data packed to bytes (by supack1)
- 202 = Seismic data packed to 2 bytes (by supack2)
*/
short nvs; /**< Number of vertically summed traces yielding
this trace: 1 is one trace, 2 is two summed traces, etc.
*/
short nhs; /**< Number of horizontally summed traces yielding
this trace: 1 is one trace 2 is two summed traces, etc.
*/
short duse; /**< Data use: 1 = Production 2 = Test */
int offset; /**< Distance from the center of the source point
to the center of the receiver group
(negative if opposite to direction in which
the line was shot).
*/
int gelev; /**< Receiver group elevation from sea level
(all elevations above the Vertical datum are
positive and below are negative).
*/
int selev; /**< Surface elevation at source. */
int sdepth; /**< Source depth below surface (a positive number). */
int gdel; /**< Datum elevation at receiver group. */
int sdel; /**< Datum elevation at source. */
int swdep; /**< Water depth at source. */
int gwdep; /**< Water depth at receiver group. */
short scalel; /**< Scalar to be applied to the previous 7 entries
to give the real value (see details).
Scalar = 1, +10, +100, +1000, +10000.
If positive, scalar is used as a multiplier,
if negative, scalar is used as a divisor.
*/
short scalco; /**< Scalar to be applied to the next 4 entries
to give the real value (see details).
Scalar = 1, +10, +100, +1000, +10000.
If positive, scalar is used as a multiplier,
if negative, scalar is used as a divisor.
*/
int sx; /**< Source coordinate - X */
int sy; /**< Source coordinate - Y */
int gx; /**< Group coordinate - X */
int gy; /**< Group coordinate - Y */
short counit; /**< Coordinate units (see details).
Coordinate units: (for previous 4 entries and
for the 7 entries before scalel).
- 1 = Length (meters or feet)
- 2 = Seconds of arc
- 3 = Decimal degrees
- 4 = Degrees, minutes, seconds (DMS)
In case 2, the X values are longitude and the Y
values are latitude, a positive value designates
the number of seconds east of Greenwich
or north of the equator.
In case 4,
- to encode +-DDDMMSS:
counit = +-DDD*10^4 + MM*10^2 + SS,
with scalco = 1.
- To encode +-DDDMMSS.ss:
counit = +-DDD*10^6 + MM*10^4 + SS*10^2
with scalco = -100.
*/
short wevel; /**< Weathering velocity. */
short swevel; /**< Subweathering velocity. */
short sut; /**< Uphole time at source in milliseconds. */
short gut; /**< Uphole time at receiver group in milliseconds. */
short sstat; /**< Source static correction in milliseconds. */
short gstat; /**< Group static correction in milliseconds.*/
short tstat; /**< Total static applied in milliseconds
(zero if no static has been applied).
*/
short laga; /**< Lag time A (see details).
Time in ms between end of 240-byte trace
identification header and time
break, positive if time break occurs after
end of header, time break is defined as
the initiation pulse which maybe recorded
on an auxiliary trace or as otherwise
specified by the recording system
*/
short lagb; /**< Lag time B (see details).
Time in ms between the time break
and the initiation time of the energy source,
may be positive or negative.
*/
short delrt; /**< Delay recording time (see details).
Time in ms between
initiation time of energy source and time
when recording of data samples begins
(for deep water work if recording does not
start at zero time)
*/
short muts; /**< mute time--start */
short mute; /**< mute time--end */
unsigned short ns; /**< number of samples in this trace */
unsigned short dt; /**< sample interval; in micro-seconds */
short gain; /**< Gain type of field instruments code (see dateils).
- 1 = fixed
- 2 = binary
- 3 = floating point
- 4 ---- N = optional use
*/
short igc; /**< instrument gain constant */
short igi; /**< instrument early or initial gain */
short corr; /**< correlated: 1 = no, 2 = yes */
short sfs; /**< sweep frequency at start */
short sfe; /**< sweep frequency at end */
short slen; /**< sweep length in ms */
short styp; /**< sweep type code:
1 = linear,
2 = cos-squared,
3 = other */
short stas; /**< sweep trace length at start in ms */
short stae; /**< sweep trace length at end in ms */
short tatyp; /**< taper type: 1=linear, 2=cos^2, 3=other */
short afilf; /**< alias filter frequency if used */
short afils; /**< alias filter slope */
short nofilf; /**< notch filter frequency if used */
short nofils; /**< notch filter slope */
short lcf; /**< low cut frequency if used */
short hcf; /**< high cut frequncy if used */
short lcs; /**< low cut slope */
short hcs; /**< high cut slope */
short year; /**< year data recorded */
short day; /**< day of year */
short hour; /**< hour of day (24 hour clock) */
short minute; /**< minute of hour */
short sec; /**< second of minute */
short timbas; /**< time basis code:
1 = local,
2 = GMT,
3 = other */
short trwf; /**< trace weighting factor, defined as 1/2^N
volts for the least sigificant bit */
short grnors; /**< geophone group number of roll switch
position one */
short grnofr; /**< geophone group number of trace one within
original field record */
short grnlof; /**< geophone group number of last trace within
original field record */
short gaps; /**< gap size (total number of groups dropped) */
short otrav; /**< overtravel taper code:
1 = down (or behind),
2 = up (or ahead) */
/* cwp local assignments */
float d1; /**< sample spacing for non-seismic data */
float f1; /**< first sample location for non-seismic data */