Wolfram Mathematica geofysiikassa

Kiitos blogin kirjoittajalle Anton Ekimenko hänen raportilleen

Esittely

Tämä muistiinpano kirjoitettiin konferenssin jälkeen Wolfram Venäjän teknologiakonferenssi ja sisältää yhteenvedon antamastani raportista. Tapahtuma järjestettiin kesäkuussa Pietarissa. Koska työskentelen korttelin päässä konferenssipaikasta, en voinut olla osallistumatta tähän tapahtumaan. Vuosina 2016 ja 2017 kuuntelin konferenssiraportteja ja tänä vuonna pidin esitelmän. Ensinnäkin mielenkiintoinen (minusta vaikuttaa) aihe, jota kehitämme Kirill Belovja toiseksi, pitkän tutkimuksen jälkeen Venäjän federaation pakotepolitiikkaa koskevasta lainsäädännöstä, yrityksessä, jossa työskentelen, ilmestyi jopa kaksi lisenssiä Wolfram Mathematica.

Ennen kuin siirryn puheeni aiheeseen, haluaisin huomauttaa tapahtuman hyvästä järjestelystä. Konferenssin vierailusivulla on käytetty Kazanin katedraalin kuvaa. Tuomiokirkko on yksi Pietarin tärkeimmistä nähtävyyksistä ja näkyy hyvin selvästi salista, jossa konferenssi pidettiin.

Wolfram Mathematica geofysiikassa

Pietarin valtion talousyliopiston sisäänkäynnillä osallistujia kohtasi assistentit opiskelijoiden keskuudesta - he eivät antaneet heidän eksyä. Rekisteröinnin aikana jaettiin pieniä matkamuistoja (lelu - vilkkuva piikki, kynä, tarrat Wolfram-symboleilla). Konferenssin ohjelmaan sisältyivät myös lounas- ja kahvitauot. Huomasin jo ryhmän seinällä herkulliset kahvit ja piirakat - kokit ovat mahtavia. Tällä johdanto-osalla haluan korostaa, että itse tapahtuma, sen muoto ja sijainti tuovat jo positiivisia tunteita.

Minun ja Kirill Belovin laatima raportti on nimeltään "Wolfram Mathematican käyttäminen soveltavan geofysiikan ongelmien ratkaisemiseen. Seismisten tietojen spektrianalyysi tai "missä muinaiset joet virtasivat". Raportin sisältö kattaa kaksi osaa: ensinnäkin vuonna saatavilla olevien algoritmien käytön Wolfram Mathematica geofysikaalisten tietojen analysointiin, ja toiseksi, näin voidaan laittaa geofysikaaliset tiedot Wolfram Mathematicaan.

Seisminen tutkimus

Ensin sinun on tehtävä lyhyt retki geofysiikkaan. Geofysiikka on tiede, joka tutkii kivien fysikaalisia ominaisuuksia. No, koska kivillä on erilaisia ​​ominaisuuksia: sähköinen, magneettinen, elastinen, on olemassa vastaavia geofysiikan menetelmiä: sähköinen etsintä, magneettinen etsintä, seisminen etsintä... Tämän artikkelin yhteydessä käsittelemme vain seismistä etsintä yksityiskohtaisemmin. Seisminen tutkimus on tärkein tapa etsiä öljyä ja kaasua. Menetelmä perustuu elastisten värähtelyjen herättämiseen ja myöhempään vasteen tallentamiseen tutkimusalueen muodostavista kivistä. Värähtelyä herätetään maalla (dynamiitti- tai räjähtämättömillä elastisten värähtelyjen värähtelylähteillä) tai merellä (ilma-aseilla). Elastiset värähtelyt etenevät kivimassan läpi taittuen ja heijastuen ominaisuuksiltaan erilaisten kerrosten rajoilla. Heijastuneet aallot palaavat pintaan ja tallentavat geofonit maalla (yleensä sähködynaamiset laitteet, jotka perustuvat kelaan ripustetun magneetin liikkeeseen) tai hydrofonit meressä (perustuu pietsosähköiseen ilmiöön). Aaltojen saapuessa voidaan arvioida geologisten kerrosten syvyyksiä.

Seismiset alusten hinauslaitteet
Wolfram Mathematica geofysiikassa

Ilmapistooli herättää elastisia värähtelyjä
Wolfram Mathematica geofysiikassa

Aallot kulkevat kivimassan läpi ja ne tallennetaan hydrofoneilla
Wolfram Mathematica geofysiikassa

Geofysiikan tutkimusalus "Ivan Gubkin" Blagoveshchensky-sillan lähellä Pietarissa sijaitsevalla laiturilla
Wolfram Mathematica geofysiikassa

Seismisen signaalin malli

Kivillä on erilaisia ​​fysikaalisia ominaisuuksia. Seismisessä tutkimuksessa elastiset ominaisuudet ovat ensisijaisesti tärkeitä - elastisten värähtelyjen etenemisnopeus ja tiheys. Jos kahdella kerroksella on samat tai samankaltaiset ominaisuudet, aalto "ei huomaa" niiden välistä rajaa. Jos aallonnopeudet kerroksissa vaihtelevat, tapahtuu heijastusta kerrosten rajalla. Mitä suurempi ominaisuuksien ero on, sitä voimakkaampi heijastus. Sen intensiteetti määräytyy heijastuskertoimella (rc):

Wolfram Mathematica geofysiikassa

missä ρ on kallion tiheys, ν on aallon nopeus, 1 ja 2 osoittavat ylemmän ja alemman kerroksen.

Yksi yksinkertaisimmista ja yleisimmin käytetyistä seismisistä signaalimalleista on konvoluutiomalli, jossa tallennettu seisminen jälki esitetään heijastuskertoimien sarjan konvoluution tuloksena koetuspulssilla:

Wolfram Mathematica geofysiikassa

missä s(t) — seisminen jälki, ts. kaikki, mikä on tallennettu hydrofonilla tai geofonilla kiinteän tallennusajan aikana, w(t) - ilmapistoolin tuottama signaali, n(t) - satunnainen melu.

Lasketaan esimerkkinä synteettinen seisminen jälki. Alkusignaalina käytämme seismisessä tutkimuksessa laajalti käytettyä Ricker-pulssia.

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]

Alkuperäinen seisminen impulssi
Wolfram Mathematica geofysiikassa

Asetamme kaksi rajaa 300 ms:n ja 600 ms:n syvyyksille, ja heijastuskertoimet ovat satunnaislukuja

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

Heijastuskertoimien sekvenssi
Wolfram Mathematica geofysiikassa

Lasketaan ja näytetään seisminen jälki. Koska heijastuskertoimilla on eri etumerkit, saadaan kaksi vuorottelevaa heijastusta seismiselle jäljelle.

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

Simuloitu kappale
Wolfram Mathematica geofysiikassa

Tätä esimerkkiä varten on tarpeen tehdä varaus - todellisuudessa kerrosten syvyys määritetään tietysti metreinä, ja seismisen jäljen laskenta tapahtuu aikatasolle. Olisi oikeampaa asettaa syvyydet metreissä ja laskea saapumisajat kerrosten nopeudet tuntemalla. Tässä tapauksessa asetan kerrokset välittömästi aika-akselille.

Jos puhumme kenttätutkimuksesta, tällaisten havaintojen seurauksena tallennetaan valtava määrä samanlaisia ​​​​aikasarjoja (seismisiä jälkiä). Esimerkiksi tutkittaessa 25 km pitkää ja 15 km leveää kohdetta, jossa jokainen jälki kuvaa työn tuloksena 25x25 metrin kokoista solua (tällaista solua kutsutaan roskaksi), lopullinen tietojoukko sisältää 600000 1 jälkeä. Näytteenottoajalla 5 ms ja tallennusajalla 11 sekuntia lopullinen datatiedosto on yli XNUMX Gt ja alkuperäisen ”raaka”-aineen tilavuus voi olla satoja gigatavuja.

Kuinka työskennellä heidän kanssaan Wolfram Mathematica?

paketti GeologiaIO

Paketin kehitystyö alkoi kysymys venäjänkielisen tukiryhmän VK-seinällä. Yhteisön vastausten ansiosta ratkaisu löytyi erittäin nopeasti. Ja seurauksena se kasvoi vakavaksi kehitykseksi. Vastaava Wolfram Community seinäpostaus Sen jopa moderaattorit merkitsivät. Tällä hetkellä paketti tukee työskentelyä seuraavien tietotyyppien kanssa, joita käytetään aktiivisesti geologisessa teollisuudessa:

  1. karttatietojen tuonti ZMAP- ja IRAP-muodoissa
  2. mittausten tuonti LAS-muotoisiin kaivoihin
  3. seismisten tiedostomuotojen syöttö ja tulostus SEGY

Paketin asentamiseksi sinun tulee noudattaa kootun paketin lataussivun ohjeita, ts. suorita seuraava koodi missä tahansa Mathematica muistikirja:

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

Tämän jälkeen paketti asennetaan oletuskansioon, jonka polku löytyy seuraavasti:

FileNameJoin[{$UserBasePacletsDirectory, "Repository"}]

Esimerkkinä esittelemme paketin tärkeimmät ominaisuudet. Kutsu tehdään perinteisesti Wolfram-kielellä oleville paketeille:

Get["GeologyIO`"]

Paketti on kehitetty käyttämällä Wolfram työpöytä. Tämän avulla voit liittää paketin päätoiminnot dokumentaatiolla, joka esitysmuodon suhteen ei eroa itse Wolfram Mathematican dokumentaatiosta, ja tarjota paketille testitiedostot ensimmäistä tutustumista varten.

Wolfram Mathematica geofysiikassa

Wolfram Mathematica geofysiikassa

Tällainen tiedosto on erityisesti tiedosto "Marmousi.segy" - tämä on synteettinen malli geologisesta osasta, jonka on kehittänyt French Petroleum Institute. Tämän mallin avulla kehittäjät testaavat omia algoritmejaan aaltokentän mallintamiseen, tietojenkäsittelyyn, seismisen jäljen inversioon jne. Itse Marmousi-malli on tallennettu arkistoon, josta itse paketti on ladattu. Saadaksesi tiedoston, suorita seuraava koodi:

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

Tuo tulos - SEGYData-objekti
Wolfram Mathematica geofysiikassa

SEGY-muoto sisältää erilaisten havaintojen tiedon tallentamisen. Ensinnäkin nämä ovat tekstikommentteja. Tämä sisältää tiedot työn sijainnista, mittauksia tehneiden yritysten nimet jne. Meidän tapauksessamme tätä otsikkoa kutsutaan pyynnöllä TextHeader-avaimella. Tässä lyhennetty tekstiotsikko:

Short[marmousi["TextHeader"]]

"Marmousin tietojoukko luotiin instituutissa ... miniminopeus 1500 m/s ja maksimi 5500 m/s)"

Voit näyttää todellisen geologisen mallin käyttämällä seismisjäljiä "traces"-näppäimellä (yksi paketin ominaisuuksista on, että avaimet eivät erota kirjainkoosta):

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

Malli Marmousi
Wolfram Mathematica geofysiikassa

Tällä hetkellä paketti mahdollistaa myös datan lataamisen osissa suurista tiedostoista, jolloin voidaan käsitellä tiedostoja, joiden koko voi olla jopa kymmeniä gigatavuja. Paketin toiminnot sisältävät myös toiminnot tietojen viemiseksi .segy-tiedostoon ja osittaiseen liittämiseen tiedoston loppuun.

