Wolfram Mathematica v geofyzike

Ďakujem autorovi blogu Anton Ekimenko za jeho správu

Úvod

Táto poznámka bola napísaná hneď po konferencii Ruská technologická konferencia Wolfram a obsahuje zhrnutie správy, ktorú som podal. Podujatie sa konalo v júni v Petrohrade. Vzhľadom na to, že pracujem blok od miesta konferencie, nemohol som sa tejto udalosti nezúčastniť. V rokoch 2016 a 2017 som si vypočul správy z konferencií a tento rok som vystúpil s prezentáciou. Po prvé, objavila sa zaujímavá (zdá sa mi) téma, ktorú rozvíjame Kirill Belova po druhé, po dlhom štúdiu legislatívy Ruskej federácie týkajúcej sa politiky sankcií sa v podniku, kde pracujem, objavili až dve licencie Wolfram Mathematica.

Skôr než prejdem k téme môjho vystúpenia, rád by som poznamenal dobrú organizáciu podujatia. Návštevná stránka konferencie používa obrázok Kazanskej katedrály. Katedrála je jednou z hlavných atrakcií Petrohradu a je veľmi dobre viditeľná zo sály, v ktorej sa konferencia konala.

Wolfram Mathematica v geofyzike

Pri vchode do Petrohradskej štátnej ekonomickej univerzity účastníkov čakali asistenti z radov študentov – nedovolili im zablúdiť. Pri registrácii boli rozdané drobné suveníry (hračka - blikajúci bodec, pero, nálepky so symbolmi Wolframa). Do programu konferencie boli zahrnuté aj obedy a prestávky na kávu. Už som si všimol lahodnú kávu a koláče na stene skupiny - kuchári sú skvelí. Touto úvodnou časťou by som rád zdôraznil, že už samotná akcia, jej formát a lokalita prináša pozitívne emócie.

Správa, ktorú sme pripravili ja a Kirill Belov, sa volá „Použitie Wolfram Mathematica na riešenie problémov v aplikovanej geofyzike. Spektrálna analýza seizmických údajov alebo „kde pretekali staroveké rieky“. Obsah správy zahŕňa dve časti: po prvé, použitie algoritmov dostupných v Wolfram Mathematica na analýzu geofyzikálnych údajov a po druhé, toto je spôsob, ako vložiť geofyzikálne údaje do Wolfram Mathematica.

Seizmický prieskum

Najprv si musíte urobiť krátku exkurziu do geofyziky. Geofyzika je veda, ktorá študuje fyzikálne vlastnosti hornín. No a keďže horniny majú rôzne vlastnosti: elektrické, magnetické, elastické, existujú zodpovedajúce metódy geofyziky: elektrické prospekcie, magnetické prospekcie, seizmické prospekcie... V kontexte tohto článku si podrobnejšie rozoberieme len seizmické prospekcie. Seizmický prieskum je hlavnou metódou hľadania ropy a plynu. Metóda je založená na excitácii elastických vibrácií a následnom zaznamenávaní odozvy od hornín tvoriacich skúmanú oblasť. Vibrácie sú vybudené na súši (pomocou dynamitu alebo nevýbušných zdrojov vibrácií elastických vibrácií) alebo na mori (vzduchovými zbraňami). Elastické vibrácie sa šíria horninovým masívom, pričom sa lámu a odrážajú na hraniciach vrstiev s rôznymi vlastnosťami. Odrazené vlny sa vracajú na povrch a sú zaznamenávané geofónmi na súši (zvyčajne elektrodynamické zariadenia založené na pohybe magnetu zaveseného v cievke) alebo hydrofónmi v mori (na základe piezoelektrického efektu). Podľa času príchodu vĺn je možné posúdiť hĺbku geologických vrstiev.

Vlečné zariadenie seizmických plavidiel
Wolfram Mathematica v geofyzike

Vzduchová pištoľ vyvoláva elastické vibrácie
Wolfram Mathematica v geofyzike

Vlny prechádzajú cez skalný masív a sú zaznamenávané hydrofónmi
Wolfram Mathematica v geofyzike

Geofyzikálne prieskumné výskumné plavidlo "Ivan Gubkin" na móle neďaleko Blagoveščenského mosta v Petrohrade
Wolfram Mathematica v geofyzike

Model seizmického signálu

Horniny majú rôzne fyzikálne vlastnosti. Pre seizmický prieskum sú dôležité predovšetkým elastické vlastnosti – rýchlosť šírenia elastických vibrácií a hustota. Ak majú dve vrstvy rovnaké alebo podobné vlastnosti, potom si vlna „nevšimne“ hranicu medzi nimi. Ak sa rýchlosti vĺn vo vrstvách líšia, odraz sa objaví na hranici vrstiev. Čím väčší je rozdiel vo vlastnostiach, tým je odraz intenzívnejší. Jeho intenzita bude určená koeficientom odrazivosti (rc):

Wolfram Mathematica v geofyzike

kde ρ je hustota horniny, ν je rýchlosť vlny, 1 a 2 označujú hornú a dolnú vrstvu.

Jedným z najjednoduchších a najčastejšie používaných modelov seizmických signálov je konvolučný model, kedy zaznamenaná seizmická stopa je reprezentovaná ako výsledok konvolúcie sekvencie koeficientov odrazu so snímacím impulzom:

Wolfram Mathematica v geofyzike

kde s(t) — seizmická stopa, t.j. všetko, čo bolo zaznamenané hydrofónom alebo geofónom počas pevne stanoveného času nahrávania, w(t) - signál generovaný vzduchovou pištoľou, n(t) - náhodný hluk.

Vypočítajme ako príklad syntetickú seizmickú stopu. Ako počiatočný signál použijeme Rickerov impulz, široko používaný pri seizmickom prieskume.

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čiatočný seizmický impulz
Wolfram Mathematica v geofyzike

Stanovíme dve hranice v hĺbkach 300 ms a 600 ms a koeficienty odrazu budú náhodné čísla

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

Postupnosť koeficientov odrazu
Wolfram Mathematica v geofyzike

Vypočítajme a zobrazme seizmickú stopu. Keďže koeficienty odrazu majú rôzne znamienka, dostaneme dva striedavé odrazy na seizmickej stope.

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

Simulovaná trať
Wolfram Mathematica v geofyzike

Pre tento príklad je potrebné urobiť rezerváciu - v skutočnosti sa hĺbka vrstiev určuje, samozrejme, v metroch a výpočet seizmickej stopy prebieha pre časovú oblasť. Správnejšie by bolo nastaviť hĺbky v metroch a vypočítať časy príchodu so znalosťou rýchlostí vo vrstvách. V tomto prípade som okamžite nastavil vrstvy na časovej osi.

Ak hovoríme o terénnom výskume, potom v dôsledku takýchto pozorovaní je zaznamenané obrovské množstvo podobných časových radov (seizmických stôp). Napríklad pri štúdiu lokality s dĺžkou 25 km a šírkou 15 km, kde v dôsledku práce každá stopa charakterizuje bunku s rozmermi 25 x 25 metrov (takejto bunke sa hovorí kôš), bude konečné pole údajov obsahovať 600000 1 stôp. S časom vzorkovania 5 ms a časom záznamu 11 sekúnd bude mať konečný dátový súbor viac ako XNUMX GB a objem pôvodného „surového“ materiálu môže byť stovky gigabajtov.

Ako s nimi pracovať Wolfram Mathematica?

balíček GeológiaIO

Vývoj balíka sa začal otázka na stene VK rusky hovoriacej podpornej skupiny. Vďaka ohlasom komunity sa veľmi rýchlo našlo riešenie. A v dôsledku toho to prerástlo do vážneho vývoja. Zodpovedajúce Nástenný stĺpik komunity Wolfram Dokonca ho poznačili aj moderátori. V súčasnosti balík podporuje prácu s nasledujúcimi typmi údajov, ktoré sa aktívne používajú v geologickom priemysle:

  1. import mapových podkladov vo formátoch ZMAP a IRAP
  2. import meraní v jamkách formátu LAS
  3. vstup a výstup formátu seizmických súborov SEGY

