Wolfram Mathematica in Geophysics

Mei tank oan de skriuwer fan it blog Anton Ekimenko foar syn rapport

Ynlieding

Dizze notysje is skreaun nei de konferinsje Wolfram Russian Technology Conference en befettet in gearfetting fan it rapport dat ik joech. It evenemint fûn plak yn juny yn Sint-Petersburch. Yn betinken nommen dat ik wurkje in blok fan de konferinsje site, Ik koe net helpe, mar bywenje dit evenemint. Yn 2016 en 2017 harke ik nei konferinsjeferslaggen, en dit jier joech ik in presintaasje. As earste is der in nijsgjirrich (lykas my liket) ûnderwerp ferskynde, dêr't wy ús mei ûntwikkelje Kirill Belov, en twadde, nei in lange stúdzje fan 'e wetjouwing fan' e Russyske Federaasje oangeande sanksjesbelied, by it bedriuw wêr't ik wurkje, ferskynden safolle as twa lisinsjes Wolfram Mathematica.

Foardat ik oergean nei it ûnderwerp fan myn taspraak, wol ik de goede organisaasje fan it evenemint opmerke. De besiteside fan 'e konferinsje brûkt in ôfbylding fan' e Kazan-katedraal. De katedraal is ien fan de wichtichste attraksjes fan Sint-Petersburch en is tige dúdlik te sjen fanút de seal dêr't de konferinsje plakfûn.

Wolfram Mathematica in Geophysics

By de yngong fan Sint-Petersburg State Economic University waarden dielnimmers moete troch assistinten út 'e studinten - se lieten se net ferlern gean. By de registraasje waarden lytse souvenirs útjûn (boartersguod - in flitsende spike, in pinne, stickers mei Wolfram-symboalen). Lunch- en kofjepauzes waarden ek opnommen yn it konferinsjeskema. Ik haw al opmurken oer lekkere kofje en taarten op 'e muorre fan' e groep - de chefs binne geweldich. Mei dit ynliedend diel wol ik de klam jaan dat it evenemint sels, de opmaak en lokaasje dêrfan al positive emoasjes opbringe.

It rapport dat waard taret troch my en Kirill Belov hjit "Wolfram Mathematica brûke om problemen yn tapaste geofysika op te lossen. Spektrale analyze fan seismyske gegevens of "wêr't âlde rivieren rûnen." De ynhâld fan it rapport beslacht twa dielen: as earste, it brûken fan algoritmen beskikber yn Wolfram Mathematica foar it analysearjen fan geofysyske gegevens, en twadde, dit is hoe't jo geofysyske gegevens yn Wolfram Mathematica pleatse.

Seismyske ferkenning

Earst moatte jo in koarte ekskurzje meitsje yn geofysika. Geofysika is de wittenskip dy't de fysike eigenskippen fan rotsen bestudearret. No, om't rotsen ferskillende eigenskippen hawwe: elektrysk, magnetysk, elastysk, binne der oerienkommende metoaden fan geofysika: elektryske prospektearjen, magnetyske prospektearjen, seismyske prospektearjen ... Yn 'e kontekst fan dit artikel sille wy allinich seismyske prospektearjen yn mear detail beprate. Seismyske ferkenning is de wichtichste metoade foar it sykjen nei oalje en gas. De metoade is basearre op it stimulearjen fan elastyske trillings en dêropfolgjende opname fan 'e reaksje fan' e rotsen dy't it stúdzjegebiet gearstelle. Vibraasjes wurde opwekke op lân (mei dynamyt of net-eksplosive trillingsboarnen fan elastyske trillings) of op see (mei loftgewearen). Elastyske trillingen propagearje troch de rotsmassa, wurde brutsen en reflektearre op 'e grinzen fan lagen mei ferskate eigenskippen. Wjerspegele weagen komme werom nei it oerflak en wurde opnommen troch geofoans op lân (meastal elektrodynamyske apparaten basearre op de beweging fan in magneet ophongen yn in spoel) of hydrofoans yn 'e see (basearre op it piëzoelektryske effekt). Tsjin 'e tiid fan oankomst fan weagen kin men de djipten fan geologyske lagen beoardielje.

