Converting helicorder counts

Hello. I have the RSD3 and the shake and boom units working as stand alone devices. I download the recorded files and view in SWARM.

Is there a way to convert the “counts value” to “g” forces?

On the helicorder in Swarm, look for the Wave View Settings icon along the top and click it.
Then, under Wave Options, click on the Use calibrations option.

1 Like

Only works with community server data, not standalone.

Feature request!

But for standalone, that will mean the response function needs to be on the RShake and Swarm will need to know where to find it.
So is this a requested feature in Swarm or RShake, or both?

@Tideman is right. This would require enhancements to Swarm and to the Shake software.

In the end, Raspberry Shake, mostly for technical reasons, will only support the automatic generation and serving of metadata for users who are online and sharing their data with the Community :slight_smile:

branden

Another option for @1573sp is to use code for this. Convert to acceleration and then divide by 9.81 m/s2.

from obspy import read_inventory, read
import matplotlib.pyplot as plt
import numpy as np

inv = read_inventory('/path/to/inventory')
stream = read('/path/to/files')
stream = stream.merge(fill_value='latest')

corrected = stream.copy()
corrected.attach_response(inv)
corrected.remove_response(output='ACC', taper=0.5)

g = corrected.copy()

for trace in g:
    trace.data = trace.data / 9.81

tr = stream[0]
x = np.arange(0, tr.stats.npts / tr.stats.sampling_rate, tr.stats.delta)

plt.subplot(311)
plt.plot(x, stream[0].data, 'k')
plt.ylabel('Raw Data')

plt.subplot(312)
plt.plot(x, corrected[0].data, 'k')
plt.ylabel('Acceleration (m/s$^2$)')

plt.subplot(313)
plt.plot(x, g[0].data, 'k')
plt.ylabel('g')
plt.xlabel('Time (seconds)')
plt.suptitle('Converting to acceleration / g')

plt.show()

g

Another way you can get the get the station inventory is like this:

from obspy.clients.fdsn.client import Client
rs = Client('RASPISHAKE') # on obspy 1.2.0 and greater
# rs = Client('https://fdsnws.raspberryshakedata.com') # 1.1.1 & before
inv = rs.get_stations(network='AM',
                      station='R4989',
                      location='00',
                      channel='EHE,EHN,EHZ', # or channel='EH?'
                      level='resp')

edited to demonstrate multiple channel retrieval

@1573sp Although I get the sense that you’re working with archival data instead of live data, I’ve added the option to deconvolve to gravity fraction units in rsudp, in case that is useful to you. I will add this functionality to the documentation in the coming days.

commit: