Wolfram Mathematica u geofizici

Hvala autoru bloga Anton Ekimenko za njegov izvještaj

Uvod

Ova bilješka je napisana nakon konferencije Wolfram Ruska tehnološka konferencija i sadrži sažetak izvješća koje sam dao. Događaj se zbio u lipnju u St. S obzirom da radim u bloku od konferencijskog mjesta, nisam mogao ne prisustvovati ovom događaju. 2016. i 2017. slušao sam konferencijska izvješća, a ove sam godine održao izlaganje. Prvo, pojavila se zanimljiva (čini mi se) tema koju razvijamo Kiril Belov, i drugo, nakon dugog proučavanja zakonodavstva Ruske Federacije u vezi politike sankcija, u poduzeću u kojem radim pojavile su se čak dvije licence Wolfram Mathematica.

Prije nego prijeđem na temu svog govora, želio bih istaknuti dobru organizaciju događaja. Posjetna stranica konferencije koristi sliku Kazanske katedrale. Katedrala je jedna od glavnih atrakcija Sankt Peterburga i vrlo je jasno vidljiva iz dvorane u kojoj se održavala konferencija.

Wolfram Mathematica u geofizici

Na ulazu u St. Petersburg State Economic University sudionike su dočekali asistenti među studentima - nisu im dopustili da se izgube. Prilikom registracije dijelili su se mali suveniri (igračka - svjetleći šiljak, olovka, naljepnice sa simbolima Wolframa). Pauze za ručak i kavu također su bile uključene u raspored konferencije. Već sam primijetio ukusnu kavu i pite na zidu grupe - kuhari su sjajni. Ovim uvodnim dijelom želio bih naglasiti da sam događaj, njegov format i mjesto već nosi pozitivne emocije.

Izvješće koje smo pripremili ja i Kirill Belov zove se “Korištenje Wolfram Mathematice za rješavanje problema u primijenjenoj geofizici. Spektralna analiza seizmičkih podataka ili "gdje su tekle drevne rijeke". Sadržaj izvješća obuhvaća dva dijela: prvo, korištenje algoritama dostupnih u Wolfram Mathematica za analizu geofizičkih podataka, i drugo, ovo je kako staviti geofizičke podatke u Wolfram Mathematicu.

Seizmička istraživanja

Prvo morate napraviti kratki izlet u geofiziku. Geofizika je znanost koja proučava fizikalna svojstva stijena. Pa budući da stijene imaju različita svojstva: električna, magnetska, elastična, postoje i odgovarajuće metode geofizike: elektroprospekcija, magnetska prospekcija, seizmička prospekcija... U kontekstu ovog članka detaljnije ćemo govoriti samo o seizmičkoj prospekciji. Seizmičko istraživanje je glavna metoda traženja nafte i plina. Metoda se temelji na pobuđivanju elastičnih vibracija i naknadnom snimanju odziva stijena koje čine područje istraživanja. Vibracije se pobuđuju na kopnu (dinamitom ili neeksplozivnim izvorima vibracija elastičnih vibracija) ili na moru (zračnim topovima). Elastične vibracije se šire kroz stijensku masu, lome se i reflektiraju na granicama slojeva različitih svojstava. Reflektirani valovi se vraćaju na površinu i bilježe geofoni na kopnu (obično elektrodinamički uređaji temeljeni na kretanju magneta obješenog u zavojnici) ili hidrofoni u moru (temeljeni na piezoelektričnom efektu). Po vremenu dolaska valova može se suditi o dubini geoloških slojeva.

Oprema za tegljenje seizmičkih plovila
Wolfram Mathematica u geofizici

Zračna puška pobuđuje elastične vibracije
Wolfram Mathematica u geofizici

Valovi prolaze kroz stijensku masu i snimaju ih hidrofoni
Wolfram Mathematica u geofizici

Istraživački brod za geofizička istraživanja "Ivan Gubkin" na pristaništu u blizini Blagoveščenskog mosta u Sankt Peterburgu
Wolfram Mathematica u geofizici

Model seizmičkog signala

Stijene imaju različita fizikalna svojstva. Za seizmička istraživanja prvenstveno su važna elastična svojstva - brzina širenja elastičnih vibracija i gustoća. Ako dva sloja imaju ista ili slična svojstva, tada val "neće primijetiti" granicu između njih. Ako se brzine valova u slojevima razlikuju, tada će doći do refleksije na granici slojeva. Što je razlika u svojstvima veća, refleksija je intenzivnija. Njegov intenzitet bit će određen koeficijentom refleksije (rc):