Seismysk skip towing apparatuer
Wolfram Mathematica in Geophysics

It luchtgewear stimulearret elastyske trillingen
Wolfram Mathematica in Geophysics

De weagen geane troch de rotsmassa en wurde opnommen troch hydrofoans
Wolfram Mathematica in Geophysics

Geofysysk ûndersyk ûndersyk skip "Ivan Gubkin" by de pier by de Blagoveshchensky Bridge yn Sint Petersburg
Wolfram Mathematica in Geophysics

Seismysk sinjaal model

Rotsen hawwe ferskillende fysike eigenskippen. Foar seismyske ferkenning binne elastyske eigenskippen foaral wichtich - de snelheid fan fuortplanting fan elastyske trillings en tichtens. As twa lagen deselde of ferlykbere eigenskippen hawwe, dan sil de welle de grins tusken har "net fernimme". As de golfsnelheden yn 'e lagen ferskille, dan sil refleksje foarkomme op 'e grins fan 'e lagen. Hoe grutter it ferskil yn eigenskippen, hoe yntinsiver de refleksje. De yntinsiteit dêrfan wurdt bepaald troch de reflektânsjekoëffisjint (rc):

Wolfram Mathematica in Geophysics

wêrby't ρ de rotstichte is, ν de golfsnelheid is, 1 en 2 jouwe de boppeste en ûnderste lagen oan.

Ien fan 'e ienfâldichste en meast brûkte seismyske sinjaalmodellen is it konvolúsjemodel, as it opnommen seismyske spoar wurdt fertsjintwurdige as it resultaat fan konvolúsje fan in folchoarder fan refleksjekoëffisjinten mei in probearjende puls:

Wolfram Mathematica in Geophysics

wêr s(t) - seismysk spoar, d.w.s. alles wat opnommen is troch in hydrofoan of geofoan yn in fêste opnametiid, w(t) - it sinjaal generearre troch it luchtgewear, n(t) - willekeurige lûd.

Lit ús as foarbyld in syntetyske seismyske spoar berekkenje. Wy sille de Ricker-puls brûke, in protte brûkt yn seismyske ferkenning, as it earste sinjaal.

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]

Inisjele seismyske ympuls
Wolfram Mathematica in Geophysics

Wy sille twa grinzen ynstelle op djipten fan 300 ms en 600 ms, en de refleksjekoeffisienten sille willekeurige getallen wêze

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

Folchoarder fan refleksje koeffizienten
Wolfram Mathematica in Geophysics

Litte wy it seismyske spoar berekkenje en werjaan. Sûnt de refleksjekoëffisjinten ferskillende tekens hawwe, krije wy twa ôfwikseljende refleksjes op it seismyske spoar.

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

Simulearre spoar
Wolfram Mathematica in Geophysics

Foar dit foarbyld is it nedich om in reservearring te meitsjen - yn 'e realiteit wurdt de djipte fan' e lagen bepaald, fansels, yn meters, en de berekkening fan 'e seismyske spoar komt foar it tiiddomein. It soe krekter wêze om de djipten yn meters yn te stellen en de oankomsttiden te berekkenjen mei it witten fan de snelheden yn de lagen. Yn dit gefal set ik fuortendaliks de lagen op 'e tiidas.

As wy it oer fjildûndersyk prate, dan wurde as gefolch fan sokke waarnimmings in grut oantal ferlykbere tiidrige (seismyske spoaren) opnommen. Bygelyks, by it bestudearjen fan in side 25 km lang en 15 km breed, dêr't, as gefolch fan wurk, elke spoar karakterisearret in sel fan 25x25 meter (sa'n sel wurdt in bin neamd), sil de definitive gegevensarray 600000 spoaren befetsje. Mei in samplingtiid fan 1 ms en in opnametiid fan 5 sekonden sil it definitive gegevensbestân mear wêze as 11 GB, en it folume fan it orizjinele "raw" materiaal kin hûnderten gigabytes wêze.

