From 93b1052f1efab3f27d8e57d1b99db27bb863a209 Mon Sep 17 00:00:00 2001 From: Rui Gong <41764570+gong1999@users.noreply.github.com> Date: Tue, 21 May 2024 20:12:17 -0500 Subject: [PATCH] Delete book/tccs/micro directory for new version --- book/tccs/micro/Fig/ic.pdf | Bin 15150 -> 0 bytes book/tccs/micro/SConstruct | 3 - book/tccs/micro/cross/.rsfproj | 3 - book/tccs/micro/cross/SConstruct | 177 ---------------- book/tccs/micro/marm/.rsfproj | 3 - book/tccs/micro/marm/SConstruct | 166 --------------- book/tccs/micro/micro.bib | 350 ------------------------------- book/tccs/micro/paper.tex | 132 ------------ 8 files changed, 834 deletions(-) delete mode 100644 book/tccs/micro/Fig/ic.pdf delete mode 100644 book/tccs/micro/SConstruct delete mode 100644 book/tccs/micro/cross/.rsfproj delete mode 100644 book/tccs/micro/cross/SConstruct delete mode 100644 book/tccs/micro/marm/.rsfproj delete mode 100644 book/tccs/micro/marm/SConstruct delete mode 100644 book/tccs/micro/micro.bib delete mode 100755 book/tccs/micro/paper.tex diff --git a/book/tccs/micro/Fig/ic.pdf b/book/tccs/micro/Fig/ic.pdf deleted file mode 100644 index 8057e1acc1a8f52e653bcb18e980bc1d0aec7b30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15150 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 OylhC+)RIb4NdFH>nG-bt diff --git a/book/tccs/micro/SConstruct b/book/tccs/micro/SConstruct deleted file mode 100644 index 89de2b37b..000000000 --- a/book/tccs/micro/SConstruct +++ /dev/null @@ -1,3 +0,0 @@ -from rsf.tex import * - -End(color='ALL',hires='data sov location0-clean location0-noisy location0-hyb stage0-1 stage0-2 stage0-3 stage-1 stage-2 stage-3',use='hyperref') diff --git a/book/tccs/micro/cross/.rsfproj b/book/tccs/micro/cross/.rsfproj deleted file mode 100644 index c99b839d6..000000000 --- a/book/tccs/micro/cross/.rsfproj +++ /dev/null @@ -1,3 +0,0 @@ -uses=['sfspike', 'sfcat', 'sfsmooth', 'sfput', 'sfadd', 'sfwindow', 'sfgrey', 'sfpsp', 'sfcp', 'sfspray', 'sfscale', 'sfgraph', 'sfdd', 'sfheadercut', 'sfwiggle', 'sfmath', 'sfstack', 'sfswnorm', 'sfricker1', 'sfpspp', 'sftransp', 'sfcausint', 'sfthreshold', 'sfreverse', 'sfnoise'] -data=[] -size= 8005064960 diff --git a/book/tccs/micro/cross/SConstruct b/book/tccs/micro/cross/SConstruct deleted file mode 100644 index 0a58491be..000000000 --- a/book/tccs/micro/cross/SConstruct +++ /dev/null @@ -1,177 +0,0 @@ -from rsf.proj import * - -def grey(custom): - return ''' - grey labelsz=10 labelfat=2 titlesz=12 titlefat=2 label1=Depth label2=Distance unit1=m unit2=m wanttitle=n %s - ''' %(custom) - -def igrey(custom): - return ''' - grey labelsz=10 labelfat=2 titlesz=12 titlefat=2 label1=Time label2=Distance unit1=s unit2=m wanttitle=n %s - ''' %(custom) - -Flow('top',None,'spike n1=60 n2=200 d1=15 d2=15 mag=1500') -Flow('mid',None,'spike n1=70 n2=200 d1=15 d2=15 mag=2200') -Flow('bot',None,'spike n1=70 n2=200 d1=15 d2=15 mag=3000') -Flow('vel','top mid bot','cat axis=1 ${SOURCES[1:3]} | smooth rect1=3 repeat=1 | put unit1=m unit2=m label1=Depth label2=Distance') - -#Flow('vel',None,'spike n1=200 n2=200 d1=15 d2=15 | math output="x1*0.5+1500" ') - -Flow('src',None,'spike n1=200 n2=200 d1=15 d2=15 nsp=6 k1=98,105,100,95,90,88 k2=60,70,90,110,130,140 mag=5000 | smooth rect1=2 rect2=2 repeat=1') - -Flow('sov','vel src','add mode=a ${SOURCES[1]}') -Result('sov','window f1=30 n1=140 f2=30 n2=140 | put o1=0 o2=0 |'+ grey('allpos=y bias=1500 scalebar=y barreverse=y minval=1500 maxval=3000 title="Source location over velocity model" barlabel="V" barunit="m/s" ')) - -Result('vel','window f1=30 n1=140 f2=30 n2=140 | put o1=0 o2=0 |'+ grey('allpos=y bias=1500 scalebar=y barreverse=y minval=1500 maxval=3000 title="Velocity model" barlabel="V" barunit="m/s"')) - -nt=2501 -dt=0.001 - -Flow('data0 snaps data_v0','vel', - ''' - psp snaps=${TARGETS[1]} dat_v=${TARGETS[2]} verb=y cmplx=n vref=1500 ps=y nt=%d dt=%g snap=1 abc=y nbt=30 ct=0.01 src=0 n_srcs=6 spz=100,105,100,95,90,88 spx=60,70,90,110,130,140 f0=20,20,20,20,20,20 t0=.1,.3,.5,.7,.9,1.1 A=1,1,1,1,1,1 - '''%(nt,dt)) - -#Flow('data','data0','noise var=0.01 type=y seed=1573') -#Flow('data_v','data_v0','noise var=0.01 type=y seed=5438') -Flow('data','data0','cp') -Flow('data_v','data_v0','cp') -#Flow('data','data0','shapeagc eps=0 rect1=40 rect2=10') -#Flow('data_v','data_v0','shapeagc eps=0 rect1=40 rect2=10') - -Plot('snaps','window j3=10 | grey gainpanel=a color=g title="Microseismic events" ', view=1) -Flow('snapsm','snaps','window j3=4') -Flow('snapsov','vel snapsm','window f1=30 n1=140 f2=30 n2=140 | put o1=0 o2=0 |spray axis=3 n=626 | add ${SOURCES[1]} scale=1,9000') -Plot('snapsov','window j3=10 | grey gainpanel=a color=g title="Microseismic events" ', view=1) -Result('data',igrey('title="Surface array data"')) -Result('data_v',igrey('title="Downhole array data"')) - -Plot('datall','data',igrey('title="Surface array data" screenht=11')) -Plot('trace','data','window n2=1 f2=70 | scale axis=1 | graph transp=y yreverse=y dash=0 plotcol=6 plotfat=3 label1=Time unit1=s label2="Amplitude" unit2= wanttitle=n labelfat=2 labelsz=6 screenwd=3 screenht=11 wherexlabel=top whereylabel=right') -Result('datatrace','datall trace','SideBySideIso') - -Flow('imgb snapsb','vel data data_v', - ''' - psp snaps=${TARGETS[1]} verb=y cmplx=n vref=1500 ps=y snap=1 abc=y nbt=30 ct=0.01 mig=y dat=${SOURCES[1]} dat_v=${SOURCES[2]} - ''') - -Plot('snapsb','window j3=10 | grey gainpanel=a', view=1) -Result('imgb','grey wanttitle=n') - -nrcv = 10 -rcvint = 140/nrcv -len=0 -start=5 - -snaps = [] -for m in range(nrcv): - mask = 'mask%d' % m - data = 'data' + mask - img = 'img%d' % m - snap = 'snaps%d' % m - snaps += [snap] - Flow(mask,None,'spike n1=140 mag=1 k1=%d l1=%d | sfdd type=int' %(rcvint*m+start,rcvint*m+start+len) ) - Flow(data,['data',mask],'headercut mask=${SOURCES[1]}') - Result(data,'wiggle transp=y wanttitle=n') - Flow([img,snap],['vel',data], - ''' - psp snaps=${TARGETS[1]} verb=y cmplx=n vref=1500 ps=y snap=1 abc=y nbt=30 ct=0.01 mig=y dat=${SOURCES[1]} - ''') - Plot(snap,'window j3=10 | grey gainpanel=a wanttitle=n',view=1) - Result(img,'grey wanttitle=n') - -#Flow('ccr0',snaps,'math a=${SOURCES[1]} b=${SOURCES[2]} c=${SOURCES[3]} e=${SOURCES[4]} f=${SOURCES[5]} g=${SOURCES[6]} output="input^2*a^2*b^2*c^2*e^2*f^2*g^2" ') -Flow('ccr0',snaps,'add mode=m ${SOURCES[1:%d]}'% nrcv) -Plot('ccr0','window j3=10 | grey gainpanel=a pclip=99.9 wanttitle=n', view=1) - -Flow('stack',snaps,'add mode=a ${SOURCES[1:%d]}'%(nrcv)) -Flow('autoccr','stack','math output="input*input" ') -Flow('autoccr-stack','autoccr','stack axis=3') -Plot('stack','window j3=10 | grey gainpanel=a', view=1) -Result('autoccr-stack','grey pclip=99.6 allpos=y scalebar=n title="Auto-correlation" color=I') - -#Flow('wfnew','ccr0 stack','math output="abs(input)" | swnorm size=100 log=n perc=10 | smooth rect3=50 repeat=4 | math b=${SOURCES[1]} output="input*b"') -Flow('wfnew','ccr0','math output="abs(input)" | swnorm size=100 log=n perc=10 | smooth rect3=20 repeat=2 | ricker1 frequency=20') -Result('wfnew','stack axis=3 | put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations" color=g')) -Flow('data-new snaps-new','vel wfnew', - ''' - sfpspp snaps=${TARGETS[1]} wave=${SOURCES[1]} verb=y cmplx=n vref=1500 ps=y nt=%d dt=%g snap=1 abc=y nbt=30 ct=0.01 src=0 n_srcs=1 spz=98,105,100,95,90,88 spx=60,70,90,110,130,140 f0=20,20,20,20,20,20 t0=.4,.7,1.0,.3,.9,0.8 A=1,1,1,1,1,1 - '''%(nt,dt)) -Result('data-new',igrey('title="Surface array data"')) - -Flow('movieauto','autoccr','transp plane=13 memsize=10000 | causint | window j1=40 | transp plane=13 memsize=10000 ') -Plot('movieauto','grey gainpanel=a pclip=99 color=g title="Cross-correlation" ', view=1) - -Flow('location0','ccr0',' threshold pclip=5 | stack axis=3 | math output=input') -Result('location0','put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations" color=g')) - -Flow('movie','ccr0','transp plane=13 memsize=10000 | causint | window j1=40 | transp plane=13 memsize=10000 ') -Plot('movie','grey gainpanel=a pclip=99.5 color=g title="Cross-correlation" ', view=1) - -################################################ -# time reversal -Flow('rev0',snaps,'add mode=a ${SOURCES[1:%d]}'% nrcv) -Flow('location1','rev0','stack axis=3') -Result('location1','put o1=0 o2=0 |'+ grey('pclip=99 allpos=n scalebar=n title="Imaged source locations" color=g')) -Plot('movie1','rev0','window j3=40 | reverse which=4 | grey gainpanel=a pclip=99.5 color=g title="Time-reversal"', view=1) - -Flow('data-noise','data0','noise var=0.02 type=y seed=1573') -Plot('datall-noise','data-noise',igrey('title="Surface array data" screenht=11')) -Plot('trace-noise','data-noise','window n2=1 f2=70 | scale axis=1 | graph transp=y yreverse=y dash=0 plotcol=6 plotfat=3 label1=Time unit1=s label2="Amplitude" unit2= wanttitle=n labelfat=2 labelsz=6 screenwd=3 screenht=11 wherexlabel=top whereylabel=right') - -snaps = [] -for m in range(nrcv): - mask = 'mask%d' % m - data = 'ndata' + mask - img = 'nimg%d' % m - snap = 'nsnaps%d' % m - snaps += [snap] - Flow(data,['data-noise',mask],'headercut mask=${SOURCES[1]}') - Result(data,'wiggle transp=y wanttitle=n') - Flow([img,snap],['vel',data], - ''' - psp snaps=${TARGETS[1]} verb=y cmplx=n vref=1500 ps=y snap=1 abc=y nbt=30 ct=0.01 mig=y dat=${SOURCES[1]} - ''') - Plot(snap,'window j3=10 | grey gainpanel=a wanttitle=n', view=1) - Result(img,'grey wanttitle=n') - -Flow('ccr0-noise',snaps,'add mode=m ${SOURCES[1:%d]}'% nrcv) -Plot('ccr0-noise','window j3=10 | grey gainpanel=a pclip=99.9 wanttitle=n', view=1) - -Flow('location0-noise','ccr0-noise',' threshold pclip=5 | stack axis=3 | math output=input') - -################################################ -# moving stuffs around -Result('datatrace-clean','datall trace','SideBySideIso') -Result('location0-clean','location0','put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations" color=g')) - -Result('datatrace-noisy','datall-noise trace-noise','SideBySideIso') -Result('location0-noisy','location0-noise','put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations" color=g')) - -len=5 - -snaps = [] -for m in range(nrcv): - mask = 'hmask%d' % m - data = 'hdata' + mask - img = 'himg%d' % m - snap = 'hsnaps%d' % m - snaps += [snap] - Flow(mask,None,'spike n1=140 mag=1 k1=%d l1=%d | sfdd type=int' %(rcvint*m+start,rcvint*m+start+len) ) - Flow(data,['data-noise',mask],'headercut mask=${SOURCES[1]}') - Result(data,'wiggle transp=y wanttitle=n') - Flow([img,snap],['vel',data], - ''' - psp snaps=${TARGETS[1]} verb=y cmplx=n vref=1500 ps=y snap=1 abc=y nbt=30 ct=0.01 mig=y dat=${SOURCES[1]} - ''') - Plot(snap,'window j3=10 | grey gainpanel=a wanttitle=n', view=1) - Result(img,'grey wanttitle=n') - -Flow('ccr0-hyb',snaps,'add mode=m ${SOURCES[1:%d]}'% nrcv) -Plot('ccr0-hyb','window j3=10 | grey gainpanel=a pclip=99.9 wanttitle=n', view=1) - -Flow('location0-hyb','ccr0-hyb',' threshold pclip=5 | stack axis=3 | math output=input') - -Result('location0-hyb','put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations" color=g')) - -End() diff --git a/book/tccs/micro/marm/.rsfproj b/book/tccs/micro/marm/.rsfproj deleted file mode 100644 index 67b1ab9ab..000000000 --- a/book/tccs/micro/marm/.rsfproj +++ /dev/null @@ -1,3 +0,0 @@ -uses=['sfdd', 'sfscale', 'sfput', 'sfgrey', 'sfwindow', 'sfexpand', 'sfsmooth', 'sfmath', 'sfspike', 'sfadd', 'sfpsp', 'sfnoise', 'sfspray', 'sfgraph', 'sfheadercut', 'sfwiggle', 'sfthreshold', 'sfstack', 'sfswnorm', 'sfpspp', 'sftransp', 'sfcausint'] -data=['data/marm/marmvel.hh'] -size= 12121589804 diff --git a/book/tccs/micro/marm/SConstruct b/book/tccs/micro/marm/SConstruct deleted file mode 100644 index 68adbfdd9..000000000 --- a/book/tccs/micro/marm/SConstruct +++ /dev/null @@ -1,166 +0,0 @@ -from rsf.proj import * -from rsf.gallery import marmousi - -def grey(custom): - return ''' - grey labelsz=10 labelfat=2 titlesz=12 titlefat=2 label1=Depth label2=Distance unit1=m unit2=m wanttitle=n %s - ''' %(custom) - -def igrey(custom): - return ''' - grey labelsz=10 labelfat=2 titlesz=12 titlefat=2 label1=Time label2=Distance unit1=s unit2=m wanttitle=n %s - ''' %(custom) - -# prepared the data -marmousi.getvel('vel0') -Result('marmvel','vel0',grey('scalebar=y color=j allpos=y title="Marmousi Velocity Model" bias=1.5 barreverse=y')) - -Flow('vel','vel0','window j1=2 j2=3 f1=50 n1=200 f2=200 n2=200 | expand top=30 bottom=30 left=30 right=30 | smooth rect1=40 rect2=40 repeat=0 | math output=input*1000 | put d1=8 d2=12 o1=0 o2=0 unit1=m unit2=m') -Result('vel','window f1=30 n1=200 f2=30 n2=200 | put o1=0 o2=0 |'+ grey('allpos=y bias=1570 scalebar=y barreverse=y minval=1570 maxval=4340 title="Velocity model" barlabel="V" barunit="m/s" color=j')) - -Flow('src',None, - ''' - spike n1=260 n2=260 d1=0.008 d2=0.012 nsp=18 - k1=120,110,135,100,130,99,123,136,140,117,105,128,117,105,129,131,139,123 - k2=80,88,83,85,82,90,120,116,121,117,125,130,160,155,168,171,166,162 - mag=5000 | smooth rect1=2 rect2=2 repeat=1 - ''') - -Flow('sov','vel src','add mode=a ${SOURCES[1]}') -Result('sov','window f1=30 n1=200 f2=30 n2=200 | put o1=0 o2=0 |'+ grey('allpos=y bias=1570 scalebar=y barreverse=y minval=1570 maxval=4340 title="Source location over velocity model" barlabel="V" barunit="m/s" color=j')) - -nt=3501 -dt=0.001 - -Flow('data0 snaps data_v0','vel', - ''' - psp snaps=${TARGETS[1]} dat_v=${TARGETS[2]} verb=y cmplx=n vref=1.5 ps=y nt=%d dt=%g snap=1 abc=y nbt=30 ct=0.01 src=0 n_srcs=18 - spz=120,110,135,100,130,99,123,136,140,117,105,128,117,105,129,131,139,123 - spx=80,88,83,85,82,90,120,116,121,117,125,130,160,155,168,171,166,162 - f0=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 - t0=0.1,0.21,0.32,0.43,0.55,0.68,0.9,1.0,1.13,1.21,1.32,1.45,1.7,1.82,1.92,2.03,2.11,2.24 - A=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 - '''%(nt,dt)) - -Flow('data','data0','noise var=1e-1 type=y seed=12005') -Flow('data_v','data_v0','noise var=1e-1 type=y seed=22015') - -Plot('snaps','window j3=10 | grey gainpanel=a wanttitle=n', view=1) -Flow('snapsm','snaps','window j3=4') -Flow('snapsov','vel snapsm','window f1=30 n1=200 f2=30 n2=200 | put o1=0 o2=0 |spray axis=3 n=876 | add ${SOURCES[1]} scale=1,9') -Plot('snapsov','window j3=10 | grey gainpanel=a color=g title="Microseismic events" ', view=1) - -Result('data','put o2=0 |'+igrey('title="Surface array data"')) -Result('data_v','put o2=0 |'+igrey('title="Downhole array data"')) -Result('data0','put o2=0 |'+igrey('title="Surface array data"')) - -Plot('datall','data','put o2=0 |'+igrey('title="Surface array data" screenht=11')) -Plot('trace','data','window n2=1 f2=100 | scale axis=1 | graph transp=y yreverse=y dash=0 plotcol=6 plotfat=3 label1=Time unit1=s label2="Amplitude" unit2= wanttitle=n labelfat=2 labelsz=6 screenwd=3 screenht=11 wherexlabel=top whereylabel=right') -Result('datatrace','datall trace','SideBySideIso') - -Flow('imgb snapsb','vel data data_v', - ''' - psp snaps=${TARGETS[1]} verb=y cmplx=n vref=1.5 ps=y snap=1 abc=y nbt=30 ct=0.01 mig=y dat=${SOURCES[1]} dat_v=${SOURCES[2]} - ''') - -Plot('snapsb','window j3=10 | grey gainpanel=a wanttitle=n', view=1) -Result('imgb','grey wanttitle=n') - -nx = 200 -tmp = 10 -nrcv = tmp -rcvint = nx/nrcv -len=5 -start=1 - -snaps = [] -for m in range(nrcv): - mask = 'mask%d' % m - data = 'data' + mask - img = 'img%d' % m - snap = 'snaps%d' % m - snaps += [snap] - if (1): - nsp = 0 - klist = '' - for i in range(len+1): - k1 = 1 + m*rcvint + i*rcvint/(len+1) - klist += '%d,' %k1 - nsp += 1 - Flow(mask,None,'spike n1=%d mag=1 k1=%s nsp=%d | sfdd type=int' %(nx,klist,nsp) ) - else: - Flow(mask,None,'spike n1=%d mag=1 k1=%d l1=%d | sfdd type=int' %(nx,rcvint*m+start,rcvint*m+start+len) ) - Flow(data,['data',mask],'headercut mask=${SOURCES[1]}') - Result(data,'wiggle transp=y wanttitle=n') - Flow([img,snap],['vel',data], - ''' - psp snaps=${TARGETS[1]} verb=y cmplx=n vref=1.5 ps=y snap=1 abc=y nbt=30 ct=0.01 mig=y dat=${SOURCES[1]} - ''') - Plot(snap,'window j3=10 | grey gainpanel=a wanttitle=n', view=1) - Result(img,'grey wanttitle=n') - -Flow('ccr0',snaps,'add mode=m ${SOURCES[1:%d]}'% nrcv) -Plot('ccr0','window j3=10 | grey gainpanel=a pclip=99.9', view=1) - -Flow('location0','ccr0','threshold pclip=5 | stack axis=3 | math output=input') -Result('location0','put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations (Surface)" color=g')) - -Flow('stack',snaps,'add mode=a ${SOURCES[1:%d]}'%(nrcv)) -Flow('autoccr','stack','math output="input*input" | stack axis=3') -Result('autoccr','put o1=0 o2=0 |'+ grey('allpos=y scalebar=n wanttitle=n color=I')) -Plot('stack','window j3=10 | grey gainpanel=a wanttitle=n', view=1) - -Flow('wfnew','ccr0 stack','math output="abs(input)" | swnorm size=100 log=n perc=1 | smooth rect1=1 rect2=1 rect3=50 repeat=2| swnorm size=100 log=n perc=1 | math b=${SOURCES[1]} output="input*b" ') -Result('wfnew','stack axis=3 | put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations" color=g')) -Flow('data-new snaps-new','vel wfnew', - ''' - pspp snaps=${TARGETS[1]} wave=${SOURCES[1]} verb=y cmplx=n vref=1500 ps=y nt=%d dt=%g snap=1 abc=y nbt=30 ct=0.01 src=0 n_srcs=1 spz=98,105,100,95,90,88 spx=60,70,90,110,130,140 f0=20,20,20,20,20,20 t0=.4,.7,1.0,.3,.9,0.8 A=1,1,1,1,1,1 - '''%(nt,dt)) -Result('data-new',igrey('title="Surface array data (predicted)"')) - -Result('stage0-1','ccr0','window min3=0.0 max3=0.8 | threshold pclip=5 | stack axis=3 | math output=input | put o1=0 o2=0 |'+ grey('clip=7.20642e+06 allpos=n scalebar=n title="Imaged source locations (Surface)" color=g')) -Result('stage0-2','ccr0','window min3=0.0 max3=1.6 | threshold pclip=5 | stack axis=3 | math output=input | put o1=0 o2=0 |'+ grey('clip=7.20642e+06 allpos=n scalebar=n title="Imaged source locations (Surface)" color=g')) -Result('stage0-3','ccr0','window min3=0.0 max3=3.0 | threshold pclip=5 | stack axis=3 | math output=input | put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations (Surface)" color=g')) - -# vertical receiver setup -nrcv = 4 -rcvint = nx/nrcv -len=0 -start=30 - -for m in range(tmp,tmp+nrcv): - mask = 'mask%d' % m - data = 'data' + mask - img = 'img%d' % m - snap = 'snaps%d' % m - snaps += [snap] - Flow(mask,None,'spike n1=%d mag=1 k1=%d l1=%d | sfdd type=int' %(nx,rcvint*(m-tmp)+start,rcvint*(m-tmp)+start+len) ) - Flow(data,['data_v',mask],'headercut mask=${SOURCES[1]}') - Result(data,'wiggle transp=y wanttitle=n') - Flow([img,snap],['vel',data], - ''' - psp snaps=${TARGETS[1]} verb=y cmplx=n vref=1.5 ps=y snap=1 abc=y nbt=30 ct=0.01 mig=y dat_v=${SOURCES[1]} - ''') - Plot(snap,'window j3=10 | grey gainpanel=a wanttitle=n', view=1) - Result(img,'grey wanttitle=n') - -Flow('ccr',snaps,'add mode=m ${SOURCES[1:%d]}'%(tmp+nrcv)) -Plot('ccr','window j3=10 | grey gainpanel=a pclip=99.5 allpos=y wanttitle=n', view=1) -Flow('location','ccr','threshold pclip=5 | stack axis=3 | math output=input') -Result('location','put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations (Combined)" color=g')) - -Result('stage-1','ccr','window min3=0.0 max3=0.8 | threshold pclip=5 | stack axis=3 | math output=input | put o1=0 o2=0 |'+ grey('clip=2.60259e-09 allpos=n scalebar=n title="Imaged source locations (Surface)" color=g')) -Result('stage-2','ccr','window min3=0.0 max3=1.6 | threshold pclip=5 | stack axis=3 | math output=input | put o1=0 o2=0 |'+ grey('clip=2.60259e-09 allpos=n scalebar=n title="Imaged source locations (Surface)" color=g')) -Result('stage-3','ccr','window min3=0.0 max3=3.0 | threshold pclip=5 | stack axis=3 | math output=input | put o1=0 o2=0 |'+ grey('pclip=99.6 allpos=n scalebar=n title="Imaged source locations (Surface)" color=g')) - -Flow('movie','ccr','transp plane=13 memsize=10000 | causint | window j1=40 | transp plane=13 memsize=10000 | put o1=0 o2=0 unit1=m unit2=m lable1=Depth label2=Distance') -Plot('movie','grey gainpanel=a pclip=99.5 color=g title="Imaged microseismic events"', view=1) - -#Flow('vels','vel','window f1=30 n1=200 f2=30 n2=200 | spray axis=3 n=351') -#Result('mov','movie vels','add ${SOURCES[1]} scale=0.3,1e-5 | put o1=0 o2=0 | grey gainpanel=a pclip=99.5 allpos=y label1=Depth label2=Distance unit1=m unit2=m title="Fracture Propagation" ') - -#Flow('test','ccr stack','math s=${SOURCES[1]} output="input*s"') -#Flow('movie2','test','transp plane=13 memsize=10000 | causint | window j1=10 | transp plane=13 memsize=10000 ') -#Result('movie2','grey gainpanel=a pclip=99.8 allpos=y label1=Depth label2=Distance unit1=m unit2=m title="Fracture Propagation" ') - -End() diff --git a/book/tccs/micro/micro.bib b/book/tccs/micro/micro.bib deleted file mode 100644 index e26ec75d2..000000000 --- a/book/tccs/micro/micro.bib +++ /dev/null @@ -1,350 +0,0 @@ -@BOOK{gibowicz13, - title = {An introduction to mining seismology}, - author = {S[] J [] Gibowicz and A[] Kijko}, - publisher = {Elsevier}, - year = {2013} -} - -@ARTICLE{montgomery10, - author = {C[] T[] Montgomery and M[] B[] Smith}, - title = {Hydraulic fracturing: {A} history of an enduring technology}, - journal = {Journal of Petroleum Technology}, - year = {2010}, - volume = {62}, - publisher = {SPE}, - pages = {26-32} -} - -@INPROCEEDINGS{maxwell03, - author = {S[] C[] Maxwell and T[] I[] Urbancic and M[] Prince and C[] Demerling}, - title = {Passive imaging of seismic deformation associated with steam injection in Western Canada}, - booktitle = {SPE Annual Technical Conference and Exhibition}, - year = {2003}, - publisher = {SPE}, - pages = {84572} -} - -@ARTICLE{maxwell10a, - author = {S[] C[] Maxwell and J[] Rutledge and R[] Jones and M[] Fehler}, - title = {Petroleum reservoir characterization using downhole microseismic monitoring}, - journal = {Geophysics}, - year = {2010}, - volume = {75}, - number = {5}, - publisher = {SEG}, - pages = {75A129-75A137}, - doi = {10.1190/1.3477966} -} - -@INPROCEEDINGS{maxwell10b, - author = {S[] C[] Maxwell and J[] Le Calvez}, - title = {Horizontal vs. Vertical Borehole-based Microseismic Monitoring: Which is Better?}, - booktitle = {76th Ann. Internat. Mtg.}, - year = {2010}, - publisher = {Society of Petroleum Engineers}, - pages = {131870} -} - -@BOOK{maxwellbook, - title = {Microseismic Imaging of Hydraulic Fracturing: Improved Engineering of Unconventional Shale Reservoirs }, - publisher = {SEG}, - year = {2014}, - author = {S[hawn] Maxwell} -} - -@ARTICLE{duncan10, - author = {P[] M[] Duncan and L[] Eisner}, - title = {Reservoir characterization using surface microseismic monitoring}, - journal = {Geophysics}, - year = {2010}, - volume = {75}, - number = {5}, - publisher = {SEG}, - pages = {75A139-75A146}, - doi = {10.1190/1.3467760} -} - -@ARTICLE{schuster04, - author = {G[] T[] Schuster and J[] Yu and J[] Sheng and J[] Rickett}, - title = {Interferometric/daylight seismic imaging}, - journal = {Geophysics Journal International}, - year = {2004}, - volume = {157}, - number = {2}, - publisher = {Oxford Journals}, - pages = {838-852}, - doi = {10.1111/j.1365-246X.2004.02251.x} -} - -@ARTICLE{song11, - author = {F[] Song and M[] N[] Toksöz}, - title = {Full-waveform based complete moment tensor inversion and source parameter estimation from downhole microseismic data for hydrofracture monitoring}, - journal = {Geophysics}, - year = {2011}, - volume = {76}, - number = {6}, - publisher = {SEG}, - pages = {WC103-WC116}, - doi = {10.1190/geo2011-0027.1} -} - -@ARTICLE{jeremy14, - author = {J[] D[] Pesicek and D[] Child and B[] Artman and K[] Cieślik}, - title = {Picking versus stacking in a modern microearthquake location: Comparison of results from a surface passive seismic monitoring array in {O}klahoma}, - journal = {Geophysics}, - year = {2014}, - volume = {79}, - number = {6}, - publisher = {SEG}, - pages = {KS61-KS68}, - doi = {10.1190/geo2013-0404.1} -} - -@BOOK{IEI, - title = {Imaging the {E}arth's interior}, - publisher = {Blackwell Scientific Publications}, - year = {1985}, - author = {J[] F[] Claerbout} -} - -@ARTICLE{tang09, - author = {Y[] Tang}, - title = {Target-oriented wave-equation least-squares migration/inversion with phase-encoded {H}essian}, - journal = {Geophysics}, - year = {2009}, - volume = {74}, - number = {6}, - publisher = {SEG}, - pages = {WCA95-WCA107} -} - -@inproceedings{SHXM-MOBISYS2009, - author = {Song, Wen-Zhan and Huang, Renjie and Xu, Mingsen and Ma, Andy and Shirazi, Behrooz and Lahusen, Richard}, - booktitle = {7th Annual International Conference on Mobile Systems, Applications and Services (MobiSys)}, - keywords = {application, volcano}, - location = {Krak\'{o}w, Poland}, - month = {jun}, - posted-at = {2009-04-21 22:46:28}, - priority = {2}, - title = {{Air-dropped Sensor Network for Real-time High-fidelity Volcano Monitoring}}, - year = {2009} -} - -@conference {KSS-DCOSS2013, -title = {Component-Average based Distributed Seismic Tomography in -Sensor Networks}, -booktitle = {The 9th IEEE International Conference on Distributed -Computing in Sensor Systems (IEEE DCOSS)}, -year = {2013}, -author = {Goutham Kamath and Shi, Lei and Wen-Zhan Song} -} - -@inproceedings{SSXX-SECON2013, - author = {Shi, Lei and Song, Wen-Zhan and Xu, Mingsen and Xiao, -Qingjun and Lee, Jonathan M. and Xing, Guoliang}, - booktitle = {IEEE SECON}, - citeulike-article-id = {12414926}, - posted-at = {2013-06-13 16:03:34}, - priority = {2}, - title = {{Imaging Seismic Tomography in Sensor Network}}, - year = {2013} -} - -@article {atm10, -author = {Artman, Brad and Podladtchikov, Igor and Witten, Ben}, -title = {Source location using time-reverse imaging}, -journal = {Geophysical Prospecting}, -volume = {58}, -number = {5}, -publisher = {Blackwell Publishing Ltd}, -issn = {1365-2478}, -url = {http://dx.doi.org/10.1111/j.1365-2478.2010.00911.x}, -doi = {10.1111/j.1365-2478.2010.00911.x}, -pages = {861-873}, -keywords = {Diffractor, Sigsbee, Source location, Time-reverse modelling, Wavefield propagation}, -year = {2010}, -} - -@inproceedings {SLK-SEG2015, -title = {Real-time In-situ Seismic Imaging: {Overview} and Case Study}, -booktitle = {85th Annual International Meeting, SEG, Expanded Abstracts}, -year = {2015}, -author = {W[] Song and L[] Shi and G[] Kamath}, -pages = {submitted} -} - -@inproceedings {meabs15b, -title = {Real-time In-situ Seismic Migration on Distributed Sensor Networks}, -booktitle = {85th Annual International Meeting, SEG, Expanded Abstracts}, -year = {2015}, -author = {J[] Sun and T[] Zhu and Y[] Chen and W[] Song and S[] Fomel}, -pages = {submitted} -} - -@article {gajewski05, -author = {Gajewski, Dirk and Tessmer, Ekkehart}, -title = {Reverse modelling for seismic event characterization}, -journal = {Geophysical Journal International}, -volume = {163}, -number = {1}, -publisher = {Blackwell Science Ltd}, -issn = {1365-246X}, -url = {http://dx.doi.org/10.1111/j.1365-246X.2005.02732.x}, -doi = {10.1111/j.1365-246X.2005.02732.x}, -pages = {276-284}, -keywords = {passive seismology, reverse modelling, seismic event localization}, -year = {2005}, -} - -@article {mcmechan82, -author = {McMechan, George A.}, -title = {Determination of source parameters by wavefield extrapolation}, -journal = {Geophysical Journal of the Royal Astronomical Society}, -volume = {71}, -number = {3}, -publisher = {Blackwell Publishing Ltd}, -issn = {1365-246X}, -url = {http://dx.doi.org/10.1111/j.1365-246X.1982.tb02788.x}, -doi = {10.1111/j.1365-246X.1982.tb02788.x}, -pages = {613-628}, -year = {1982}, -} - -@article{witten11, -author = {Witten, Ben and Artman, Brad}, -title = {Signal-to-noise estimates of time-reverse images}, -volume = {76}, -number = {2}, -pages = {MA1-MA10}, -year = {2011}, -doi = {10.1190/1.3543570}, -URL = {http://geophysics.geoscienceworld.org/content/76/2/MA1.abstract}, -eprint = {http://geophysics.geoscienceworld.org/content/76/2/MA1.full.pdf+html}, -journal = {Geophysics} -} - -@article{zhu2014time, - title={Time-reverse modelling of acoustic wave propagation in attenuating media}, - author={Zhu, Tieyuan}, - journal={Geophysical Journal International}, - volume={197}, - number={1}, - pages={483-494}, - year={2014}, - publisher={Oxford University Press} -} - -@Article{kremers11, -AUTHOR = {Kremers, S. and Fichtner, A. and Brietzke, G. B. and Igel, H. and Larmat, C. and Huang, L. and K\"aser, M.}, -TITLE = {Exploring the potentials and limitations of the time-reversal imaging of finite seismic sources}, -JOURNAL = {Solid Earth}, -VOLUME = {2}, -YEAR = {2011}, -NUMBER = {1}, -PAGES = {95-105}, -URL = {http://www.solid-earth.net/2/95/2011/}, -DOI = {10.5194/se-2-95-2011} -} - -@techreport{luthesis, - title={Time reversed acoustics and applications to earthquake location and salt dome flank imaging}, - author={Lu, Rongrong}, - year={2008}, - institution={Massachusetts Institute of Technology. Earth Resources Laboratory} -} - -@article {kaoshan04, -author = {Kao, Honn and Shan, Shao-Ju}, -title = {The Source-Scanning Algorithm: mapping the distribution of seismic sources in time and space}, -journal = {Geophysical Journal International}, -volume = {157}, -number = {2}, -publisher = {Blackwell Science Ltd}, -issn = {1365-246X}, -url = {http://dx.doi.org/10.1111/j.1365-246X.2004.02276.x}, -doi = {10.1111/j.1365-246X.2004.02276.x}, -pages = {589-594}, -keywords = {ETS tremors, seismic source distribution, Source-Scanning Algorithm}, -year = {2004}, -} - -@Article{cerjan, - author = {C[] Cerjan and D[] Kosloff and R[] Kosloff and M[] Reshef}, - title = {A Nonreflecting boundary condition for discrete acoustic and elastic wave equations}, - journal = {Geophysics}, - year = 1985, - volume = 50, - pages = {705-708} -} - -@Article{reshef, - author = {M[] Reshef and D[] Kosloff and M[] Edwards and C[] Hsiung}, - title = {Three-dimensional acoustic modeling by the {F}ourier method}, - journal = {Geophysics}, - year = 1988, - volume = 53, - pages = {1175-1183} -} - -@ARTICLE{marmousi, - author = {R[] Versteeg}, - title = {The {Marmousi} experience: {Velocity} model determination on a synthetic complex data set}, - journal = {The Leading Edge}, - year = {1994}, - volume = {13}, - number = {9}, - publisher = {EAGE}, - pages = {927-936} -} - -@ARTICLE{loewenthal76, - author = {D[] Loewenthal and L[] Lu and R[] Roberson and J[] Sherwood}, - title = {The Wave equation applied to Migration}, - journal = {Geophysical Prospecting}, - year = {1976}, - volume = {24}, - pages = {380-399}, - publisher = {EAGE} -} - -@article{rentsch2006fast, - title={Fast location of seismicity: A migration-type approach with application to hydraulic-fracturing data}, - author={Rentsch, S and Buske, S and L{\"u}th, S and Shapiro, SA}, - journal={Geophysics}, - volume={72}, - number={1}, - pages={S33-S40}, - year={2006}, - publisher={Society of Exploration Geophysicists} -} - -@article{rentsch2010migration, - title={{Migration-based location of seismicity recorded with an array installed in the main hole of the San Andreas Fault Observatory at Depth (SAFOD)}}, - author={Rentsch, S and Buske, S and Gutjahr, S and Kummerow, J and Shapiro, SA}, - journal={Geophysical Journal International}, - volume={182}, - number={1}, - pages={477-492}, - year={2010}, - publisher={Oxford University Press} -} - -@article{fink2006time, - title={Time-reversal acoustics in complex environments}, - author={Fink, Mathias}, - journal={Geophysics}, - volume={71}, - number={4}, - pages={SI151-SI164}, - year={2006}, - publisher={Society of Exploration Geophysicists} -} - - -@ONLINE{Doe:2009:Online, -author = {Doe, Ringo}, -title = {This is a test entry of type {@ONLINE}}, -month = jun, -year = {2009}, -url = {http://www.test.org/doe/} -} diff --git a/book/tccs/micro/paper.tex b/book/tccs/micro/paper.tex deleted file mode 100755 index 4615e639c..000000000 --- a/book/tccs/micro/paper.tex +++ /dev/null @@ -1,132 +0,0 @@ -\published{SEG Expanded Abstracts, 2485-2490, (2015)} - -\title{Investigating the possibility of locating microseismic sources using distributed sensor networks} -\author{Junzhe Sun, Tieyuan Zhu, Sergey Fomel, The University of Texas at Austin, and Wen-Zhan Song, Georgia State University} - -\maketitle - -\lefthead{Sun et al.} -\righthead{Source location imaging} -\footer{TCCS} - -\begin{abstract} -Distributed sensor networks are designed to provide computation in-situ and in real-time. The conventional time-reversal imaging approach for microseismic event location may not be optimal for such an environment. To address this challenge, we develop a methodology of locating multiple microseismic events with unknown start times based on the cross-correlation imaging condition borrowed from active-source seismic imaging. The imaging principle states that a true microseismic source must correspond to the location where all the backward-propagated events coincide in both space and time. Instead of simply stacking the backward-propagated seismic wavefields, as suggested by time-reversal imaging, we perform multiplication reduction to compute a high-resolution microseismicity map. The map has an extra dimension of time, indicating the start times of different events. Combined with a distributed sensor network, our method is designed for monitoring microseismic activities and mapping fracture development during hydraulic fracturing in-situ and in real-time. We use numerical examples to test the ability of the proposed technique to produce high-resolution images of microseismic locations. -\end{abstract} - -\section{Introduction} -The development of unconventional reservoirs relies on hydraulic fracturing, a technique that stimulates fracture network and enhances permeability by injecting high-pressure fluids into production formations \cite[]{montgomery10}. Microseismic monitoring is currently the only technique that can provide real-time information about the geometry of stimulated fracture network \cite[]{maxwellbook}. The key task in microseismic monitoring is locating microseismic events. The traditional method for microseismic imaging is arrival-time inversion with traveltime picking adopted from earthquake seismology \cite[]{gibowicz13}. However, the microseismic data often contain unidentifiable P or S-wave signals emerging from strong background noise, e.g., surface microseismic data \cite[]{duncan10}. This makes traveltime picking challenging. - -%Existing methods for microseismic imaging stems from either global seismology or exploration seismology, such as arrival-time inversion \cite[]{gibowicz13}, Kirchhoff migration or coherence scanning \cite[]{duncan10,jeremy14}, seismic interferometry \cite[]{schuster04} and time-reversal imaging \cite[]{luthesis}. More sophisticated methods such as full-waveform inversion have also been proposed recently to provide solutions for both event location and focal mechanism \cite[]{song11}. One technical difficulty for microseismic imaging is the unknown start times of microseismic events, and multiple events from one perforation stage are usually clustered. Detecting and discerning each hypocenter therefore require the microseismic image to be high-resolution in both space and time. - -Recently progress has been made in locating seismic sources with minimum or without traveltime picking. \cite{rentsch2006fast} and \cite{rentsch2010migration} developed a source location method inspired by Gaussian-beam migration, which has low sensitivity to picking precision. \cite{kaoshan04} introduced a source-scanning algorithm in which data are aligned and stacked based on the traveltime from speculative image points in a manner similar to diffraction-stack (Kirchhoff) migration. Instead of using traveltimes, \cite{gajewski05} back propagated full-waveform data by reverse-time modeling \cite[]{mcmechan82}. \cite{atm10} and \cite{witten11} generalized this approach using P- and S-waves. \cite{zhu2014time} improved the source properties by applying attenuation compensation. Time-reversal imaging is capable of inferring both the location and the start time of a point source, however, it may fail to locate rupture propagation \cite[]{kremers11}, i.e., multiple sources clustered along the time axis. Detecting and discerning each hypocenter therefore requires an evolving microseismic image that has high-resolution in both space and time. - -Distributed sensor networks are designed to perform computation in-situ and in real-time. Recently, they have been used for seismic tomography based on the advanced wireless sensor network technology and distributed computing algorithms \cite[]{SSXX-SECON2013,SLK-SEG2015}. Instead of collecting data to a central place for processing, the distributed seismic data processing and computing can be performed on a single sensor or locally on a few sensors. The results are then gathered for real-time visualization. Employing distributed sensor networks for microseismic monitoring requires a distributed microseismic location algorithm. - -In this paper, we develop a distributed microseismic imaging algorithm that is inspired by both passive-source time-reversal imaging and active-source migration imaging. The key innovation is that the imaging principle requires that the imaged hypocenters must correspond to locations where all the wavefields individually backward-propagated from each receiver coincide in both space and time. Our method should be capable of producing high-resolution images of multiple source locations, even when the signal-to-noise ratio (SNR) is low. The processing framework detailed in this paper is naturally suited for distributed sensor networks. -%can utilize various types migration methods, such as Kirchhoff-migration and reverse-time migration (RTM). It - -%The paper is organized as follows. First we introduce the proposed cross-correlation imaging condition for locating seismic sources and establish a connection with time-reversal imaging. Next, using numerical examples, we demonstrate that our methods is capable of accurately image multiple microseismic locations with unknown start times. We also provide possible solutions to improve microseismic image quality when the data suffers from low signal-to-noise (S/N) ratio. Finally, we discuss the possible application of the proposed framework to real-time in-situ microseismic monitoring on distributed sensor network. -We first introduce the cross-correlation imaging condition for locating microseismic sources and establish a connection with time-reversal imaging. Synthetic examples are used to test the ability of the proposed approach to image multiple microseismic locations at once. We discuss a possible application of the proposed framework to real-time in-situ microseismic monitoring on distributed sensor networks. - -\section{Theory} -\inputdir{.} -In prestack seismic reflection imaging, a reflector is imaged when the source wavefield coincides with the receiver wavefield in both space and time \cite[]{IEI}. For poststack or zero-offset data, reflectors can be imaged using the exploding reflector concept \cite[]{loewenthal76}. The imaging condition of exploding reflector is similar to that of time-reversal imaging, which states that the backward-propagated wavefield at zero time corresponds to the reflectors/sources. The principle of time-reversal imaging can be used for locating passive earthquake hypocenters \cite[]{gajewski05}. All the aforementioned imaging conditions require the start times of seismic sources to be available, which is not the case for microseismic data. Therefore, most existing time-reversal imaging algorithms need to perform scanning and picking on a group of potential start times \cite[]{fink2006time,maxwellbook}. - -Motivated by the development of distributed sensor networks, we propose to adopt the imaging principle of prestack migration for locating microseismic hypocenters. We treat the wavefield back propagated from each individual receiver as an independent wavefield, and define microseismic hypocenters as the locations where all the wavefields coincide in both space and time. The imaging condition is formulated as a multiplication reduction of all the back propagated wavefields, calculated using data from each receiver: -\begin{equation} -\label{eq:ic-mult} -I(\mathbf{x},t) = \prod\limits_{i=0}^{N-1} R_i(\mathbf{x},t) \; . -\end{equation} -A similar technique was developed by Nakata (2015, personal communication). Assuming the velocity model is accurate and data contains zero noise, the image $I(\mathbf{x},t)$ should have non-zero values only if all the backward-propagated wavefields are non-zero at location $\mathbf{x}$ and time $t$, i.e., the starting of an earthquake. When noise is present in the data, extra non-zero values might appear in the image. However, as long as the noise has certain randomness, the amplitude of these false image points will be much weaker than those generated by coherent signal, and thresholding can effectively separate the non-zero values result from noise. The image $I(\mathbf{x},t)$ calculated by equation~\ref{eq:ic-mult} therefore indicates the seismicity at time $t$. The resolution of the image depends on the frequency content of the wavefields. - -The conventional time-reversal imaging can be formulated in a similar fashion. Instead of performing multiplication, the image is produced by summing over all the receiver wavefields: -\begin{equation} -\label{eq:ic-sum} -I(\mathbf{x},t) = \sum\limits_{i=0}^{N-1} R_i(\mathbf{x},t) \; . -\end{equation} -In practice, this is done by backward-propagating all the data at once and the summation is implicit. When applied to microseismic data from multiple sources, it is usually a challenging task to pick the hypocenters from the complicated wavefield, especially when the data has a low SNR. - -The cross-correlation imaging condition (equation~\ref{eq:ic-mult}) and time-reversal imaging condition (equation~\ref{eq:ic-sum}) represent two extremes. The image produced by equation~\ref{eq:ic-mult} is high-resolution and easy to pick, since only non-zero values in the image correspond to hypocenters. However, it requires propagating the wavefields using data from each receiver separately, and thus is computationally intensive. Equation~\ref{eq:ic-sum}, on the other hand, requires essentially only one computation using the entire data set, but has less resolving power and is less suitable for distributed networks. A hybrid imaging condition would combine the merits of the two: -\begin{equation} -\label{eq:ic-hyb} -I(\mathbf{x},t) = \prod\limits_{j=0}^{N/n-1} \sum\limits_{k=0}^{n-1} R_{j \times n+k}(\mathbf{x},t) \; , -\end{equation} -where $n$ is the local summation window length. Length $n$ should be selected such that neighboring receivers are backward-propagated together while far-apart receivers are cross-correlated. Equation~\ref{eq:ic-hyb} requires $N/n$ computations of reverse-time modeling. In principle, both equation~\ref{eq:ic-mult} and \ref{eq:ic-hyb} need to perform cross-correlation using at least three wavefields to constrain one point in space. Schematically, the differences between the three imaging conditions is shown in Figure~\ref{fig:ic}. - -\plot{ic}{width=0.45\textwidth}{Different imaging conditions for locating microseismic sources. A homogeneous medium and four receiver stations are assumed. A hybrid imaging condition calculates local summation before applying cross-correlation. In practice, the summation is performed implicitly by back propagating data from several neighboring receivers at once.} - -A movie of accumulated seismicity can be generated by performing an integration over time: -\begin{equation} -\label{eq:ic-int} -M(\mathbf{x},t) = \int \limits_0^t I(\mathbf{x},\tau) d\tau \; , -\end{equation} -Movie $M(\mathbf{x},t)$ is an evolving map of microseismicity in time that could be used to indicate rupture propagation. An image of all the sources corresponds the last instance of $M(\mathbf{x},t)$. - -\section{Numerical Examples} - -In the following examples we demonstrate the performance of the proposed method using two synthetic data experiments. We employ the pseudo-spectral method \cite[]{reshef} to solve the acoustic wave equation, with an exponential decay absorbing boundary condition \cite[]{cerjan}. The seismic sources are assumed to be a Ricker wavelet with a peak frequency of $20\;Hz$. The examples involve a number of simplifications but are designed simply to test the concept of microseismic imaging by cross-correlation imaging condition. - -%\inputdir{cross} -%\plot{sov}{width=0.4\textwidth}{Microseismic source locations overlaid on velocity model.\label{fig:3layersov}} -%\plot{datatrace}{width=0.4\textwidth}{Noise-Free microseismic data from three-layer model.\label{fig:data3lclean}} -%\plot{location0}{width=0.4\textwidth}{Imaged microseismic source locations using cross-correlation imaging condition of noise-free data.\label{fig:3layerloc1}} -%\inputdir{noise} -%\plot{location0}{width=0.4\textwidth}{Imaged microseismic source locations using cross-correlation imaging condition of noisy data.\label{fig:3layerloc2}} -%\plot{datatrace}{width=0.4\textwidth}{Noisy microseismic data from three-layer model.\label{fig:data3lnoisy}} -%\inputdir{hyb} -%\plot{location0}{width=0.4\textwidth}{Imaged microseismic source locations using hybrid imaging condition of noisy data.\label{fig:3layerloc2}} - -%\begin{figure*}[ht!] -% \centering -% \subfigure[]{\includegraphics[height=0.15\textheight]{cross/Fig/sov} -% \label{fig:sov}} -% \subfigure[]{\includegraphics[height=0.15\textheight]{cross/Fig/datatrace-clean} -% \label{fig:datatrace-clean}} -% \subfigure[]{\includegraphics[height=0.15\textheight]{cross/Fig/datatrace-noisy} -% \label{fig:datatrace-noisy}} -% \caption{(a) Microseismic source locations overlaid on a three-layer velocity model. (b) Noise-Free microseismic data from three-layer model. (c) Noisy microseismic data from three-layer model. The traces displayed on the right correspond to $X=1050\;m$.} -% \label{threelayer} -%\end{figure*} -\inputdir{cross} -\multiplot{3}{sov,datatrace-clean,datatrace-noisy}{height=0.145\textheight}{(a) Microseismic source locations overlaid on a three-layer velocity model. (b) Noise-Free microseismic data from three-layer model. (c) Noisy microseismic data from three-layer model. The traces displayed in the right panel correspond to $X=1050\;m$.} -\multiplot{3}{location0-clean,location0-noisy,location0-hyb}{height=0.145\textheight}{(a) Microseismic source locations imaged by the cross-correlation imaging condition using noise-free data. (b) Microseismic source locations imaged by the cross-correlation imaging condition using noisy data. (c) Microseismic source locations imaged by the hybrid imaging condition using noisy data.} - -\subsection{Three-layer model} - -In the first example, we used a three-layer model with six assumed microseismic sources located within the middle layer (Figure~\ref{fig:sov}). The model is discretized on a $140 \times 140$ grid with $15\;m$ spacing in both vertical and horizontal directions. The model has sharp velocity contrasts, which generate multiple reflection events in both forward and backward propagation. - -We first use noise-free data (Figure~\ref{fig:datatrace-clean}) to test the sensitivity of the cross-correlation imaging condition to stratigraphic boundaries, which are common in unconventional reservoirs. We use data from only 10 surface stations starting from $X=75\;m$ and ending at $X=1965\;m$, with an interval of $210\;m$. After individually backward-propagating the receiver wavefields and applying the cross-correlation imaging condition (equation~\ref{eq:ic-mult}), we obtain a clean, high-resolution image which accurately locates all the correct hypocenters (Figure~\ref{fig:location0-clean}). - -Next we introduce a strong random noise into the data (Figure~\ref{fig:location0-noisy}) to test the sensitivity of the method in such a setting. By keeping the number of receivers unchanged, the final image contains some false image points clustered around reflection boundaries. Additionally, although the image still contains all the true hypocenters, they are not well focused, i.e., some of the true hypocenters split across neighboring points. - -To remove the artifacts caused by a low SNR, we employ the hybrid imaging condition (equation~\ref{eq:ic-hyb}) by including five receivers in one station. For example, the station at $X=75\;m$ now includes five receivers with an interval of $15\;m$. We still perform ten backward propagations, with each wavefield using data from five neighboring receivers. The image contains significantly less artifacts, with only one defocused point corresponding to the rightmost hypocenter (Figure~\ref{fig:location0-hyb}). - -\inputdir{marm} -\plot{sov}{height=0.16\textheight}{Microseismic source locations overlaid on Marmousi velocity model. A total of three stages of microseismicity are assumed, each with six hypocenters. \label{fig:marmsov}} -\plot{datatrace}{height=0.16\textheight}{Noisy microseismic data from Marmousi model. The trace in the right panel corresponds to $X=1.2\;km$.\label{fig:datamarm}} -%\multiplot{2}{location0,location}{width=0.4\textwidth}{Imaged microseismic source locations using hybrid imaging condition of: (a) noisy data from surface array; (b) noisy data from both surface array and downhole sensors. \label{fig:marmloc}} -\multiplot{6}{stage0-1,stage0-2,stage0-3,stage-1,stage-2,stage-3}{height=0.15\textheight}{Accumulated microseismicity calculated by the hybrid imaging condition using: (a)-(c) noisy data from surface array; (d)-(f) noisy data from both surface array and downhole sensors. Each column is produced after one stage of perforation. \label{fig:marmloc}} - -\subsection{Marmousi model} - -For the second example, we create a somewhat more realistic scenario by using a portion of the Marmousi velocity model \cite[]{marmousi}. The model dimension is $200 \times 200$ with a spatial sampling rate of $8\;m$ along the vertical direction and $12\;m$ along the horizontal direction. The model features a series of nearly parallel stratigraphic layers. To mimic an imaginary hydraulic fracturing process, we design three periods of assumed microseismicity propagating from left to right with a total of eighteen hypocenters, which corresponds to three stages of perforations (Figure~\ref{fig:marmsov}). The data has a high level of random background noise (Figure~\ref{fig:datamarm}). We employ the hybrid imaging condition using ten stations starting from $X=0\;m$ with a spacing of $240\;m$. Each station is again comprised of five neighboring sensors with an interval of $12\;m$. The images computed from the surface array data accurately locates all the hypocenters, and evolve with time according to equation~\ref{eq:ic-int} (Figures~\ref{fig:stage0-1}, \ref{fig:stage0-2} and \ref{fig:stage0-3}). - -So far we have been focusing on using data from surface arrays. Recently, there is a growing use of multiple monitoring configurations such as combining downhole arrays with surface sensors to provide better wavefield sampling \cite[]{maxwellbook}. If available, data from downhole arrays/sensors can actually help improve the spatial resolution of imaged source locations, particularly in the vertical direction. In the last test, we combine data from the original surface arrays with data from four extra downhole sensors located at $X=0\;km$ and $Z=[0.24\;km,\;0.64\;km,\;1.04\;km,\;1.44\;km]$ respectively. The corresponding images demonstrate significantly higher vertical resolution thanks to the better sampling of the wavefield (Figures~\ref{fig:stage-1}, \ref{fig:stage-2} and \ref{fig:stage-3}). Our experiment confirms that combining surface and vertical borehole arrays can improve image resolution. - -\section{Discussion and Conclusions} - -%\subsection{Surface arrays combined with downhole arrays} -%The signal-to-noise (S/N) ratio and resolution of microseismic event location largely depend on the acquisition geometry and sampling of microseismic wavefield. Early microseismic monitoring projects employed arrays of three-component (3-C) seismic sensors in a single, near-vertcal borehole \cite[]{maxwell10a}. Monitoring arrays can also be deployed in the horizontal wells that are closer to production wells which results in improved sensitivity \cite[]{maxwell10b}. Surface monitoring arrays offer an alternative solution without the need for a monitoring well, and is particularly advantageous in places where it is not feasible to drill monitoring wells \cite[]{duncan10}. Sensors can also be installed in the near surface shallow wells to minimize the surface footprint \cite[]{maxwell03}. Recently, there is a growing use of multiple monitoring configurations such as combining downhole arrays with surface sensors to provide better wavefield sampling \cite[]{maxwellbook}. -%The resolution of microseismic event location largely depend on the acquisition geometry and sampling of seismic wavefield. Early microseismic monitoring projects employed seismic sensors in a single, near-vertical borehole \cite[]{maxwell10a}. Surface monitoring arrays later offer an alternative solution without the need for a monitoring well \cite[]{duncan10}. Recently, there is a growing use of multiple monitoring configurations such as combining downhole arrays with surface sensors to provide better wavefield sampling \cite[]{maxwellbook}. Our experiment confirm that combining surface and vertical borehole arrays will improve image resolution. - -Real-time microseismic monitoring provides invaluable information about stimulated fracture networks during hydraulic fracturing. Recently, wireless sensor networks have emerged as an effective tool for surface monitoring \cite[]{SHXM-MOBISYS2009}. Wireless networks are easier to deploy than wired networks. Additionally, the computation and communication capabilities of sensor nodes can be utilized for in-situ data processing in real-time \cite[]{KSS-DCOSS2013,SLK-SEG2015}. To enable microseismic monitoring using computation on distributed sensor networks, we have presented an approach where wavefield propagation can be performed independently using data collected by each station. Future research involves optimizing image reduction under the constraint of the wireless network resources (bandwidth, energy, computing power, memory, etc). - -A cross-correlation imaging condition for locating microseismic hypocenters is capable of producing high-resolution images in both space and time, and is robust with respect to noise when used in a hybrid formulation. Combined with a distributed sensor network, the proposed technique should be able to provide real-time in-situ microseismic monitoring of stimulated fracture network during hydraulic fracturing. - -\section{Acknowledgments} -We thank Nori Nakata and Yangkang Chen for helpful discussions. We thank TCCS sponsors for financial support. The first author is supported additionally by the Statoil Fellows Program at UT Austin. The second author is supported by the Jackson School Distinguished Postdoctoral Fellowship at UT Austin. The fourth author acknowledges the support of the JTO faculty fellowship in the ICES at UT Austin. - -%\onecolumn - -\bibliographystyle{seg} -\bibliography{micro}