ããã°ã®äœè
ã«æè¬
å°å ¥
ãã®ã¡ã¢ã¯äŒè°åŸã«æžããããã®ã§ã
ç§ã®ã¹ããŒãã®äž»é¡ã«ç§»ãåã«ããã®ã€ãã³ãã®æ§æãåªããŠããããšã«æ³šç®ããããšæããŸãã äŒè°ã®èšªåããŒãžã«ã¯ã«ã¶ã³å€§èå ã®ç»åã䜿çšãããŠããŸãã 倧èå ã¯ãµã³ã¯ãããã«ãã«ã¯ã®äž»èŠãªèŠ³å ã¹ãããã® XNUMX ã€ã§ãããäŒè°ãè¡ãããããŒã«ããéåžžã«ã¯ã£ãããšèŠããŸãã
ãµã³ã¯ãããã«ãã«ã¯å·ç«çµæžå€§åŠã®å
¥ãå£ã§ãåå è
ã¯åŠçã®äžããéžã°ããã¢ã·ã¹ã¿ã³ãã«åºè¿ããããéã«è¿·ãããšã¯èš±ãããŸããã§ããã ç»é²äžã«å°ããªãåç£ãé
ãããŸããïŒããã¡ã - ç¹æ»
ããã¹ãã€ã¯ããã³ãWolframã®ã·ã³ãã«ãå
¥ã£ãã¹ããã«ãŒïŒã æŒé£ãšã³ãŒããŒãã¬ã€ã¯ãäŒè°ã®ã¹ã±ãžã¥ãŒã«ã«å«ãŸããŠããŸããã ã°ã«ãŒãã®å£ã«ããããããã³ãŒããŒãšãã€ã«ã€ããŠã¯ãã§ã«æžããŸããããã·ã§ãã¯çŽ æŽãããã§ãã ãã®å°å
¥éšã§ã¯ãã€ãã³ãèªäœããã®åœ¢åŒãå Žæããã§ã«ããžãã£ããªææ
ããããããŠããããšã匷調ããããšæããŸãã
ç§ãšããªã«ã»ããããäœæããã¬ããŒãã¯ãWolfram Mathematica ã䜿çšããŠå¿çšå°çç©çåŠã®åé¡ã解決ããããšåŒã°ããŠããŸãã å°éããŒã¿ãŸãã¯ãå€ä»£ã®å·ãæµããŠããå Žæãã®ã¹ãã¯ãã«åæã ã¬ããŒãã®å
容㯠XNUMX ã€ã®éšåã§æ§æãããŠããŸãããŸãã次㮠XNUMX ã€ã®éšåã§å©çšå¯èœãªã¢ã«ãŽãªãºã ã®äœ¿çšã«ã€ããŠèª¬æããŸãã
å°éæ¢æ»
ãŸããå°çç©çåŠã«ã€ããŠç°¡åã«èª¬æããå¿ èŠããããŸãã å°çç©çåŠã¯ã岩ç³ã®ç©ççæ§è³ªãç 究ããç§åŠã§ãã ããŠã岩ç³ã«ã¯é»æ°ãç£æ°ã匟æ§ãªã©ã®ããŸããŸãªç¹æ§ããããããé»æ°æ¢æ»ãç£æ°æ¢æ»ãå°éæ¢æ»ãªã©ã察å¿ããå°çç©çåŠã®æ¹æ³ããããŸã...ãã®èšäºã§ã¯ãå°éæ¢æ»ã«ã€ããŠã®ã¿è©³ãã説æããŸãã å°éæ¢æ»ã¯ç³æ²¹ãšã¬ã¹ãæ¢ãäž»ãªæ¹æ³ã§ãã ãã®æ¹æ³ã¯ã匟æ§æ¯åã®å±èµ·ãšãã®åŸã®èª¿æ»å°åãæ§æãã岩ç³ããã®å¿çã®èšé²ã«åºã¥ããŠããŸãã æ¯åã¯ãéžäž (ãã€ããã€ããŸãã¯åŒŸæ§æ¯åã®éççºæ§æ¯åæºã䜿çš) ãŸãã¯æµ·äž (ãšã¢ã¬ã³) ã§å±èµ·ãããŸãã 匟æ§æ¯åã¯å²©ç€äžãäŒæããç°ãªãæ§è³ªãæã€å±€ã®å¢çã§å±æããã³åå°ãããŸãã åå°æ³¢ã¯å°è¡šã«æ»ããéžäžã®åæ¯åš (éåžžã¯ã³ã€ã«å ã«åãäžããããç£ç³ã®åãã«åºã¥ãé»æ°ååŠçè£ çœ®) ãŸãã¯æµ·ã®æ°ŽäžèŽé³åš (å§é»å¹æã«åºã¥ã) ã«ãã£ãŠèšé²ãããŸãã æ³¢ãå°éããæéã«ãã£ãŠãå°å±€ã®æ·±ããå€æã§ããŸãã
å°éæ¢æ»è¹æ³èªè£
眮
ãšã¢ã¬ã³ã¯åŒŸæ§æ¯åãå±èµ·ããŸã
æ³¢ã¯å²©å¡ãééããæ°ŽäžèŽé³åšã«ãã£ãŠèšé²ãããŸã
ãµã³ã¯ãããã«ãã«ã¯ã®ãã©ãŽãŽã§ã·ãã§ã³ã¹ããŒæ©è¿ãã®æ¡æ©ã«ããå°çç©çæ¢æ»ç 究è¹ãã€ã¯ã³ã»ã°ããã³ã
å°éä¿¡å·ã¢ãã«
岩ç³ã«ã¯ããŸããŸãªç©ççæ§è³ªããããŸãã å°éæ¢æ»ã§ã¯ã匟æ§ç¹æ§ãã€ãŸã匟æ§æ¯åã®äŒæé床ãšå¯åºŠãäž»ã«éèŠã§ãã XNUMX ã€ã®å±€ãåããŸãã¯é¡äŒŒã®ç¹æ§ãæã£ãŠããå Žåãæ³¢ã¯ãããã®å±€ã®éã®å¢çããèªèããŸãããã å±€å ã®æ³¢ã®é床ãç°ãªãå Žåãå±€ã®å¢çã§åå°ãçºçããŸãã ç¹æ§ã®å·®ã倧ããã»ã©ãåå°ã¯åŒ·ããªããŸãã ãã®åŒ·åºŠã¯åå°çä¿æ° (rc) ã«ãã£ãŠæ±ºãŸããŸãã
ããã§ãÏ ã¯å²©ç³ã®å¯åºŠãÎœ ã¯æ³¢ã®é床ã1 ãš 2 ã¯äžå±€ãšäžå±€ã瀺ããŸãã
æãåçŽã§æãé »ç¹ã«äœ¿çšãããå°éä¿¡å·ã¢ãã«ã® XNUMX ã€ã¯ç³ã¿èŸŒã¿ã¢ãã«ã§ãããã®ã¢ãã«ã§ã¯ãèšé²ãããå°éçè·¡ãäžé£ã®åå°ä¿æ°ãšãããŒã ãã«ã¹ã®ç³ã¿èŸŒã¿ã®çµæãšããŠè¡šãããŸãã
ããã§ãs(t) â å°éã®çè·¡ãã€ãŸãäžå®ã®é²é³æéå
ã«æ°ŽäžèŽé³åšãŸãã¯åæ¯åšã«ãã£ãŠé²é³ããããã¹ãŠã®ãã®ã w(t) - ãšã¢ã¬ã³ã«ãã£ãŠçæãããä¿¡å·ã n(t) - ã©ã³ãã ãªãã€ãºã
äŸãšããŠåæå°éçè·¡ãèšç®ããŠã¿ãŸãããã åæä¿¡å·ãšããŠãå°éæ¢æ»ã§åºã䜿çšãããŠãããªãã«ãŒ ãã«ã¹ã䜿çšããŸãã
length=0.050; (*Signal lenght*)
dt=0.001;(*Sample rate of signal*)
t=Range[-length/2,(length)/2,dt];(*Signal time*)
f=35;(*Central frequency*)
wavelet=(1.0-2.0*(Pi^2)*(f^2)*(t^2))*Exp[-(Pi^2)*(f^2)*(t^2)];
ListLinePlot[wavelet, Frame->True,PlotRange->Full,Filling->Axis,PlotStyle->Black,
PlotLabel->Style["Initial wavelet",Black,20],
LabelStyle->Directive[Black,Italic],
FillingStyle->{White,Black},ImageSize->Large,InterpolationOrder->2]
åæå°éæšå
300 ms ãš 600 ms ã®æ·±ãã« XNUMX ã€ã®å¢çãèšå®ããåå°ä¿æ°ã¯ä¹±æ°ã«ãªããŸãã
rcExample=ConstantArray[0,1000];
rcExample[[300]]=RandomReal[{-1,0}];
rcExample[[600]]=RandomReal[{0,1}];
ListPlot[rcExample,Filling->0,Frame->True,Axes->False,PlotStyle->Black,
PlotLabel->Style["Reflection Coefficients",Black,20],
LabelStyle->Directive[Black,Italic]]
åå°ä¿æ°ã®ç³»å
å°éçè·¡ãèšç®ããŠè¡šç€ºããŠã¿ãŸãããã åå°ä¿æ°ã®ç¬Šå·ãç°ãªããããå°éè»è·¡äžã§ XNUMX ã€ã®äº€äºã®åå°ãåŸãããŸãã
traceExamle=ListConvolve[wavelet[[1;;;;1]],rcExample];
ListPlot[traceExamle,
PlotStyle->Black,Filling->0,Frame->True,Axes->False,
PlotLabel->Style["Seismic trace",Black,20],
LabelStyle->Directive[Black,Italic]]
ã·ãã¥ã¬ãŒãããããã©ãã¯
ãã®äŸã§ã¯ãäºçŽããå¿
èŠããããŸããå®éã«ã¯ãå±€ã®æ·±ãã¯ãã¡ããã¡ãŒãã«åäœã§æ±ºå®ãããå°éçè·¡ã®èšç®ã¯æéé åã§è¡ãããŸãã æ·±ããã¡ãŒãã«åäœã§èšå®ããå±€å
ã®é床ãç¥ã£ãŠå°çæéãèšç®ããæ¹ãæ£ç¢ºã§ãã ä»åã¯æ©éæé軞äžã«ã¬ã€ã€ãŒãèšå®ããŠã¿ãŸããã
çŸå°èª¿æ»ã«ã€ããŠèšãã°ããã®ãããªèŠ³æž¬ã®çµæãèšå€§ãªæ°ã®åæ§ã®æç³»åïŒå°éçè·¡ïŒãèšé²ãããŸãã ããšãã°ãé·ã 25 kmãå¹ 15 km ã®ãµã€ãã調æ»ããå Žåãäœæ¥ã®çµæãåãã¬ãŒã¹ã 25x25 ã¡ãŒãã«ã®ã»ã« (ãã®ãããªã»ã«ã¯ãã³ãšåŒã°ããŸã) ãç¹åŸŽä»ãããããæçµçãªããŒã¿é åã«ã¯ 600000 ã®ãã¬ãŒã¹ãå«ãŸããããšã«ãªããŸãã ãµã³ããªã³ã°æéã 1 ããªç§ãé²é³æéã 5 ç§ã®å ŽåãæçµçãªããŒã¿ ãã¡ã€ã«ã¯ 11 GB ãè¶ ããå ã®ãçãçŽ æã®ããªã¥ãŒã ã¯æ°çŸã®ã¬ãã€ãã«ãªãå¯èœæ§ããããŸãã
圌ããšã©ã®ããã«ååããã
ããã±ãŒãž å°è³ªåŠIO
ããã±ãŒãžã®éçºãå§ãŸããŸãã
- ZMAPããã³IRAP圢åŒã®å°å³ããŒã¿ã®ã€ã³ããŒã
- LAS 圢åŒã®ãŠã§ã«ã§ã®æž¬å®å€ã®ã€ã³ããŒã
- å°éãã¡ââã€ã«åœ¢åŒã®å
¥åºå
ã»ã®
ããã±ãŒãžãã€ã³ã¹ããŒã«ããã«ã¯ãçµã¿ç«ãŠãããããã±ãŒãžã®ããŠã³ããŒã ããŒãžã®æ瀺ã«åŸãå¿
èŠããããŸãã ä»»æã®å Žæã§æ¬¡ã®ã³ãŒããå®è¡ããŸã
If[PacletInformation["GeologyIO"] === {}, PacletInstall[URLDownload[
"https://wolfr.am/FiQ5oFih",
FileNameJoin[{CreateDirectory[], "GeologyIO-0.2.2.paclet"}]
]]]
ãã®åŸãããã±ãŒãžã¯ããã©ã«ãã®ãã©ã«ããŒã«ã€ã³ã¹ããŒã«ãããŸãããã®ãã¹ã¯æ¬¡ã®ããã«ååŸã§ããŸãã
FileNameJoin[{$UserBasePacletsDirectory, "Repository"}]
äŸãšããŠãããã±ãŒãžã®äž»ãªæ©èœã瀺ããŸãã ãã®åŒã³åºãã¯äŒçµ±çã«Wolframèšèªã®ããã±ãŒãžã«å¯ŸããŠè¡ãããŸã:
Get["GeologyIO`"]
ããã±ãŒãžã¯æ¬¡ã䜿çšããŠéçºãããŠããŸã
ãã®ãããªãã¡ã€ã«ã¯ãç¹ã«ãã¡ã€ã«ãMarmousi.segyãã§ããããã¯ããã©ã³ã¹ç³æ²¹åäŒã«ãã£ãŠéçºããããå°è³ªã»ã¯ã·ã§ã³ã®åæã¢ãã«ã§ãã ãã®ã¢ãã«ã䜿çšããŠãéçºè
ã¯æ³¢åå Žã®ã¢ããªã³ã°ãããŒã¿åŠçãå°éè»è·¡ã®å転ãªã©ã®ç¬èªã®ã¢ã«ãŽãªãºã ããã¹ãããŸãã Marmousi ã¢ãã«èªäœã¯ãããã±ãŒãžèªäœãããŠã³ããŒãããããªããžããªã«ä¿åãããŸãã ãã¡ã€ã«ãååŸããã«ã¯ã次ã®ã³ãŒããå®è¡ããŸãã
If[Not[FileExistsQ["Marmousi.segy"]],
URLDownload["https://wolfr.am/FiQGh7rk", "Marmousi.segy"];]
marmousi = SEGYImport["Marmousi.segy"]
ã€ã³ããŒãçµæ - SEGYData ãªããžã§ã¯ã
SEGY 圢åŒã«ã¯ã芳枬ã«é¢ããããŸããŸãªæ
å ±ãä¿åãããŸãã ãŸãããããã¯ããã¹ãã³ã¡ã³ãã§ãã ããã«ã¯ãäœæ¥å Žæã枬å®ãè¡ã£ãäŒç€Ÿåãªã©ã®æ
å ±ãå«ãŸããŸãã ãã®äŸã§ã¯ããã®ããããŒã¯ TextHeader ããŒã䜿çšãããªã¯ãšã¹ãã«ãã£ãŠåŒã³åºãããŸãã ççž®ãããããã¹ãããããŒã¯æ¬¡ã®ãšããã§ãã
Short[marmousi["TextHeader"]]
ããã«ã ãŒã·ã®ããŒã¿ã»ããã¯ç 究æã§çæãããŸãã...æå°é床㯠1500 m/sãæ倧é床㯠5500 m/s)ã
ãtracesãããŒã䜿çšããŠå°éçè·¡ã«ã¢ã¯ã»ã¹ãããšãå®éã®å°è³ªã¢ãã«ã衚瀺ã§ããŸã (ãã®ããã±ãŒãžã®ç¹åŸŽã® XNUMX ã€ã¯ãããŒã®å€§æåãšå°æåãåºå¥ãããªãããšã§ã)ã
ArrayPlot[Transpose[marmousi["traces"]], PlotTheme -> "Detailed"]
ã¢ãã« ãã«ã ãŒã·
çŸåšããã®ããã±ãŒãžã§ã¯ã倧ããªãã¡ã€ã«ããããŒã¿ãéšåçã«ããŒãããããšãã§ããããããµã€ãºãæ°åã®ã¬ãã€ãã«éãããã¡ã€ã«ãåŠçã§ããããã«ãªããŸãã ãã®ããã±ãŒãžã®é¢æ°ã«ã¯ãããŒã¿ã .segy ã«ãšã¯ã¹ããŒããããã¡ã€ã«ã®æ«å°Ÿã«éšåçã«è¿œå ããé¢æ°ãå«ãŸããŠããŸãã
ãããšã¯å¥ã«ã.segy ãã¡ã€ã«ã®è€éãªæ§é ãæ±ãå Žåã¯ãããã±ãŒãžã®æ©èœã«æ³šç®ãã䟡å€ããããŸãã ããã«ãããããŒãšã€ã³ããã¯ã¹ã䜿çšããŠåã ã®ãã¬ãŒã¹ãšããããŒã«ã¢ã¯ã»ã¹ã§ããã ãã§ãªããããããå€æŽããŠãã¡ã€ã«ã«æžã蟌ãããšãã§ããããã§ãã GeologyIO ã®å®è£ ã®æè¡çãªè©³çŽ°ã®å€ãã¯ãã®èšäºã®ç¯å²ãè¶ ããŠãããããããå¥ã®èª¬æãå¿ èŠã§ãã
å°éæ¢æ»ã«ãããã¹ãã¯ãã«è§£æã®é¢é£æ§
å°éããŒã¿ãWolfram Mathematica ã«ã€ã³ããŒãããæ©èœã«ããïŒå®éšããŒã¿ã«çµã¿èŸŒã¿ã®ä¿¡å·åŠçæ©èœã䜿çšã§ããããã«ãªããŸãã åå°éçè·¡ã¯æç³»åãè¡šããããããããç 究ããããã®äž»ãªããŒã«ã® XNUMX ã€ã¯ã¹ãã¯ãã«åæã§ãã å°éããŒã¿ã®åšæ³¢æ°æ§æãåæããããã®åææ¡ä»¶ãšããŠã¯ãããšãã°æ¬¡ã®ãã®ãæããããšãã§ããŸãã
- ç°ãªãã¿ã€ãã®æ³¢ã¯ãç°ãªãåšæ³¢æ°æ§æã«ãã£ãŠç¹åŸŽä»ããããŸãã ããã«ãããæçšãªé»æ³¢ã匷調ããå¹²æžæ³¢ãæå¶ããããšãã§ããŸãã
- å€åæ§ã飜å床ãªã©ã®å²©ç³ã®ç¹æ§ã¯ãåšæ³¢æ°æ§æã«åœ±é¿ãäžããå¯èœæ§ããããŸãã ããã«ãããæè¯ã®ç¹æ§ãæã€å²©ç³ãèå¥ããããšãå¯èœã«ãªããŸãã
- å±€ã®åããç°ãªããšãç°ãªãåšæ³¢æ°ç¯å²ã§ç°åžžãçºçããŸãã
XNUMX çªç®ã®ãã€ã³ãã¯ããã®èšäºã®æèã«ãããäž»èŠãªãã€ã³ãã§ãã 以äžã¯ãåããç°ãªãå±€ (ãŠã§ããž ã¢ãã«) ã®å Žåã®å°éçè·¡ãèšç®ããããã®ã³ãŒãã®äžéšã§ãã ãã®ã¢ãã«ã¯ãå€ãã®å±€ããåå°ãããæ³¢ãäºãã«éãªãåããšãã®å¹²æžå¹æãåæããããã«ãå°éæ¢æ»ã§äŒçµ±çã«ç 究ãããŠããŸããã
nx=200;(* Number of grid points in X direction*)
ny=200;(* Number of grid points in Y direction*)
T=2;(*Total propagation time*)
(*Velocity and density*)
modellv=Table[4000,{i,1,ny},{j,1,nx}];(* P-wave velocity in m/s*)
rho=Table[2200,{i,1,ny},{j,1,nx}];(* Density in g/cm^3, used constant density*)
Table[modellv[[150-Round[i*0.5];;,i]]=4500;,{i,1,200}];
Table[modellv[[;;70,i]]=4500;,{i,1,200}];
(*Plotting model*)
MatrixPlot[modellv,PlotLabel->Style["Model of layer",Black,20],
LabelStyle->Directive[Black,Italic]]
ãã³ãã¢ãŠããã©ãŒã¡ãŒã·ã§ã³ã®ã¢ãã«
ããã³ã®å
åŽã®æ³¢ã®é床㯠4500 m/sãããã³ã®å€åŽã¯ 4000 m/sãå¯åºŠã¯äžå®ã® 2200 g/cmXNUMX ãšä»®å®ãããŸãã ãã®ãããªã¢ãã«ã«ã€ããŠã¯ãåå°ä¿æ°ãšå°éçè·¡ãèšç®ããŸãã
rc=Table[N[(modellv[[All,i]]-PadLeft[modellv[[All,i]],201,4000][[1;;200]])/(modellv[[All,i]]+PadLeft[modellv[[All,i]],201,4500][[1;;200]])],{i,1,200}];
traces=Table[ListConvolve[wavelet[[1;;;;1]],rc[[i]]],{i,1,200}];
starttrace=10;
endtrace=200;
steptrace=10;
trasenum=Range[starttrace,endtrace,steptrace];
traserenum=Range[Length@trasenum];
tracedist=0.5;
Rotate[Show[
Reverse[Table[
ListLinePlot[traces[[trasenum[[i]]]]*50+trasenum[[i]]*tracedist,Filling->{1->{trasenum[[i]]*tracedist,{RGBColor[0.97,0.93,0.68],Black}}},PlotStyle->Directive[Gray,Thin],PlotRange->Full,InterpolationOrder->2,Axes->False,Background->RGBColor[0.97,0.93,0.68]],
{i,1,Length@trasenum}]],ListLinePlot[Transpose[{ConstantArray[45,80],Range[80]}],PlotStyle->Red],PlotRange->All,Frame->True],270Degree]
ãŠã§ããžã¢ãã«ã®å°éçè·¡
ãã®å³ã«ç€ºãããäžé£ã®å°éçè·¡ãå°éæé¢ãšåŒã³ãŸãã ã芧ã®ãšãããåå°æ³¢ã®åœ¢ç¶ã¯åã«æå®ããã¢ãã«ã«æ確ã«å¯Ÿå¿ããŠããããããã®è§£éã¯çŽæçãªã¬ãã«ã§ãå®è¡ã§ããŸãã çè·¡ããã詳现ã«åæãããšã1 ããçŽ 30 ãŸã§ã®çè·¡ã«éãããªãããšãããããŸããå°å±€ã®å±æ ¹ããã®åå°ãšåºéšããã®åå°ã¯äºãã«éãªããŸããã 31 çªç®ã®ãã¬ãŒã¹ãããåå°ãå¹²æžãå§ããŸãã ãŸããã¢ãã«ã§ã¯åå°ä¿æ°ã¯æ°Žå¹³æ¹åã«ã¯å€åããŸããããå°å±€ã®åããå€åãããšå°éçè·¡ã®åŒ·åºŠãå€åããŸãã
å°å±€ã®äžéšå¢çããã®åå°ã®æ¯å¹ ãèããŠã¿ãŸãããã 60 çªç®ã®ã«ãŒãããåå°ã®åŒ·åºŠãå¢å ãå§ãã70 çªç®ã®ã«ãŒãã§æ倧ã«ãªããŸãã ãã®ããã«ããŠãå±€ã®å±æ ¹ãšåºéšããã®æ³¢ã®å¹²æžãçŸããå Žåã«ãã£ãŠã¯å°éèšé²ã«é倧ãªç°åžžãåŒãèµ·ããããšã«ãªããŸãã
ListLinePlot[GaussianFilter[Abs[traces[[All,46]]],3][[;;;;2]],
InterpolationOrder->2,Frame->True,PlotStyle->Black,
PlotLabel->Style["Amplitude of reflection",Black,20],
LabelStyle->Directive[Black,Italic],
PlotRange->All]
ãŠã§ããžã®äžç«¯ããã®åå°æ³¢ã®æ¯å¹
ã®ã°ã©ã
ä¿¡å·ãäœåšæ³¢ã®å Žåãå°å±€ã®åãéšåã§å¹²æžãçºçãå§ããé«åšæ³¢ä¿¡å·ã®å Žåãããèãå±€ã§å¹²æžãçºçããã®ã¯è«ççã§ãã 次ã®ã³ãŒã ã¹ããããã¯ã35 Hzã55 Hzãããã³ 85 Hz ã®åšæ³¢æ°ã®ä¿¡å·ãäœæããŸãã
waveletSet=Table[(1.0-2.0*(Pi^2)*(f^2)*(t^2))*Exp[-(Pi^2)*(f^2)*(t^2)],
{f,{35,55,85}}];
ListLinePlot[waveletSet,PlotRange->Full,PlotStyle->Black,Frame->True,
PlotLabel->Style["Set of wavelets",Black,20],
LabelStyle->Directive[Black,Italic],
ImageSize->Large,InterpolationOrder->2]
åšæ³¢æ° 35 Hzã55 Hzã85 Hz ã®ãœãŒã¹ä¿¡å·ã®ã»ãã
å°éçè·¡ãèšç®ããåå°æ³¢æ¯å¹
ã®ã°ã©ããããããããããšã«ãããããŸããŸãªåšæ³¢æ°ã§ãããŸããŸãªå°å±€ã®åãã§ç°åžžã芳å¯ãããããšãããããŸãã
tracesSet=Table[ListConvolve[waveletSet[[j]][[1;;;;1]],rc[[i]]],{j,1,3},{i,1,200}];
lowFreq=ListLinePlot[GaussianFilter[Abs[tracesSet[[1]][[All,46]]],3][[;;;;2]],InterpolationOrder->2,PlotStyle->Black,PlotRange->All];
medFreq=ListLinePlot[GaussianFilter[Abs[tracesSet[[2]][[All,46]]],3][[;;;;2]],InterpolationOrder->2,PlotStyle->Black,PlotRange->All];
highFreq=ListLinePlot[GaussianFilter[Abs[tracesSet[[3]][[All,46]]],3][[;;;;2]],InterpolationOrder->2,PlotStyle->Black,PlotRange->All];
Show[lowFreq,medFreq,highFreq,PlotRange->{{0,100},All},
PlotLabel->Style["Amplitudes of reflection",Black,20],
LabelStyle->Directive[Black,Italic],
Frame->True]
ç°ãªãåšæ³¢æ°ã«ããããŠã§ããžã®äžç«¯ããã®åå°æ³¢ã®æ¯å¹
ã®ã°ã©ã
ç³æ²¹æ¢æ»ã®äž»ãªã¿ã¹ã¯ã® XNUMX ã€ã¯ãäºæžãæ·èšããã®ã«æãææãªå°ç¹ (ã€ãŸããå°å±€ãååšããé å) ãè©äŸ¡ããããšã§ãããããå°é芳枬ã®çµæããå°å±€ã®åãã«ã€ããŠçµè«ãå°ãåºãèœåã¯éåžžã«åœ¹ç«ã¡ãŸããåãïŒã ããã«ãå°è³ªåŠçã»ã¯ã·ã§ã³ã«ã¯ããã®èµ·æºã«ãã£ãŠå°å±€ã®åããæ¥æ¿ã«å€åããç©äœãååšããå¯èœæ§ããããŸãã ãã®ãããã¹ãã¯ãã«åæã¯ããããç 究ããããã®å¹æçãªããŒã«ã«ãªããŸãã èšäºã®æ¬¡ã®éšåã§ã¯ããã®ãããªå°è³ªåŠçãªããžã§ã¯ãã«ã€ããŠããã«è©³ããæ€èšããŸãã
å®éšããŒã¿ã ã©ãã§ããããå ¥æããŸããã?ãããŠãã®äžã§äœãæ¢ãã¹ãã§ãã?
èšäºã§åæãããè³æã¯è¥¿ã·ããªã¢ã§å ¥æããããã®ã§ãã ãããã誰ããäŸå€ãªãç¥ã£ãŠããããã«ããã®å°åã¯æãåœã®äž»èŠãªç³æ²¹çç£å°åã§ãã ãã®å°åã§ã¯ãåäžçŽã® 60 幎代ã«é±åºã®ç©æ¥µçãªéçºãå§ãŸããŸããã ç³æ²¹é±åºãæ¢ãäž»ãªæ¹æ³ã¯å°éæ¢æ»ã§ãã ãã®å°åã®è¡æåçãèŠãã®ã¯èå³æ·±ãã§ãã å°ããªçž®å°ºã§ã¯ãèšå€§ãªæ°ã®æ²Œå°ãæ¹ã«æ³šç®ããããšãã§ããŸããå°å³ãæ¡å€§ãããšãã¯ã©ã¹ã¿ãŒäºæžæåçŸå Žã衚瀺ãããå°å³ãéçãŸã§æ¡å€§ãããšãå°éãçºçãããããã¡ã€ã«ã®ç©ºãå°ãåºå¥ããããšãã§ããŸãã芳å¯ãè¡ãããŸããã
Yandex ãããã®è¡æç»å - ãã€ããªã¹ã¯åžè¡å°
ç°çã® XNUMX ã€ã«ããäºæžãããã®ãããã¯ãŒã¯
西ã·ããªã¢ã®æ²¹ãå«ã岩ç³ã¯ãæ·±ã 1 km ãã 5 km ãŸã§ã®åºç¯å²ã«ååšããŸãã ç³æ²¹ãå«ã岩ç³ã®äž»ãªéã¯ããžã¥ã©çŽãšçœäºçŽã«åœ¢æãããŸããã ãžã¥ã©çŽã«ã€ããŠã¯ãããããååã®æ ç»ã§å€ãã®äººã«ç¥ãããŠããã§ãããã
çŸåšã
ãžã¥ã©çŽ
ãžã¥ã©çŽã®è¥¿ã·ããªã¢ã®é åã¯æµ·å²žïŒå·ãšæµ
ãæµ·ã亀差ããåå°ïŒã§ãã£ãããšã«æ³šæããŠãã ããã æ°åãå¿«é©ã ã£ãã®ã§ãåœæã®å
žåçãªé¢šæ¯ã¯æ¬¡ã®ãããªãã®ã§ãã£ããšæšæž¬ãããŸãã
ãžã¥ã©çŽã®ã·ããªã¢
ãã®çµµã§ç§ãã¡ã«ãšã£ãŠéèŠãªã®ã¯ãåç©ãé³¥ã§ã¯ãªããèæ¯ã«ããå·ã®ã€ã¡ãŒãžã§ãã å·ã¯ãå
ã»ã©ç«ã¡å¯ã£ããã®ãšåãå°è³ªç©ã§ãã å®éã®ãšãããå·ã®æŽ»åã«ãããããéžå¥ãããç 岩ãå ç©ããç³æ²¹ã®è²¯çå±€ãšãªããŸãã ãããã®è²¯æ°Žæ± ã¯ãå¥åŠã§è€éãªåœ¢ç¶ (å·åºã®ãããª) ãæã€ããšãããããã®åãã¯å€åããŸããå €é²è¿ãã®åãã¯èãã§ãããæ°Žè·¯ã®äžå¿ã«è¿ã¥ããèè¡ããé åã§ã¯åããå¢ããŸãã ãããã£ãŠããžã¥ã©çŽã«åœ¢æãããå·ã¯çŸåšãæ·±ãçŽXNUMXããã¡ãŒãã«ã«ãããç³æ²¹è²¯çå±€ã®æ¢çŽ¢ã®å¯Ÿè±¡ãšãªã£ãŠããŸãã
å®éšããŒã¿ã åŠçãšå¯èŠå
èšäºã«ç€ºãããŠããå°éè³æã«ã€ããŠã¯ãããã«ä¿çããŠãããŸãã解æã«äœ¿çšãããããŒã¿ã®éãèšå€§ã§ãããããèšäºã®æ¬æã«ã¯å ã®å°éçè·¡ã®äžéšã®ã¿ãå«ãŸããŠããŸãã ããã«ããã誰ã§ãäžèšã®èšç®ãåçŸã§ããããã«ãªããŸãã
å°éããŒã¿ãæ±ãå Žåãå°çç©çåŠè ã¯éåžžãããŸããŸãªçš®é¡ã®ããŒã¿ãåæã§ãã䟿å©ãªã°ã©ãã£ã«ã« ã€ã³ã¿ãŒãã§ã€ã¹ãåããç¹æ®ãªãœãããŠã§ã¢ã䜿çšããŸã (Petrel ã Paradigm ãªã©ããã®éçºãç©æ¥µçã«äœ¿çšãããŠããæ¥çãªãŒããŒãããã€ããããŸã)ã éåžžã«äŸ¿å©ã§ããã«ããããããããã®çš®ã®ãœãããŠã§ã¢ã«ã¯æ¬ ç¹ããããŸããããšãã°ãææ°ã®ã¢ã«ãŽãªãºã ãå®å®ããŒãžã§ã³ã§å®è£ ããã«ã¯æéãããããèšç®ãèªååããå¯èœæ§ã¯éåžžéãããŠããŸãã ãã®ãããªç¶æ³ã§ã¯ãã³ã³ãã¥ãŒã¿æ°åŠã·ã¹ãã ãé«çŽããã°ã©ãã³ã°èšèªã䜿çšãããšéåžžã«äŸ¿å©ã«ãªããŸãããããã䜿çšãããšãå¹ åºãã¢ã«ãŽãªãºã ããŒã¹ã䜿çšã§ãããšåæã«ãå€ãã®ã«ãŒãã³ãåŒãåããããšãã§ããŸãã ããã¯Wolfram Mathematica ã§å°éããŒã¿ãæ±ãããã«äœ¿çšãããåçã§ãã ããŒã¿ãæäœããã€ã³ã¿ã©ã¯ãã£ããªäœæ¥ã®ããã®è±å¯ãªæ©èœãèšè¿°ããããšã¯äžé©åã§ããäžè¬ã«åãå ¥ããããŠãã圢åŒãã確å®ã«ããŒãããç®çã®ã¢ã«ãŽãªãºã ãé©çšããŠãå€éšåœ¢åŒã«ã¢ããããŒããçŽãããšãããéèŠã§ãã
ææ¡ãããã¹ããŒã ã«åŸã£ãŠãå
ã®å°éããŒã¿ãããŒããããããã衚瀺ããŸãã
Get["GeologyIO`"]
seismic3DZipPath = "seismic3D.zip";
seismic3DSEGYPath = "seismic3D.sgy";
If[FileExistsQ[seismic3DZipPath], DeleteFile[seismic3DZipPath]];
If[FileExistsQ[seismic3DSEGYPath], DeleteFile[seismic3DSEGYPath]];
URLDownload["https://wolfr.am/FiQIuZuH", seismic3DZipPath];
ExtractArchive[seismic3DZipPath];
seismic3DSEGY = SEGYImport[seismic3DSEGYPath]
ãã®ããã«ããŠããŠã³ããŒãããã³ã€ã³ããŒããããããŒã¿ã¯ã10kmÃ5kmã®ãšãªã¢ã«èšé²ãããã«ãŒãã§ãã äžæ¬¡å å°éæ¢æ»æ³ïŒåã ã®ç©çç圢ç¶ã«æ²¿ã£ãŠæ³¢ãèšé²ããã®ã§ã¯ãªããå šåãåæã«èšé²ããæ¹æ³ïŒãçšããŠããŒã¿ãååŸãããšãå°éããŒã¿ãã¥ãŒããååŸããããšãå¯èœã«ãªããŸãã ãããã¯äžæ¬¡å ã®ãªããžã§ã¯ãã§ããããã®åçŽæé¢ãšæ°Žå¹³æé¢ã«ãããå°è³ªç°å¢ã®è©³çŽ°ãªç 究ãå¯èœã«ãªããŸãã ãã®äŸã§ã¯ãXNUMX 次å ããŒã¿ãæ±ã£ãŠããŸãã 次ã®ããã«ããã¹ãããããŒããæ å ±ãååŸã§ããŸãã
StringPartition[seismic3DSEGY["textheader"], 80] // TableForm
C 1 ãã㯠GEOLOGYIO ããã±ãŒãž ãã¹ãã®ã㢠ãã¡ã€ã«ã§ã
C 2
C 3
C 4
C 5 æ¥ä»ãŠãŒã¶ãŒå: WOLFRAM ãŠãŒã¶ãŒ
C 6 調æ»å: ã·ããªã¢ã®ã©ãã
C 7 ãã¡ã€ã«ã¿ã€ã 3D å°éããªã¥ãŒã
C 8
C 9
C10 Z ç¯å²: æåã® 2200M æåŸã® 2400M
ãã®ããŒã¿ã»ããã¯ãããŒã¿åæã®äž»èŠãªæ®µéãå®èšŒããã«ã¯ååã§ãã ãã¡ã€ã«å ã®ãã¬ãŒã¹ã¯é çªã«èšé²ãããããããã¯æ¬¡ã®å³ã®ããã«ãªããŸããããã¯ãåçŽè»ž (æ·±ã軞) ã«æ²¿ã£ãåå°æ³¢ã®æ¯å¹ ã®ååžã§ãã
ListLinePlot[seismic3DSEGY["traces"][[100]], InterpolationOrder -> 2,
PlotStyle -> Black, PlotLabel -> Style["Seismic trace", Black, 20],
LabelStyle -> Directive[Black, Italic], PlotRange -> All,
Frame -> True, ImageSize -> 1200, AspectRatio -> 1/5]
å°éæé¢çè·¡ã®äžââã€
調æ»å¯Ÿè±¡é åã®åæ¹åã«ãã¬ãŒã¹ã®æ°ããããã°ã3 次å
ããŒã¿é
åãçæããImageXNUMXD[] é¢æ°ã䜿çšããŠè¡šç€ºã§ããŸãã
traces=seismic3DSEGY["traces"];
startIL=1050;EndIL=2000;stepIL=2; (*кППÑЎОМаÑа Ð¥ МаÑала О кПМÑа ÑÑÑЌкО О Ñаг ÑÑаÑÑ*)
startXL=1165;EndXL=1615;stepXL=2; (*кППÑЎОМаÑа Y МаÑала О кПМÑа ÑÑÑЌкО О Ñаг ÑÑаÑÑ*)
numIL=(EndIL-startIL)/stepIL+1; (*кПлОÑеÑÑвП ÑÑаÑÑ Ð¿ÐŸ ÐŸÐžÑ Ð¥*)
numXL=(EndXL-startXL)/stepIL+1; (*кПлОÑеÑÑвП ÑÑаÑÑ Ð¿ÐŸ ÐŸÐžÑ Y*)
Image3D[ArrayReshape[Abs[traces/Max[Abs[traces[[All,1;;;;4]]]]],{numIL,numXL,101}],ViewPoint->{-1, 0, 0},Background->RGBColor[0,0,0]]
å°éããŒã¿ãã¥ãŒãã® XNUMXD ç»å (瞊軞 - æ·±ã)
察象ã®å°è³ªåŠçç¹åŸŽãæ¿ããå°éç°åžžãåŒãèµ·ããå Žåã¯ãéææ§ã®ããèŠèŠåããŒã«ã䜿çšã§ããŸãã èšé²ã®ãéèŠã§ãªããé åãé衚瀺ã«ããŠãç°åžžéšåã ããæ®ãããšãã§ããŸãã Wolfram Mathematica ã§ã¯ããã次ã®ããã«è¡ãããšãã§ããŸãïŒ
data = ArrayReshape[Abs[traces/Max[Abs[traces[[All,1;;;;4]]]]],{numIL,numXL,101}];
Graphics3D[{Opacity[0.1], Raster3D[data, ColorFunction->"RainbowOpacity"]},
Boxed->False, SphericalRegion->True, ImageSize->840, Background->None]
Opacity[] ããã³ Raster3D[] é¢æ°ã䜿çšããå°éããŒã¿ ãã¥ãŒãç»å
åæäŸãšåæ§ã«ãå
ã®ç«æ¹äœã®æé¢ã§ãããŸããŸãªèµ·äŒãæã€ããã€ãã®å°è³ªåŠçå¢ç (å±€) ãèå¥ã§ããŸãã
ã¹ãã¯ãã«è§£æã®äž»ãªããŒã«ã¯ããŒãªãšå€æã§ãã ãããå©çšãããšãåãã¬ãŒã¹ãŸãã¯ãã¬ãŒã¹ã®ã°ã«ãŒãã®æ¯å¹ åšæ³¢æ°ã¹ãã¯ãã«ãè©äŸ¡ã§ããŸãã ãã ããããŒã¿ãåšæ³¢æ°é åã«è»¢éããåŸã¯ãåšæ³¢æ°ããã€å€åããã (ã©ã®æ·±åºŠã§èªã¿åãããã) ã«é¢ããæ å ±ã倱ãããŸãã æé (æ·±ã) 軞äžã§ä¿¡å·ã®å€åã®äœçœ®ãç¹å®ã§ããããã«ããããã«ããŠã£ã³ã㊠ããŒãªãšå€æãšãŠã§ãŒãã¬ããå解ã䜿çšãããŸãã ãã®èšäºã§ã¯ãŠã§ãŒãã¬ããå解ã䜿çšããŸãã ãŠã§ãŒãã¬ãã解ææè¡ã¯ 90 幎代ããå°éæ¢æ»ã«ç©æ¥µçã«äœ¿çšããå§ããŸããã ãŠã£ã³ããŠããŒãªãšå€æã«å¯Ÿããå©ç¹ã¯ãããåªããæéå解èœã§ãããšèããããŸãã
次ã®ã³ãŒãéšåã䜿çšãããšãå°éçè·¡ã® XNUMX ã€ãåã ã®ã³ã³ããŒãã³ãã«å解ã§ããŸãã
cwd=ContinuousWaveletTransform[seismicSection["traces"][[100]]]
Show[
ListLinePlot[Re[cwd[[1]]],PlotRange->All],
ListLinePlot[seismicSection["traces"][[100]],
PlotStyle->Black,PlotRange->All],ImageSize->{1500,500},AspectRatio->Full,
PlotLabel->Style["Wavelet decomposition",Black,32],
LabelStyle->Directive[Black,Italic],
PlotRange->All,
Frame->True]
ãã¬ãŒã¹ã®ã³ã³ããŒãã³ããžã®å解
ããŸããŸãªæ³¢ã®å°éæéã§åå°ãšãã«ã®ãŒãã©ã®ããã«ååžããããè©äŸ¡ããã«ã¯ãã¹ã«ãã°ã©ã (ã¹ãã¯ããã°ã©ã ã«é¡äŒŒ) ã䜿çšãããŸãã ååãšããŠãå®éã«ã¯ãã¹ãŠã®ã³ã³ããŒãã³ããåæããå¿
èŠã¯ãããŸããã éåžžãäœåšæ³¢ãäžåšæ³¢ãé«åšæ³¢æåãéžæãããŸãã
freq=(500/(#*contWD["Wavelet"]["FourierFactor"]))&/@(Thread[{Range[contWD["Octaves"]],1}]/.contWD["Scales"])//Round;
ticks=Transpose[{Range[Length[freq]],freq}];
WaveletScalogram[contWD,Frame->True,FrameTicks->{{ticks,Automatic},Automatic},FrameTicksStyle->Directive[Orange,12],
FrameLabel->{"Time","Frequency(Hz)"},LabelStyle->Directive[Black,Bold,14],
ColorFunction->"RustTones",ImageSize->Large]
ã¹ã«ãã°ã©ã ã é¢æ°ã®çµæ
Wolframèšèªã¯ãŠã§ãŒãã¬ããå€æã«é¢æ°ã䜿çšãã
tracesCWD=Table[Map[Hilbert[#,0]&,Re[ContinuousWaveletTransform[traces[[i]]][[1]]][[{13,15,18}]]],{i,1,Length@traces}];
æ©èœé©çšåŸ
çµæãååãšå ±æãããã顧客ã«æäŸãããããå¿ èŠãããå Žåã¯ãGeologyIO ããã±ãŒãžã® SEGYExport[] é¢æ°ã䜿çšã§ããŸãã
outputdata=seismic3DSEGY;
outputdata["traces",1;;-1]=tracesCWD[[All,3]];
outputdata["textheader"]="Wavelet Decomposition Result";
outputdata["binaryheader","NumberDataTraces"]=Length[tracesCWD[[All,3]]];
SEGYExport["D:result.segy",outputdata];
ãããã® XNUMX ã€ã®ç«æ¹äœ (äœåšæ³¢ãäžåšæ³¢ãããã³é«åšæ³¢ã³ã³ããŒãã³ã) ã§ã¯ãéåžžãRGB ãã¬ã³ãã£ã³ã°ã䜿çšããŠããŒã¿ãäžç·ã«èŠèŠåããŸãã åã³ã³ããŒãã³ãã«ã¯ãèµ€ãç·ãéãšããç¬èªã®è²ãå²ãåœãŠãããŸãã Wolfram Mathematica ã§ã¯ïŒæ¬¡ã®é¢æ°ã䜿çšããŠãããè¡ãããšãã§ããŸã
ãã®çµæãå°è³ªåŠç解éãå¯èœãªç»åãåŸãããŸãã ãã®æé¢ã«èšé²ãããŠããèè¡ã«ããã貯çå±€ã§ããå¯èœæ§ãé«ããç³æ²¹åèµéãå«ãå€æ°Žè·¯ã®èŒªéãæãããšãå¯èœã«ãªããŸãã ãã®ãããªå·ç³»ã®çŸä»£ã®é¡äŒŒç©ã®æ€çŽ¢ãšåæã«ãããèè¡ã®æãææãªéšåã決å®ããããšãã§ããŸãã ãã®æ°Žè·¯èªäœã¯ãããéžå¥ãããç 岩ã®åãå±€ã«ãã£ãŠç¹åŸŽä»ããããŠãããç³æ²¹ã®åªãã貯çå±€ãšãªã£ãŠããŸãã ãã¬ãŒã¹ãç°åžžã®å€åŽã®é åã¯ãçŸä»£ã®æ°Ÿæ¿«åã®å ç©ç©ã«äŒŒãŠããŸãã æ°Ÿæ¿«åã®å ç©ç©ã¯äž»ã«ç²å質ã®å²©ç³ã§æ§æãããŠããããããã®ãŸãŒã³ãžã®æåã¯å¹æããããŸããã
ããŒã¿ ãã¥ãŒãã® RGB ã¹ã©ã€ã¹ã äžå€®ïŒäžå€®ããå·ŠïŒã§ã¯èè¡ããå·ã®æµãã蟿ãããšãã§ããŸãã
ããŒã¿ ãã¥ãŒãã® RGB ã¹ã©ã€ã¹ã å·ŠåŽã«ã¯èè¡ããå·ã®æµããèŠããŸãã
å Žåã«ãã£ãŠã¯ãå°éããŒã¿ã®å質ã«ãããéåžžã«é®®æãªç»åãåŸãããããšããããŸãã ããã¯ãçŸå Žã§ã®äœæ¥æ¹æ³ããã€ãºäœæžã¢ã«ãŽãªãºã ã§äœ¿çšãããæ©åšã«ãã£ãŠç°ãªããŸãã ãã®ãããªå Žåãæ²³å·ç³»ã®æçã ãã§ãªããåºãã£ãå€å·å
šäœã衚瀺ãããŸãã
å°éããŒã¿ ãã¥ãŒã (æ°Žå¹³ã¹ã©ã€ã¹) ã® 2 ã€ã®ã³ã³ããŒãã³ãã® RGB æ··åã æ·±ãçŽXNUMXkmã
ãµã©ããè¿éã®ãŽã©ã«ã¬å·ã®è¡æç»å
ãŸãšã
Wolfram Mathematica ã䜿çšãããšïŒå°éããŒã¿ãåæãïŒé±ç©æ¢æ»ã«é¢é£ããå¿çšåé¡ã解決ã§ããŸããGeologyIO ããã±ãŒãžã䜿çšãããšïŒãã®ããã»ã¹ããã䟿å©ã«ãªããŸãã å°éããŒã¿ã®æ§é ã¯ãçµã¿èŸŒã¿ã¡ãœããã䜿çšããŠèšç®ãé«éåãããããªãã®ã§ã (
åºæïŒ habr.com