Wolfram Mathematica u geofizici

gdje je ρ gustoća stijene, ν je brzina vala, 1 i 2 označavaju gornji i donji sloj.

Jedan od najjednostavnijih i najčešće korištenih modela seizmičkih signala je konvolucijski model, kada se snimljeni seizmički trag prikazuje kao rezultat konvolucije niza koeficijenata refleksije sa sondirajućim impulsom:

Wolfram Mathematica u geofizici

gdje je s(t) — seizmički trag, tj. sve što je snimljeno hidrofonom ili geofonom tijekom fiksnog vremena snimanja, w(t) - signal koji stvara zračna puška, n(t) - nasumična buka.

Izračunajmo sintetički seizmički trag kao primjer. Kao početni signal koristit ćemo Rickerov puls, široko korišten u seizmičkim istraživanjima.

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]

Početni seizmički impuls
Wolfram Mathematica u geofizici

Postavit ćemo dvije granice na dubinama od 300 ms i 600 ms, a koeficijenti refleksije bit će slučajni brojevi

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

Redoslijed koeficijenata refleksije
Wolfram Mathematica u geofizici

Izračunajmo i prikažimo seizmički trag. Budući da koeficijenti refleksije imaju različite predznake, na seizmičkom tragu dobivamo dvije izmjenične refleksije.

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

Simulirana staza
Wolfram Mathematica u geofizici

Za ovaj primjer potrebno je napraviti rezervu - u stvarnosti se dubina slojeva određuje, naravno, u metrima, a izračun seizmičkog traga događa se za vremensku domenu. Ispravnije bi bilo postaviti dubine u metrima i izračunati vremena dolaska znajući brzine u slojevima. U ovom slučaju, odmah postavljam slojeve na vremensku os.

Ako govorimo o terenskim istraživanjima, tada se kao rezultat takvih opažanja bilježi ogroman broj sličnih vremenskih serija (seizmičkih tragova). Na primjer, pri proučavanju mjesta dugog 25 km i širokog 15 km, gdje kao rezultat rada svaki trag karakterizira ćeliju dimenzija 25x25 metara (takva se ćelija naziva bin), konačni niz podataka sadržavat će 600000 1 tragova. Uz vrijeme uzorkovanja od 5 ms i vrijeme snimanja od 11 sekundi, konačna podatkovna datoteka bit će veća od XNUMX GB, a volumen izvornog "sirovog" materijala može biti stotine gigabajta.

Kako raditi s njima Wolfram Mathematica?

paket GeologijaIO

Započeo je razvoj paketa pitanje na VK zidu grupe za podršku ruskog govornog područja. Zahvaljujući odgovorima zajednice, vrlo brzo je pronađeno rješenje. I kao rezultat toga, prerastao je u ozbiljan razvoj. Odgovara Objava na zidu zajednice Wolfram Čak su ga obilježili i moderatori. Trenutno paket podržava rad sa sljedećim tipovima podataka koji se aktivno koriste u geološkoj industriji:

  1. uvoz kartografskih podataka u ZMAP i IRAP formatima
  2. uvoz mjerenja u bušotine LAS formata
  3. ulaz i izlaz formata seizmičkih datoteka SEGY

Da biste instalirali paket, morate slijediti upute na stranici za preuzimanje sastavljenog paketa, tj. izvršite sljedeći kod u bilo kojem Mathematica bilježnica:

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

Nakon toga će se paket instalirati u zadanu mapu, a put do koje se može dobiti na sljedeći način:

FileNameJoin[{$UserBasePacletsDirectory, "Repository"}]

Kao primjer, pokazat ćemo glavne mogućnosti paketa. Poziv se obavlja tradicionalno za pakete u jeziku Wolfram:

Get["GeologyIO`"]

Paket je razvijen korištenjem Wolfram Workbench. To vam omogućuje da glavnu funkcionalnost paketa popratite dokumentacijom, koja se u pogledu formata prezentacije ne razlikuje od same dokumentacije Wolfram Mathematice, te da paketu priložite testne datoteke za prvo upoznavanje.

Wolfram Mathematica u geofizici

Wolfram Mathematica u geofizici

Takva je datoteka posebno datoteka "Marmousi.segy" - to je sintetički model geološkog presjeka koji je razvio Francuski institut za naftu. Koristeći ovaj model, programeri testiraju vlastite algoritme za modeliranje valnog polja, obradu podataka, inverziju seizmičkog traga itd. Sam Marmousi model pohranjen je u repozitoriju odakle je sam paket preuzet. Da biste dobili datoteku, pokrenite sljedeći kod:

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