Hoe om te wurkjen mei harren Wolfram Mathematica?

Pakket Geology IO

De ûntwikkeling fan it pakket begûn útjefte op de VK-muorre fan de Russysktalige stipegroep. Troch de reaksjes fan de mienskip is der hiel gau in oplossing fûn. En dêrtroch groeide it út ta in serieuze ûntwikkeling. Oerienkommende Wolfram Community wall post It waard sels markearre troch moderators. Op it stuit stipet it pakket wurkjen mei de folgjende gegevenstypen dy't aktyf wurde brûkt yn 'e geologyske yndustry:

  1. ymportearje fan kaartgegevens yn ZMAP- en IRAP-formaten
  2. ymport fan mjittingen yn LAS opmaak wells
  3. ynfier en útfier fan seismysk triemformaat SEGY

Om it pakket te ynstallearjen, moatte jo de ynstruksjes folgje op 'e downloadside fan it gearstalde pakket, d.w.s. útfiere de folgjende koade yn elk Mathematica notebook:

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

Hjirnei sil it pakket wurde ynstalleare yn 'e standertmap, it paad wêrnei't kin wurde krigen as folget:

FileNameJoin[{$UserBasePacletsDirectory, "Repository"}]

As foarbyld sille wy de wichtichste mooglikheden fan it pakket demonstrearje. De oprop wurdt tradisjoneel dien foar pakketten yn 'e Wolfram-taal:

Get["GeologyIO`"]

It pakket is ûntwikkele mei help fan Wolfram Workbench. Hjirmei kinne jo de haadfunksjonaliteit fan it pakket begeliede mei dokumintaasje, dy't yn termen fan presintaasjeformaat net ferskille fan 'e dokumintaasje fan Wolfram Mathematica sels, en it pakket te foarsjen mei testbestannen foar de earste kunde.

Wolfram Mathematica in Geophysics

Wolfram Mathematica in Geophysics

Sa'n triem, benammen, is de triem "Marmousi.segy" - dit is in syntetyske model fan in geologyske seksje, dat waard ûntwikkele troch de Frânske Petroleum Ynstitút. Mei it brûken fan dit model testen ûntwikkelders har eigen algoritmen foar golffjildmodellering, gegevensferwurking, seismyske spoarinverzje, ensfh. It Marmousi-model sels wurdt opslein yn 'e repository wêrfan it pakket sels ynladen is. Om it bestân te krijen, útfiere de folgjende koade:

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

Ymportearje resultaat - SEGYData foarwerp
Wolfram Mathematica in Geophysics

It SEGY-formaat omfettet it opslaan fan ferskate ynformaasje oer observaasjes. As earste binne dit tekstopmerkingen. Dit omfettet ynformaasje oer de lokaasje fan it wurk, de nammen fan de bedriuwen dy't de mjittingen hawwe útfierd, ensfh. Yn ús gefal wurdt dizze koptekst neamd troch in fersyk mei de TextHeader-kaai. Hjir is in ferkoarte tekstkop:

Short[marmousi["TextHeader"]]

"De Marmousi-gegevensset waard oanmakke by it Ynstitút ... minimale snelheid fan 1500 m / s en in maksimum fan 5500 m / s)"

