Thread: Polezero rewrite

Started: 2009-04-27 20:30:51
Last activity: 2009-04-27 20:30:51
Topics: SAC Help
George Helffrich
2009-04-27 20:30:51
Dear All -

Here's my rewrite of the polezero response removal text to clarify
some of the issues raised in the version proposed earlier. For sanity,
use a fixed-pitch font to view the text.

------

POLEZERO OPTION:
One of the instrument types is called POLEZERO. This type lets
you
describe a general instrument response by specifying a file which
contains
its poles and zeros. The options in the file are keyword driven and
the
numbers are in free format. You may specify a multiplicative scaling
constant A0 by putting a line in the file containing the keyword
"CONSTANT"
followed by a floating point number. The default for this constant is
1.0 if
you omit this line. You specify the number of poles by putting a line
in the
file with the keyword "POLES" following by an integer number. The
next lines
in the file until another keyword is read become the poles for this
instrument. Each such line contains two floating point numbers
specifying
the real and imaginary parts of each of the poles. If you have fewer
lines
specifying poles than you stated on the "POLES" line, the remaining
poles are
assumed to be numerically zero. You specify the zeros in the same way
with
a "ZEROS" keyword line following by lines specifying the non-zero
zeros. You
may specify up to 15 poles and 15 zeros. For example, the following
is the
specification for the SRO broadband seismometer:

ZEROS 4

-0.125 0.0

-50.0 0.0

POLES 4

-0.13 0.0

-6.02 0.0

-8.66 0.0

-35.2 0.0

CONSTANT -394.0

Notice that since two of the zeros are at the origin, they don't have
to be
specified in the file. Also notice that the options may appear in any
order
in the file. If there are any nonzero imaginary parts to a pole or
zero, they
must appear as conjugate pairs to make the response purely real.
SAC uses the omega convention for the pole-zero response: the
frequency
w = 2*pi*i*f, where f is frequency in Hz and i is the imaginary unit
(sqrt(-1)). Thus, if an instrument manufacturer specifies that a pole
is at 1
Hz on the real axis, the SAC pole's real and imaginary parts would be
(6.28, 0). The response H(w) is the ratio of the product of the
difference
between w and each of the np poles and nz zeros:

(w-z )*(w-z )*...*(w-z )
1 2 nz
H(w) = -------------------------
(w-p )*(w-p )*...*(w-p )
1 2 np

For conversion of a seismometer's analog output to a physical
unit
(m, m/sec, m/sec**2), there are two specific frequencies that are
important:
the normalization frequency wn, and the sensitivity frequency, ws. The
normalization frequency is the frequency at which the product A0*H(wn)
= 1.0
A0 is the CONSTANT value specified in the response. The sensitivity S
of the
instrument is the value by which A0*H(w) should be multiplied to get
the
appropriate physical unit. To avoid unnecessary complications in
applying
instrument corrections, wn and ws should be equal. If they are, then
by
multiplying the signal by S before applying the transfer function, the
correct
physical units are produced. If not, you must multiply by
S*H(ws)/H(wn). If
convenient, you can combine S and A0 and set CONSTANT to be their
product S*A0.
SAC assumes that when you apply your pole-zero instrument
correction,
it will yield displacement. If this is not the physical unit yielded
in your
instrument response, dividing or multiplying by w will respectively
integrate
or differentiate the response. Thus if your instrument response is
velocity
(m/sec), then adding an extra zero with value zero will yield
displacement.
Conversely, if your instrument response is displacement and you want
velocity
as your physical unit, add an extra pole with value zero (but this is
not
what SAC would expect of the response).
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 "polezero"
subdirectory
of the "sacaux" directory. By putting a file in this global
directory, anyone
on your system can easily use it.

REFERENCES:
Hutt, C. R., "Specifying and using channel response information",
Appendix
C, SEED Reference Manual, version 2.4, 2006; available online from
http://www.iris.edu/software/downloads/seed_tools/.
Nakanishi, K., "Computer code for the transfer function of seismic
systems", Lawrence Livermore National Lab., UCID-18071, 1979.

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

------