Erikseen kannattaa huomioida paketin toiminnallisuus, kun työskentelet .segy-tiedostojen monimutkaisen rakenteen kanssa. Koska sen avulla voit paitsi käyttää yksittäisiä jälkiä ja otsikoita avaimilla ja indekseillä, myös muuttaa niitä ja kirjoittaa ne sitten tiedostoon. Monet GeologyIO:n toteutuksen tekniset yksityiskohdat jäävät tämän artikkelin ulkopuolelle ja ansaitsevat todennäköisesti erillisen kuvauksen.

Spektrianalyysin merkitys seismisessä tutkimuksessa

Mahdollisuus tuoda seismiset tiedot Wolfram Mathematicaan mahdollistaa sisäänrakennetun signaalinkäsittelytoiminnon käyttämisen kokeelliseen dataan. Koska jokainen seisminen jälki edustaa aikasarjaa, yksi tärkeimmistä työkaluista niiden tutkimiseen on spektrianalyysi. Seismisten tietojen taajuuskoostumuksen analysoinnin edellytyksistä voidaan mainita esimerkiksi seuraavat:

  1. Eri aaltotyypeille on ominaista erilainen taajuuskoostumus. Tämän avulla voit korostaa hyödyllisiä aaltoja ja vaimentaa häiriöaaltoja.
  2. Kiven ominaisuudet, kuten huokoisuus ja kylläisyys, voivat vaikuttaa taajuuskoostumukseen. Tämä mahdollistaa parhaiden ominaisuuksien omaavien kivien tunnistamisen.
  3. Eripaksuiset kerrokset aiheuttavat poikkeavuuksia eri taajuusalueilla.

Kolmas kohta on tärkein tämän artikkelin yhteydessä. Alla on koodifragmentti seismisten jälkien laskemiseen vaihtelevan paksuisen kerroksen tapauksessa - kiilamalli. Tätä mallia on perinteisesti tutkittu seismisessä tutkimuksessa häiriövaikutusten analysoimiseksi, kun useista kerroksista heijastuneet aallot asettuvat päällekkäin.

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

Malli puristusmuodostelmasta
Wolfram Mathematica geofysiikassa

Aallonnopeus kiilan sisällä on 4500 m/s, kiilan ulkopuolella 4000 m/s ja tiheyden oletetaan olevan vakio 2200 g/cm³. Tällaiselle mallille laskemme heijastuskertoimet ja seismiset jäljet.

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]

Seismiset jäljet ​​kiilamalliin
Wolfram Mathematica geofysiikassa

Tässä kuvassa esitettyä seismisjälkien sarjaa kutsutaan seismiseksi osaksi. Kuten näette, sen tulkinta voidaan suorittaa myös intuitiivisella tasolla, koska heijastuneiden aaltojen geometria vastaa selvästi aiemmin määriteltyä mallia. Jos analysoit jälkiä yksityiskohtaisemmin, huomaat, että jäljet ​​1 - noin 30 eivät eroa toisistaan ​​- heijastus muodostelman katolta ja pohjasta eivät mene päällekkäin. 31. jäljestä alkaen heijastukset alkavat häiritä. Ja vaikka mallissa heijastuskertoimet eivät muutu vaakatasossa - seismiset jäljet ​​muuttavat intensiteettiään muodostuman paksuuden muuttuessa.

Tarkastellaan heijastuksen amplitudia muodostelman ylärajalta. 60. reitistä alkaen heijastuksen voimakkuus alkaa kasvaa ja 70. reitillä maksimi. Näin ilmenee kerrosten katolta ja pohjalta tulevien aaltojen häiriö, joka johtaa joissakin tapauksissa merkittäviin poikkeamiin seismisessä tietueessa.

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]

Kuvaaja kiilan yläreunasta heijastuneen aallon amplitudista
Wolfram Mathematica geofysiikassa

