NAME

Perlsac::rwsac - a module to read and write SAC file.

DESCRIPTION

This is the module for reading and writing the sac file, defined at 'http://ds.iris.edu/files/sac-manual/manual/file_format.html'

AUTHOR

Hobin Lim

LICENSE

MIT

INSTALLATION

Using cpan:

cpan install Perlsac::rwsac

Manual install:

perl Makefile.PL
make
make install

TUTORIALS

1. Printing out time and data.

#!/usr/bin/env perl

use strict ;
use warnings ;
use Perlsac::rwsac ;

my %h = Perlsac::rwsac::rsac("example.sac") ;

for (my $n=0; $n<$h{npts}; $n++){
    print "$h{t}[$n] $h{d}[$n]\n" ;
}

2. Dividing data by 'depmax' in headers and writing a new sac file.

#!/usr/bin/env perl

use strict ;
use warnings ;
use Perlsac::rwsac ;

my %h = Perlsac::rwsac::rsac("example.sac") ;

for (my $n=0; $n<$h{npts}; $n++){
    $h{d}[$n] /= $h{depmax} ;
}

&Perlsac::rwsac::wsac("example.sac.div",%h) ;

3. Making a synthetic triangle-shaped waveform.

    #!/usr/bin/env perl
    
    use strict ;
    use warnings ;
    use Perlsac::rwsac ;

		my $b = 0.0 ;
		my $npts = 20 ;
		my $delta = 0.1 ;

		my %h = Perlsac::rwsac::init($b, $npts, $delta) ; #b, npts, delta
		#$h{d} are zero-padded.

		my @ys = (
			0,0,0,0,0,
			1,2,3,4,5,
			4,3,2,1,0,
			0,0,0,0,0) ;

		$h{d} = [@ys] ;
	 
		&Perlsac::rwsac::wsac('triangle.sac',%h) ;