Wolfram Mathematica en Geofiziko

Dankon al la aŭtoro de la blogo Anton Ekimenko pro lia raporto

Enkonduko

Ĉi tiu noto estis skribita post la konferenco Wolfram Rusa Teknologia Konferenco kaj enhavas resumon de la raporto, kiun mi donis. La evento okazis en junio en Sankt-Peterburgo. Konsiderante ke mi laboras blokon de la konferenca retejo, mi ne povis ne ĉeesti ĉi tiun eventon. En 2016 kaj 2017, mi aŭskultis konferencajn raportojn, kaj ĉi-jare mi faris prezenton. Unue aperis interesa (sxajnas al mi) temo, per kiu ni disvolvas Kirill Belov, kaj due, post longa studo de la leĝaro de la Rusa Federacio pri sankcipolitiko, ĉe la entrepreno, kie mi laboras, aperis eĉ du licencoj. Wolfram Mathematica.

Antaŭ ol transiri al la temo de mia parolado, mi ŝatus rimarki la bonan organizadon de la aranĝo. La vizitpaĝo de la konferenco uzas bildon de la Kazan Katedralo. La katedralo estas unu el la ĉefaj vidindaĵoj de Peterburgo kaj estas tre klare videbla el la salono, en kiu okazis la konferenco.

Wolfram Mathematica en Geofiziko

Ĉe la enirejo de la Sankt-Peterburga Ŝtata Ekonomia Universitato, partoprenantoj estis renkontitaj de asistantoj el inter la studentoj - ili ne permesis al ili perdiĝi. Dum registriĝo oni disdonis malgrandajn suvenirojn (ludilo - fulmanta pikilo, plumo, glumarkoj kun Wolfram-simboloj). Tagmanĝo kaj kafo-paŭzoj ankaŭ estis inkluzivitaj en la konferenca horaro. Mi jam notis pri bongustaj kafo kaj tortoj sur la muro de la grupo - la kuiristoj estas bonegaj. Per ĉi tiu enkonduka parto mi ŝatus emfazi, ke la evento mem, ĝia formato kaj loko jam alportas pozitivajn emociojn.

La raporto kiu estis preparita de mi kaj Kirill Belov nomiĝas "Uzante Wolfram Mathematica por solvi problemojn en aplikata geofiziko. Spektra analizo de sismaj datenoj aŭ "kie pravaj riveroj kuris." La enhavo de la raporto kovras du partojn: unue, la uzo de algoritmoj disponeblaj en Wolfram Mathematica por analizi geofizikajn datumojn, kaj due, jen kiel meti geofizikajn datumojn en Wolfram Mathematica.

Sisma esplorado

Unue vi devas fari mallongan ekskurson en geofizikon. Geofiziko estas la scienco, kiu studas la fizikajn ecojn de rokoj. Nu, ĉar rokoj havas malsamajn ecojn: elektrajn, magnetajn, elastajn, ekzistas respondaj metodoj de geofiziko: elektra prospektorado, magneta prospektorado, sisma prospektorado... En la kunteksto de ĉi tiu artikolo, ni nur pri sisma prospektorado pli detale diskutos. Sisma esplorado estas la ĉefa metodo de serĉado de petrolo kaj gaso. La metodo estas bazita sur la ekscito de elastaj vibroj kaj posta registrado de la respondo de la ŝtonoj kunmetantaj la studareon. Vibroj estas ekscititaj surtere (per dinamito aŭ neeksplodemaj vibrfontoj de elastaj vibroj) aŭ surmare (per aerpafiloj). Elastaj vibradoj disvastiĝas tra la rokmaso, estante refraktaj kaj reflektitaj ĉe la limoj de tavoloj kun malsamaj trajtoj. Reflektitaj ondoj revenas al la surfaco kaj estas registritaj per geofonoj surtere (kutime elektrodinamikaj aparatoj bazitaj sur la movado de magneto suspendita en bobeno) aŭ hidrofonoj en la maro (surbaze de la piezoelektra efiko). Je la tempo de alveno de ondoj, oni povas juĝi la profundojn de geologiaj tavoloj.