On loogista, että kun signaali on matalataajuinen, häiriötä alkaa ilmaantua suurilla muodostuspaksuuksilla, ja korkeataajuisen signaalin tapauksessa häiriöitä esiintyy pienemmillä paksuuksilla. Seuraava koodinpätkä luo signaalin taajuuksilla 35 Hz, 55 Hz ja 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]

Joukko lähdesignaaleja, joiden taajuudet ovat 35 Hz, 55 Hz, 85 Hz
Wolfram Mathematica geofysiikassa

Laskemalla seismiset jäljet ​​ja piirtämällä kuvaajia heijastuneiden aaltojen amplitudeista voimme nähdä, että eri taajuuksilla havaitaan poikkeama eri muodostumispaksuuksilla.

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]

Kuvaajat kiilan yläreunasta heijastuneen aallon amplitudeista eri taajuuksille
Wolfram Mathematica geofysiikassa

Mahdollisuus tehdä seismisten havaintojen perusteella johtopäätöksiä muodostuman paksuudesta on erittäin hyödyllinen, koska yksi öljynetsinnän päätehtävistä on arvioida lupaavimmat kohdat kaivon laskemiselle (eli ne alueet, joilla muodostuma on). paksumpi). Lisäksi geologisessa osassa voi olla esineitä, joiden synty aiheuttaa jyrkän muutoksen muodostuman paksuudessa. Tämä tekee spektrianalyysistä tehokkaan työkalun niiden tutkimiseen. Artikkelin seuraavassa osassa tarkastelemme tällaisia ​​geologisia kohteita yksityiskohtaisemmin.

Kokeellinen data. Mistä hankit ne ja mitä niistä pitäisi etsiä?

Artikkelissa analysoidut materiaalit on hankittu Länsi-Siperiassa. Alue, kuten kaikki poikkeuksetta varmaan tietävät, on maamme tärkein öljyntuotantoalue. Aktiivinen talletusten kehittäminen alkoi alueella viime vuosisadan 60-luvulla. Pääasiallinen menetelmä öljyesiintymien etsimiseksi on seisminen etsintä. On mielenkiintoista katsoa tämän alueen satelliittikuvia. Pienessä mittakaavassa voi havaita valtavan määrän soita ja järviä, karttaa suurentamalla näet rypälekaivon porauskohteet ja karttaa rajaan asti suurentamalla voit myös erottaa niiden profiilien aukeamat, joita pitkin seismiset ovat havaintoja tehtiin.

Satelliittikuva Yandex-kartoista - Noyabrskin kaupunkialue
Wolfram Mathematica geofysiikassa

Kaivotyynyjen verkosto yhdellä pellolla
Wolfram Mathematica geofysiikassa

Länsi-Siperian öljypitoisia kiviä esiintyy monilla syvyyksillä - 1 km - 5 km. Suurin osa öljyä sisältävistä kivistä muodostui jura- ja liitukaudella. Jurassic-kausi on luultavasti tuttu monille samannimisestä elokuvasta. Jurassinen ilmasto oli huomattavasti erilainen kuin nykyaika. Encyclopedia Britannicassa on sarja paleokarttoja, jotka kuvaavat jokaista helogista aikakautta.

esillä oleva
Wolfram Mathematica geofysiikassa
Jurassic kausi
Wolfram Mathematica geofysiikassa

Huomaa, että jurakaudella Länsi-Siperian alue oli meren rannikkoa (joet ja matala meri halkivat maata). Koska ilmasto oli miellyttävä, voidaan olettaa, että tuon ajan tyypillinen maisema näytti tältä:

Jurassic Siperia
Wolfram Mathematica geofysiikassa

