Question regarding removing instrument response with a PAZ dictionary

Hi all,

Apologies in advance for the basic question, but I am a new Obspy user. I’m attempting to remove instrument response using a PAZ dictionary. The set-up I am using is a Trilium Compact 120s with an Omnirecs DataCube3 datalogger and I’m sampling at 200 Hz.

I have the following values for the instrument and datalogger combination and am not quite sure how to incorporate all of them into the dictionary and instrument response removal process correctly. Specifically, I am not quite sure where to incorporate the logger AD factor relative to the ground motion sensitivity.

Relevant values:

Signal gain: 4.0

Ground motion sensitivity F0 = 75.43 V/(m/s)

6 Zeros (rad/s)
z1 = 0
z2 = 0
z3 = -392
z4 = -1960
z5/6 = -1490 ±1740i

11 Poles (rad/s)
p1/2 = -0.03691 ±0.03702i
p3 = -343
p4/5 = -370 ±467i
p6/7 = -836 ±1522i
p8/9 = -4900 ±4700i
p10 = -6900
p11 = -15000

Normalization factor
a = 4.34493 x 1017

Normalization frequency (Hz)
f0 = 1

Logger AD factor: 2.4414e-07

So far, playing around with the code, my best guess has been to divide F0 by AD, but I am only guessing here. However, when I compare the output to code written to remove instrument response by a colleague in R, there are significant differences in the output (see below), so I’m clearly doing something wrong.

Anyway, any feedback/help on this would be much appreciated.

Code and sample output attached below.

Thank you,


From tutorials on the Obspy website I’ve generated the following code:

To build the dictionary:


To remove instrument response:


Output with my code:


Output with my colleague’s R code of same data:


Hello Claire,

In the python code you attached it looks like you are removing the response sts2 and then convolving with the inst2hz. You have inst2hz set to be an instrument with a 100 Hz corner. If you are trying to go to units of velocity, then you don’t want to simulate a new response.

E.g. for a 120 s compact on a Q330HR you might do something like:

pazvel = {‘zeros’: [0., 0., -392.0, -1960.0, -1490.0 + 1740.0j, -1490.0 - 1740.0j],
‘poles’: [-0.03691 + 0.03702j, -0.03691 - 0.03702j, -343.0, -370.0 + 467.0j, -370.0 - 467.0j, -836.0 + 1522.0j,
-836.0 - 1522.0j, -4900.0 + 4700.0j, -4900.0 - 4700.0j, -6900.0, -15000.0], ‘gain’: 4.344928*(1017),
‘sensitivity’: 754.3*(2

stvel.simulate(paz_remove = pazvel)

Hopefully this helps a bit. I apologize if this isn’t helpful for what you are trying to do.






Hello Claire,

From the PAZ information you provided, I guess you use a TC120 with an DATACUBE3 where amplifier gain configuration is 4 and a voltage divider is 10?

If my guess is right, and if you just want to remove sensitivity of your data instead of full frequency response, then you just need to divide your raw data by


You could revise amplifier gain and voltage divider yourself to fit in your case.

Hope that helps.