mirror of
https://github.com/HongjianFang/DSurfTomo.git
synced 2025-12-11 09:08:52 +08:00
incorporating random projections based inversion using Poisson Voronoi cells
This commit is contained in:
@@ -8,10 +8,11 @@ import numpy as np
|
||||
#start
|
||||
nx=18
|
||||
ny=18
|
||||
nz=8
|
||||
minvel=0.8
|
||||
velgrad=0.5
|
||||
dep1=np.array([0,0.2,0.4,0.6,0.8,1.1,1.4,1.8,2.5])
|
||||
#dep1=np.array([0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.1,1.3,1.5,1.8,2.1,2.5])
|
||||
nz=len(dep1)
|
||||
#end
|
||||
vs1=np.zeros(nz)
|
||||
mod=np.zeros((nz*ny,nx))
|
||||
@@ -29,4 +30,4 @@ with open('MOD','w') as fp:
|
||||
fp.write('%7.3f' % mod[k*ny+j,i])
|
||||
fp.write('\n')
|
||||
for i in range(nz):
|
||||
print dep1[i],
|
||||
print (dep1[i]),
|
||||
|
||||
69
scripts/plotcross.gmt
Normal file
69
scripts/plotcross.gmt
Normal file
@@ -0,0 +1,69 @@
|
||||
#!/bin/csh
|
||||
|
||||
#-----------------------------------------------------------
|
||||
# 2015-06-08 Hongjian Fang
|
||||
# step 1: get velicoty along the track from each depth-layer
|
||||
# step 2: combine tracks into 2D profile
|
||||
#-----------------------------------------------------------
|
||||
|
||||
# change the following parameters according to your case
|
||||
# start
|
||||
set inp3D = DSurfTomo.inMeasure.dat
|
||||
set pstart = 121.4/25.1 #start point for 2D profile
|
||||
set pend = 121.55/25.1 #end point for 2D profile
|
||||
set pstart2 = 121.5/25.0 #start point for 2D profile
|
||||
set pend2 = 121.5/25.14 #end point for 2D profile
|
||||
set ddint = 0.017/0.015 #grid interval
|
||||
# over
|
||||
set diInt = 0.5 #distance interval (km)
|
||||
set J = -JX6.0i/-1.5i #size for plot
|
||||
set cpt = slice.cpt
|
||||
set ps = figcross.ps
|
||||
gmt makecpt -Cjet -I -T0.5/2.5/0.1 > $cpt #velocity boundary
|
||||
|
||||
# start
|
||||
set pro2d = tmp.profile.xzv
|
||||
set RMAP = `gmt gmtinfo -C $inp3D | awk '{print "-R"$1"/"$2"/"$3"/"$4}'`
|
||||
rm -fr $pro2d
|
||||
|
||||
foreach layer(`awk '{print $3}' $inp3D| uniq`)
|
||||
set llayer = `echo $layer | awk '{printf "%04d",$1*1000}'`
|
||||
awk '{if($3==j) print $1,$2,$4}' j=$layer $inp3D |gmt surface -Gtmp.grd $RMAP -I$ddint -T0
|
||||
# be careful -I: grid spacing for x/y
|
||||
gmt project -C$pstart -E$pend -G$diInt -Q > track.dat
|
||||
gmt grdtrack track.dat -Gtmp.grd | awk '{print $3,j,$4}' j=$layer > tmp.D$llayer
|
||||
cat tmp.D$llayer >> $pro2d
|
||||
end
|
||||
#
|
||||
set RMAP = `gmt gmtinfo -C $pro2d | awk '{print "-R"$1"/"$2"/"$3"/"$4}'`
|
||||
gmt surface $pro2d -Gtmp.grd $RMAP -I$ddint -T0
|
||||
#gmt grdfilter tmp.grd -D0 -Fg4 -Gtmpf.grd
|
||||
gmt grdimage tmp.grd $J $RMAP -Bf2.5a5:'Distance (km)':/f0.5a1:'Depth (km)':SenW -C$cpt -K -Y5.2i> $ps
|
||||
#gmt psscale -Cslice.cpt -Ba0.5f0.25:'Vs': -D2.5i/-0.7i/6.00/0.2h -O -K -P >> $ps
|
||||
|
||||
rm -fr tmp.D* tmp.grd tmp.profile.xzv track.dat
|
||||
|
||||
# start
|
||||
set pro2d = tmp.profile.xzv
|
||||
set RMAP = `gmt gmtinfo -C $inp3D | awk '{print "-R"$1"/"$2"/"$3"/"$4}'`
|
||||
rm -fr $pro2d
|
||||
|
||||
foreach layer(`awk '{print $3}' $inp3D| uniq`)
|
||||
set llayer = `echo $layer | awk '{printf "%04d",$1*1000}'`
|
||||
awk '{if($3==j) print $1,$2,$4}' j=$layer $inp3D |gmt surface -Gtmp.grd $RMAP -I$ddint -T0
|
||||
# be careful -I: grid spacing for x/y
|
||||
gmt project -C$pstart2 -E$pend2 -G$diInt -Q > track.dat
|
||||
gmt grdtrack track.dat -Gtmp.grd | awk '{print $3,j,$4}' j=$layer > tmp.D$llayer
|
||||
cat tmp.D$llayer >> $pro2d
|
||||
end
|
||||
#
|
||||
set RMAP = `gmt gmtinfo -C $pro2d | awk '{print "-R"$1"/"$2"/"$3"/"$4}'`
|
||||
gmt surface $pro2d -Gtmp.grd $RMAP -I$ddint -T0
|
||||
#gmt grdfilter tmp.grd -D0 -Fg4 -Gtmpf.grd
|
||||
gmt grdimage tmp.grd $J $RMAP -Bf2.5a5:'Distance (km)':/f0.5a1:'Depth (km)':SenW -C$cpt -K -O -Y-2.0i>> $ps
|
||||
gmt psscale -Cslice.cpt -Ba0.5f0.25:'Vs': -D2.5i/-0.7i/6.00/0.2h -O -P >> $ps
|
||||
|
||||
rm -fr tmp.D* tmp.grd tmp.profile.xzv track.dat
|
||||
p
|
||||
ps2pdf $ps
|
||||
|
||||
48
scripts/plotslice_std.gmt
Normal file
48
scripts/plotslice_std.gmt
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/bin/csh
|
||||
|
||||
#-----------------------------------------------------------
|
||||
# 2015-06-08 Hongjian Fang
|
||||
# how to run:
|
||||
# ./plotslice.gmt ModelFile depth1 depth2 depth3 depth4, e.g.
|
||||
# csh plotslice.gmt SurfTomo.in.tvMeasure.dat 0.2 0.4 0.8 1.4
|
||||
#-----------------------------------------------------------
|
||||
|
||||
gmt set FONT_ANNOT_PRIMARY 12
|
||||
gmt set FONT_LABEL 12
|
||||
#gmt set FRAME_WIDTH=0.1c
|
||||
#gmt set LABEL_OFFSET=0.1c
|
||||
#gmt set LABEL_FONT_SIZE=5p
|
||||
#gmt set TICK_LENGTH=0.1c
|
||||
#gmt set TICK_PEN=0.3p
|
||||
set inp3D = $1
|
||||
set ps = horizVsnew.inv_std.ps
|
||||
set J = -JM2i #size for plot
|
||||
set cpt = slice.cpt
|
||||
|
||||
# start
|
||||
gmt makecpt -Cgray -D -I -T0.0/0.5/0.05 > $cpt #velocity boundary
|
||||
set RMAP = `gmt gmtinfo -C $inp3D | awk '{print "-R"$1"/"$2"/"$3"/"$4}'`
|
||||
gmt psbasemap $RMAP $J -Ba0.1f0.05Wsen -P -K -Y5i >$ps
|
||||
awk '{if($3==depth1) print $1,$2,$4}' depth1=$2 $inp3D|gmt xyz2grd -R -I0.017/0.015 -Gtmp.grd
|
||||
gmt grdimage tmp.grd $J $RMAP -BSenW -E100 -C$cpt -O -K >> $ps
|
||||
rm -rf tmp.grd
|
||||
#gmt psscale -Cslice.cpt -Ba0.1f0.05:'S velocity (km/s)': -D1.0i/-0.15i/3.00/0.2h -O -K -P >> $ps
|
||||
|
||||
#gmt makecpt -Cseis -D -T0.8/1.8/0.1 > $cpt #velocity boundary
|
||||
gmt psbasemap $RMAP $J -Ba0.1f0.05nwse -P -K -O -X2.3i >>$ps
|
||||
awk '{if($3==depth2) print $1,$2,$4}' depth2=$3 $inp3D|gmt xyz2grd -R -I0.017/0.015 -Gtmp.grd
|
||||
gmt grdimage tmp.grd $J $RMAP -BSenW -E100 -C$cpt -O -K >> $ps
|
||||
#gmt psscale -Cslice.cpt -Ba0.2f0.1:'S velocity (km/s)': -D1.0i/-0.15i/3.00/0.2h -O -K -P >> $ps
|
||||
|
||||
#gmt makecpt -Cseis -D -T1.1/2.0/0.1 > $cpt #velocity boundary
|
||||
gmt psbasemap $RMAP $J -Ba0.1f0.05WneS -P -K -O -Y-2.3i -X-2.3i >>$ps
|
||||
awk '{if($3==depth2) print $1,$2,$4}' depth2=$4 $inp3D|gmt xyz2grd -R -I0.017/0.015 -Gtmp.grd
|
||||
gmt grdimage tmp.grd $J $RMAP -BSenW -E100 -C$cpt -O -K >> $ps
|
||||
#gmt psscale -Cslice.cpt -Ba0.2f0.1:'S velocity (km/s)': -D1.0i/-0.25i/3.00/0.2h -O -K -P >> $ps
|
||||
|
||||
#gmt makecpt -Cseis -D -T1.3/2.4/0.1 > $cpt #velocity boundary
|
||||
gmt psbasemap $RMAP $J -Ba0.1f0.05Swne -P -K -O -X2.3i >>$ps
|
||||
awk '{if($3==depth2) print $1,$2,$4}' depth2=$5 $inp3D|gmt xyz2grd -R -I0.017/0.015 -Gtmp.grd
|
||||
gmt grdimage tmp.grd $J $RMAP -BSenW -E100 -C$cpt -O -K >> $ps
|
||||
gmt psscale -Cslice.cpt -Ba0.2f0.1:'Vs std (km/s)': -D1.0i/-0.35i/3.00/0.2h -O -P >> $ps
|
||||
|
||||
Reference in New Issue
Block a user