Dear All
Is there any sac command to find the value of tn marker ? I mean if
t1=100. can I find out the Yvalue at that time?
thanks all.
weitao
Is there any sac command to find the value of tn marker ? I mean if
t1=100. can I find out the Yvalue at that time?
thanks all.
weitao

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/($31)}' 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}' > spectrumc
# 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}}' spectrumc  tail 1  awk '{print $1}'`
set MaxFreq = `echo $delta $MaxFreq  awk '{print $1*($21)}'`
# deleting temporal work files
rm f header
rm f ${stn}_${cmp}_${event}.sac.am.alpha
rm f spectrumc
# 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: sachelp<at>iris.washington.edu
Subject: [SACHELP] 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 Yvalue at that time?
thanks all.
weitao
_________________________________________________________________
Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy!
http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=enus

Dear Pablo 
See the list (below) of builtin 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,
George Helffrich
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/($31)}' 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}' > spectrumc
# 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}}' spectrumc  tail 1  awk '{print
$1}'`
set MaxFreq = `echo $delta $MaxFreq  awk '{print
$1*($21)}'`
# deleting temporal work files
rm f header
rm f ${stn}_${cmp}_${event}.sac.am.alpha
rm f spectrumc
# 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: sachelp<at>iris.washington.edu
Subject: [SACHELP] 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 Yvalue at that time?
thanks all.
weitao
Invite your mail contacts to join your friends list with Windows Live
Spaces. It's easy! Try it!
_______________________________________________
sachelp mailing list
sachelp<at>iris.washington.edu
http://www.iris.washington.edu/mailman/listinfo/sachelp
george<at>geology.bristol.ac.uk