Pre inštaláciu balíka je potrebné postupovať podľa pokynov na stránke sťahovania zostaveného balíka, t.j. spustite nasledujúci kód v ľubovoľnom Zápisník Matematica:

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

Potom sa balík nainštaluje do predvoleného priečinka, ktorého cestu je možné získať takto:

FileNameJoin[{$UserBasePacletsDirectory, "Repository"}]

Ako príklad si ukážeme hlavné možnosti balíka. Hovor sa uskutočňuje tradične pre balíky v jazyku Wolfram:

Get["GeologyIO`"]

Balík je vyvinutý pomocou Wolfram Workbench. To vám umožňuje doplniť hlavnú funkcionalitu balíka dokumentáciou, ktorá sa formátom prezentácie nelíši od samotnej dokumentácie Wolfram Mathematica a poskytnúť balík testovacími súbormi na prvé zoznámenie.

Wolfram Mathematica v geofyzike

Wolfram Mathematica v geofyzike

Takýmto súborom je najmä súbor „Marmousi.segy“ - ide o syntetický model geologického rezu, ktorý vyvinul Francúzsky ropný inštitút. Pomocou tohto modelu vývojári testujú svoje vlastné algoritmy na modelovanie vlnového poľa, spracovanie údajov, inverziu seizmickej stopy atď. Samotný model Marmousi je uložený v úložisku, odkiaľ bol stiahnutý samotný balík. Ak chcete získať súbor, spustite nasledujúci kód:

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

Výsledok importu - objekt SEGYData
Wolfram Mathematica v geofyzike

Formát SEGY zahŕňa ukladanie rôznych informácií o pozorovaniach. Po prvé, toto sú textové komentáre. Patria sem informácie o umiestnení diela, názvy firiem, ktoré merania vykonali atď. V našom prípade je táto hlavička vyvolaná požiadavkou s kľúčom TextHeader. Tu je hlavička skráteného textu:

Short[marmousi["TextHeader"]]

"Súbor údajov o Marmousi bol vytvorený v inštitúte ... minimálna rýchlosť 1500 m/s a maximálna 5500 m/s)"

Aktuálny geologický model môžete zobraziť prístupom k seizmickým stopám pomocou klávesu „stopy“ (jednou z funkcií balíka je, že kľúče nerozlišujú veľké a malé písmená):

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

Modelka Marmousi
Wolfram Mathematica v geofyzike

V súčasnosti balík umožňuje aj načítanie dát po častiach z veľkých súborov, čím je možné spracovať súbory, ktorých veľkosť môže dosahovať desiatky gigabajtov. Medzi funkcie balíka patria aj funkcie na export dát do .segy a čiastočné pridanie na koniec súboru.

Samostatne stojí za zmienku funkčnosť balíka pri práci so zložitou štruktúrou súborov .segy. Keďže umožňuje nielen pristupovať k jednotlivým stopám a hlavičkám pomocou kľúčov a indexov, ale ich aj meniť a následne zapisovať do súboru. Mnohé technické detaily implementácie GeologyIO sú nad rámec tohto článku a pravdepodobne si zaslúžia samostatný popis.

Význam spektrálnej analýzy pri seizmickom prieskume

Schopnosť importovať seizmické údaje do Wolfram Mathematica vám umožňuje použiť vstavanú funkciu spracovania signálu pre experimentálne údaje. Keďže každá seizmická stopa predstavuje časový rad, jedným z hlavných nástrojov na ich štúdium je spektrálna analýza. Medzi predpoklady na analýzu frekvenčného zloženia seizmických údajov môžeme uviesť napríklad:

  1. Rôzne typy vĺn sa vyznačujú rôznym frekvenčným zložením. To vám umožní zvýrazniť užitočné vlny a potlačiť interferenčné vlny.
  2. Vlastnosti horniny, ako je pórovitosť a sýtosť, môžu ovplyvniť frekvenčné zloženie. To umožňuje identifikovať horniny s najlepšími vlastnosťami.
  3. Vrstvy s rôznou hrúbkou spôsobujú anomálie v rôznych frekvenčných rozsahoch.