Ekipaĵo de trenado de sismaj ŝipoj
Wolfram Mathematica en Geofiziko

La aerpafilo ekscitas elastajn vibrojn
Wolfram Mathematica en Geofiziko

La ondoj pasas tra la rokmaso kaj estas registritaj per hidrofonoj
Wolfram Mathematica en Geofiziko

Geofizika esplorŝipo "Ivan Gubkin" ĉe la moleo proksime de la Blagoveshchensky Ponto en Sankt-Peterburgo
Wolfram Mathematica en Geofiziko

Sisma signalmodelo

Rokoj havas malsamajn fizikajn ecojn. Por sisma esplorado, elastaj trajtoj estas ĉefe gravaj - la rapideco de disvastigo de elastaj vibroj kaj denseco. Se du tavoloj havas la samajn aŭ similajn ecojn, tiam la ondo "ne rimarkos" la limon inter ili. Se la ondorapidecoj en la tavoloj malsamas, tiam reflektado okazos ĉe la limo de la tavoloj. Ju pli granda la diferenco en propraĵoj, des pli intensa la reflektado. Ĝia intenseco estos determinita per la reflekta koeficiento (rc):

Wolfram Mathematica en Geofiziko

kie ρ estas la rokdenseco, ν estas la ondorapideco, 1 kaj 2 indikas la suprajn kaj malsuprajn tavolojn.

Unu el la plej simplaj kaj plej ofte uzitaj sismaj signalmodeloj estas la konvolucia modelo, kiam la registrita sisma spuro estas reprezentita kiel rezulto de konvolucio de sekvenco de reflektadkoeficientoj kun sonda pulso:

Wolfram Mathematica en Geofiziko

kie s(t) — sisma spuro, t.e. ĉio, kio estis registrita per hidrofono aŭ geofono dum fiksa tempo de registrado, w(t) - la signalo generita de la aerpafilo, n(t) - hazarda bruo.

Ni kalkulu sintezan sisman spuron kiel ekzemplon. Ni uzos la Ricker-pulson, vaste uzatan en sisma esplorado, kiel komencan signalon.

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]

Komenca sisma impulso
Wolfram Mathematica en Geofiziko

Ni starigos du limojn je profundoj de 300 ms kaj 600 ms, kaj la reflektaj koeficientoj estos hazardaj nombroj

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]]

Sekvenco de reflektaj koeficientoj
Wolfram Mathematica en Geofiziko

Ni kalkulu kaj montru la sisman spuron. Ĉar la reflektaj koeficientoj havas malsamajn signojn, ni ricevas du alternajn reflektojn sur la sisma spuro.

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]]

Simulita aŭtoveturejo
Wolfram Mathematica en Geofiziko

Por ĉi tiu ekzemplo, necesas fari rezervon - fakte, la profundo de la tavoloj estas determinita, kompreneble, en metroj, kaj la kalkulo de la sisma spuro okazas por la tempodomajno. Estus pli ĝuste agordi la profundojn en metroj kaj kalkuli la alventempojn sciante la rapidojn en la tavoloj. En ĉi tiu kazo, mi tuj starigis la tavolojn sur la tempa akso.

Se ni parolas pri kampa esploro, tiam kiel rezulto de tiaj observoj grandega nombro da similaj temposerio (sisma spuroj) estas registrita. Ekzemple, kiam oni studas ejon longan 25 km kaj larĝan 15 km, kie, kiel rezulto de laboro, ĉiu spuro karakterizas ĉelon mezurantan 25x25 metrojn (tian ĉelon nomiĝas rubujo), la fina datumtabelo enhavos 600000 1 spurojn. Kun specimena tempo de 5 ms kaj registra tempo de 11 sekundoj, la fina datuma dosiero estos pli ol XNUMX GB, kaj la volumeno de la originala "kruda" materialo povas esti centoj da gigabajtoj.