Tässä kuvassa meille ei ole tärkeää niinkään eläimet ja linnut, vaan taustalla oleva kuva joesta. Joki on sama geologinen kohde, jossa pysähdyimme aiemmin. Tosiasia on, että jokien toiminta mahdollistaa hyvin lajiteltujen hiekkakivien kerääntymisen, joista tulee sitten öljyvarasto. Näillä altailla voi olla outo, monimutkainen muoto (kuten joen uoma) ja niiden paksuus vaihtelee - lähellä rantaa paksuus on pieni, mutta lähempänä väylän keskustaa tai mutkaisilla alueilla se kasvaa. Joten Jurassic-kaudella muodostuneet joet ovat nyt noin kolmen kilometrin syvyydessä ja ovat öljyvarastojen etsimisen kohteena.

Kokeellinen data. Käsittely ja visualisointi

Tehdään heti varaus artikkelissa esitettyjen seismisten materiaalien suhteen - koska analyysiin käytetyn datan määrä on merkittävä - artikkelin tekstiin sisältyy vain fragmentti alkuperäisestä seismisten jäljen sarjasta. Näin kuka tahansa voi toistaa yllä olevat laskelmat.

Seismisten tietojen kanssa työskennellessään geofyysikko käyttää yleensä erikoisohjelmistoja (on useita alan johtajia, joiden kehitystyötä käytetään aktiivisesti, esimerkiksi Petrel tai Paradigm), jonka avulla voit analysoida erityyppisiä tietoja ja jolla on kätevä graafinen käyttöliittymä. Kaikesta mukavuudesta huolimatta tämän tyyppisissä ohjelmistoissa on myös haittapuolensa - esimerkiksi nykyaikaisten algoritmien toteuttaminen vakaissa versioissa vie paljon aikaa, ja laskelmien automatisointimahdollisuudet ovat yleensä rajalliset. Tällaisessa tilanteessa tulee erittäin kätevää käyttää tietokonematematiikan järjestelmiä ja korkean tason ohjelmointikieliä, jotka mahdollistavat laajan algoritmipohjan käytön ja samalla ottavat paljon rutiinia. Tätä periaatetta käytetään seismisten tietojen kanssa työskentelyssä Wolfram Mathematicassa. Ei ole tarkoituksenmukaista kirjoittaa runsasta toiminnallisuutta vuorovaikutteiseen tiedonkäsittelyyn - tärkeämpää on varmistaa lataus yleisesti hyväksytystä formaatista, soveltaa niihin haluttuja algoritmeja ja ladata ne takaisin ulkoiseen muotoon.

Ehdotetun kaavion mukaisesti lataamme alkuperäiset seismiset tiedot ja näytämme ne 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]

Tällä tavalla ladattu ja tuotu data on 10 x 5 kilometrin mittaiselle alueelle tallennettuja reittejä. Jos tiedot saadaan kolmiulotteisella seismisellä tutkimusmenetelmällä (aaltoja ei tallenneta yksittäisiä geofysikaalisia profiileja pitkin, vaan koko alueelta samanaikaisesti), on mahdollista saada seismiset datakuutiot. Nämä ovat kolmiulotteisia esineitä, joiden pysty- ja vaakaleikkaukset mahdollistavat yksityiskohtaisen geologisen ympäristön tutkimuksen. Tarkastetussa esimerkissä on kyse kolmiulotteisesta datasta. Voimme saada tietoa tekstin otsikosta, kuten tämä

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

C 1 TÄMÄ ON DEMOTIEDOSTO GEOLOGYIO PAKETTITESTIIN
C 2
C 3
C 4
C 5 PÄIVÄMÄÄRÄ KÄYTTÄJÄNIMI: WOLFRAM-KÄYTTÄJÄ
C 6 TUTKIMUKSEN NIMI: JONKIN SIBIERIASSA
C 7 TIEDOSTOTYYPPI 3D SEISMISINEN VOLUME
C 8
C 9
C10 Z -VALIKKO: ENSIMMÄINEN 2200M VIIMEINEN 2400M