Tretí bod je hlavný v kontexte tohto článku. Nižšie je uvedený fragment kódu na výpočet seizmických stôp v prípade vrstvy s rôznou hrúbkou - klinový model. Tento model sa tradične študuje pri seizmickom prieskume s cieľom analyzovať interferenčné účinky, keď sa vlny odrazené od mnohých vrstiev navzájom prekrývajú.

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 formácie
Wolfram Mathematica v geofyzike

Rýchlosť vlny vo vnútri klinu je 4500 m/s, mimo klinu 4000 m/s a hustota sa predpokladá konštantná 2200 g/cm³. Pre takýto model vypočítame koeficienty odrazu a seizmické stopy.

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]

Seizmické stopy pre klinový model
Wolfram Mathematica v geofyzike

Postupnosť seizmických stôp zobrazených na tomto obrázku sa nazýva seizmický rez. Ako vidíte, jeho interpretácia môže byť vykonaná aj na intuitívnej úrovni, pretože geometria odrazených vĺn jasne zodpovedá modelu, ktorý bol špecifikovaný skôr. Ak analyzujete stopy podrobnejšie, všimnete si, že stopy od 1 do približne 30 sa nelíšia - odraz od strechy útvaru a od dna sa navzájom neprekrývajú. Od 31. stopy začínajú odrazy rušiť. A hoci v modeli sa koeficienty odrazu nemenia horizontálne - seizmické stopy menia svoju intenzitu so zmenou hrúbky vrstvy.

Uvažujme o amplitúde odrazu od hornej hranice formácie. Počnúc 60. cestou sa intenzita odrazu začína zvyšovať a pri 70. ceste sa stáva maximom. Takto sa prejavuje interferencia vĺn zo strechy a spodku vrstiev, čo vedie v niektorých prípadoch k výrazným anomáliám v seizmickom zázname.

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 amplitúdy odrazenej vlny od horného okraja klinu
Wolfram Mathematica v geofyzike

Je logické, že pri nízkofrekvenčnom signáli sa pri veľkých hrúbkach útvarov začína objavovať rušenie a pri vysokofrekvenčnom signále pri menších hrúbkach. Nasledujúci úryvok kódu vytvára signál s frekvenciami 35 Hz, 55 Hz a 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]

Sada zdrojových signálov s frekvenciami 35 Hz, 55 Hz, 85 Hz
Wolfram Mathematica v geofyzike

Výpočtom seizmických stôp a vynesením grafov amplitúd odrazených vĺn môžeme vidieť, že pre rôzne frekvencie je pozorovaná anomália pri rôznych hrúbkach formácie.

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]

Grafy amplitúd odrazenej vlny od horného okraja klinu pre rôzne frekvencie
Wolfram Mathematica v geofyzike

Schopnosť vyvodiť závery o hrúbke útvaru z výsledkov seizmických pozorovaní je mimoriadne užitočná, pretože jednou z hlavných úloh pri prieskume ropy je posúdiť najsľubnejšie body na položenie vrtu (t. j. tie oblasti, kde sa formácia nachádza hrubšie). Okrem toho sa v geologickom reze môžu nachádzať objekty, ktorých genéza spôsobuje prudkú zmenu hrúbky súvrstvia. Vďaka tomu je spektrálna analýza účinným nástrojom na ich štúdium. V ďalšej časti článku sa budeme týmito geologickými objektmi zaoberať podrobnejšie.

Experimentálne údaje. Kde si ich zohnal a čo v nich hľadať?

Materiály analyzované v článku boli získané zo západnej Sibíri. Región, ako asi každý bez výnimky vie, je hlavným ropným regiónom našej krajiny. Aktívny rozvoj ložísk začal v regióne v 60. rokoch minulého storočia. Hlavnou metódou hľadania ropných ložísk je seizmický prieskum. Je zaujímavé pozrieť sa na satelitné snímky tohto územia. V malom meradle si môžete všimnúť obrovské množstvo močiarov a jazier; zväčšením mapy môžete vidieť miesta vŕtania klastrových vrtov a zväčšením mapy na maximum môžete tiež rozlíšiť priehlbiny profilov, pozdĺž ktorých sú seizmické boli vykonané pozorovania.