Kiel labori kun ili Wolfram Mathematica?

Pako GeologioIO

La evoluo de la pakaĵo komenciĝis afero sur la VK-muro de la ruslingva subtengrupo. Danke al la respondoj de la komunumo, solvo estis trovita tre rapide. Kaj kiel rezulto, ĝi kreskis en seriozan evoluon. Korespondanta Wolfram Community murafiŝo Ĝi eĉ estis markita de moderigaĵoj. Nuntempe, la pakaĵo subtenas labori kun la sekvaj datumtipoj, kiuj estas aktive uzataj en la geologia industrio:

  1. importado de mapdatenoj en ZMAP kaj IRAP-formatoj
  2. importado de mezuradoj en LAS-formataj putoj
  3. enigo kaj eligo de sismaj dosieroj formato SEGY

Por instali la pakaĵon, vi devas sekvi la instrukciojn sur la elŝuta paĝo de la kunmetita pako, t.e. ekzekuti la sekvan kodon en iu ajn Mathematica kajero:

If[PacletInformation["GeologyIO"] === {}, PacletInstall[URLDownload[
    "https://wolfr.am/FiQ5oFih", 
    FileNameJoin[{CreateDirectory[], "GeologyIO-0.2.2.paclet"}]
]]]

Post tio la pakaĵo estos instalita en la defaŭlta dosierujo, kies vojo povas esti akirita jene:

FileNameJoin[{$UserBasePacletsDirectory, "Repository"}]

Ekzemple, ni montros la ĉefajn kapablojn de la pako. La voko estas farita tradicie por pakaĵoj en la Wolfram Lingvo:

Get["GeologyIO`"]

La pako estas evoluigita uzante Wolfram Workbench. Ĉi tio ebligas al vi akompani la ĉefan funkcion de la pakaĵo kun dokumentado, kiu laŭ prezenta formato ne diferencas de la dokumentado de Wolfram Mathematica mem, kaj provizi la pakaĵon per testdosieroj por la unua konato.

Wolfram Mathematica en Geofiziko

Wolfram Mathematica en Geofiziko

Tia dosiero, precipe, estas la dosiero "Marmousi.segy" - ĉi tio estas sinteza modelo de geologia sekcio, kiu estis evoluigita de la Franca Petrola Instituto. Uzante ĉi tiun modelon, programistoj testas siajn proprajn algoritmojn por onda kampomodeligado, datumtraktado, sisma spurinversio, ktp. La modelo Marmousi mem estas konservita en la deponejo de kie la pako mem estis elŝutita. Por akiri la dosieron, rulu la sekvan kodon:

If[Not[FileExistsQ["Marmousi.segy"]], 
URLDownload["https://wolfr.am/FiQGh7rk", "Marmousi.segy"];]
marmousi = SEGYImport["Marmousi.segy"]

Importrezulto - SEGYData objekto
Wolfram Mathematica en Geofiziko

La SEGY-formato implikas stoki diversajn informojn pri observaĵoj. Unue, ĉi tiuj estas tekstaj komentoj. Ĉi tio inkluzivas informojn pri la loko de la laboro, la nomoj de la kompanioj, kiuj faris la mezuradojn, ktp. En nia kazo, ĉi tiu kaplinio estas vokita per peto per la klavo TextHeader. Jen mallongigita tekstokapo:

Short[marmousi["TextHeader"]]

"La Marmousi-datumaro estis generita ĉe la Instituto ... minimuma rapideco de 1500 m/s kaj maksimumo de 5500 m/s)"

Vi povas montri la realan geologian modelon alirante la sismajn spurojn per la klavo "spuroj" (unu el la trajtoj de la pakaĵo estas, ke la ŝlosiloj ne distingas minusklecojn):

ArrayPlot[Transpose[marmousi["traces"]], PlotTheme -> "Detailed"]

