Unfortunately, the file I sent was the unaltered "transfer' help file,
rather than my revised "polezero" subset of that file. The desired file
(I hope) is attached.
---------- Forwarded message ----------
Date: Fri, 24 Apr 2009 14:36:39 -0400 (EDT)
From: Arthur Snoke <snoke<at>vt.edu>
To: SAC-help Listserv <sac-help<at>iris.washington.edu>
Subject: [SAC-HELP] polezero option
We are preparing the next update for SAC, and I have been looking at some
"help" files called from within SAC (and in the computer accessible manual),
and have changed a few. Because there were several e-mail exchanges regarding
the polezero option of transfer, I looked closely at
SAC> help transfer
I am attaching my first draft for a replacement of that section of the transfer
help command. Please share comments/corrections, etc.
Others I have already worked on are 04graphics, 09file_format, begindevices,
enddevices.
If there are others you think need updating, please share. It is more likely
they will be included if you send me a suggested revision!
Finally, I have written a C program for doing endian swapping for .sgf files
(SAC Graphics Format files). I have tested it on several platforms, but if
someone would like to try it -- or just want an advance copy -- let me know.
Arthur Snoke
snoke<at>vt.edu
POLEZERO OPTION:
POLEZERO is an instrument type that can be used to put in or take out the
(analog) seismometer response. A good reference is Appendix C in the SEED
manual. The current version can be downloaded from IRIS at URL
http://www.iris.edu/software/downloads/seed_tools/, and a good way to get a
polezero file in the correct format is to download data as a SEED volume and use
program rdseed to extract the data, the polezero file(s) and the response file.
Program rdseed can be downloaded from the same Web site. The response file for
a specified channel/station is useful to see the "response in" and "response
out" units for the transfer function. Typically, the "response in" listed in
the response file is velocity, in m/s, but the polezero file has a "response in"
of displacement.
A polezero file is a listing of complex zeros and poles of a causal filter
that represents the seismometer. The transfer function is of the form
(s-z1)(s-z2)...*s-zn)
_____________________
s-p1))(s-p2)...*s-pm)
where the z1 ... zn are the N zeros and the p1 ... pm are the m poles of the
transfer function. The convention used is a Laplacian transform, with s = 2\pi
i f with f the frequency in Hz. The sign convention is e^{-st} for the forward
transform (from the t domain to the s domain).
Here is a polezero file for the LHZ channel from station JCC returned by program rdseed for a 28 June 2007 teleseism:
ZEROS 3
POLES 5
-0.0370 0.0370
-0.0370 -0.0370
-118.7520 423.4880
-118.7520 -423.4880
-251.3270 0.0000
CONSTANT 3.056572e+16
For this transfer function, there are five poles, for which the complex values
are listed on the five lines following the line POLES 5. Also there are three
zeros. None are listed, and the convention is that an unlisted zero has the
value of zero. Hence if there were five zeros, for which three were actually
zero, one could either write out five lines for which three of them would be
0.00 0.00 and the other two the complex, nonzero values, or one could have ZEROs
5 with only the two nonzero zeros explicitly written out. In the response file
for this channel, there are only two zeros because the "response in" is velocity
but rdseed "knows" that the user wants to work with waveforms corrected to
displacement. The CONSTANT is a multiplicative factor that rescales the
"response in" units to the "response out" units at the normalization frequency.
The derivation of CONSTANT is described in the SEED manual and can be pieced
together for a particular channel from that channel's response file.
The default for CONSTANT is 1.0, the options can be written in any order,
and one can add a comment line by starting that line with a * (asterisk).
To use this option you specify the type to be POLEZERO and the subtype to
be the name of the file. This may be a file in the current directory or in some
other directory if you specify the absolute or relative pathname. It may also
the the name of a global file contained in the sac subdirectory
sac/aux/polezero/. By putting a file in this global directory, anyone on your
system can easily use it.
EXAMPLE: suppose the file was named sro.pz and you want to remove the
instrument response from station ABC.Z.
u: READ ABC.Z
u: TRANSFER FROM POLEZERO SUBTYPE SRO.PZ TO NONE
rather than my revised "polezero" subset of that file. The desired file
(I hope) is attached.
---------- Forwarded message ----------
Date: Fri, 24 Apr 2009 14:36:39 -0400 (EDT)
From: Arthur Snoke <snoke<at>vt.edu>
To: SAC-help Listserv <sac-help<at>iris.washington.edu>
Subject: [SAC-HELP] polezero option
We are preparing the next update for SAC, and I have been looking at some
"help" files called from within SAC (and in the computer accessible manual),
and have changed a few. Because there were several e-mail exchanges regarding
the polezero option of transfer, I looked closely at
SAC> help transfer
I am attaching my first draft for a replacement of that section of the transfer
help command. Please share comments/corrections, etc.
Others I have already worked on are 04graphics, 09file_format, begindevices,
enddevices.
If there are others you think need updating, please share. It is more likely
they will be included if you send me a suggested revision!
Finally, I have written a C program for doing endian swapping for .sgf files
(SAC Graphics Format files). I have tested it on several platforms, but if
someone would like to try it -- or just want an advance copy -- let me know.
Arthur Snoke
snoke<at>vt.edu
POLEZERO OPTION:
POLEZERO is an instrument type that can be used to put in or take out the
(analog) seismometer response. A good reference is Appendix C in the SEED
manual. The current version can be downloaded from IRIS at URL
http://www.iris.edu/software/downloads/seed_tools/, and a good way to get a
polezero file in the correct format is to download data as a SEED volume and use
program rdseed to extract the data, the polezero file(s) and the response file.
Program rdseed can be downloaded from the same Web site. The response file for
a specified channel/station is useful to see the "response in" and "response
out" units for the transfer function. Typically, the "response in" listed in
the response file is velocity, in m/s, but the polezero file has a "response in"
of displacement.
A polezero file is a listing of complex zeros and poles of a causal filter
that represents the seismometer. The transfer function is of the form
(s-z1)(s-z2)...*s-zn)
_____________________
s-p1))(s-p2)...*s-pm)
where the z1 ... zn are the N zeros and the p1 ... pm are the m poles of the
transfer function. The convention used is a Laplacian transform, with s = 2\pi
i f with f the frequency in Hz. The sign convention is e^{-st} for the forward
transform (from the t domain to the s domain).
Here is a polezero file for the LHZ channel from station JCC returned by program rdseed for a 28 June 2007 teleseism:
ZEROS 3
POLES 5
-0.0370 0.0370
-0.0370 -0.0370
-118.7520 423.4880
-118.7520 -423.4880
-251.3270 0.0000
CONSTANT 3.056572e+16
For this transfer function, there are five poles, for which the complex values
are listed on the five lines following the line POLES 5. Also there are three
zeros. None are listed, and the convention is that an unlisted zero has the
value of zero. Hence if there were five zeros, for which three were actually
zero, one could either write out five lines for which three of them would be
0.00 0.00 and the other two the complex, nonzero values, or one could have ZEROs
5 with only the two nonzero zeros explicitly written out. In the response file
for this channel, there are only two zeros because the "response in" is velocity
but rdseed "knows" that the user wants to work with waveforms corrected to
displacement. The CONSTANT is a multiplicative factor that rescales the
"response in" units to the "response out" units at the normalization frequency.
The derivation of CONSTANT is described in the SEED manual and can be pieced
together for a particular channel from that channel's response file.
The default for CONSTANT is 1.0, the options can be written in any order,
and one can add a comment line by starting that line with a * (asterisk).
To use this option you specify the type to be POLEZERO and the subtype to
be the name of the file. This may be a file in the current directory or in some
other directory if you specify the absolute or relative pathname. It may also
the the name of a global file contained in the sac subdirectory
sac/aux/polezero/. By putting a file in this global directory, anyone on your
system can easily use it.
EXAMPLE: suppose the file was named sro.pz and you want to remove the
instrument response from station ABC.Z.
u: READ ABC.Z
u: TRANSFER FROM POLEZERO SUBTYPE SRO.PZ TO NONE
-
On Fri, Apr 24, 2009 at 3:25 PM, Arthur Snoke <snoke<at>vt.edu> wrote:
Unfortunately, the file I sent was the unaltered "transfer' help file,
Dear Arthur,
rather than my revised "polezero" subset of that file. The desired file (I
hope) is attached.
There is something wrong with the equation. The following equation has
some unbalanced parentheses.
(s-z1)(s-z2)...*s-zn)
_____________________
s-p1))(s-p2)...*s-pm)
Best regards,
--
Kuang
-
Dear All -
I will provide a rewrite suggestion after some further research. Here
are my initial comments, however.
----
POLEZERO OPTION:
%%%Comments indicated flagged with this notation.
%%%This paragraph is jumbled. It confusingly combines information about
%%%the concepts underlying a pole-zero representation with the way to
specify
%%%a response to SAC. They should be separated.
POLEZERO is an instrument type that can be used to put in or take out
the
(analog) seismometer response. A good reference is Appendix C in the
SEED
manual. The current version can be downloaded from IRIS at URL
http://www.iris.edu/software/downloads/seed_tools/, and a good way to
get a
polezero file in the correct format is to download data as a SEED
volume and use
program rdseed to extract the data, the polezero file(s) and the
response file.
Program rdseed can be downloaded from the same Web site. The response
file for
a specified channel/station is useful to see the "response in" and
"response
out" units for the transfer function. Typically, the "response in"
listed in
the response file is velocity, in m/s, but the polezero file has a
"response in"
of displacement.
%%%As Kuang He points out, this equation is syntactically incorrect.
Pole-zero
%%%filters aren't causal, either!
%%%Using TeX-style expressions isn't a good idea -- it assumes the
reader knows
%%%TeX, when many use nothing more than Word to typeset equations. Lay
them
%%%out graphically in text, assuming a fixed-pitch font.
A polezero file is a listing of complex zeros and poles of a
causal filter
that represents the seismometer. The transfer function is of the form
(s-z1)(s-z2)...*s-zn)
_____________________
s-p1))(s-p2)...*s-pm)
where the z1 ... zn are the N zeros and the p1 ... pm are the m poles
of the
transfer function. The convention used is a Laplacian transform, with
s = 2\pi
i f with f the frequency in Hz. The sign convention is e^{-st} for the
forward
transform (from the t domain to the s domain).
Here is a polezero file for the LHZ channel from station JCC
returned by program rdseed for a 28 June 2007 teleseism:
ZEROS 3
POLES 5
-0.0370 0.0370
-0.0370 -0.0370
-118.7520 423.4880
-118.7520 -423.4880
-251.3270 0.0000
CONSTANT 3.056572e+16
%%%The information about the input units and output units needs to be
presented
%%%more clearly. The description here jumbles what rdseed does with
what SAC
%%%does.
For this transfer function, there are five poles, for which the complex
values
are listed on the five lines following the line POLES 5. Also there
are three
zeros. None are listed, and the convention is that an unlisted zero
has the
value of zero. Hence if there were five zeros, for which three were
actually
zero, one could either write out five lines for which three of them
would be
0.00 0.00 and the other two the complex, nonzero values, or one could
have ZEROs
5 with only the two nonzero zeros explicitly written out. In the
response file
for this channel, there are only two zeros because the "response in" is
velocity
but rdseed "knows" that the user wants to work with waveforms corrected
to
displacement. The CONSTANT is a multiplicative factor that rescales the
"response in" units to the "response out" units at the normalization
frequency.
The derivation of CONSTANT is described in the SEED manual and can be
pieced
together for a particular channel from that channel's response file.
The default for CONSTANT is 1.0, the options can be written in any
order,
and one can add a comment line by starting that line with a *
(asterisk).
To use this option you specify the type to be POLEZERO and the
subtype to
be the name of the file. This may be a file in the current directory
or in some
other directory if you specify the absolute or relative pathname. It
may also
the the name of a global file contained in the sac subdirectory
sac/aux/polezero/. By putting a file in this global directory, anyone
on your
system can easily use it.
EXAMPLE: suppose the file was named sro.pz and you want to remove the
instrument response from station ABC.Z.
u: READ ABC.Z
u: TRANSFER FROM POLEZERO SUBTYPE SRO.PZ TO NONE
On 24 Apr 2009, at 20:25, Arthur Snoke wrote:
Unfortunately, the file I sent was the unaltered "transfer' help file,
George Helffrich
rather than my revised "polezero" subset of that file. The desired
file (I hope) is attached.
---------- Forwarded message ----------
Date: Fri, 24 Apr 2009 14:36:39 -0400 (EDT)
From: Arthur Snoke <snoke<at>vt.edu>
To: SAC-help Listserv <sac-help<at>iris.washington.edu>
Subject: [SAC-HELP] polezero option
We are preparing the next update for SAC, and I have been looking at
some "help" files called from within SAC (and in the computer
accessible manual), and have changed a few. Because there were
several e-mail exchanges regarding the polezero option of transfer, I
looked closely at
SAC> help transfer
I am attaching my first draft for a replacement of that section of the
transfer help command. Please share comments/corrections, etc.
Others I have already worked on are 04graphics, 09file_format,
begindevices, enddevices.
If there are others you think need updating, please share. It is more
likely they will be included if you send me a suggested revision!
Finally, I have written a C program for doing endian swapping for .sgf
files (SAC Graphics Format files). I have tested it on several
platforms, but if someone would like to try it -- or just want an
advance copy -- let me know.
Arthur Snoke
snoke<at>vt.edu<polezero>_______________________________________________
sac-help mailing list
sac-help<at>iris.washington.edu
http://www.iris.washington.edu/mailman/listinfo/sac-help
george<at>geology.bristol.ac.uk
-
Thank you George and Kuang-He for comments. Kuang-He picked up on a typo
in the equation I wrote. I wrote him off list with a corrected version
that he said was okay:
(s-z1)*(s-z2)*...*(s-zn)
________________________
(s-p1)*(s-p2)*...*(s-pm)
I give some replies to George's comments below. I welcome
comments/suggestions/corrections from others as well.
%%%Comments indicated flagged with this notation.
I agree that the paragraph could be improved, and am looking for better
%%%This paragraph is jumbled. It confusingly combines information about
%%%the concepts underlying a pole-zero representation with the way to specify
%%%a response to SAC. They should be separated.
ways to untangle SAC from RDSEED. A couple of things came up as I was
writing this:
1. There is a question of units: the RDSEED "response in" units use m as
a length measure, while SAC's IDEP uses nm. I doubt that either are going
to change, but I welcome suggestions to state this efficiently.
2. As i note, the values given for the polezero transfer function in the
RESP file is for velocity "response in" (with two zeros) but the polezero
file returned by RDSEED is for displacement (three zeros). Is there
nothing within RDSEED that makes that clear? Or am I missing something?
%%%filters aren't causal, either!
The polezero transfer functions are analog filters and in themselves are
causal. The one I give as an example is an STS-2 response function, which
is mostly a damped harmonic oscillator. (Aside: I have read that there
are three versions/generations of STS-2 seismometers, but so far as I can
tell the analog-stage response is always the same. Can anyone clarify?)
%%%Using TeX-style expressions isn't a good idea -- it assumes the reader
As of now, SAC help files use 7-bit ASCII. The minimal use I made of TeX
%%%knows TeX, when many use nothing more than Word to typeset equations.
%%%Lay them out graphically in text, assuming a fixed-pitch font.
notation should be transparent to anyone who understands what a Laplace
transform is. Note I resisted the temptation to use \cdots in the
equation above. Given that one cannot underline letters in 7-bit ASCII, I
have not figured out a good way to show the subset of letters need (e.g.,
TRANS for TRANSFER).
%%%The information about the input units and output units needs to be
See above comment.
%%%presented more clearly. The description here jumbles what rdseed
%%%does with what SAC does.
u: READ ABC.Z
I do not use SAC to do my instrument correction, but I do use polezero
u: TRANSFER FROM POLEZERO SUBTYPE SRO.PZ TO NONE
files. The above example as written would probably get one in trouble at
very low frequencies, as all seismometers have zero response at zero
frequency. If I understand the notation correctly, "FROM" means a
deconvolution, which means it divides the input waveform by, in this case,
the polezero expression. To avoid the output blowing up, this expression
should be amended to include the FREQLIMITS option. Putting these in
definitely makes the total transfer function noncausal.
Arthur Snoke
-
On Apr 26, 2009, at 6:26 AM, Arthur Snoke wrote:
The polezero transfer functions are analog filters and in themselves
Responding to the aside, there are 3 generations of electronics for
are causal. The one I give as an example is an STS-2 response
function, which is mostly a damped harmonic oscillator. (Aside: I
have read that there are three versions/generations of STS-2
seismometers, but so far as I can tell the analog-stage response is
always the same. Can anyone clarify?)
STS-2s and three different sets of poles and zeros to represent them.
To figure out which generation sensor you might have there are some
general guidelines based on date of manufacture, but it remains
possible that the electronics were upgraded if the sensor was returned
to the factory. The nominal responses for the 3 generations are
available in SEED RESP format here:
http://www.iris.edu/NRL/sensors/streckeisen/streckeisen_sts2_sensors.html
The responses of the different generations only differ significantly
at high frequencies. I'm not quite sure how high is too high, I have
heard 35Hz signals and above are where the differences between
generations become significant.
To further complicate matters a "truncated" pole and zero response for
STS-2s has been in common use for many years and it is different than
any of the factory nominal responses. It generally works fine for all
the generations of sensors with the same caveat that it does not
represent the sensor at high frequencies.
Apologies for the off topic message, seems like useful information to
spread around.
Chad Trabant
IRIS Data Management Center
-
-