BP Manual 03-Checking Data
Contents
Before starting back-projection, we need to check seismic data firstly.
Download data
We recommend to download data recorded at verticle components of dense seismic stations. And convert seismic data to .SAC
format.
Select stations
Back-projection is a form of time-reversal where we approximate the P wave Green’s function as a time-shifted delta function. This work agrees with tele-seismic arrivals between 30° and 90° where pulses are simple and amplitude variations are small. So, selecting stations with the epicentral distance 30° - 90° is the best choice.
If necessary, select stations according to azimuth and epicentral distance. Also, you can pick up stations according to their locations (Lon., Lat.).
$ csh Pick_az-d.csh
# open Pick_az-d.csh to look over all commands
Change below parameters according to your requirement:
set a1 = 32 # azimutuh's minimum
set a2 = 70 # azimutuh's maximum
set d1 = 60 # epicentral distance's minimum
set d2 = 85 # epicentral distance's maximum
Remove repeating stations
After downloading seismic data from IRIS or in another way, sometimes there are two or more repeating stations occurring. To avoid these mistakes, we usually choose only the best waveform from repeating stations according to station names.
$ csh Pick_repeat.csh
# open Pick_repeat.csh to look over all commands
Click sac PPK
image window, if tap ‘A or a’ in front of ‘F or f’, the file will not be deleted, and if tap ‘A or a’ behind ‘F or f’, the file will be deleted.
Remove 275 stations, and now there are 512 stations
$ csh Pick_repeat.csh # Check again
Remove 0 stations, and now there are 512 stations
Check delta
It’s necessary to check all data’s delta to be equal. We often choose the final delta from the delta to occur mostly, and change others into the same delta.
$ saclst delta f *.SAC # view delta
Here, there are three deltas(0.02,0.025,0.05). Most of them is 0.025 apparently, so we need change other deltas to 0.025.
# open Change_delta.f to look over all commands
if (abs(dt-0.025) .gt. 0.00001) then !dt:delta
open(20,file='temp.csh')
n=len_trim(file2(ista))
if(abs(dt-0.02) .lt. 0.00001) then !delta is 0.02_______
write(20,*) 'echo bd sgf > sac.com'
write(20,*) 'echo qdp off >> sac.com'
write(20,*) 'echo r '(1:7),file2(ista)(1:n),
&' >> sac.com'(1:11)
write(20,*) 'echo stretch 4 >> sac.com' !Stretches (upsamples) data
write(20,*) 'echo decimate 5 >> sac.com' !Decimates (downsamples) data
write(20,*) 'echo w over >> sac.com' !overwrite headers and data
write(20,*) 'echo quit >> sac.com'
write(20,*) 'sac < sac.com'
close(20)
call system('csh temp.csh')
else if(abs(dt-0.05) .lt. 0.00001) then !delta is 0.05_______
write(20,*) 'echo bd sgf > sac.com'
write(20,*) 'echo qdp off >> sac.com'
write(20,*) 'echo r '(1:7),file2(ista)(1:n),
&' >> sac.com'(1:11)
write(20,*) 'echo stretch 2 >> sac.com' !Stretches (upsamples) data
write(20,*) 'echo w over >> sac.com'
write(20,*) 'echo quit >> sac.com'
write(20,*) 'sac < sac.com'
close(20)
call system('csh temp.csh')
else
n=len_trim(file2(ista))
write(fin,*) 'rm '(1:3),file2(ista)(1:n)
write(*,*) fin
close(20)
call system(fin)
end if
end if
Here is only the example that we change all deltas to 0.025. It’s easy to modify the script to change deltas to other values, but remember the command order that stretch(upsamples) must be prior to decimates(downsamples).
$ csh Change_delta.csh
# open Change_delta.csh to look over all commands
Author Qiang
LastMod 2018-10-24