Instrument Response Reomoval

Hi there,

I have an XML file for my station and am trying to convert counts to displacement (m) using obspy. I also did separate counts to velocity (m/s), and integrated to displacement (m). After simulating to WA seismometer using gains 1, magnification (V) 2800, and damping factor (h) 0.8/km, I measured the mean maximum displacement on two horizontal components to put into the Oman Local Magnitude Scale equation below:

ML = logAwa(R) +0.95logR + 0.0011R− 3

Paper link: Determination of a local earthquake magnitude scale for the Sultanate of Oman | Arabian Journal of Geosciences | Springer Nature Link

I noticed that for my recorded event with (epicenter ~890 km, depth 10 km, reported local network ML 4.61), the measured mean maximum amplitude from two horizontal components is around 41 micrometers; however, for a similar event (epicenter ~960 km, depth 10 km, and magnitude 4.59), their mean maximum amplitude is around ~1300 micrometers. For this, my calculated ML is 2.40, while the reported one is 4.61. This is a 2.21 ML difference from the reported ML because my measured mean maximum displacement on the WA seismometer is way less than it should be. Can you please guide me on where I am making the mistake? It must be with the amplitude measurement on the simulated WA seismometer, or earlier, with my Instrument response removal step. I can not figure it out myself so far. Please help. Thanks

Best,

Muhammad Awais

if you remove the instrument response to recover displacement (e.g. st.remove_response(inv,output=’DISP’) are the resulting amplitudes similar to the reported 1300 um?

also note that ML for >400 km distance is probably not super-super adapted…

Try to set stats.calib to 1.0 immediately after calling remove_response, for example:

st.remove_response(inv)  # or st.remove_response(inv,output='DISP')
for trace in st:
    trace.stats.calib = 1.0

ObsPy does not automatically reset stats.calib after these operations, so you need to do this manually to ensure the data is scaled correctly for plotting and further processing.
This is especially necessary if you are reading data in CSS, GSE, SEG, or another format that provides raw counts and sets ‘stats.calib’ to a value other than 1.0.

1 Like