Rezultat uvoza - objekt SEGYData
Wolfram Mathematica u geofizici

Format SEGY uključuje pohranu različitih informacija o opažanjima. Prvo, to su tekstualni komentari. To uključuje podatke o lokaciji radova, nazive tvrtki koje su izvršile mjerenja itd. U našem slučaju, ovo zaglavlje se poziva zahtjevom s ključem TextHeader. Evo skraćenog zaglavlja teksta:

Short[marmousi["TextHeader"]]

“Skup podataka Marmousi generiran je u Institutu ... minimalna brzina od 1500 m/s i maksimalna 5500 m/s)”

Možete prikazati stvarni geološki model pristupom seizmičkim tragovima pomoću tipke "tragovi" (jedna od značajki paketa je da tipke ne razlikuju velika i mala slova):

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

Model Marmousi
Wolfram Mathematica u geofizici

Trenutno vam paket također omogućuje učitavanje podataka u dijelovima iz velikih datoteka, što omogućuje obradu datoteka čija veličina može doseći desetke gigabajta. Funkcije paketa također uključuju funkcije za izvoz podataka u .segy i djelomično dodavanje na kraj datoteke.

Zasebno je vrijedno spomenuti funkcionalnost paketa pri radu sa složenom strukturom .segy datoteka. Budući da vam omogućuje ne samo pristup pojedinačnim tragovima i zaglavljima pomoću ključeva i indeksa, već i njihovu promjenu i zapisivanje u datoteku. Mnogi tehnički detalji implementacije GeologyIO-a izvan su opsega ovog članka i vjerojatno zaslužuju poseban opis.

Značaj spektralne analize u seizmičkim istraživanjima

Mogućnost uvoza seizmičkih podataka u Wolfram Mathematicu omogućuje vam korištenje ugrađene funkcije obrade signala za eksperimentalne podatke. Budući da svaki seizmički trag predstavlja vremenski niz, jedan od glavnih alata za njihovo proučavanje je spektralna analiza. Među preduvjetima za analizu frekvencijskog sastava seizmičkih podataka možemo navesti, na primjer, sljedeće:

  1. Različite vrste valova karakteriziraju različiti frekvencijski sastavi. To vam omogućuje da istaknete korisne valove i potisnete valove interferencije.
  2. Svojstva stijene kao što su poroznost i zasićenost mogu utjecati na frekvencijski sastav. To omogućuje prepoznavanje stijena s najboljim svojstvima.
  3. Slojevi različite debljine uzrokuju anomalije u različitim frekvencijskim područjima.

Treća točka je glavna u kontekstu ovog članka. Ispod je fragment koda za izračun seizmičkih tragova u slučaju sloja različite debljine - klinasti model. Ovaj se model tradicionalno proučava u seizmičkim istraživanjima kako bi se analizirali učinci interferencije kada se valovi reflektirani od mnogih slojeva međusobno preklapaju.

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 pinch-out formacije
Wolfram Mathematica u geofizici

Brzina vala unutar klina je 4500 m/s, izvan klina 4000 m/s, a gustoća je konstantna 2200 g/cm³. Za takav model izračunavamo koeficijente refleksije i seizmičke tragove.

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]

Seizmički tragovi za model klina
Wolfram Mathematica u geofizici

Slijed seizmičkih tragova prikazanih na ovoj slici naziva se seizmički presjek. Kao što vidite, njegovo tumačenje također se može provesti na intuitivnoj razini, budući da geometrija reflektiranih valova jasno odgovara modelu koji je ranije specificiran. Ako detaljnije analizirate tragove, primijetit ćete da se tragovi od 1 do otprilike 30 ne razlikuju – refleksija od krova formacije i od dna se međusobno ne preklapaju. Počevši od 31. traga, refleksije počinju interferirati. I, iako se u modelu koeficijenti refleksije ne mijenjaju horizontalno - seizmički tragovi mijenjaju svoj intenzitet kako se mijenja debljina formacije.

Razmotrimo amplitudu refleksije od gornje granice formacije. Počevši od 60. rute, intenzitet refleksije počinje rasti i na 70. ruti postaje maksimalan. Tako se očituje interferencija valova s ​​krova i dna slojeva, što u nekim slučajevima dovodi do značajnih anomalija u seizmičkom zapisu.

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]