Satelitná snímka máp Yandex - oblasť mesta Noyabrsk
Wolfram Mathematica v geofyzike

Sieť studní na jednom z polí
Wolfram Mathematica v geofyzike

Roponosné horniny západnej Sibíri sa vyskytujú v širokom rozsahu hĺbok - od 1 km do 5 km. Hlavný objem hornín obsahujúcich ropu vznikol v dobe jury a kriedy. Obdobie jury mnohí poznajú zrejme z rovnomenného filmu. Jurské podnebie sa výrazne líšil od moderného. Encyclopedia Britannica má sériu paleomáp, ktoré charakterizujú každú helogickú éru.

prítomný
Wolfram Mathematica v geofyzike
Jurské obdobie
Wolfram Mathematica v geofyzike

Upozorňujeme, že v časoch Jury bolo územie Západnej Sibíri morským pobrežím (krajina, ktorú pretínali rieky a plytké more). Keďže podnebie bolo príjemné, môžeme predpokladať, že typická krajina tej doby vyzerala takto:

Jurská Sibír
Wolfram Mathematica v geofyzike

Na tomto obrázku nie sú pre nás dôležité ani tak zvieratá a vtáky, ale obraz rieky v pozadí. Rieka je ten istý geologický objekt, pri ktorom sme sa zastavili predtým. Faktom je, že činnosť riek umožňuje hromadenie dobre vytriedených pieskovcov, ktoré sa potom stanú zásobárňou ropy. Tieto nádrže môžu mať bizarný, zložitý tvar (ako koryto rieky) a majú premenlivú hrúbku - pri brehoch je hrúbka malá, ale bližšie k stredu kanála alebo v meandrových oblastiach sa zväčšuje. Rieky vytvorené v jure sú teraz v hĺbke asi tri kilometre a sú predmetom hľadania ropných nádrží.

Experimentálne údaje. Spracovanie a vizualizácia

Okamžite urobme výhradu k seizmickým materiálom zobrazeným v článku - vzhľadom na skutočnosť, že množstvo údajov použitých na analýzu je významné - v texte článku je zahrnutý iba fragment pôvodného súboru seizmických stôp. To umožní komukoľvek reprodukovať vyššie uvedené výpočty.

Pri práci so seizmickými údajmi geofyzik zvyčajne používa špecializovaný softvér (existuje niekoľko lídrov v odvetví, ktorých vývoj sa aktívne využíva, napríklad Petrel alebo Paradigm), ktorý vám umožňuje analyzovať rôzne typy údajov a má pohodlné grafické rozhranie. Napriek všetkým výhodám majú tieto typy softvéru aj svoje nevýhody - napríklad implementácia moderných algoritmov v stabilných verziách trvá veľa času a možnosti automatizácie výpočtov sú zvyčajne obmedzené. V takejto situácii je veľmi výhodné používať počítačové matematické systémy a programovacie jazyky na vysokej úrovni, ktoré umožňujú použitie širokej algoritmickej základne a zároveň zaberajú veľa rutiny. Toto je princíp používaný na prácu so seizmickými údajmi vo Wolfram Mathematica. Pre interaktívnu prácu s dátami je nevhodné písať bohatú funkcionalitu - dôležitejšie je zabezpečiť načítanie zo všeobecne akceptovaného formátu, aplikovať na ne požadované algoritmy a nahrať ich späť do externého formátu.

Podľa navrhovanej schémy načítame pôvodné seizmické údaje a zobrazíme ich 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]

