SFF++ library: reading and writing SFF from C++
sffxx.h File Reference

SFF library (prototypes) More...

#include <string>
#include <cmath>
#include <list>
#include <iostream>
#include <sstream>
#include <libtime++.h>
#include <aff/iterator.h>
#include <gsexx.h>
Include dependency graph for sffxx.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  sff::Terror
 
struct  sff::STAT
 
struct  sff::FREE
 
struct  sff::SRCE
 
struct  sff::DAST
 
struct  sff::INFO
 
struct  sff::WID2
 Waveform Header. More...
 
class  sff::FileHeader
 SFF file header elements. More...
 
class  sff::WaveformNormalizer
 class to normalize waveforms More...
 
class  sff::TraceHeader
 SFF trace header elements. More...
 
class  sff::OutputWaveform< C >
 
class  sff::InputWaveform< C >
 
class  sff::SkipWaveform
 
class  sff::WID2compare
 compares selected fields from two WID2 objects More...
 

Namespaces

 sff
 all SFF modules
 

Macros

#define TF_SFFXX_H_VERSION   "TF_SFFXX_H V1.10"
 
#define SFF_assert(C, M)
 check condition More...
 
#define SFF_abort(M)
 abort by throwing an exception More...
 

Enumerations

enum  sff::Ecoosys { sff::CS_cartesian, sff::CS_spherical }
 valid coordinate systems More...
 
enum  sff::Enormmode { sff::NM_one, sff::NM_maxdyn, sff::NM_ifneeded }
 
enum  sff::Ewid2field {
  sff::Fdate =1<<0, sff::Fstation =1<<1, sff::Fchannel =1<<2, sff::Fauxid =1<<3,
  sff::Fnsamples =1<<4, sff::Fdt =1<<5, sff::Fcalib =1<<6, sff::Fcalper =1<<7,
  sff::Finstype =1<<8, sff::Fhang =1<<9, sff::Fvang =1<<10
}
 bit values to select WID2 fields to be compared More...
 

Functions

char sff::coosysID (const Ecoosys &csid)
 
Ecoosys sff::coosysID (const char &csid)
 
std::istream & sff::operator>> (std::istream &is, FileHeader &fh)
 
template<class C >
std::istream & sff::operator>> (std::istream &is, InputWaveform< C > &wf)
 
std::istream & sff::operator>> (std::istream &is, SkipWaveform &swf)
 
std::ostream & sff::operator<< (std::ostream &os, const FileHeader &fh)
 
std::ostream & sff::operator<< (std::ostream &os, const TraceHeader &th)
 
template<class C >
std::ostream & sff::operator<< (std::ostream &os, const OutputWaveform< C > &wf)
 
libtime::TAbsoluteTime sff::wid2lastsample (const WID2 &wid2)
 return time of last sample in waveform More...
 
libtime::TAbsoluteTime sff::wid2nextdate (const WID2 &wid2)
 return time of next first sample for contiguous data More...
 
long int sff::wid2isample (const WID2 &wid2, const libtime::TAbsoluteTime &idate)
 return index for sample at given date More...
 
libtime::TAbsoluteTime sff::wid2isample (const WID2 &wid2, const long int &i)
 return time for sample at given index More...
 
libtime::TRelativeTime sff::wid2isamplerest (const WID2 &wid2, const libtime::TAbsoluteTime &idate)
 return time interval between idate and sample sample next to idate More...
 
std::string sff::srce_reference_ID ()
 return ID string for synthtic time reference More...
 
sff::SRCE sff::srce_reference ()
 return synthetic time reference from nothing More...
 
double sff::offset (const SRCE &srce, const INFO &info, const double &radius)
 return offset in meters More...
 
double sff::sourcedistance (const SRCE &srce, const INFO &info)
 return spatial distance between source and receiver in meters More...
 
double sff::offsetdeg (const SRCE &srce, const INFO &info, const double &radius)
 return offset in degrees More...
 
std::string sff::WIDXline (const sff::WID2 &wid2, const bool &debug=false)
 write WID2 information in extended format More...
 
sff::WID2 sff::WIDXline (const std::string &line)
 read WID2 information with extended format More...
 
void sff::verbose (std::ostream &os, const WID2 &wid2)
 
void sff::verbose (std::ostream &os, const SRCE &srce)
 
void sff::verbose (std::ostream &os, const DAST &dast)
 
void sff::verbose (std::ostream &os, const INFO &info)
 
void sff::verbose (std::ostream &os, const FREE &free)
 
void sff::verbose (std::ostream &os, const STAT &stat)
 
void sff::verbose (std::ostream &os, const FileHeader &fh)
 
void sff::verbose (std::ostream &os, const TraceHeader &th)
 

Variables

const char *const sff::WIDXID = "WIDX"
 ID for extended WID2 format. More...
 

Detailed Description

SFF library (prototypes)


Author
Thomas Forbriger
Date
21/12/2003

SFF library (prototypes)


libsffxx is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software

Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Copyright (c) 2003 by Thomas Forbriger (BFO Schiltach)

REVISIONS and CHANGES

  • 21/12/2003 V1.0 Thomas Forbriger
  • 23/12/2003 V1.1
    • first version writing SFF successfully
    • starting with reading code
  • 11/01/2004 V1.2
    - FileHeader modification functions
    • TraceHeader modification functions
  • 23/12/2004 V1.3 added full block append to FREE
  • 27/03/2006 V1.4 introduced sff::STAT::decode_libversion
  • 27/06/2006 V1.5 added INFO comparison
  • 02/03/2007 V1.6 added offset calculation
  • 26/06/2007 V1.7 added verbose output
  • 13/04/2010 V1.8
    - start implementing WIDX
    • provide error handling macros
  • 03/05/2010 V1.9 provide debug output for WIDX compilation
  • 29/07/2013 V1.10 added function sourcedistance

Definition in file sffxx.h.