Tämä tietojoukko riittää meille osoittamaan data-analyysin päävaiheet. Tiedoston jäljet ​​tallennetaan peräkkäin ja jokainen niistä näyttää seuraavan kuvan kaltaiselta - tämä on heijastuneiden aaltojen amplitudien jakautuminen pystyakselilla (syvyysakseli).

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]

Yksi seismisen osan jälkiä
Wolfram Mathematica geofysiikassa

Kun tiedät kuinka monta jälkiä sijaitsee tutkitun alueen jokaisessa suunnassa, voit luoda kolmiulotteisen tietotaulukon ja näyttää sen käyttämällä Image3D[]-toimintoa.

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-kuva seismisestä datakuutiosta. (pystyakseli - syvyys)
Wolfram Mathematica geofysiikassa

Jos kiinnostuksen kohteena olevat geologiset piirteet aiheuttavat voimakkaita seismisiä poikkeavuuksia, voidaan käyttää läpinäkyviä visualisointityökaluja. Tallenteen "epätärkeät" alueet voidaan tehdä näkymättömiksi, jolloin vain poikkeamat jää näkyviin. Wolfram Mathematicassa tämä voidaan tehdä käyttämällä Peittävyys[] и 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]

Seisminen datakuutiokuva käyttämällä Opacity[]- ja Raster3D[]-toimintoja Wolfram Mathematica geofysiikassa

Kuten synteettisessä esimerkissä, alkuperäisen kuution osista voidaan tunnistaa joitain geologisia rajoja (kerroksia) vaihtelevalla kohokuviolla.

Spektrianalyysin tärkein työkalu on Fourier-muunnos. Sen avulla voit arvioida kunkin jäljen tai jälkiryhmän amplitudi-taajuusspektrin. Tietojen siirtämisen jälkeen taajuusalueelle häviää kuitenkin tieto siitä, mihin aikaan (lue missä syvyyksissä) taajuus muuttuu. Signaalin muutosten paikallistamiseksi aika- (syvyys-) akselilla käytetään ikkunoitua Fourier-muunnosta ja aallokehajottelua. Tässä artikkelissa käytetään aallokeiden hajottamista. Aaltoanalyysitekniikkaa alettiin käyttää aktiivisesti seismisessä tutkimuksessa 90-luvulla. Etuna ikkunoituun Fourier-muunnokseen nähden katsotaan olevan parempi aikaresoluutio.

Seuraavan koodinpätkän avulla voit hajottaa yhden seismiset jäljet ​​yksittäisiksi komponenteiksi:

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]

Jäljen hajoaminen komponenteiksi
Wolfram Mathematica geofysiikassa

Sen arvioimiseksi, kuinka heijastusenergia jakautuu eri aallon saapumisajoilla, käytetään skalogrammeja (analogisesti spektrogrammin kanssa). Käytännössä kaikkia komponentteja ei yleensä tarvitse analysoida. Tyypillisesti valitaan matala-, keski- ja korkeataajuiset komponentit.

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]

Skalogrammi. Toiminnan tulos WaveletScalogram[]
Wolfram Mathematica geofysiikassa

Wolfram-kieli käyttää funktiota aallokemuunnokseen ContinuousWaveletTransform[]. Ja tämän toiminnon soveltaminen koko jäljityssarjaan suoritetaan toiminnon avulla Pöytä[]. Tässä on syytä huomata yksi Wolfram Mathematican vahvuuksista - kyky käyttää rinnakkaisuutta ParallelTable[]. Yllä olevassa esimerkissä rinnastusta ei tarvita - datamäärä ei ole suuri, mutta satojatuhansia jälkiä sisältävien kokeellisten tietojoukkojen kanssa työskenneltäessä tämä on välttämätöntä.

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