Jo kinne it eigentlike geologyske model werjaan troch tagong te krijen ta de seismyske spoaren mei de toets "spoaren" (ien fan 'e funksjes fan it pakket is dat de kaaien net-gefoelich binne):

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

Model Marmousi
Wolfram Mathematica in Geophysics

Op it stuit lit it pakket jo ek gegevens yn dielen laden fan grutte bestannen, wêrtroch it mooglik is om bestannen te ferwurkjen wêrfan de grutte tsientallen gigabytes kin berikke. De funksjes fan it pakket omfetsje ek funksjes foar it eksportearjen fan gegevens nei .segy en foar in part taheakje oan it ein fan it bestân.

Apart is it de muoite wurdich op te merken de funksjonaliteit fan it pakket by it wurkjen mei de komplekse struktuer fan .segy-bestannen. Sûnt it lit jo net allinich tagong krije ta yndividuele spoaren en kopteksten mei kaaien en yndeksen, mar ek om se te feroarjen en dan te skriuwen nei in bestân. In protte fan 'e technyske details fan' e ymplemintaasje fan GeologyIO lizze bûten it berik fan dit artikel en fertsjinje wierskynlik in aparte beskriuwing.

Relevânsje fan spektrale analyze yn seismyske ferkenning

De mooglikheid om seismyske gegevens yn Wolfram Mathematica te ymportearjen kinne jo ynboude sinjaalferwurkingsfunksjonaliteit brûke foar eksperimintele gegevens. Sûnt elk seismysk spoar stiet foar in tiidrige, is ien fan 'e wichtichste ark foar it bestudearjen fan har spektrale analyze. Under de betingsten foar it analysearjen fan de frekwinsje gearstalling fan seismyske gegevens, kinne wy ​​neame, bygelyks, de folgjende:

  1. Ferskillende soarten weagen wurde karakterisearre troch ferskillende frekwinsje gearstalling. Hjirmei kinne jo nuttige weagen markearje en ynterferinsjewellen ûnderdrukke.
  2. Rotseigenskippen lykas porositeit en sêding kinne ynfloed hawwe op de frekwinsje-komposysje. Dit makket it mooglik om rotsen te identifisearjen mei de bêste eigenskippen.
  3. Lagen mei ferskillende dikten feroarsaakje anomalies yn ferskate frekwinsjeberik.

It tredde punt is it wichtichste yn 'e kontekst fan dit artikel. Hjirûnder is in koadefragmint foar it berekkenjen fan seismyske spoaren yn it gefal fan in laach mei wikseljende dikte - in wigmodel. Dit model wurdt tradisjoneel studearre yn seismyske ferkenning om ynterferinsje-effekten te analysearjen as weagen dy't troch in protte lagen wjerspegele wurde op elkoar lizze.

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

Model fan in pinch-out formaasje
Wolfram Mathematica in Geophysics

De golfsnelheid binnen de wig is 4500 m/s, bûten de wig 4000 m/s, en de tichtheid wurdt oannommen dat it konstant is 2200 g/cm³. Foar sa'n model berekkenje wy refleksjekoëffisjinten en seismyske spoaren.

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]

Seismyske spoaren foar it wigmodel
Wolfram Mathematica in Geophysics

De folchoarder fan seismyske spoaren werjûn yn dizze figuer wurdt in seismyske seksje neamd. Sa't jo sjen kinne, syn ynterpretaasje kin ek útfierd wurde op in yntuïtyf nivo, sûnt de mjitkunde fan de wjerspegele weagen dúdlik oerienkomt mei it model dat waard oantsjutte earder. As jo ​​de spoaren yn mear detail analysearje, sille jo merke dat spoaren fan 1 oant likernôch 30 net ferskille - de refleksje fan it dak fan 'e formaasje en fan' e boaiem oerlaapje inoar net. Fanôf it 31ste spoar begjinne de refleksjes te bemuoien. En, hoewol yn it model, de refleksjekoëffisjinten net horizontaal feroarje - de seismyske spoaren feroarje har yntensiteit as de dikte fan 'e formaasje feroaret.

Litte wy de amplitude fan refleksje fan 'e boppegrins fan' e formaasje beskôgje. Fanôf de 60e rûte begjint de yntinsiteit fan de refleksje te ferheegjen en by de 70e rûte wurdt it maksimum. Dit is hoe't de ynterferinsje fan wellen fan it dak en de boaiem fan 'e lagen him manifestearret, wat yn guon gefallen liedt ta wichtige anomalies yn' e seismyske rekord.

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]

