SYNOPSIS

PERL PROGRAM NAME:

AUTHOR: Juan Lorenzo (Perl module only)

DATE:

DESCRIPTION:

Version:

USE

NOTES

Examples

SYNOPSIS

SEISMIC UNIX NOTES SEGDREAD - read an SEG-D tape

 segdread > stdout tape=						



 Required parameters:						 

	tape=	   input tape device				

 			tape=- to read from stdin			



 Optional parameters:						 

	use_stdio=0	for record devices (9-track reel tape drive)   

			=1 for pipe, disk and fixed-block 8mm drives   

	verbose=0	silent operation				

			= 1 ; echo every 'vblock' traces		

			= 2 ; echo information about blocks	    

	vblock=50	echo every 'vblock' traces under verbose option

	ptmin=1	 first shot to read				

	ptmax=INT_MAX   last shot to read				

	gain=0	  no application of gain			 

	aux=0	   no recovery of auxiliary traces		

	errmax=0	allowable number of consecutive tape IO errors 

	ns=0		override of computed ns to work around SEG-D   

			flaws.  Ignored when use_stdio=0.		

	pivot_year=30   Use current century for 2 digit yrs less than  

			pivot_year, previous century otherwise.	



	 type:   sudoc segdread   for further information		



 Credits:

  for version 1:

    IPRA, Pau, France: Dominique Rousset, rousset@iprrs1.univ-pau.fr

  for version 2.2:

    EOST, Strasbourg, France: Celine Girard

  for versions 2.3:

    EOST, Strasbourg, France: Marc Schaming, mschaming@eost.u-strasbg.fr

  for version 2.4:

    SEP, Stanford University: Stew Levin, stew@sep.stanford.edu

    a) Changed definitions of BCD_FF/BCD_FFFF

    b) Corrected decoding of general_header_1 in info_gh1.

    c) Changed buff=0 to use_stdio=1 to avoid confusion (stdio

	IS buffered I/O). Kept old buff= internally for backwards

	compatibility.

    d) Changed F8015 decoding of negative mantissas to avoid

	1 part in 2^14th decoding error on 2's complement platforms.

    e) Adapted F8015 to F0015 decoding routine. Unused, but now available.

    f) Use AT&T sfio package for tape read.

    g) Handle endian and wordsize dependencies portably (I think).

    g) Allow tape=- command line argument to accept input from stdin.

    h) Compute trace length explicitly from headers so that disk data

	input can work.

    i) Correct tape trace length calculation to account for demux

	trace header extensions.

    j) Fix a couple of typos in comments and selfdoc

    k) Added F8022 for 1 byte quaternary exponent demux.

    l) Added F8024 for 2 byte quaternary exponent demux.

    m) Added F8042 for 1 byte hexadecimal exponent demux.

    n) Added F8044 for 2 byte hexadecimal exponent demux.

    o) Added F8048 for 4 byte hexadecimal exponent demux.

    p) Added F8036 for 2 byte 2's complement integer demux.

    q) Added F8038 for 4 byte 2's complement integer demux.

    r) Added F8058 for 4 byte IEEE float demux.

    s) Added ns= parameter to work around bad SEG-D trace

	length specifications in headers.

  for version 2.5:

    SEP, Stanford University: Stew Levin, stew@sep.stanford.edu

    a) Added pivot_year to disambiguate decoding of 2-digit yrs

    b) Modified decode of 2-byte BCD to avoid endian problems

    c) Modified debug printout to fix endian BCD display problems

    d) Don't let dem_trace_header override ns specified on command line

    e) Removed extra factor of two in decoding of general_header_1.r

    f) Removed conditional disabling of sfio

  for version 2.6:

    SEP, Stanford University: Stew Levin, stew@sep.stanford.edu

    a) tightened test for Sercel 358

    b) modified 8015 conversion to handle Sercel 358/368 misuse of

	two's complement instead of one's complement.

--------------------------------------------------------------------

 SEGDREAD: Version 2.1, 10/10/94

	   Version 2.2, 17/08/95

	   Version 2.3, 04/1997 Thu Apr 10 11:55:45 DFT 1997

	   Version 2.4, 10/03/98 Tue Mar 10 1998

	   Version 2.5, Feb 4, 2001

	   Version 2.6, May 26, 2009

--------------------------------------------------------------------

User's notes (Juan Lorenzo) untested

Example:
$segdread->clear();
$segdread->tape($segdread_inbound[1]);
$segdread->verbose(1);
$segdread->ptmax(1);
$segdread->aux(0);
$segdread->use_stdio(1);
$segdread[1] = $segdread->Step();

CHANGES and their DATES

Import packages

instantiation of packages

Encapsulated hash of private variables

sub Step

collects switches and assembles bash instructions by adding the program name

sub note

collects switches and assembles bash instructions by adding the program name

sub clear

sub aux

sub buff

sub errmax

sub gain

sub ns

sub pivot_year

sub ptmax

sub ptmin

sub tape

sub use_stdio

sub vblock

sub verbose

sub get_max_index

max index = number of input variables -1