[SAC-HELP] how to find the value of tn marker ?

George Helffrich george at gly.bris.ac.uk
Mon Jan 12 08:15:57 PST 2009


Dear Pablo -

      See the list (below) of built-in numeric functions in MacSAC.   
SAC2000 has all except GETVAL, I believe.  You can do what you want by  
using something like this example in any version of SAC:

---
funcgen seismogram
cutim ((GETTIME MAX) - (&1,DELTA / 2)) ((GETTIME MAX) + (&1,DELTA / 2))
message "Maximum value is &1,depmax& at (GETTIME MAX)"
---

Change (GETTIME MAX) to something else for another value in memory,  
e.g. &1,t0&
It only works on one trace in memory, however, and destroys the memory  
copy it.

---
fg seismogram
message "Only in MacSAC, max value is (GETVAL (GETTIME MAX)) at  
(GETTIME MAX)"
---

It would be nice if SAC2000 implemented GETVAL; the query arises  
regularly enough
to put it on the to do list.

  Numeric functions
  Name    Num. args. Example                   Notes
   
------------------------------------------------------------------------ 
------
  PI         0       (PI)                      Value of pi
  ADD       >0       (ADD 1 2)
  SUBTRACT  >0       (SUBTRACT 2 1)
  MULTIPLY  >0       (MULTIPLY 1 2 3 4)
  DIVIDE    >0       (DIVIDE 12 3)
  MINIMUM   >0       (MINIMUM 0.78 -3.5 15.2)
  MAXIMUM   >0       (MAXIMUM 0.78 -3.5 15.2)
  SQRT       1       (SQRT 2)                  Square root
  EXP        1       (EXP 2)                   Powers of e
  ALOG       1       (ALOG 2.5)                Natural logarithm
  POWER      1       (POWER 3)                 Powers of 10
  ALOG10     1       (ALOG10 1000)             Base 10 logarithm
  SINE       1       (SINE 0.37)               Argument in radians
  ARCSINE    1       (ARCSINE 0.37)            Result in radians
  ASINE      1       (ASINE 0.37)              Synonym
  COSINE     1       (COSINE 0.37)             Argument in radians
  ARCCOSINE  1       (ARCCOSINE 0.37)          Result in radians
  ACOSINE    1       (ACOSINE 0.37)            Synonym
  TANGENT    1       (TANGENT 0.37)            Argument in radians
  ARCTANGENT 1       (ARCTANGENT 1.00)         Result in radians
  ATANGENT   1       (ATANGENT 1.00)           Synonym
  INTEGER    1       (INTEGER 1.05)            Integer part of expression
  ABSOLUTE   1       (ABSOLUTE 1.05)
  GETTIME    1,2     (GETTIME 17.05)           Time of first occurrence  
of
                     (GETTIME MAX 17.05)       value in file, or value  
greater
                     (GETTIME MIN -7.05)       than (MAX) or less than  
(MIN) in
                     (GETTIME MAX)             file, or DEPMAX or DEPMIN  
if no
                     (GETTIME MIN)             value provided
  GETVAL     1,3     (GETVAL 157.32)           Data values of at 157.32  
s in
                                               each file in memory.
                     (GETVAL FILE N 157.32)    Data value at 157.32 s in  
file N
                                               in memory; N integer > 0.


  String functions
  Name    Num. args. Syntax                    Description
   
------------------------------------------------------------------------ 
------
  CHANGE      3      (CHANGE X Y Z)            Changes X to Y in Z
  DELETE      2      (DELETE X Y)              Deletes X in Y
  BEFORE      2      (BEFORE X Y)              Returns text in Y  
preceding X
  AFTER       2      (AFTER X Y)               Returns text in Y  
following X
  SUBSTRING   3      (SUBSTRING X Y Z)         Returns characters X to Y  
in Z
                                               Index starts with 1; X or  
Y may be
                                               END to indicate last  
character
  CONCATENATE -      (CONCATENATE X Y Z ...)   Joins all strings together

On 12 Jan 2009, at 14:23, Pablo Palacios wrote:

>  Dear Weitao,
>
> I had the same necesity some time ago. I can not find a sac intruction  
> for solve it. In my case I was looking for the maximum value of a  
> spectrum. For reach it I made a csh script, the following lines are  
> part of that script and could be useful. If you know another easy form  
> to do, please tell me.
>
> P.
>
> # cutting the file between C1 and C2 marks and building the spectrum  
> file
> sac<<EOF
> cut $C1 $C2
> r ${stn}_${cmp}_${event}.sac
> chnhdr A UNDEF
> chnhdr F UNDEF
> dft wom a
> writesp am
> EOF
>
> # smoothig the spectrum and writting it as text file
> sac<<EOF
> r ${stn}_${cmp}_${event}.sac.am
> smooth mean h 10
> write over
> write alpha change .am .am.alpha
> EOF
>
> # extracting the number of point of the file to compute de maximum  
> frequency
> sac<<EOF >! header
> r ${stn}_${cmp}_${event}.sac.am
> listhdr NPTS
> EOF
>             # computing the spectrum variation between consecutive  
> points
>             set delta = `awk '/NPTS/{print 25/($3-1)}' header`
>             # converting the spectrum text file to spectrum column  
> file without header (30 first lines)
>             set spectrum = `echo ${stn}_${cmp}_${event}.sac.am.alpha`
>             awk 'NR>30{print $0}' $spectrum | awk  
> 'BEGIN{OFS="\n"}{print $1,$2,$3,$4,$5}' > spectrum-c
>             # selecting the point of the maximum frequency and  
> computing this value
>             set MaxFreq = `awk '{if(NR==1){max=$1}else  
> if($1>max){max=$1;print NR,max}}' spectrum-c | tail -1 | awk '{print  
> $1}'`
>             set MaxFreq = `echo $delta $MaxFreq | awk '{print  
> $1*($2-1)}'`
>             # deleting temporal work files
>             rm -f header
>             rm -f ${stn}_${cmp}_${event}.sac.am.alpha
>             rm -f spectrum-c
>
> # automatic picking in the spectrum file of the maximum frequency
> sac<<EOF
> r ${stn}_${cmp}_${event}.sac.am
> chnhdr F $MaxFreq
> write over
> EOF
>
> Date: Thu, 6 Nov 2008 10:37:05 -0700
> From: wangwtustc at gmail.com
> To: sac-help at iris.washington.edu
> Subject: [SAC-HELP] how to find the value of tn marker ?
>
> Dear All
>       Is there any sac command to find the value of tn marker ? I mean  
> if t1=100. can I find out the Y-value at that time?
> thanks all.
>
> weitao
>
> Invite your mail contacts to join your friends list with Windows Live  
> Spaces. It's easy! Try it!  
> _______________________________________________
> sac-help mailing list
> sac-help at iris.washington.edu
> http://www.iris.washington.edu/mailman/listinfo/sac-help
>
                                     George Helffrich
                                     george at geology.bristol.ac.uk





More information about the sac-help mailing list