Grafyk fan 'e amplitude fan' e reflektearre welle fan 'e bopperâne fan' e wig
Wolfram Mathematica in Geophysics

It is logysk dat wannear't it sinjaal is legere frekwinsje, ynterferinsje begjint te ferskine op grutte formaasje dikten, en yn it gefal fan in hege-frekwinsje sinjaal, ynterferinsje optreedt by lytsere dikten. It folgjende koadefragment makket in sinjaal mei frekwinsjes fan 35 Hz, 55 Hz en 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]

In set boarnesinjalen mei frekwinsjes fan 35 Hz, 55Hz, 85Hz
Wolfram Mathematica in Geophysics

Troch it berekkenjen fan seismyske spoaren en it plotjen fan grafiken fan reflektearre golfamplituden kinne wy ​​sjen dat foar ferskate frekwinsjes in anomaly wurdt waarnommen by ferskate formaasjedikten.

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]

Grafiken fan 'e amplituden fan' e reflektearre welle fan 'e bopperâne fan' e wig foar ferskate frekwinsjes
Wolfram Mathematica in Geophysics

De mooglikheid om konklúzjes te lûken oer de dikte fan 'e formaasje út' e resultaten fan seismyske waarnimmings is ekstreem nuttich, om't ien fan 'e wichtichste taken yn' e oalje-eksploraasje is om de meast kânsrike punten te beoardieljen foar it lizzen fan in put (dus de gebieten dêr't de formaasje is dikker). Dêrnjonken kinne yn 'e geologyske seksje objekten wêze wêrfan de genesis in skerpe feroaring yn' e dikte fan 'e formaasje feroarsaket. Dit makket spektrale analyze in effektyf ark foar it bestudearjen fan har. Yn it folgjende diel fan it artikel sille wy beskôgje sokke geologyske objekten yn mear detail.

Eksperimintele gegevens. Wêr hast se helle en wat te sykjen yn harren?

De materialen analysearre yn it artikel waarden krigen yn West-Sibearje. De regio, sa't elkenien sûnder útsûndering wierskynlik wit, is de wichtichste oaljeprodusearjende regio fan ús lân. Aktive ûntwikkeling fan ôfsettings begûn yn 'e regio yn' e jierren '60 fan 'e foarige ieu. De wichtichste metoade foar it sykjen nei oalje ôfsettings is seismysk ferkenning. It is nijsgjirrich om te sjen nei satellytbylden fan dit territoarium. Op lytse skaal kinne jo in enoarm oantal sompen en marren notearje; troch de kaart te fergrutsjen, kinne jo klusterboaringsplakken sjen, en troch de kaart oant de limyt te fergrutsjen, kinne jo ek de iepenings fan 'e profilen ûnderskiede wêrby't seismyk is. waarnimmings waarden útfierd.

Satellietôfbylding fan Yandex-kaarten - Noyabrsk stedsgebiet
Wolfram Mathematica in Geophysics

In netwurk fan putpaden by ien fan de fjilden
Wolfram Mathematica in Geophysics

Oalje-dragende rotsen fan West-Sibearje komme yn in breed skala oan djipten - fan 1 km oant 5 km. It wichtichste folume fan rotsen mei oalje waard foarme yn 'e Jurassic en Kryt tiid. De Jurassic perioade is wierskynlik bekend foar in protte út 'e film mei deselde namme. Jurassic klimaat wie gâns oars as de moderne. De Encyclopedia Britannica hat in searje paleompen dy't elk helogysk tiidrek karakterisearje.

Tsjintwurdich
Wolfram Mathematica in Geophysics
Jurassic perioade
Wolfram Mathematica in Geophysics