Modelo Marmousi
Wolfram Mathematica en Geofiziko

Nuntempe, la pako ankaŭ ebligas al vi ŝargi datumojn en partoj de grandaj dosieroj, ebligante prilabori dosierojn, kies grandeco povas atingi dekojn da gigabajtoj. La funkcioj de la pakaĵo ankaŭ inkluzivas funkciojn por eksporti datumojn al .segy kaj parte aldoni al la fino de la dosiero.

Aparte, indas noti la funkciecon de la pako kiam vi laboras kun la kompleksa strukturo de .segy dosieroj. Ĉar ĝi permesas al vi ne nur aliri individuajn spurojn kaj titolojn uzante ŝlosilojn kaj indeksojn, sed ankaŭ ŝanĝi ilin kaj poste skribi ilin al dosiero. Multaj el la teknikaj detaloj de la efektivigo de GeologyIO estas preter la amplekso de ĉi tiu artikolo kaj verŝajne meritas apartan priskribon.

Graveco de spektra analizo en sisma esplorado

La kapablo importi sismajn datumojn en Wolfram Mathematica permesas uzi enkonstruitan signal-pretigan funkcion por eksperimentaj datumoj. Ĉar ĉiu sisma spuro reprezentas temposerion, unu el la ĉefaj iloj por studi ilin estas spektra analizo. Inter la antaŭkondiĉoj por analizi la frekvencan komponadon de sismaj datumoj, ni povas nomi, ekzemple, la jenajn:

  1. Malsamaj specoj de ondoj estas karakterizitaj per malsama frekvenca kunmetaĵo. Ĉi tio permesas vin reliefigi utilajn ondojn kaj subpremi interferondojn.
  2. Roktrajtoj kiel ekzemple poreco kaj saturiĝo povas influi la frekvenckonsiston. Ĉi tio ebligas identigi rokojn kun la plej bonaj propraĵoj.
  3. Tavoloj kun malsamaj dikecoj kaŭzas anomaliojn en malsamaj frekvencintervaloj.

La tria punkto estas la ĉefa en la kunteksto de ĉi tiu artikolo. Malsupre estas kodfragmento por kalkuli sismajn spurojn en la kazo de tavolo kun ŝanĝiĝanta dikeco - kojnomodelo. Tiu modelo estas tradicie studita en sisma esplorado por analizi interferefikojn kiam ondoj reflektitaj de multaj tavoloj estas supermetitaj unu sur la alian.

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]]

Modelo de pinĉa formacio
Wolfram Mathematica en Geofiziko

La ondorapideco ene de la kojno estas 4500 m/s, ekster la kojno 4000 m/s, kaj la denseco estas supozita esti konstanta 2200 g/cm³. Por tia modelo, ni kalkulas reflektajn koeficientojn kaj sismajn spurojn.

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]

Sismaj spuroj por la kojnomodelo
Wolfram Mathematica en Geofiziko

La sekvenco de sismaj spuroj montrita en tiu figuro estas nomita sisma sekcio. Kiel vi povas vidi, ĝia interpreto ankaŭ povas esti farita sur intuicia nivelo, ĉar la geometrio de la reflektitaj ondoj klare respondas al la modelo, kiu estis specifita antaŭe. Se vi analizas la spurojn pli detale, vi rimarkos, ke spuroj de 1 ĝis proksimume 30 ne diferencas - la reflektado de la tegmento de la formacio kaj de la fundo ne interkovras unu la alian. Komencante de la 31-a spuro, la reflektoj komencas enmiksiĝi. Kaj, kvankam en la modelo, la reflektaj koeficientoj ne ŝanĝiĝas horizontale - la sismaj spuroj ŝanĝas sian intensecon dum la dikeco de la formacio ŝanĝiĝas.