Graf amplitude odbijenog vala od gornjeg ruba klina
Wolfram Mathematica u geofizici

Logično je da se kod nižefrekventnog signala smetnje počinju javljati pri velikim debljinama sloja, a kod visokofrekventnog signala do smetnji dolazi pri manjim debljinama. Sljedeći isječak koda stvara signal s frekvencijama od 35 Hz, 55 Hz i 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]

Skup izvornih signala s frekvencijama od 35 Hz, 55 Hz, 85 Hz
Wolfram Mathematica u geofizici

Izračunavanjem seizmičkih tragova i iscrtavanjem grafova amplituda reflektiranih valova, možemo vidjeti da se za različite frekvencije uočava anomalija pri različitim debljinama formacije.

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]

Grafikoni amplituda reflektiranog vala od gornjeg ruba klina za različite frekvencije
Wolfram Mathematica u geofizici

Sposobnost donošenja zaključaka o debljini formacije na temelju rezultata seizmičkih promatranja iznimno je korisna, jer je jedan od glavnih zadataka u istraživanju nafte procijeniti najperspektivnije točke za polaganje bušotine (tj. područja gdje je formacija deblji). Osim toga, u geološkom presjeku mogu postojati objekti čija geneza uzrokuje oštru promjenu debljine formacije. To čini spektralnu analizu učinkovitim alatom za njihovo proučavanje. U sljedećem dijelu članka detaljnije ćemo razmotriti takve geološke objekte.

Eksperimentalni podaci. Gdje ste ih nabavili i što tražiti u njima?

Materijali analizirani u članku dobiveni su u Zapadnom Sibiru. Regija je, kao što vjerojatno svi bez iznimke znaju, glavna naftna regija naše zemlje. Aktivni razvoj naslaga započeo je u regiji 60-ih godina prošlog stoljeća. Glavna metoda traženja nalazišta nafte je seizmičko istraživanje. Zanimljivo je pogledati satelitske snimke ovog područja. U malom mjerilu možete primijetiti ogroman broj močvara i jezera, povećanjem karte možete vidjeti mjesta bušenja klasternih bušotina, a povećanjem karte do krajnjih granica možete razlikovati i čistine profila duž kojih se seizmičko promatranja su provedena.

Satelitska slika Yandex karti - područje grada Noyabrsk
Wolfram Mathematica u geofizici

Mreža bušotina na jednom od polja
Wolfram Mathematica u geofizici

Naftonosne stijene Zapadnog Sibira nalaze se u širokom rasponu dubina - od 1 km do 5 km. Glavnina stijena koje sadrže naftu nastala je u doba jure i krede. Razdoblje jure vjerojatno je mnogima poznato iz istoimenog filma. Jurska klima bila znatno drugačija od moderne. Enciklopedija Britannica ima niz paleokarti koje karakteriziraju svaku helošku eru.

prisutan
Wolfram Mathematica u geofizici
period jure
Wolfram Mathematica u geofizici

Imajte na umu da je u doba jure teritorij zapadnog Sibira bio morska obala (zemlja koju su presijecale rijeke i plitko more). Budući da je klima bila ugodna, možemo pretpostaviti da je tipičan krajolik tog vremena izgledao ovako:

Jurski Sibir
Wolfram Mathematica u geofizici

Na ovoj slici ono što nam je važno nisu toliko životinje i ptice, koliko slika rijeke u pozadini. Rijeka je isti geološki objekt na kojem smo se ranije zaustavili. Činjenica je da aktivnost rijeka omogućuje nakupljanje dobro razvrstanih pješčenjaka, koji će potom postati rezervoar nafte. Ovi rezervoari mogu imati bizaran, složen oblik (poput riječnog korita) i imaju promjenjivu debljinu - u blizini obala debljina je mala, ali bliže središtu kanala ili u područjima meandra se povećava. Dakle, rijeke nastale u juri sada su na dubini od oko tri kilometra i predmet su potrage za naftnim ležištima.

Eksperimentalni podaci. Obrada i vizualizacija

Odmah napravimo rezervu u pogledu seizmičkih materijala prikazanih u članku - s obzirom da je količina podataka korištena za analizu značajna - u tekst članka uključen je samo fragment izvornog skupa seizmičkih tragova. To će omogućiti svakome reproducirati gornje izračune.