Tink derom dat yn 'e Jurassic tiid it grûngebiet fan West-Sibearje in seekust wie (lân krúst troch rivieren en in ûndjippe see). Omdat it klimaat noflik wie, kinne wy ​​oannimme dat in typysk lânskip fan dy tiid der sa útseach:

Jurassic Sibearje
Wolfram Mathematica in Geophysics

Op dizze foto is wat foar ús wichtich is net sasear de bisten en fûgels, mar it byld fan de rivier op de eftergrûn. De rivier is itselde geologyske objekt dat wy earder stoppe. It feit is dat de aktiviteit fan rivieren makket dat goed sortearre sânstiennen sammelje kinne, dy't dan in reservoir wurde foar oalje. Dizze reservoirs kinne in bizarre, komplekse foarm hawwe (lykas in rivierbêd) en se hawwe fariabele dikte - tichtby de banken is de dikte lyts, mar tichter by it sintrum fan it kanaal of yn meandere gebieten nimt it ta. Dat, de rivieren foarme yn it Jurassic binne no op in djipte fan sa'n trije kilometer en binne it objekt fan in syktocht nei oaljereservoirs.

Eksperimintele gegevens. Ferwurking en fisualisaasje

Lit ús daliks in reservearje meitsje oangeande de seismyske materialen werjûn yn it artikel - fanwege it feit dat de hoemannichte gegevens brûkt foar de analyze signifikant is - is allinich in fragmint fan 'e oarspronklike set fan seismyske spoaren opnommen yn' e tekst fan it artikel. Dit sil elkenien tastean de boppesteande berekkeningen te reprodusearjen.

By it wurkjen mei seismyske gegevens, geofysiker meastal brûkt spesjalisearre software (d'r binne ferskate yndustry lieders waans ûntwikkelings wurde aktyf brûkt, bygelyks Petrel of Paradigm), dat kinne jo analysearje ferskate soarten fan gegevens en hat in handige grafyske ynterface. Nettsjinsteande alle gemak hawwe dizze soarten software ek har neidielen - bygelyks de ymplemintaasje fan moderne algoritmen yn stabile ferzjes nimt in protte tiid, en de mooglikheden foar it automatisearjen fan berekkeningen binne meast beheind. Yn sa'n situaasje wurdt it heul handich om kompjûterwiskundesystemen en programmeartalen op hege nivo's te brûken, wêrtroch it gebrûk fan in brede algoritmyske basis mooglik is en tagelyk in protte routine nimme. Dit is it prinsipe dat brûkt wurdt om te wurkjen mei seismyske gegevens yn Wolfram Mathematica. It is net geskikt om rike funksjonaliteit te skriuwen foar ynteraktyf wurk mei gegevens - it is wichtiger om it laden fan in algemien akseptearre formaat te garandearjen, de winske algoritmen oan te passen en se werom te uploaden nei in ekstern formaat.

Nei it foarstelde skema sille wy de orizjinele seismyske gegevens laden en se werjaan 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]

De gegevens dy't op dizze manier downloade en ymporteare binne de rûtes opnommen op in gebiet fan 10 by 5 kilometer. As de gegevens wurde krigen mei help fan in trijediminsjonale seismysk ûndersyk metoade (wellen wurde opnommen net lâns yndividuele geofysyske profilen, mar oer it hiele gebiet tagelyk), wurdt it mooglik te krijen seismyske gegevens cubes. Dit binne trijediminsjonale objekten, fertikale en horizontale seksjes wêrfan in detaillearre stúdzje fan 'e geologyske omjouwing mooglik makket. Yn it beskôge foarbyld hawwe wy te krijen mei trijediminsjonale gegevens. Wy kinne wat ynformaasje krije fan 'e tekstkop, lykas dit

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

C 1 DIT IS DEMO FILE FOAR GEOLOGYIO PACKAGE TEST
C 2
C 3
C 4
C 5 DATE USER NAME: WOLFRAM USER
C 6 ENKEL NAMME: EARSTE IN SIBERIA
C 7 FILE TYPE 3D SEISMIC VOLUME
C 8
C 9
C10 Z RANGE: EARSTE 2200M LAST 2400M

