Large Data in MATLAB: A Case Study in Seismic Data Processing
These are the files used in the webinar on Feb. 23, 2011. This file provides a brief description of the contents of the demo files and the steps needed to download the public data sources for use with this demo. You can watch the archived version of this webinar at http://www.mathworks.com/webinars
Contents
Data Sources
Two sources of data are used.
The fault model is a slice from an SEG/EAGE model which was take from http://utam.gg.utah.edu/Inter.LAB1/CH2.lab/lab.mig.pre/lab.html. The velocity model is needed to run faultModelMigration.m.
The salt tooth model is from the BP Benchmark data set from: http://software.seg.org/datasets/2D/2004_BP_Vel_Benchmark
You will need to download the BP Benchmark files to run the saltModelMigrationRTM.m and migrateExample.m files.
Required Products and Hardware
MATLAB. You will also need Parallel Computing Toolbox and MATLAB Distributed Computing Server if you want to speed up computations using multiple MATLAB Workers (on a multicore desktop or across a cluster of computers) or run the GPU example. This demo was developed and tested on R2010b.
For the GPU examle, you will need a supported GPU. Consult http://www.mathworks.com/products/parallel-computing/requirements.html to determine if your hardware is supported.
Run setup.m
The script setup.m will create the directories needed and download the data from the public sources. It will also generate the 20GB traveltime.data file used once all the data has completed downloading. This can take several hours, depending upon your network connection and computer. It is recomended to run this script when you don't need your computer for several hours (or run overnight). Once this completes, you will be able to run the demos.
Parallel Computing Setup
migrateExample.m uses parallel computing to run the migration. If you don't use parallel computing, it will run for 2-3 days, or more if depending upon your machine. To set up parallel computing, consult the doc. You will also need to change the matlabpool call in migrateExample.m to point to your resources.
GPU Setup
You will need to compile the CUDA kernels (*.cu files in gpu directory). Assuming your system is configured correctly, you can run the build.m file to compile and test the kernels are working correctly.
Recommended Demo Order
To get the most out of this example. Run these demos in this order:
- faultModelMigrationRTM.m
- migrateExample.m migration with parallel computing>
- saltModelMigrationRTM.m salt model on GPU
You should first uncomment the sections of code that save videos if you want them created.
Directory and File Listing
Listing of directories and files, post run of the demo files.
Top level directory (LargeDataSeismic)
dir
. README.m faultModelMigrationRTM.m migrateExample.m setup.m .. README.pdf fileReader migration speedup.fig LargeDataSeismicWebinar.pdf benchmark gpu saltModelMigrationRTM.m videos LargeDataSeismicWebinar.pptx faultModelData html saltToothModelData
Benchmark data directory
dir benchmark
. central_shot_674.gif shots0401_0600.segy shots1201_1348.segy .. eage_abstract.pdf shots0601_0800.segy travelTime.dat README.pdf shots0001_0200.segy shots0801_1000.segy vel_6.25m.gif README_Modification.txt shots0201_0400.segy shots1001_1200.segy vel_z6.25m_x12.5m_exact.segy
faultModelData directory stores the intermediate results generated from faultModelMigrationRTM.m.
dir faultModelData
. rtmsnapshot42.mat rtmsnapshot78.mat shotfdm22.mat shotfdm58.mat shotfdm93.mat snapshot38.mat snapshot73.mat .. rtmsnapshot43.mat rtmsnapshot79.mat shotfdm23.mat shotfdm59.mat shotfdm94.mat snapshot39.mat snapshot74.mat rtmsnapshot1.mat rtmsnapshot44.mat rtmsnapshot8.mat shotfdm24.mat shotfdm6.mat shotfdm95.mat snapshot4.mat snapshot75.mat rtmsnapshot10.mat rtmsnapshot45.mat rtmsnapshot80.mat shotfdm25.mat shotfdm60.mat shotfdm96.mat snapshot40.mat snapshot76.mat rtmsnapshot100.mat rtmsnapshot46.mat rtmsnapshot81.mat shotfdm26.mat shotfdm61.mat shotfdm97.mat snapshot41.mat snapshot77.mat rtmsnapshot11.mat rtmsnapshot47.mat rtmsnapshot82.mat shotfdm27.mat shotfdm62.mat shotfdm98.mat snapshot42.mat snapshot78.mat rtmsnapshot12.mat rtmsnapshot48.mat rtmsnapshot83.mat shotfdm28.mat shotfdm63.mat shotfdm99.mat snapshot43.mat snapshot79.mat rtmsnapshot13.mat rtmsnapshot49.mat rtmsnapshot84.mat shotfdm29.mat shotfdm64.mat snapshot1.mat snapshot44.mat snapshot8.mat rtmsnapshot14.mat rtmsnapshot5.mat rtmsnapshot85.mat shotfdm3.mat shotfdm65.mat snapshot10.mat snapshot45.mat snapshot80.mat rtmsnapshot15.mat rtmsnapshot50.mat rtmsnapshot86.mat shotfdm30.mat shotfdm66.mat snapshot100.mat snapshot46.mat snapshot81.mat rtmsnapshot16.mat rtmsnapshot51.mat rtmsnapshot87.mat shotfdm31.mat shotfdm67.mat snapshot11.mat snapshot47.mat snapshot82.mat rtmsnapshot17.mat rtmsnapshot52.mat rtmsnapshot88.mat shotfdm32.mat shotfdm68.mat snapshot12.mat snapshot48.mat snapshot83.mat rtmsnapshot18.mat rtmsnapshot53.mat rtmsnapshot89.mat shotfdm33.mat shotfdm69.mat snapshot13.mat snapshot49.mat snapshot84.mat rtmsnapshot19.mat rtmsnapshot54.mat rtmsnapshot9.mat shotfdm34.mat shotfdm7.mat snapshot14.mat snapshot5.mat snapshot85.mat rtmsnapshot2.mat rtmsnapshot55.mat rtmsnapshot90.mat shotfdm35.mat shotfdm70.mat snapshot15.mat snapshot50.mat snapshot86.mat rtmsnapshot20.mat rtmsnapshot56.mat rtmsnapshot91.mat shotfdm36.mat shotfdm71.mat snapshot16.mat snapshot51.mat snapshot87.mat rtmsnapshot21.mat rtmsnapshot57.mat rtmsnapshot92.mat shotfdm37.mat shotfdm72.mat snapshot17.mat snapshot52.mat snapshot88.mat rtmsnapshot22.mat rtmsnapshot58.mat rtmsnapshot93.mat shotfdm38.mat shotfdm73.mat snapshot18.mat snapshot53.mat snapshot89.mat rtmsnapshot23.mat rtmsnapshot59.mat rtmsnapshot94.mat shotfdm39.mat shotfdm74.mat snapshot19.mat snapshot54.mat snapshot9.mat rtmsnapshot24.mat rtmsnapshot6.mat rtmsnapshot95.mat shotfdm4.mat shotfdm75.mat snapshot2.mat snapshot55.mat snapshot90.mat rtmsnapshot25.mat rtmsnapshot60.mat rtmsnapshot96.mat shotfdm40.mat shotfdm76.mat snapshot20.mat snapshot56.mat snapshot91.mat rtmsnapshot26.mat rtmsnapshot61.mat rtmsnapshot97.mat shotfdm41.mat shotfdm77.mat snapshot21.mat snapshot57.mat snapshot92.mat rtmsnapshot27.mat rtmsnapshot62.mat rtmsnapshot98.mat shotfdm42.mat shotfdm78.mat snapshot22.mat snapshot58.mat snapshot93.mat rtmsnapshot28.mat rtmsnapshot63.mat rtmsnapshot99.mat shotfdm43.mat shotfdm79.mat snapshot23.mat snapshot59.mat snapshot94.mat rtmsnapshot29.mat rtmsnapshot64.mat shotfdm1.mat shotfdm44.mat shotfdm8.mat snapshot24.mat snapshot6.mat snapshot95.mat rtmsnapshot3.mat rtmsnapshot65.mat shotfdm10.mat shotfdm45.mat shotfdm80.mat snapshot25.mat snapshot60.mat snapshot96.mat rtmsnapshot30.mat rtmsnapshot66.mat shotfdm100.mat shotfdm46.mat shotfdm81.mat snapshot26.mat snapshot61.mat snapshot97.mat rtmsnapshot31.mat rtmsnapshot67.mat shotfdm11.mat shotfdm47.mat shotfdm82.mat snapshot27.mat snapshot62.mat snapshot98.mat rtmsnapshot32.mat rtmsnapshot68.mat shotfdm12.mat shotfdm48.mat shotfdm83.mat snapshot28.mat snapshot63.mat snapshot99.mat rtmsnapshot33.mat rtmsnapshot69.mat shotfdm13.mat shotfdm49.mat shotfdm84.mat snapshot29.mat snapshot64.mat travelTime.mat rtmsnapshot34.mat rtmsnapshot7.mat shotfdm14.mat shotfdm5.mat shotfdm85.mat snapshot3.mat snapshot65.mat velocityModel.mat rtmsnapshot35.mat rtmsnapshot70.mat shotfdm15.mat shotfdm50.mat shotfdm86.mat snapshot30.mat snapshot66.mat rtmsnapshot36.mat rtmsnapshot71.mat shotfdm16.mat shotfdm51.mat shotfdm87.mat snapshot31.mat snapshot67.mat rtmsnapshot37.mat rtmsnapshot72.mat shotfdm17.mat shotfdm52.mat shotfdm88.mat snapshot32.mat snapshot68.mat rtmsnapshot38.mat rtmsnapshot73.mat shotfdm18.mat shotfdm53.mat shotfdm89.mat snapshot33.mat snapshot69.mat rtmsnapshot39.mat rtmsnapshot74.mat shotfdm19.mat shotfdm54.mat shotfdm9.mat snapshot34.mat snapshot7.mat rtmsnapshot4.mat rtmsnapshot75.mat shotfdm2.mat shotfdm55.mat shotfdm90.mat snapshot35.mat snapshot70.mat rtmsnapshot40.mat rtmsnapshot76.mat shotfdm20.mat shotfdm56.mat shotfdm91.mat snapshot36.mat snapshot71.mat rtmsnapshot41.mat rtmsnapshot77.mat shotfdm21.mat shotfdm57.mat shotfdm92.mat snapshot37.mat snapshot72.mat
fileReader directory contains the SEG Y file reader object used to read SEGY files in benchmark folder. Note that these fileReaders have not been fully tested against SEGY/SEGD/SEG2 specifications. No gurantees are provided that they work on all SEGx formatted files.
dir fileReader
. Seg2FileReader.m SegyMemmap.m ibm2ieee.m .. SegYFileReader.m SeismicFileReader.m travelTimeMemmap.m
gpu directory contains the files used to speed up computations usin a GPU.
dir gpu
. build.m fm2d_gpu.m fm2d_kernel.ptx rtm2d_kernel.cu .. dat4gpu.mat fm2d_kernel.cu rtm2d_gpu.m rtm2d_kernel.ptx
Migration routines and utillity functions
dir migration
. dA.mat migrate.m ray2d.m rtm2d.m shot2RecTime.m .. fm2d.m plotProgress.m ricker.m seismic.m shotRecordLocator.m
saltToothModelData directory stores intermediate results generated from saltModelMigrationRTM.m.
dir saltToothModelData
. shotfdm13.mat shotfdm19.mat shotfdm24.mat shotfdm8.mat snapshot13.mat snapshot19.mat snapshot24.mat snapshot8.mat .. shotfdm14.mat shotfdm2.mat shotfdm3.mat shotfdm9.mat snapshot14.mat snapshot2.mat snapshot3.mat snapshot9.mat shotfdm1.mat shotfdm15.mat shotfdm20.mat shotfdm4.mat snapshot1.mat snapshot15.mat snapshot20.mat snapshot4.mat travelTime.mat shotfdm10.mat shotfdm16.mat shotfdm21.mat shotfdm5.mat snapshot10.mat snapshot16.mat snapshot21.mat snapshot5.mat shotfdm11.mat shotfdm17.mat shotfdm22.mat shotfdm6.mat snapshot11.mat snapshot17.mat snapshot22.mat snapshot6.mat shotfdm12.mat shotfdm18.mat shotfdm23.mat shotfdm7.mat snapshot12.mat snapshot18.mat snapshot23.mat snapshot7.mat
videos contains videos generated from results
dir videos
. FaultModelKirchhoffBone.avi FaultModelShots.avi saltToothMigrationKirchhoff.avi seismicSurveyAnimation.mp4 .. FaultModelRTM.avi FaultModelTravelTime.avi saltToothMigrationRTM.avi velocityShotAnimation.avi FaultModelKirchhoff.avi FaultModelRTMBone.avi migrationAnimation.avi saltToothModelShots.avi