Ni konsideru la amplekson de reflektado de la supra limo de la formacio. Komencante de la 60-a itinero, la intenseco de la reflektado komencas pliiĝi kaj ĉe la 70-a itinero ĝi iĝas maksimuma. Tiel manifestiĝas la interfero de ondoj de la tegmento kaj fundo de la tavoloj, kondukante en iuj kazoj al signifaj anomalioj en la sisma registro.

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]

Grafiko de la amplitudo de la reflektita ondo de la supra rando de la kojno
Wolfram Mathematica en Geofiziko

Estas logike ke kiam la signalo estas malsupra-frekvenca, interfero komencas aperi ĉe grandaj formaciodikecoj, kaj en la kazo de altfrekvenca signalo, interfero okazas ĉe pli malgrandaj dikecoj. La sekva kodpeceto kreas signalon kun frekvencoj de 35 Hz, 55 Hz kaj 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]

Aro da fontsignaloj kun frekvencoj de 35 Hz, 55 Hz, 85 Hz
Wolfram Mathematica en Geofiziko

Kalkulante sismajn spurojn kaj grafikante grafikaĵojn de reflektitaj ondo-amplitudoj, ni povas vidi ke por malsamaj frekvencoj anomalio estas observita ĉe malsamaj formaciodikecoj.

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]

Grafikaĵoj de la amplitudoj de la reflektita ondo de la supra rando de la kojno por malsamaj frekvencoj
Wolfram Mathematica en Geofiziko

La kapablo tiri konkludojn pri la dikeco de la formacio el la rezultoj de sismaj observoj estas ekstreme utila, ĉar unu el la ĉefaj taskoj en naftoesplorado estas taksi la plej esperigajn punktojn por meti puton (t.e., tiuj areoj kie la formacio estas. pli dika). Krome, en la geologia sekcio povas esti objektoj, kies genezo kaŭzas akran ŝanĝon en la dikeco de la formacio. Ĉi tio faras spektran analizon efika ilo por studi ilin. En la sekva parto de la artikolo ni konsideros tiajn geologiajn objektojn pli detale.

Eksperimentaj datumoj. Kie vi akiris ilin kaj kion serĉi en ili?

La materialoj analizitaj en la artikolo estis akiritaj en Okcidenta Siberio. La regiono, kiel ĉiuj senescepte verŝajne scias, estas la ĉefa oleprodukta regiono de nia lando. Aktiva disvolviĝo de kuŝejoj komenciĝis en la regiono en la 60-aj jaroj de la pasinta jarcento. La ĉefa metodo de serĉado de naftejoj estas sisma esplorado. Estas interese rigardi satelitajn bildojn de ĉi tiu teritorio. Malgrandskale, vi povas noti grandegan nombron da marĉoj kaj lagoj; pligrandigante la mapon, vi povas vidi amasajn putajn borejojn, kaj pligrandigante la mapon ĝis la limo, vi ankaŭ povas distingi la maldensejojn de la profiloj laŭ kiuj sismaj. observoj estis faritaj.

Satelita bildo de Yandex-mapoj - Noyabrsk urboregiono
Wolfram Mathematica en Geofiziko

Reto de putaj kusenetoj ĉe unu el la kampoj
Wolfram Mathematica en Geofiziko

Oleoportantaj ŝtonoj de Okcidenta Siberio okazas en larĝa gamo de profundoj - de 1 km ĝis 5 km. La ĉefvolumo de ŝtonoj enhavantaj petrolon estis formita en la ĵurasa kaj kretaceo tempoj. La ĵurasa periodo estas verŝajne konata al multaj de la filmo de la sama nomo. Ĵurasa klimato estis signife diferenca de la moderna. La Encyclopedia Britannica havas serion de paleomapoj kiuj karakterizas ĉiun helogian epokon.

Aktuala
Wolfram Mathematica en Geofiziko
Ĵurasa periodo
Wolfram Mathematica en Geofiziko

Bonvolu noti, ke en Ĵurasaj tempoj, la teritorio de Okcidenta Siberio estis mara marbordo (tero trairita de riveroj kaj malprofunda maro). Ĉar la klimato estis komforta, ni povas supozi, ke tipa pejzaĝo de tiu tempo aspektis jene:

Ĵurasa Siberio
Wolfram Mathematica en Geofiziko

En ĉi tiu bildo gravas por ni ne tiom la bestoj kaj birdoj, sed la bildo de la rivero en la fono. La rivero estas la sama geologia objekto, ĉe kiu ni haltis pli frue. La fakto estas, ke la agado de riveroj permesas akumuliĝi bone ordigitaj grejsoj, kiuj tiam fariĝos rezervujo por nafto. Tiuj rezervujoj povas havi bizaran, kompleksan formon (kiel riverlito) kaj ili havas varian dikecon - proksime de la bordoj la dikeco estas malgranda, sed pli proksime al la centro de la kanalo aŭ en meandraj areoj ĝi pliiĝas. Do, la riveroj formitaj en la Ĵuraso nun estas je profundo de ĉirkaŭ tri kilometroj kaj estas objekto de serĉado de naftorezervujoj.

Eksperimentaj datumoj. Prilaborado kaj bildigo

Ni tuj faru rezervon pri la sismaj materialoj montritaj en la artikolo - pro tio, ke la kvanto de datumoj uzataj por la analizo estas signifa - nur fragmento de la originala aro de sismaj spuroj estas inkluzivita en la teksto de la artikolo. Ĉi tio permesos al iu ajn reprodukti la suprajn kalkulojn.

Laborante kun sismaj datumoj, geofizikisto kutime uzas specialan programaron (estas pluraj industriaj gvidantoj, kies evoluoj estas aktive uzataj, ekzemple Petrel aŭ Paradigm), kiu ebligas analizi malsamajn specojn de datumoj kaj havas oportunan grafikan interfacon. Malgraŭ la tuta oportuno, ĉi tiuj specoj de programaro ankaŭ havas siajn malavantaĝojn - ekzemple, la efektivigo de modernaj algoritmoj en stabilaj versioj prenas multan tempon, kaj la eblecoj por aŭtomatigi kalkulojn kutime estas limigitaj. En tia situacio fariĝas tre oportune uzi komputilajn matematikajn sistemojn kaj altnivelajn programlingvojn, kiuj ebligas la uzadon de larĝa algoritma bazo kaj, samtempe, alprenas multe da rutino. Ĉi tiu estas la principo uzata por labori kun sismaj datumoj en Wolfram Mathematica. Estas malkonvene skribi riĉan funkciecon por interaga laboro kun datumoj - estas pli grave certigi ŝarĝon de ĝenerale akceptita formato, aplikante la deziratajn algoritmojn al ili kaj alŝutante ilin reen al ekstera formato.

Sekvante la proponitan skemon, ni ŝargos la originalajn sismajn datumojn kaj montros ilin 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]

La datumoj elŝutitaj kaj importitaj tiamaniere estas la itineroj registritaj sur areo je 10 je 5 kilometroj. Se la datenoj estas akiritaj per tridimensia sisma enketmetodo (ondoj estas registritaj ne laŭ individuaj geofizikaj profiloj, sed sur la tuta areo samtempe), iĝas eble akiri sismajn datumkubojn. Temas pri tridimensiaj objektoj, kies vertikalaj kaj horizontalaj sekcioj permesas detalan studon de la geologia medio. En la konsiderata ekzemplo, ni traktas tridimensiajn datumojn. Ni povas ricevi kelkajn informojn de la teksta kaplinio, kiel ĉi tio

StringPartition[seismic3DSEGY["textheader"], 80] // TableForm

C 1 ĈI ĈI ESTAS DEMODOSIERO POR GEOLOGIA PAKKA TESTO
C 2
C 3
C 4
C 5 DATO UZANTNOMO: WOLFRAM UZANTO
C 6 ENKETONOMO: IE EN SIBERIO
C 7 DOSIERO TIPO 3D SISMICA VOLUMENO
C 8
C 9
C10 Z GAME: UNUA 2200M LASTA 2400M