Takto stiahnuté a importované dáta sú trasy zaznamenané na ploche s rozmermi 10 x 5 kilometrov. Ak sa údaje získajú pomocou metódy trojrozmerného seizmického prieskumu (vlny sa nezaznamenávajú pozdĺž jednotlivých geofyzikálnych profilov, ale súčasne na celom území), je možné získať kocky seizmických údajov. Ide o trojrozmerné objekty, ktorých vertikálne a horizontálne rezy umožňujú detailné štúdium geologického prostredia. V uvažovanom príklade sa zaoberáme trojrozmernými údajmi. Niektoré informácie môžeme získať z textovej hlavičky, ako je táto

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

C 1 TOTO JE DEMO SÚBOR PRE TEST GEOLOGYIO BALÍKU
C 2
C 3
C 4
C 5 DÁTUM UŽÍVATEĽSKÉ MENO: UŽÍVATEĽ WOLFRAM
C 6 NÁZOV PRIESKUMU: NIEKDE NA SIBÍRI
C 7 TYP SÚBORU 3D SEIZMICKÝ OBJEM
C 8
C 9
ROZSAH C10 Z: PRVÝ 2200M POSLEDNÝ 2400M

Tento súbor údajov nám bude stačiť na demonštráciu hlavných fáz analýzy údajov. Stopy v súbore sa zaznamenávajú postupne a každá z nich vyzerá približne ako na nasledujúcom obrázku - ide o rozloženie amplitúd odrazených vĺn pozdĺž zvislej osi (osi hĺbky).

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]

Jedna zo stôp seizmického rezu
Wolfram Mathematica v geofyzike

Keď viete, koľko stôp sa nachádza v každom smere študovanej oblasti, môžete vygenerovať trojrozmerné dátové pole a zobraziť ho pomocou funkcie 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 obrázok seizmickej dátovej kocky (vertikálna os - hĺbka)
Wolfram Mathematica v geofyzike

Ak geologické prvky, ktoré sú predmetom záujmu, vytvárajú intenzívne seizmické anomálie, možno použiť transparentné vizualizačné nástroje. „Nedôležité“ oblasti nahrávky môžu byť neviditeľné, takže viditeľné budú len anomálie. Vo Wolfram Mathematica to možno urobiť pomocou Nepriehľadnosť[] и 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]

Obraz kocky seizmických údajov pomocou funkcií Opacity[] a Raster3D[] Wolfram Mathematica v geofyzike

Ako v syntetickom príklade, na rezoch pôvodnej kocky možno identifikovať niektoré geologické hranice (vrstvy) s premenlivým reliéfom.

Hlavným nástrojom spektrálnej analýzy je Fourierova transformácia. S jeho pomocou môžete vyhodnotiť amplitúdovo-frekvenčné spektrum každej stopy alebo skupiny stôp. Po prenose dát do frekvenčnej domény sa však strácajú informácie o tom, v akých časoch (čítaj v akých hĺbkach) sa frekvencia mení. Aby bolo možné lokalizovať zmeny signálu na časovej (hĺbkovej) osi, používa sa okienková Fourierova transformácia a waveletová dekompozícia. Tento článok používa vlnkový rozklad. Technológia vlnovej analýzy sa začala aktívne využívať pri seizmickom prieskume v 90. rokoch. Za výhodu oproti okienkovej Fourierovej transformácii sa považuje lepšie časové rozlíšenie.

Pomocou nasledujúceho fragmentu kódu môžete rozložiť jednu zo seizmických stôp na jednotlivé komponenty:

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]

Rozklad stopy na zložky
Wolfram Mathematica v geofyzike

Na posúdenie toho, ako je energia odrazu rozložená pri rôznych časoch príchodu vĺn, sa používajú skalogramy (analogické k spektrogramu). V praxi spravidla nie je potrebné analyzovať všetky komponenty. Typicky sa vyberajú nízkofrekvenčné, stredofrekvenčné a vysokofrekvenčné komponenty.

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. Výsledok funkcie WaveletScalogram[]
Wolfram Mathematica v geofyzike