Dizze dataset sil genôch wêze foar ús om de wichtichste stadia fan gegevensanalyse te demonstrearjen. De spoaren yn 'e triem wurde opfolgjend opnomd en elk fan har sjocht der sa út as de folgjende figuer - dit is de ferdieling fan' e amplituden fan reflektearre weagen lâns de fertikale as (djipte-as).

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]

Ien fan de seismyske seksje spoaren
Wolfram Mathematica in Geophysics

Witte hoefolle spoaren yn elke rjochting fan it ûndersochte gebiet lizze, kinne jo in trijediminsjonale gegevensarray generearje en it werjaan mei de funksje 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]]

XNUMXD-ôfbylding fan in seismyske gegevenskubus (fertikale as - djipte)
Wolfram Mathematica in Geophysics

As de geologyske skaaimerken fan belang yntinse seismyske anomalies meitsje, dan kinne fisualisaasje-ark mei transparânsje brûkt wurde. "Unwichtige" gebieten fan 'e opname kinne ûnsichtber makke wurde, wêrtroch allinich anomalies sichtber binne. Yn Wolfram Mathematica kin dit dien wurde mei Opasiteit[] и 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]

Seismyske gegevens kubusôfbylding mei Opacity[] en Raster3D[] funksjes Wolfram Mathematica in Geophysics

Lykas yn it syntetyske foarbyld, kinne jo op seksjes fan 'e oarspronklike kubus guon geologyske grinzen (lagen) identifisearje mei fariabele reliëf.

It wichtichste ark foar spektrale analyze is de Fourier-transformaasje. Mei har help kinne jo it amplitude-frekwinsjespektrum fan elke spoar as groep fan spoaren evaluearje. Nei it oerbringen fan de gegevens nei it frekwinsjedomein wurdt lykwols ynformaasje ferlern oer op hokker tiden (lês op hokker djipten) de frekwinsje feroaret. Om sinjaalferoarings op 'e tiid (djipte) as te lokalisearjen, wurde de finstere Fourier-transformaasje en wavelet-ôfdieling brûkt. Dit artikel brûkt wavelet-ûntbining. Wavelet-analysetechnology begon aktyf te brûken yn seismyske ferkenning yn 'e jierren '90. It foardiel boppe de windowed Fourier transformaasje wurdt beskôge as in bettere tiid resolúsje.

Mei it brûken fan it folgjende koadefragmint kinne jo ien fan 'e seismyske spoaren yn yndividuele komponinten ûntbine:

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]

Dekomposysje fan in spoar yn komponinten
Wolfram Mathematica in Geophysics

Om te beoardieljen hoe't de refleksje-enerzjy op ferskate oankomsttiden fan 'e weagen ferdield is, wurde skalogrammen (analooch oan in spektrogram) brûkt. As regel, yn 'e praktyk is it net nedich om alle komponinten te analysearjen. Typysk wurde komponinten foar lege, midden en hege frekwinsje selektearre.

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]

Scalogram. Funksje resultaat WaveletScalogram[]
Wolfram Mathematica in Geophysics

De Wolfram-taal brûkt de funksje foar wavelet-transformaasje ContinuousWaveletTransform[]. En de tapassing fan dizze funksje op 'e heule set fan spoaren sil wurde útfierd mei de funksje Tafel[]. Hjir is it de muoite wurdich opskriuwen ien fan de sterke punten fan Wolfram Mathematica - de mooglikheid om te brûken parallelization Parallelle tabel[]. Yn it boppesteande foarbyld is d'r gjin ferlet fan parallelisaasje - it folume fan gegevens is net grut, mar by it wurkjen mei eksperimintele gegevenssets dy't hûnderttûzenen spoaren befetsje, is dit in needsaak.

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

