bp manual 03

Before starting back-projection, we need 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

wiber3


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