PGV to displacement

Hi all,

I’m trying to convert geophone data to find out the displacement from velocity. Ideally, integration of velocity would give displacement. Is there easy solution to do it? for python or Matlab? @iannesbitt

It’s not perfect, but the way I do it in rsudp is:

  1. deconvolve to velocity

    from obspy import read, read_inventory
    
    inv = read_inventory('/path/to/resp.xml')  # (or use get_stations)
    stream = read('/path/to/data.ms')          # (or use get_waveforms)
    
    trace = stream.select(channel='*HZ')
    sps = trace.stats.sampling_rate
    trace.remove_response(inventory=inv,
                          pre_filt=[0.1, 0.6, 0.95*sps, sps],
                          output='VEL', water_level=4.5, taper=False)
    
  2. “integrate” (cumulatively sum) velocity values to get displacement

    import numpy as np
    trace.data = np.cumsum(trace.data)  # end result is in meters
    

Note: see also info on get_stations() and get_waveforms()

Thank you @iannesbitt.

1 Like