Ĉi tiu datuma aro sufiĉos por ke ni pruvu la ĉefajn stadiojn de datuma analizo. La spuroj en la dosiero estas registritaj sinsekve kaj ĉiu el ili aspektas kiel la sekva figuro - jen la distribuo de la ampleksoj de reflektitaj ondoj laŭ la vertikala akso (profunda akso).

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]

Unu el la sismaj sekciospuroj
Wolfram Mathematica en Geofiziko

Sciante kiom da spuroj troviĝas en ĉiu direkto de la studita areo, vi povas generi tridimensian datuman tabelon kaj montri ĝin per la funkcio Image3D[]

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]]

3D bildo de sisma datuma kubo (Vertikala akso - profundo)
Wolfram Mathematica en Geofiziko

Se la geologiaj ecoj de intereso kreas intensajn sismajn anomaliojn, tiam bildigaj iloj kun travidebleco povas esti uzitaj. "Negravaj" areoj de la registrado povas fariĝi nevideblaj, lasante nur anomaliojn videblaj. En Wolfram Mathematica tio povas esti farita uzante Opakeco[] и Raster3D[].

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]

Sisma datuma kubbildo uzante Opacity[] kaj Raster3D[] funkciojn Wolfram Mathematica en Geofiziko

Kiel en la sinteza ekzemplo, sur sekcioj de la origina kubo oni povas identigi iujn geologiajn limojn (tavolojn) kun varia reliefo.

La ĉefa ilo por spektra analizo estas la transformo de Fourier. Kun ĝia helpo, vi povas taksi la amplitudo-frekvencan spektron de ĉiu spuro aŭ grupo de spuroj. Tamen, post translokado de la datumoj al la frekvenca domajno, informoj perdiĝas pri je kiuj tempoj (legu je kiaj profundoj) la frekvenco ŝanĝiĝas. Por povi lokalizi signalŝanĝojn sur la tempo (profundo) akso, la fenestra Fourier-transformo kaj ondoletputriĝo estas uzataj. Tiu artikolo uzas ondoletputriĝon. Wavelet analizteknologio komencis esti aktive uzita en sisma esplorado en la 90'oj. La avantaĝo super la fenestra transformo de Fourier estas konsiderita kiel pli bona temporezolucio.

Uzante la sekvan kodfragmenton, vi povas malkomponi unu el la sismaj spuroj en individuajn komponentojn:

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]

Malkomponaĵo de spuro en komponantojn
Wolfram Mathematica en Geofiziko

Por taksi kiel la reflektenergio estas distribuita en malsamaj ondaj alventempoj, skologramoj (analoga al spektrogramo) estas uzitaj. Kiel regulo, praktike ne necesas analizi ĉiujn komponantojn. Tipe, malaltaj, mezaj kaj altfrekvencaj komponentoj estas elektitaj.

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]

Skalogramo. Funkcia rezulto WaveletScalogram[]
Wolfram Mathematica en Geofiziko

La Wolfram Lingvo uzas la funkcion por ondettransformo Kontinua Ondotransformo[]. Kaj la apliko de ĉi tiu funkcio al la tuta aro de spuroj estos efektivigita uzante la funkcion Tablo[]. Ĉi tie indas noti unu el la fortoj de Wolfram Mathematica - la kapablo uzi paraleligon ParalelaTablo[]. En la supra ekzemplo, ne necesas paraleligo - la volumo de datumoj ne estas granda, sed kiam oni laboras kun eksperimentaj datumaj aroj enhavantaj centojn da miloj da spuroj, tio estas neceso.

