Search for and attach channel response to the trace as obspy.core.trace.Trace.stats.response. Raises an exception if no matching response can be found. To subsequently deconvolve the instrument response use obspy.core.trace.Trace.remove_response().

>>> from obspy import read, read_inventory
>>> st = read()
>>> tr = st[0]
>>> inv = read_inventory()
>>> tr.attach_response(inv)
>>> print(tr.stats.response)                  
Channel Response
   From M/S (Velocity in Meters per Second) to COUNTS (Digital Counts)
   Overall Sensitivity: 2.5168e+09 defined at 0.020 Hz
   4 stages:
      Stage 1: PolesZerosResponseStage from M/S to V, gain: 1500
      Stage 2: CoefficientsTypeResponseStage from V to COUNTS, ...
      Stage 3: FIRResponseStage from COUNTS to COUNTS, gain: 1
      Stage 4: FIRResponseStage from COUNTS to COUNTS, gain: 1

inventories (Inventory or Network or a list containing objects of these types or a string with a filename of a StationXML file.) – Station metadata to use in search for response for each trace in the stream.