Kada radi sa seizmičkim podacima, geofizičar obično koristi specijalizirani softver (postoji nekoliko lidera u industriji čiji se razvoj aktivno koristi, na primjer Petrel ili Paradigm), koji vam omogućuje analizu različitih vrsta podataka i ima prikladno grafičko sučelje. Unatoč svim pogodnostima, ove vrste softvera imaju i svoje nedostatke - na primjer, implementacija modernih algoritama u stabilnim verzijama oduzima puno vremena, a mogućnosti automatizacije izračuna obično su ograničene. U takvoj situaciji postaje vrlo zgodno koristiti računalne matematičke sustave i programske jezike visoke razine, koji omogućuju korištenje široke algoritamske baze, a istovremeno preuzimaju puno rutine. Ovo je princip koji se koristi za rad sa seizmičkim podacima u Wolfram Mathematici. Neprimjereno je pisati bogatu funkcionalnost za interaktivni rad s podacima - važnije je osigurati učitavanje iz općeprihvaćenog formata, primjenom željenih algoritama na njih i učitavanjem natrag u vanjski format.

Slijedeći predloženu shemu, učitati ćemo izvorne seizmičke podatke i prikazati ih 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]

Podaci preuzeti i uvezeni na ovaj način su rute snimljene na površini veličine 10 puta 5 kilometara. Ako se podaci dobiju metodom trodimenzionalnog seizmičkog istraživanja (valovi se ne snimaju duž pojedinih geofizičkih profila, već na cijelom području istovremeno), postaje moguće dobiti kocke seizmičkih podataka. To su trodimenzionalni objekti čiji vertikalni i horizontalni presjeci omogućuju detaljno proučavanje geološkog okoliša. U razmatranom primjeru radi se o trodimenzionalnim podacima. Možemo dobiti neke informacije iz zaglavlja teksta, ovako

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

C 1 OVO JE DEMO DATOTEKA ZA TEST GEOLOGYIO PAKETA
C 2
C 3
C 4
C 5 DATUM KORISNIČKO IME: WOLFRAM KORISNIK
C 6 NAZIV ANKETE: NEGDJE U SIBIRU
C 7 VRSTA DATOTEKE 3D SEIZMIČKI VOLUME
C 8
C 9
C10 Z DOMET: PRVIH 2200M POSLJEDNJIH 2400M

Ovaj skup podataka bit će nam dovoljan da pokažemo glavne faze analize podataka. Tragovi u datoteci snimaju se sekvencijalno i svaki od njih izgleda otprilike kao sljedeća slika - ovo je distribucija amplituda reflektiranih valova duž vertikalne osi (os dubine).

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]

Jedan od tragova seizmičkog presjeka
Wolfram Mathematica u geofizici

Znajući koliko se tragova nalazi u svakom smjeru proučavanog područja, možete generirati trodimenzionalni niz podataka i prikazati ga pomoću funkcije 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 slika kocke seizmičkih podataka. (Okomita os - dubina)
Wolfram Mathematica u geofizici

Ako geološke značajke od interesa stvaraju intenzivne seizmičke anomalije, tada se mogu koristiti alati za vizualizaciju s transparentnošću. “Nevažna” područja snimke mogu se učiniti nevidljivima, ostavljajući vidljivima samo anomalije. U Wolfram Mathematici to se može učiniti pomoću Neprozirnost[] и Raster 3D[].

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]

Slika kocke seizmičkih podataka pomoću funkcija Opacity[] i Raster3D[]. Wolfram Mathematica u geofizici

Kao u sintetičkom primjeru, na dijelovima izvorne kocke mogu se identificirati neke geološke granice (slojevi) s promjenjivim reljefom.

Glavni alat za spektralnu analizu je Fourierova transformacija. Uz njegovu pomoć možete procijeniti amplitudno-frekvencijski spektar svakog traga ili grupe tragova. Međutim, nakon prijenosa podataka u frekvencijsku domenu gubi se informacija o tome u kojim trenucima (čitaj na kojim dubinama) se frekvencija mijenja. Kako bi se mogle lokalizirati promjene signala na vremenskoj (dubinskoj) osi, koristi se prozorska Fourierova transformacija i valićna dekompozicija. Ovaj članak koristi valićnu dekompoziciju. Tehnologija Wavelet analize počela se aktivno koristiti u seizmičkim istraživanjima 90-ih godina. Prednost u odnosu na prozorsku Fourierovu transformaciju smatra se boljom vremenskom rezolucijom.

Koristeći sljedeći fragment koda, možete rastaviti jedan od seizmičkih tragova na pojedinačne komponente:

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]

Rastavljanje traga na komponente
Wolfram Mathematica u geofizici

