Python Obspy光谱图值错误(noverlap必须小于n)
我使用obspy处理地震数据,我想得到数据的光谱图。当我将光谱图函数应用于初始数据时,一切正常Python Obspy光谱图值错误(noverlap必须小于n),python,valueerror,spectrogram,obspy,Python,Valueerror,Spectrogram,Obspy,我使用obspy处理地震数据,我想得到数据的光谱图。当我将光谱图函数应用于初始数据时,一切正常 st.spectrogram(log=True, title='BW.RJOB ' + str(st[0].stats.starttime)) 但是当我对数据进行切片和插值时 tr = st[0] sr=4.9999 tr2 = tr.slice(point - 20, point + 180) tr2.interpolate(sampling_rate=sr) *点是我数据中的任意点 *初
st.spectrogram(log=True, title='BW.RJOB ' + str(st[0].stats.starttime))
但是当我对数据进行切片和插值时
tr = st[0]
sr=4.9999
tr2 = tr.slice(point - 20, point + 180)
tr2.interpolate(sampling_rate=sr)
*点是我数据中的任意点
*初始采样率为124.99
然后做光谱图
tr2.spectrogram(log=True, title='BW.RJOB ' + str(tr2.stats.starttime))
我得到以下错误:
***ValueError:noverlap必须小于n
为什么会发生这种情况?经过一番挖掘,我终于找到了问题所在。在插值地震波之后,我在FFT中遇到了重叠长度的问题。通过查看scipy和obspy的光谱图文件:
- npersegint,每个段的可选长度。默认为“无”,但如果窗口为str或tuple,则设置为256,如果窗口类似于数组, 设置为窗口的长度
- 新颖的,可选的 线段之间要重叠的点的数量。如果没有,noverlap=nperseg//8。默认为“无”
- wlen:fft的窗口长度(以秒为单位)。如果此参数太小,计算将花费很长时间。如果没有,则默认为(采样率/100.0)
tr2.spectrogram(log=True, title='Spectrogram'),wlen=10)
tr2.spectrogram(log=True, title='Spectrogram'),wlen=10)