conv/many suite: convert (m)any seismic data format(s)
anyextract.cc File Reference

extract data files, using index file More...

#include <fstream>
#include <iostream>
#include <list>
#include <vector>
#include <string>
#include <sstream>
#include <aff/seriesoperators.h>
#include <tfxx/misc.h>
#include <tfxx/commandline.h>
#include <tfxx/stringfunc.h>
#include <tfxx/error.h>
#include <tfxx/seitosh.h>
#include <datrwxx/tracereader.h>
#include <libtime++.h>
#include <tfxx/regexx.h>
#include <datrwxx/formats.h>
#include <datrwxx/error.h>
#include <datrwxx/writeany.h>
#include "sub/structgapanalysis.h"
#include "sub/gapfunctions.h"
#include "sub/completenessbins.h"
#include "sub/structgapseries.h"
Include dependency graph for anyextract.cc:

Go to the source code of this file.

Classes

struct  Options
 
class  Series
 class to handle two different flavours of data More...
 
struct  IndexEntry
 struct to hold an index file entry. More...
 
struct  SelectionRegexx
 struct to hold regular expressions. More...
 
class  CompareCollection
 A comparison function class for the collection. More...
 
struct  DataBlock
 struct to hold index values defining a data block within a trace. More...
 

Macros

#define ANYEXTRACT_VERSION   "ANYEXTRACT V1.27 extract data files, using index file"
 

Typedefs

typedef std::vector< std::string > Tvecofstrings
 
typedef datrw::Tdseries Tseries
 
typedef datrw::Tfseries Tfseries
 
typedef datrw::Tiseries Tiseries
 
typedef std::vector< IndexEntryTvecofindexentries
 a vector of index entries More...
 
typedef std::list< int > Tintlist
 list of links to collection entries, building a chain for one channel. More...
 
typedef std::vector< TintlistTvecofintlist
 vector of lists list of collections. More...
 
typedef std::vector< DataBlockTvecofblocks
 vector of blocks. More...
 
typedef std::vector< TvecofblocksTvecoftraces
 vector of vector of blocks. More...
 

Functions

std::ostream & operator<< (std::ostream &os, const IndexEntry &entry)
 output operator to report an index entry More...
 
int main (int iargc, char *argv[])
 

Detailed Description

extract data files, using index file


Author
Thomas Forbriger
Date
06/09/2004

extract data files, using index file

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


This file is part of the conv/many suite.

The conv/many suite 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

REVISIONS and CHANGES

  • 06/09/2004 V1.0 Thomas Forbriger
  • 17/09/2004 V1.1 should work now, but still is terribly verbose
  • 24/09/2004 V1.2 first accepted version
  • 23/12/2004 V1.3 gap finder
  • 27/07/2005 V1.4
    - going to introduce some tolerance
    • and redundant sample checks
    • range check prior to copying sample is now offset-correct
    • distinguish brief gap reports from extended gap reports
    • introduced option -dump
  • 28/07/2005 V1.5 introduced option -sd
  • 27/04/2006 V1.6 introduce options -GSE and -int
  • 04/05/2006 V1.7 report channel on GAP condition
  • 23/11/2006 V1.8 starting to introduce the DropContainer concept
  • 08/03/2007 V1.9 provide specification of calib and calper
  • 09/03/2007 V1.10 explain calib and calper
  • 25/09/2007 V1.11 make help less verbose
  • 05/12/2007 V1.12 use new interface to regular expressions
  • 08/07/2008 V1.13 make use of sequentialtracereader
  • 13/04/2010 V1.14 report GAP times to microsecond level
  • 28/11/2011 V1.15 implemented new features:
    • skip writing for FREE blocks on request
    • provide any output format
    • provide internal float type copying
  • 29/11/2011 V1.16p started to implement gaps statistics
  • 20/12/2011 V1.16l gap report to stdout is implemented
  • 30/01/2012 V1.16m implemented completeness time series
  • 13/02/2012 V1.17 gap and completeness series is implemented and tested
  • 14/02/2012 V1.18 provide gap summary
  • 14/02/2012 V1.19 provide gnuplot gap plot
  • 02/03/2012 V1.20 include auxid when distinguishing streams
  • 26/03/2012 V1.21 ilist -> iinlist (used the same name twice)
  • 24/04/2012 V1.22 removed misleading help line
  • 25/04/2012 V1.23 correctly set latesttime
  • 08/01/2013 V1.24 bug fix: handle earliest and latest times properly in situations where a completeness analysis is done on data on staggered sampling rasters
  • 07/11/2014 V1.25 properly report meaning of gap messages
  • 12/11/2020 V1.26 add plausibility test for selected time window
  • 24/04/2023 V1.27 compute proper end time for contiguous data in cases, where the total number of samples exceeds the 4-byte int value range

TODO:

  • properly handle cases in which the output format can take only single traces (consider implementing sequentialtracewriter in libdatrwxx).
  • properly check the variable type for samples which can be handled properly by the output stream; currently the program relies on on-the-fly conversion (round-off is not checked)

Definition in file anyextract.cc.