Da bi se procijenilo kako je energija refleksije raspoređena u različitim vremenima dolaska valova, koriste se skalogrami (analogno spektrogramu). U praksi u pravilu nema potrebe analizirati sve komponente. Obično se odabiru komponente niske, srednje i visoke frekvencije.

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]

Skalogram. Rezultat funkcije WaveletScalogram[]
Wolfram Mathematica u geofizici

Wolfram Language koristi funkciju za wavelet transformaciju Kontinuirana valna transformacija[]. A primjena ove funkcije na cijeli skup tragova bit će provedena pomoću funkcije Stol[]. Ovdje vrijedi istaknuti jednu od prednosti Wolfram Mathematice - mogućnost korištenja paralelizacije Paralelna tablica[]. U gornjem primjeru nema potrebe za paralelizacijom - količina podataka nije velika, ali kada se radi s eksperimentalnim skupovima podataka koji sadrže stotine tisuća tragova, to je nužnost.

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

Nakon primjene funkcije Kontinuirana valna transformacija[] Pojavljuju se novi skupovi podataka koji odgovaraju odabranim frekvencijama. U gornjem primjeru, ove frekvencije su: 38Hz, 33Hz, 27Hz. Odabir frekvencija najčešće se provodi na temelju testiranja - dobivaju se učinkovite karte za različite kombinacije frekvencija i odabire najinformativnija sa stajališta geologa.

Ako rezultate trebate podijeliti s kolegama ili ih dostaviti kupcu, možete koristiti funkciju SEGYExport[] GeologyIO paketa

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

S tri od ovih kockica (niskofrekventne, srednjefrekventne i visokofrekventne komponente), RGB spajanje se obično koristi za vizualizaciju podataka zajedno. Svakoj komponenti je dodijeljena vlastita boja - crvena, zelena, plava. U Wolfram Mathematici to se može učiniti pomoću funkcije Kombinacija boja[].

Rezultat su slike iz kojih se može napraviti geološka interpretacija. Meandri koji su snimljeni na presjeku omogućuju ocrtavanje paleokanala za koje je vjerojatnije da su ležišta i da sadrže rezerve nafte. Pretraživanje i analiza modernih analoga takvog riječnog sustava omogućuje nam da odredimo najperspektivnije dijelove meandara. Same kanale karakteriziraju debeli slojevi dobro sortiranog pješčenjaka i dobro su ležište nafte. Područja izvan "čipkastih" anomalija slična su modernim naslagama poplavnih nizina. Naslage u poplavnim nizinama uglavnom su predstavljene glinovitim stijenama i bušenje u tim zonama bit će neučinkovito.

RGB isječak podatkovne kocke. U središtu (malo lijevo od središta) možete pratiti vijugavu rijeku.
Wolfram Mathematica u geofizici
RGB isječak podatkovne kocke. S lijeve strane možete pratiti vijugavu rijeku.
Wolfram Mathematica u geofizici

U nekim slučajevima kvaliteta seizmičkih podataka omogućuje znatno jasnije slike. To ovisi o metodologiji rada na terenu, opremi koju koristi algoritam za smanjenje buke. U takvim slučajevima vidljivi su ne samo fragmenti riječnih sustava, već i cijele proširene paleoreke.

RGB miješanje tri komponente kocke seizmičkih podataka (horizontalni presjek). Dubina cca 2 km.
Wolfram Mathematica u geofizici
Satelitska slika rijeke Volge u blizini Saratova
Wolfram Mathematica u geofizici

Zaključak

Wolfram Mathematica omogućuje analizu seizmičkih podataka i rješavanje primijenjenih problema povezanih s istraživanjem minerala, a paket GeologyIO ovaj proces čini praktičnijim. Struktura seizmičkih podataka je takva da korištenje ugrađenih metoda ubrzava proračune (Paralelna tablica[], ParallelDo[],…) vrlo je učinkovit i omogućuje vam obradu velikih količina podataka. To je u velikoj mjeri olakšano značajkama pohrane podataka paketa GeologyIO. Usput, paket se može koristiti ne samo u području primijenjenih seizmičkih istraživanja. Gotovo iste vrste podataka koriste se u radaru koji prodire u zemlju i seizmologiji. Ako imate prijedloge kako poboljšati rezultat, koji su algoritmi za analizu signala iz arsenala Wolfram Mathematica primjenjivi na takve podatke ili ako imate kritičke komentare, molimo Ostavite komentar.

Izvor: www.habr.com

Dodajte komentar