Search for and attach channel response to each trace as trace.stats.response. Does not raise an exception but shows a warning if response information can not be found for all traces. Returns a list of traces for which no response could be found. To subsequently deconvolve the instrument response use Stream.remove_response().

>>> from obspy import read, read_inventory
>>> st = read()
>>> inv = read_inventory()
>>> st.attach_response(inv)
>>> tr = st[0]
>>> 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
Parameters:inventories (Inventory or Network or a list containing objects of these types.) Station metadata to use in search for response for each trace in the stream.
Return type:list of Trace
Returns:list of traces for which no response information could be found.