George Helffrich
george<at>geology.bristol.ac.uk


  • Renate Hartog
    2009-04-27 17:49:49
    Hello Everyone,

    I don't have time to work on a true edit, but I do applaud you all for
    working on a better explanation of the POLE ZERO option for TRANSFER since
    it seems to generate a lot of confusion.


    Here are the few points that add to the confusion in my opinion:

    1) Transfer's SAC HELP says that the NONE type is Displacment.

    If NONE is as I interpret it, namely, don't deconvolve or convolve with
    anything, then there is no longer a units issue. You can just use the
    native response units as specified in de SEED file and get out the units
    you'd expect. You could even leave out the extra zero(s) and get velocity
    or acceleration, whichever you want.

    2) The fact that SAC defaults to Displacement in nm, is only relevant if
    you want to put in, or take out, one of the pre-programmed instrument
    types.

    3) rdseed does add the extra zeros to its SAC_PZ files to result in a
    Displacement response, however, it outputs a CONSTANT that is A0*S that
    results in the signal that are usually (THANK GOODNESS) in SI, m/s or
    m/s**2 (depending on the units-in field of the SEED file) if you use
    TRANSFER FROM POLEZERO rdseed-output-file TO NONE.

    To make all this clear, you don't only need to edit the POLEZERO part of
    the transfer help, but also the other parts of TRANSFER. And Rdseed could
    use some more information about the SAC_PZ output file in its man-page.

    -Renate

    Renate Hartog
    PNSN/UW Seismology lab.

    On
    Mon, 27 Apr 2009, George Helffrich wrote:

    Dear All -

    Here's my rewrite of the polezero response removal text to clarify
    some of the issues raised in the version proposed earlier. For sanity, use a
    fixed-pitch font to view the text.

    ------

    POLEZERO OPTION:
    One of the instrument types is called POLEZERO. This type lets you
    describe a general instrument response by specifying a file which contains
    its poles and zeros. The options in the file are keyword driven and the
    numbers are in free format. You may specify a multiplicative scaling
    constant A0 by putting a line in the file containing the keyword "CONSTANT"
    followed by a floating point number. The default for this constant is 1.0
    if
    you omit this line. You specify the number of poles by putting a line in
    the
    file with the keyword "POLES" following by an integer number. The next
    lines
    in the file until another keyword is read become the poles for this
    instrument. Each such line contains two floating point numbers specifying
    the real and imaginary parts of each of the poles. If you have fewer lines
    specifying poles than you stated on the "POLES" line, the remaining poles
    are
    assumed to be numerically zero. You specify the zeros in the same way with
    a "ZEROS" keyword line following by lines specifying the non-zero zeros.
    You
    may specify up to 15 poles and 15 zeros. For example, the following is the
    specification for the SRO broadband seismometer:

    ZEROS 4

    -0.125 0.0

    -50.0 0.0

    POLES 4

    -0.13 0.0

    -6.02 0.0

    -8.66 0.0

    -35.2 0.0

    CONSTANT -394.0

    Notice that since two of the zeros are at the origin, they don't have to be
    specified in the file. Also notice that the options may appear in any order
    in the file. If there are any nonzero imaginary parts to a pole or zero,
    they
    must appear as conjugate pairs to make the response purely real.
    SAC uses the omega convention for the pole-zero response: the
    frequency
    w = 2*pi*i*f, where f is frequency in Hz and i is the imaginary unit
    (sqrt(-1)). Thus, if an instrument manufacturer specifies that a pole is at
    1
    Hz on the real axis, the SAC pole's real and imaginary parts would be
    (6.28, 0). The response H(w) is the ratio of the product of the difference
    between w and each of the np poles and nz zeros:

    (w-z )*(w-z )*...*(w-z )
    1 2 nz
    H(w) = -------------------------
    (w-p )*(w-p )*...*(w-p )
    1 2 np

    For conversion of a seismometer's analog output to a physical unit
    (m, m/sec, m/sec**2), there are two specific frequencies that are important:
    the normalization frequency wn, and the sensitivity frequency, ws. The
    normalization frequency is the frequency at which the product A0*H(wn) = 1.0
    A0 is the CONSTANT value specified in the response. The sensitivity S of
    the
    instrument is the value by which A0*H(w) should be multiplied to get the
    appropriate physical unit. To avoid unnecessary complications in applying
    instrument corrections, wn and ws should be equal. If they are, then by
    multiplying the signal by S before applying the transfer function, the
    correct
    physical units are produced. If not, you must multiply by S*H(ws)/H(wn).
    If
    convenient, you can combine S and A0 and set CONSTANT to be their product
    S*A0.
    SAC assumes that when you apply your pole-zero instrument correction,
    it will yield displacement. If this is not the physical unit yielded in
    your
    instrument response, dividing or multiplying by w will respectively
    integrate
    or differentiate the response. Thus if your instrument response is velocity
    (m/sec), then adding an extra zero with value zero will yield displacement.
    Conversely, if your instrument response is displacement and you want
    velocity
    as your physical unit, add an extra pole with value zero (but this is not
    what SAC would expect of the response).
    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 "polezero" subdirectory
    of the "sacaux" directory. By putting a file in this global directory,
    anyone
    on your system can easily use it.

    REFERENCES:
    Hutt, C. R., "Specifying and using channel response information",
    Appendix
    C, SEED Reference Manual, version 2.4, 2006; available online from
    http://www.iris.edu/software/downloads/seed_tools/.
    Nakanishi, K., "Computer code for the transfer function of seismic
    systems", Lawrence Livermore National Lab., UCID-18071, 1979.

    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

    ------

    George Helffrich
    george<at>geology.bristol.ac.uk

    _______________________________________________
    sac-help mailing list
    sac-help<at>iris.washington.edu
    http://www.iris.washington.edu/mailman/listinfo/sac-help


11:15:03 v.01697673