Toiminnon käyttöönoton jälkeen ContinuousWaveletTransform[] Valittuja taajuuksia vastaavat uudet tietojoukot tulevat näkyviin. Yllä olevassa esimerkissä nämä taajuudet ovat: 38Hz, 33Hz, 27Hz. Taajuuksien valinta tehdään useimmiten testauksen perusteella - niistä saadaan tehokkaat kartat eri taajuusyhdistelmille ja niistä valitaan geologin kannalta informatiivisin.

Jos haluat jakaa tulokset työtovereiden kanssa tai toimittaa ne asiakkaalle, voit käyttää GeologyIO-paketin SEGYExport[]-toimintoa.

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

Kolmen näistä kuutioista (matalataajuiset, keskitaajuiset ja korkeataajuiset komponentit) RGB-sekoitusta käytetään yleensä tietojen visualisointiin yhdessä. Jokaiselle komponentille on määritetty oma värinsä - punainen, vihreä, sininen. Wolfram Mathematicassa tämä voidaan tehdä funktiolla ColorCombine[].

Tuloksena on kuvia, joista voidaan tehdä geologinen tulkinta. Osalle tallennetut mutkit mahdollistavat paleokanavien rajaamisen, jotka ovat todennäköisemmin altaita ja sisältävät öljyvarantoja. Tällaisen jokijärjestelmän nykyaikaisten analogien etsiminen ja analysointi antaa meille mahdollisuuden määrittää mutkien lupaavimmat osat. Kanaville itsessään on ominaista paksut, hyvin lajiteltua hiekkakiveä olevat kerrokset ja ne ovat hyvä öljyvarasto. "Pitsien" poikkeavuuksien ulkopuolella olevat alueet ovat samanlaisia ​​kuin nykyaikaiset tulva-esiintymät. Tulvakerrostumia edustavat pääasiassa savikivet, ja näiden vyöhykkeiden poraus on tehotonta.

RGB-lohko datakuutiosta. Keskellä (hieman vasemmalla keskustasta) voit jäljittää mutkittelevan joen.
Wolfram Mathematica geofysiikassa
RGB-lohko datakuutiosta. Vasemmalla puolella voit seurata mutkittelevaa jokea.
Wolfram Mathematica geofysiikassa

Joissakin tapauksissa seismisen tiedon laatu mahdollistaa huomattavasti selkeämmän kuvan. Tämä riippuu kenttätyömenetelmistä, kohinanvaimennusalgoritmin käyttämistä laitteista. Tällaisissa tapauksissa ei ole näkyvissä vain sirpaleita jokijärjestelmästä, vaan myös kokonaisia ​​laajennettuja paleojokia.

Seismisen datakuution kolmen komponentin RGB-sekoitus (horisontaalinen viipale). Syvyys noin 2 km.
Wolfram Mathematica geofysiikassa
Satelliittikuva Volga-joesta lähellä Saratovia
Wolfram Mathematica geofysiikassa

Johtopäätös

Wolfram Mathematican avulla voit analysoida seismisiä tietoja ja ratkaista mineraalien etsintään liittyviä sovellettavia ongelmia, ja GeologyIO-paketti tekee tästä prosessista mukavamman. Seismisten tietojen rakenne on sellainen, että käyttämällä sisäänrakennettuja menetelmiä laskennan nopeuttamiseksi (ParallelTable[], ParallelDo[],…) on erittäin tehokas ja mahdollistaa suurten tietomäärien käsittelyn. Tätä helpottavat suurelta osin GeologyIO-paketin tiedontallennusominaisuudet. Muuten, pakettia voidaan käyttää paitsi sovelletun seismisen tutkimuksen alalla. Lähes samantyyppisiä tietoja käytetään maatutkassa ja seismologiassa. Jos sinulla on ehdotuksia tuloksen parantamiseksi, mitkä Wolfram Mathematica -arsenaalin signaalianalyysialgoritmit soveltuvat tällaisiin tietoihin tai jos sinulla on kriittisiä kommentteja, ole hyvä ja Jätä kommentti.

Lähde: will.com

Lisää kommentti