Approach 1 -
overview (this can all be done in one .job run): -
detailed approach:Approach 2
FK Filtering OBS Data
NOTE: Ensure the lasttr header value is not set to 1 for each trace (only the last trace in an ensemble should have lasttr equal to 1). If it is, use setheader to set it to zero. If all traces have lasttr set to 1, the FK filtering will take an order of magnitude more time to process.
Approach 1
This approach is a little complicated, but can yield amazing results. See the screenshot below for an example of the improvement that can be seen. This approach also leaves the direct arrival and refracted phases untouched, which is nice because they are very sensitive to filtering/fk muting.
overview (this can all be done in one .job run):
- read in OBS data and write out as claritas file with NMO applied
- read in claritas file (just written) and perform an FK mute, and bandpass filter to all of the data.
- Erase all of the data above the direct arrival, save result with diff1
- read in the claritas NMO file, and delete everything below direct arrival, combine
with
diff1 by using (x1+x2) with
diff2.
- remove the nmo from the result, and save as segy file.
Here is the .job file used to do these operations »upload/fkfilt.job, and the fk filter mute »upload/test1.mut.
detailed approach:
- Before performing this, make sure the OBS data trace length is much longer than you need, because data will be trimmed off the bottom. And extra few seconds of data would be a good idea.
- Read the OBS data, and display with xview. Create an fk mute file by clicking on zoom, fk spectrum. Click on the right most button on the bottom and make a filename (hit ok), then click the button until it reads mute inside. Now define a polygon removing unwanted dips from the data (right click when done). See what it looks like with the invert button.
- Read in the OBS data, and perform a debias (with the debias process). Apply NMO correction (actually applying a time shift to each trace) using »upload/nmo_statics.f, in the trfudge process to set a static shift in the sub_weath_vel header field. Use static to apply this time shift to each trace. These two steps will NMO correct the data, flattening the direct arrival (this differs from the MCS style NMO process that Claritas uses). Adjust the depth and water velocity in nmo_statics.f until the direct arrival is perfectly flat. Then write this file out as a claritas file using discwrite.
- read in the file just created using discread. Apply the fkmute created earlier with the fkmute process. Apply a bandpass filter too, to remove unwanted frequencies.
- mute everything above the direct arrival with smute and a mute file, such as »upload/mute_upper.smu. Adjust the time so its exactly on the direct arrival.
- Store this filtered data using diff1. We will use this later.
- Use reread to read in the nmo corrected data again (this requires a claritas file, not a normal segy file). We are reading this data in, because we want the refractions to stay untouched by the bandpass filter and FK mute.
- Use a surgical smute to delete everything below the direct arrival, such as »upload/mute_lower.smu. Use the same times as you used for the last smute.
- now we have filtered data below the direct arrival stored in diff1, and unfiltered data above the direct arrival. Combine the two using diff2, and select the (x1+x2) option. This will add the data together.
- You can now view the result with xview if desired.
- Remove the nmo correction (if desired), by using the same trfudge and static processes but change the scalar in static to -1.
- Save the data to segy file, and use anywhere.
Here is the screenshot (still nmo corrected). The upper left window is the unfiltered nmo corrected data, the upper right is the final fk filtered data combined with the original data above the direct arrival. The lower window is the difference between the two. You can see that the fk filter has done an excellent job at removing unwanted reverberations, but hasn't removed much of the reflected arrivals. This is from a horizontal OBS geophone, which are notorious for being ringy, so it makes a good test case. The only possible problem with this approach is that is may remove the reflected arrival near 0 km offset, but this is a minor issue.
Approach 2
Note that filtering a dip out of OBS data will operate differently on the positive offsets than it will on the negative.
- First read in the segy data, debias it and save it as a Claritas disk file with discwrite. We will need this later.
- Use the REORDER processor to sort the negative offsets as decreasing. Use and IF _ENDIF_ loop to limit it to negative traces. This will flip half of the OBS data, which is essential to the FK filter working correctly (otherwise it would filter out data on one side, and reverberations on the other).
- Use the velocity model to NMO correct the data by using the NMO module with a .nmo file that has a constant water velocity. This should flatten the direct arrival. Multiple energy (especially energy roughly parallel to the direct wave) will tend to curve downwards, because it has travelled further, and has a lower apparent velocity.
- Create an fk mute in the xview application. Do this by clicking on zoom, then fk spectrum. Then click on the icon with the two arrows, and enter some reasonable parameters. Click the 2 arrow icon again until it says mute inside. Define a polygon that removes the multiples. Use the invert button to view the before, after, and difference. If you want to modify this mute, you can launch the "muting" application, and smooth the mute for example.
- Make a new job (job2) and use the FK filter to filter the OBS data with the FKMUTE process. You can save this filtered and NMOed data to another claritas disk file.
- Make another job, and read in the FK filtered file you just created. Use REORDER again to sort the traces back to normal, use RECORDNUM as the key because we want to go from low to high shotnumbers.
- Remove the NMO with the NMO process, but choose an the inverse option. If You're not interested in the refracted arrivals, this could be a final section with multiple energy removed. Unfortunately the NMO and inverse NMO has clipped part of the refracted phases.
- If you want to retain the original refracted arrivals, use the STATIC process shift the section down a given amount and apply the a static shift discussed in approach 1, and mute everything above the direct arrival (also discussed in approach 1) and store using DIFF1. Read the original data in using REREAD, nmo correct as you just did, and mute everything below the direct arrival. Combine these two datasets together with DIFF2 and remove the static shift NMO using an inverse static shift (this removes the nmo, and shift the section back to its original position). The section is now filtered and includes the original refracted arrivals.