Nei it tapassen fan de funksje ContinuousWaveletTransform[] Nije datasets ferskine oerienkommende mei de selektearre frekwinsjes. Yn it foarbyld hjirboppe binne dizze frekwinsjes: 38Hz, 33Hz, 27Hz. De kar fan frekwinsjes wurdt meastentiids útfierd op basis fan testen - se krije effektive kaarten foar ferskate frekwinsjekombinaasjes en selektearje de meast ynformative út it eachpunt fan in geolooch.

As jo ​​​​de resultaten moatte diele mei kollega's of oan 'e klant leverje, kinne jo de SEGYExport[]-funksje fan it GeologyIO-pakket brûke

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

Mei trije fan dizze kubussen (lege-frekwinsje, mid-frekwinsje, en hege-frekwinsje komponinten), RGB blending wurdt typysk brûkt om te visualisearjen de gegevens tegearre. Elke komponint wurdt tawiisd in eigen kleur - read, grien, blau. Yn Wolfram Mathematica kin dat mei de funksje Kleurkombinaasje[].

It resultaat is bylden dêr't geologyske ynterpretaasje fan makke wurde kin. De meanders dy't op 'e seksje opnommen binne, meitsje it mooglik om paleokanalen ôf te tekenjen, dy't earder reservoirs binne en oaljereserves befetsje. It sykjen en analysearjen fan moderne analogen fan sa'n riviersysteem lit ús bepale de meast kânsrike dielen fan 'e meanders. De kanalen sels wurde karakterisearre troch dikke lagen fan goed sortearre sânstien en binne in goed reservoir foar oalje. Gebieten bûten de "kant" anomalies binne fergelykber mei moderne oerstreamingsplakken. Floodplain ôfsettings wurde benammen fertsjintwurdige troch klaai rotsen en boarjen yn dizze sônes sil wêze net effektyf.

RGB-stik fan 'e gegevenskubus. Yn it sintrum (in bytsje links fan it sintrum) kinne jo de meanderjende rivier folgje.
Wolfram Mathematica in Geophysics
RGB-stik fan 'e gegevenskubus. Oan de linkerkant kinne jo de meanderjende rivier folgje.
Wolfram Mathematica in Geophysics

Yn guon gefallen soarget de kwaliteit fan seismyske gegevens foar signifikant dúdliker bylden. Dit hinget ôf fan 'e fjildwurkmetoade, de apparatuer brûkt troch it lûdreduksjealgoritme. Yn sokke gefallen binne net allinnich fragminten fan riviersystemen sichtber, mar ek hiele útwreide paleo-rivieren.

RGB-minging fan trije komponinten fan in seismyske gegevenskubus (horizontale slice). Djipte likernôch 2 km.
Wolfram Mathematica in Geophysics
Satellietbyld fan de Wolga rivier by Saratov
Wolfram Mathematica in Geophysics

konklúzje

Wolfram Mathematica lit jo seismyske gegevens analysearje en tapaste problemen oplosse yn ferbân mei mineraalûndersyk, en it GeologyIO-pakket makket dit proses handiger. De struktuer fan seismyske gegevens is sa dat it brûken fan ynboude metoaden om berekkeningen te fersnellen (Parallelle tabel[], ParallelDo[],...) is heul effisjint en lit jo grutte hoemannichten gegevens ferwurkje. Foar in grut part wurdt dit fasilitearre troch de gegevens opslachfunksjes fan it GeologyIO-pakket. Trouwens, it pakket kin brûkt wurde net allinnich op it mêd fan tapaste seismyske ferkenning. Hast deselde soarten gegevens wurde brûkt yn grûnpenetrearjende radar en seismology. As jo ​​suggestjes hawwe oer hoe't jo it resultaat kinne ferbetterje, hokker sinjaalanalysealgoritmen út it Wolfram Mathematica-arsenal fan tapassing binne op sokke gegevens, of as jo krityske opmerkingen hawwe, asjebleaft Lit in reaksje efter.

Boarne: www.habr.com

Add a comment