Hi, I am looking to carry out some beamforming to determine the incoming direction of secondary microseisms in a frequency range of 0.125-0.5 Hz. I am a bit confused about how to remove the instrument response in the proper way without introducing artefacts.
I am currently removing the mean and linear trend (from each 2-hr time series) followed by pre-filtering before converting to displacement with remove_response and finally resampling to 1 Hz (from 50 Hz). Is this the correct order of processing steps, and I am also confused as to whether I should be converting to displacement or velocity (have seen both done in papers on the subject).
Thanks, here is the code.
n=0
Archive='/raid1/ds784/trash/' #path to where data is stored
st = Stream()
for file in sorted(glob.glob(Archive + '3_clean_data_2/'+'*HZ*')):
n=n+1
try:
#extract file name and path
filename=file.split('/')[-1]
print(filename,n,"/",len(glob.glob(Archive + '3_clean_data_2/'+'*HZ*')))
outpath=out_dir
#read in file
st = read(file)
print(st)
st_copy=st.copy()
#demean and detrend data
#st_copy.plot()
st_copy.detrend("demean")
st_copy.detrend("linear")
pre_filt = [0.04, 0.08, 10, 20]
#Remove instrument reponse
st_copy.remove_response(output="DISP", inventory=inv, pre_filt=pre_filt, zero_mean=False, taper=True)
#st_copy.plot()
st_copy.resample(1)
#st_copy.plot()
#merge gaps
#st_copy.merge(method=0, fill_value='interpolate')
#write out file (over-writing original)
st_copy.write(outpath+filename,format='MSEED')
print('writing: ',outpath+filename)
except:
print('failed on file:', file)