Wolfram Language používa funkciu na transformáciu vlniek ContinuousWaveletTransform[]. A aplikácia tejto funkcie na celú množinu stôp sa vykoná pomocou funkcie Tabuľka[]. Tu stojí za zmienku jedna zo silných stránok Wolfram Mathematica - schopnosť používať paralelizáciu ParallelTable[]. Vo vyššie uvedenom príklade nie je potrebná paralelizácia – objem dát nie je veľký, no pri práci s experimentálnymi dátovými súbormi obsahujúcimi státisíce stôp je to nevyhnutnosť.

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

Po aplikácii funkcie ContinuousWaveletTransform[] Zobrazia sa nové súbory údajov zodpovedajúce vybratým frekvenciám. Vo vyššie uvedenom príklade sú tieto frekvencie: 38Hz, 33Hz, 27Hz. Voľba frekvencií sa najčastejšie uskutočňuje na základe testovania - získajú efektívne mapy pre rôzne kombinácie frekvencií a vyberú tú najinformatívnejšiu z pohľadu geológa.

Ak potrebujete výsledky zdieľať s kolegami alebo ich poskytnúť zákazníkovi, môžete využiť funkciu SEGYExport[] balíka 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];

S tromi z týchto kociek (nízkofrekvenčné, stredofrekvenčné a vysokofrekvenčné komponenty) sa zmiešavanie RGB zvyčajne používa na vizualizáciu údajov spolu. Každému komponentu je priradená vlastná farba – červená, zelená, modrá. Vo Wolfram Mathematica to možno vykonať pomocou funkcie ColorCombine[].

Výsledkom sú snímky, z ktorých možno urobiť geologickú interpretáciu. Meandre, ktoré sú na úseku zaznamenané, umožňujú vymedziť paleochanály, ktoré sú s väčšou pravdepodobnosťou rezervoármi a obsahujú zásoby ropy. Hľadanie a analýza moderných analógov takéhoto riečneho systému nám umožňuje určiť najsľubnejšie časti meandrov. Samotné kanály sa vyznačujú hrubými vrstvami dobre vytriedeného pieskovca a sú dobrou zásobárňou ropy. Oblasti mimo „čipkových“ anomálií sú podobné moderným ložiskám záplavových území. Lužné ložiská predstavujú najmä ílovité horniny a vrty do týchto zón budú neúčinné.

RGB výsek dátovej kocky. V strede (mierne naľavo od stredu) môžete sledovať meandrujúcu rieku.
Wolfram Mathematica v geofyzike
RGB výsek dátovej kocky. Na ľavej strane môžete sledovať meandrujúcu rieku.
Wolfram Mathematica v geofyzike

V niektorých prípadoch kvalita seizmických údajov umožňuje výrazne jasnejšie snímky. Závisí to od metodiky práce v teréne, zariadenia používaného algoritmom redukcie hluku. V takýchto prípadoch sú viditeľné nielen fragmenty riečnych systémov, ale aj celé rozšírené paleo-rieky.

RGB miešanie troch komponentov seizmickej dátovej kocky (horizontálny rez). Hĺbka cca 2 km.
Wolfram Mathematica v geofyzike
Satelitná snímka rieky Volga neďaleko Saratova
Wolfram Mathematica v geofyzike

Záver

Wolfram Mathematica vám umožňuje analyzovať seizmické údaje a riešiť aplikované problémy súvisiace s prieskumom nerastov a balík GeologyIO robí tento proces pohodlnejším. Štruktúra seizmických údajov je taká, že použitie vstavaných metód na urýchlenie výpočtov (ParallelTable[], ParallelDo[],…) je veľmi efektívny a umožňuje vám spracovávať veľké množstvo údajov. Do veľkej miery to uľahčujú funkcie ukladania dát balíka GeologyIO. Mimochodom, balenie nájde uplatnenie nielen v oblasti aplikovaného seizmického prieskumu. Takmer rovnaké typy údajov sa používajú v pozemných radaroch a seizmológii. Ak máte návrhy, ako zlepšiť výsledok, ktoré algoritmy analýzy signálov z arzenálu Wolfram Mathematica sú použiteľné na takéto údaje, alebo ak máte nejaké kritické pripomienky, prosím Zanechať komentár.

Zdroj: hab.com

Pridať komentár