/********************************************************************* * sacStack.c: * stack sac traces aligned with a time mark * * Author: Lupei Zhu * * Revision History * March 1999 Initial coding * June 2000 include other time marks option * Oct 26, 2000 add normalization option *********************************************************************/ #include #include #include #include #include #include "sac.h" #include "Complex.h" int main(int argc, char **argv) { int i,j,nn,shift,error,start,end,ntrace,nrdc,norm,setbaz; char outf[64], rdc; float ar,dt,*src,*trace,reduce_vel,align,maxA,baz,p; SACHEAD hd,*hd0; error = 0; rdc = 't'; nrdc = -5; /* default: align with begining */ norm = 0; /* no nomalization */ outf[0] = '\0'; setbaz = 0; /* input parameters */ for (i=1; !error && i < argc; i++) { if (argv[i][0] == '-') { switch(argv[i][1]) { case 'O': strcpy(outf,&argv[i][2]); break; case 'E': rdc=argv[i][2]; if (rdc == 't') sscanf(&argv[i][3],"%d",&nrdc); else sscanf(&argv[i][2],"%f",&reduce_vel); break; case 'N': norm = 1; break; case 'S': setbaz = 1; sscanf(&argv[i][2],"%f/%f",&baz,&p); break; default: error = 1; break; } } } if (argc < 3 || error || outf[0] == '\0') { fprintf(stderr,"usage: %s [-E(t(0-9,-5(b),-3(o),-2(a))|vel)] [-N] [-Sbaz/p] -Ooutput_file sac_traces\n\ -E: align with a time mark or with an apparent velocity (b)\n\ -N: normalize (off)\n\ -S: set baz and user0 (p) in head\n",argv[0]); return -1; } ntrace = 0; for(i=1;ievla = -12345.; hd0->evlo = -12345.; hd0->dist = 0.; hd0->baz = 0.; hd0->user0 = 0.; for(j=0;jnn) end = nn; maxA = 1.; if (norm) { maxA = 0.; for(j=start;jmaxA) maxA = trace[j-shift]; } } hd0->dist += hd.dist; hd0->baz += hd.baz; hd0->user0 += hd.user0; for (j=start; jdist *= ar; hd0->baz *= ar; hd0->user0 *= ar; if (setbaz) { hd0->baz = baz; hd0->user0 = p; } for(j=0;j