obspy.core.stream.Stream.normalize
- Stream.normalize(global_max=False)[source]
Normalize all Traces in the Stream.
By default all traces are normalized separately to their respective absolute maximum. By setting
global_max=True
all traces get normalized to the global maximum of all traces.- Parameters
global_max – If set to
True
, all traces are normalized with respect to the global maximum of all traces in the stream instead of normalizing every trace separately.
Note
If
data.dtype
of a trace was integer it is changing to float.Note
This operation is performed in place on the actual data arrays. The raw data is not accessible anymore afterwards. To keep your original data, use
copy()
to create a copy of your stream object. This also makes an entry with information on the applied processing instats.processing
of every trace.Example
Make a Stream with two Traces:
>>> from obspy import Trace, Stream >>> tr1 = Trace(data=np.array([0, -3, 9, 6, 4])) >>> tr2 = Trace(data=np.array([0.3, -0.5, -0.8, 0.4, 0.3])) >>> st = Stream(traces=[tr1, tr2])
All traces are normalized to their absolute maximum and processing information is added:
>>> st.normalize() <...Stream object at 0x...> >>> st[0].data array([ 0. , -0.33333333, 1. , 0.66666667, ...]) >>> print(st[0].stats.processing[0]) ObsPy ... normalize(norm=None) >>> st[1].data array([ 0.375, -0.625, -1. , 0.5 , 0.375]) >>> print(st[1].stats.processing[0]) ObsPy ...: normalize(norm=None)
Now let’s do it again normalize all traces to the stream’s global maximum:
>>> tr1 = Trace(data=np.array([0, -3, 9, 6, 4])) >>> tr2 = Trace(data=np.array([0.3, -0.5, -0.8, 0.4, 0.3])) >>> st = Stream(traces=[tr1, tr2])
>>> st.normalize(global_max=True) <...Stream object at 0x...> >>> st[0].data array([ 0. , -0.33333333, 1. , 0.66666667, ...]) >>> print(st[0].stats.processing[0]) ObsPy ...: normalize(norm=9) >>> st[1].data array([ 0.03333333, -0.05555556, -0.08888889, 0.04444444, ...]) >>> print(st[1].stats.processing[0]) ObsPy ...: normalize(norm=9)