tracesCWD=Table[Map[Hilbert[#,0]&,Re[ContinuousWaveletTransform[traces[[i]]][[1]]][[{13,15,18}]]],{i,1,Length@traces}]; 

Post aplikado de la funkcio Kontinua Ondotransformo[] Novaj datenoj aperas respondaj al la elektitaj frekvencoj. En la supra ekzemplo, ĉi tiuj frekvencoj estas: 38Hz, 33Hz, 27Hz. La elekto de frekvencoj estas plej ofte farita surbaze de provoj - ili akiras efikajn mapojn por malsamaj frekvencaj kombinaĵoj kaj elektas la plej informan el la vidpunkto de geologo.

Se vi bezonas dividi la rezultojn kun kolegoj aŭ provizi ilin al la kliento, vi povas uzi la funkcion SEGYExport[] de la pako GeologyIO.

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];

Kun tri el ĉi tiuj kuboj (malaltfrekvencaj, mezfrekvencaj kaj altfrekvencaj komponantoj), RGB-miksado estas kutime uzata por bildigi la datumojn kune. Ĉiu komponanto ricevas sian propran koloron - ruĝa, verda, blua. En Wolfram Mathematica tio povas esti farita uzante la funkcion KoloroKombino[].

La rezulto estas bildoj el kiuj geologia interpreto povas esti farita. La meandroj kiuj estas registritaj sur la sekcio ebligas kontuzi paleokanalojn, kiuj pli verŝajne estas rezervujoj kaj enhavas naftorezervojn. La serĉo kaj analizo de modernaj analogoj de tia riversistemo permesas al ni determini la plej esperigajn partojn de la meandroj. La kanaloj mem estas karakterizitaj per dikaj tavoloj de bone ordigita grejso kaj estas bona rezervujo por petrolo. Areoj ekster la "punto-" anomalioj estas similaj al modernaj flusebenaĵenpagoj. Fluebenaĵenpagoj estas plejparte reprezentitaj per argilaj ŝtonoj kaj borado en tiujn zonojn estos neefika.

RGB-tranĉaĵo de la datumkubo. En la centro (iomete maldekstre de la centro) vi povas spuri la serpentuman riveron.
Wolfram Mathematica en Geofiziko
RGB-tranĉaĵo de la datumkubo. Maldekstre vi povas spuri la serpentuman riveron.
Wolfram Mathematica en Geofiziko

En kelkaj kazoj, la kvalito de sismaj datenoj permesas signife pli klarajn bildojn. Ĉi tio dependas de la kampa labormetodaro, la ekipaĵo uzata de la bruoredukta algoritmo. En tiaj kazoj videblas ne nur fragmentoj de riversistemoj, sed ankaŭ tutaj etenditaj paleo-riveroj.

RGB-miksado de tri komponentoj de sisma datenkubo (horizontala tranĉaĵo). Profundo proksimume 2 km.
Wolfram Mathematica en Geofiziko
Satelita bildo de la rivero Volgo proksime de Saratov
Wolfram Mathematica en Geofiziko

konkludo

Wolfram Mathematica permesas analizi sismajn datumojn kaj solvi aplikatajn problemojn rilatajn al minerala esplorado, kaj la GeologyIO-pakaĵo faras ĉi tiun procezon pli oportuna. La strukturo de sismaj datenoj estas tia, ke uzi enkonstruitajn metodojn por akceli kalkulojn (ParalelaTablo[], Paralelo[],…) estas tre efika kaj permesas vin prilabori grandajn kvantojn da datumoj. En granda mezuro, ĉi tio estas faciligita de la datumstokaj funkcioj de la pako GeologyIO. Parenteze, la pakaĵo povas esti uzata ne nur en la kampo de aplikata sisma esplorado. Preskaŭ la samaj tipoj de datumoj estas uzataj en tera penetranta radaro kaj sismologio.Se vi havas sugestojn pri kiel plibonigi la rezulton, kiuj signalanalizalgoritmoj de la arsenalo Wolfram Mathematica estas aplikeblaj al tiaj datumoj, aŭ se vi havas iujn kritikajn komentojn, bv. lasu komenton.

fonto: www.habr.com

Aldoni komenton