DATRW++ library: seismic data I/O with multiple formats
I/O module for Seismic Unix data

All classes and functions for Seismic Unix file data I/O. More...

Namespaces

 datrw::su
 All classes and functions to extract data from Seismic Unix files.
 
 datrw::su::helper
 
 datrw::su::options
 options to be passed between classes definitions
 
 datrw::su::subformat
 subformat definitions
 
 datrw::su::subformat::def
 default values for subformat modifiers
 
 datrw::su::subformat::key
 key for subformat modifiers
 

Classes

class  datrw::isustream
 class to read SeismicUnix data More...
 
class  datrw::osustream
 class to write SU data More...
 
struct  datrw::su::Coordinates
 full set of coordinates.This struct holds a full set of coordinates for a SEG-Y trace header. It provides functions to read the values from a given trace header and to set values in a trace header. Further it provides a function to chose equal scaling values for horizontal coordinates on one hand and vertical coordinates on the other hand. This class combines six members of type datrw::su::ScalCoo in order to scale coordinates coherently. It is used in the set functions of datrw::su::SUheader not as a member data but as a conversion and scaling tool. More...
 
class  datrw::su::helper::MyOutputFormat
 output format modifier for debug output More...
 
struct  datrw::su::options::SpatialSampling
 options to control the way spatial sampling header variables are handeled. More...
 
struct  datrw::su::options::SUHeaderControl
 options to control the way header variables are handeled. More...
 
struct  datrw::su::options::TemporalSampling
 options to control the way temporal sampling header variables are handeled. More...
 
struct  datrw::su::ScalCoo
 scaled coordinate.This struct holds one coordinate together with a scale value. It provides functions to support appropriate scaling and to explore dynamic range. More...
 
class  datrw::su::SUheader
 C++ class to handle Seismic Un*x header struct. More...
 
class  datrw::su::SUReadException
 
struct  datrw::su::TraceHeaderStruct
 SEG-Y and SU trace header as taken from segy.h coming with SeismicUnixsegy - trace identification header. More...
 

Functions

void datrw::su::fixscalevalue (short &s, const bool &strict)
 fix a SeismicUn*x scale value More...
 
options::SUHeaderControl datrw::su::inputmodifiers (const std::string &modifier, const bool &debug)
 evaluate input stream format modifiers More...
 
options::SUHeaderControl datrw::su::outputmodifiers (const std::string &modifier, const bool &debug)
 evaluate output stream format modifiers More...
 
short datrw::su::powertoscale (const int &p)
 convert a decimal power to a SeismicUn*x scale value More...
 
double datrw::su::scalefactor (short s, const bool &strict)
 convert scale value to a factor to be applied More...
 
int datrw::su::scaletopower (short s, const bool &strict)
 convert a SeismicUn*x scale value to a decimal power More...
 
const bool datrw::su::isbinary =true
 Format properties. More...
 
const char *const datrw::su::streamID ="su"
 Format properties. More...
 

Detailed Description

All classes and functions for Seismic Unix file data I/O.

Seismic Un*x is available from http://www.cwp.mines.edu/cwpcodes/

Special format definition within TOAST

Small sampling interval (smaller than 1 microsecond) as used in ultrasonic recordings are to be stored in SeismicUn*x data format within TOAST as follows:

  1. Time values for ultrasonic data will be given in nanoseconds for dt and microseconds for delrt.
  2. This applies to fields
    1. dt (byte# 117-118): sample interval
    2. delrt (byte# 109-110): delay recording time
  1. Time units other than microseconds or nanoseconds for dt and milliseconds or microseconds for delrt are not allowed.
  2. Field d1 (byte# 181-184) in TOAST data will be
    • either zero, indicating standard seismic data with a micro seconds time scale
    • or provide the sampling interval in seconds, thus indicating
      • either standard seismic data, if d1 in seconds matches dt if the latter is taken in microseconds
      • or ultrasonic data, if d1 in seconds matches dt if the latter is taken in nanoseconds and delrt is taken in microseconds

This way it will be possible to use SU tools to sort traces or similar or even waveform filters. The user just has to take care to pass filter frequencies in kHz rather than Hz in the case of ultrasonic data.