Jeofizikte Wolfram Mathematica

Blogun yazarına teşekkürler Anton Ekimenko raporu için

Giriş

Bu not konferansın ardından yazılmıştır. Wolfram Rusya Teknoloji Konferansı ve verdiğim raporun özetini içeriyor. Etkinlik Haziran ayında St. Petersburg'da gerçekleşti. Konferans alanının bir blok ötesinde çalıştığım için bu etkinliğe katılmadan edemedim. 2016 ve 2017 yıllarında konferans raporlarını dinledim, bu yıl da sunum yaptım. İlk olarak, birlikte geliştirdiğimiz ilginç (bana öyle geliyor ki) bir konu ortaya çıktı. Kirill Belovve ikincisi, Rusya Federasyonu'nun yaptırım politikasına ilişkin mevzuatı üzerine uzun bir çalışmadan sonra, çalıştığım işletmede iki adede kadar lisans ortaya çıktı Wolfram Mathematica.

Konuşmamın konusuna geçmeden önce etkinliğin iyi organize edildiğini belirtmek isterim. Konferansın ziyaret sayfasında Kazan Katedrali'nin bir resmi kullanılıyor. Katedral, St. Petersburg'un başlıca turistik yerlerinden biridir ve konferansın gerçekleştiği salondan çok net bir şekilde görülebilmektedir.

Jeofizikte Wolfram Mathematica

St.Petersburg Devlet İktisat Üniversitesi'nin girişinde katılımcılar öğrenciler arasından asistanlar tarafından karşılandı, kaybolmalarına izin verilmedi. Kayıt sırasında küçük hediyelik eşyalar dağıtıldı (bir oyuncak - yanıp sönen bir çivi, bir kalem, Wolfram sembollü çıkartmalar). Konferans programında öğle yemeği ve kahve molaları da yer aldı. Grubun duvarında lezzetli kahve ve turtalardan bahsetmiştim - şefler harika. Bu giriş kısmıyla etkinliğin formatı ve lokasyonunun zaten olumlu duygular uyandırdığını vurgulamak isterim.

Benim ve Kirill Belov'un hazırladığı raporun adı “Uygulamalı jeofizik problemlerini çözmek için Wolfram Mathematica'nın kullanılması. Sismik verilerin veya "eski nehirlerin aktığı yerlerin" spektral analizi. Raporun içeriği iki bölümden oluşuyor: İlk olarak, mevcut algoritmaların kullanımı. Wolfram Mathematica jeofizik verileri analiz etmek için ve ikinci olarak, jeofizik verileri Wolfram Mathematica'ya nasıl koyacağınız budur.

Sismik keşif

Öncelikle jeofiziğe kısa bir gezi yapmanız gerekiyor. Jeofizik, kayaların fiziksel özelliklerini inceleyen bilimdir. Kayalar farklı özelliklere sahip olduğundan: elektriksel, manyetik, elastik, buna karşılık gelen jeofizik yöntemleri vardır: elektriksel araştırma, manyetik araştırma, sismik araştırma... Bu makale bağlamında sadece sismik araştırmayı daha ayrıntılı olarak tartışacağız. Sismik araştırma, petrol ve gaz aramanın ana yöntemidir. Yöntem, elastik titreşimlerin uyarılmasına ve ardından çalışma alanını oluşturan kayalardan gelen tepkilerin kaydedilmesine dayanmaktadır. Titreşimler karada (dinamit veya patlayıcı olmayan elastik titreşim kaynaklarıyla) veya denizde (hava tabancalarıyla) uyarılır. Elastik titreşimler kaya kütlesi boyunca yayılır, kırılır ve farklı özelliklere sahip katmanların sınırlarında yansıtılır. Yansıyan dalgalar yüzeye geri döner ve karadaki jeofonlar (genellikle bir bobin içinde asılı duran bir mıknatısın hareketine dayalı elektrodinamik cihazlar) veya denizdeki hidrofonlar (piezoelektrik etkiye dayalı) tarafından kaydedilir. Dalgaların gelmesiyle birlikte jeolojik katmanların derinlikleri değerlendirilebilir.

Sismik gemi çekme ekipmanı
Jeofizikte Wolfram Mathematica

Hava tabancası elastik titreşimleri harekete geçirir
Jeofizikte Wolfram Mathematica

Dalgalar kaya kütlesinden geçer ve hidrofonlar tarafından kaydedilir.
Jeofizikte Wolfram Mathematica

St. Petersburg'daki Blagoveshchensky Köprüsü yakınındaki iskelede jeofizik araştırma araştırma gemisi "Ivan Gubkin"
Jeofizikte Wolfram Mathematica

Sismik sinyal modeli

Kayaların farklı fiziksel özellikleri vardır. Sismik araştırma için elastik özellikler öncelikli olarak önemlidir; elastik titreşimlerin yayılma hızı ve yoğunluk. Eğer iki katman aynı veya benzer özelliklere sahipse, dalga aralarındaki sınırı “fark etmeyecektir”. Katmanlardaki dalga hızları farklıysa katmanların sınırlarında yansıma meydana gelecektir. Özelliklerdeki fark ne kadar büyük olursa yansıma da o kadar yoğun olur. Yoğunluğu yansıma katsayısı (rc) ile belirlenecektir:

Jeofizikte Wolfram Mathematica

burada ρ kaya yoğunluğunu, ν dalga hızını, 1 ve 2 ise üst ve alt katmanları göstermektedir.

En basit ve en sık kullanılan sismik sinyal modellerinden biri, kaydedilen sismik izin, bir araştırma darbesi ile bir dizi yansıma katsayısının evrişiminin sonucu olarak temsil edildiği evrişim modelidir:

Jeofizikte Wolfram Mathematica

nerede s(t) - sismik iz, yani Sabit bir kayıt süresi boyunca bir hidrofon veya jeofon tarafından kaydedilen her şey, w(t) - hava tabancasının ürettiği sinyal, n(t) - rastgele gürültü.

Örnek olarak sentetik sismik izi hesaplayalım. Sismik araştırmalarda yaygın olarak kullanılan Ricker darbesini başlangıç ​​sinyali olarak kullanacağız.

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]

İlk sismik dürtü
Jeofizikte Wolfram Mathematica

300 ms ve 600 ms derinliklere iki sınır koyacağız ve yansıma katsayıları rastgele sayılar olacak

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

Yansıma katsayılarının sırası
Jeofizikte Wolfram Mathematica

Sismik izi hesaplayalım ve gösterelim. Yansıma katsayıları farklı işaretlere sahip olduğundan sismik iz üzerinde iki alternatif yansıma elde ederiz.

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

Simüle edilmiş parça
Jeofizikte Wolfram Mathematica

Bu örnek için, bir rezervasyon yapmak gereklidir - gerçekte katmanların derinliği elbette metre cinsinden belirlenir ve sismik izin hesaplanması zaman alanı için gerçekleşir. Katmanlardaki hızları bilerek derinlikleri metre cinsinden ayarlayıp varış sürelerini hesaplamak daha doğru olacaktır. Bu durumda katmanları hemen zaman eksenine yerleştiriyorum.

Saha araştırmasından bahsedersek, bu tür gözlemler sonucunda çok sayıda benzer zaman serisi (sismik izler) kaydedilir. Örneğin, 25 km uzunluğunda ve 15 km genişliğinde bir alanı incelerken, çalışma sonucunda her izin 25x25 metre ölçülerinde bir hücreyi karakterize ettiği (böyle bir hücreye çöp kutusu denir), son veri dizisi 600000 iz içerecektir. 1 ms örnekleme süresi ve 5 saniye kayıt süresi ile nihai veri dosyası 11 GB'tan fazla olacak ve orijinal "ham" malzemenin hacmi yüzlerce gigabayt olabilir.

Onlarla nasıl çalışılır Wolfram Mathematica?

Paket JeolojiIO

Paketin geliştirilmesine başlandı soru Rusça konuşan destek grubunun VK duvarında. Topluluğun tepkileri sayesinde çok hızlı bir şekilde çözüm bulundu. Ve bunun sonucunda ciddi bir gelişmeye dönüştü. karşılık gelen Wolfram Topluluğu duvar yazısı Moderatörler tarafından bile işaretlendi. Şu anda paket, jeoloji endüstrisinde aktif olarak kullanılan aşağıdaki veri türleriyle çalışmayı desteklemektedir:

  1. harita verilerinin ZMAP ve IRAP formatlarında içe aktarılması
  2. LAS formatındaki kuyucuklardaki ölçümlerin içe aktarılması
  3. Sismik dosya formatının girişi ve çıkışı SEGY

Paketi kurmak için, birleştirilmiş paketin indirme sayfasındaki talimatları izlemelisiniz; aşağıdaki kodu herhangi bir yerde çalıştırın Matematik not defteri:

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

Bundan sonra paket varsayılan klasöre kurulacak ve bu klasöre giden yol şu şekilde elde edilebilir:

FileNameJoin[{$UserBasePacletsDirectory, "Repository"}]

Örnek olarak paketin ana yeteneklerini göstereceğiz. Çağrı geleneksel olarak Wolfram Dilindeki paketler için yapılır:

Get["GeologyIO`"]

Paket kullanılarak geliştirildi Wolfram Tezgahı. Bu, paketin ana işlevselliğine, sunum formatı açısından Wolfram Mathematica'nın kendi belgelerinden farklı olmayan belgelerle eşlik etmenize ve pakete ilk tanışma için test dosyaları sağlamanıza olanak tanır.

Jeofizikte Wolfram Mathematica

Jeofizikte Wolfram Mathematica

Böyle bir dosya özellikle “Marmousi.segy” dosyasıdır - bu, Fransız Petrol Enstitüsü tarafından geliştirilen jeolojik bölümün sentetik bir modelidir. Geliştiriciler bu modeli kullanarak dalga alanı modelleme, veri işleme, sismik iz ters çevirme vb. için kendi algoritmalarını test ederler. Marmousi modelinin kendisi, paketin indirildiği depoda saklanır. Dosyayı almak için aşağıdaki kodu çalıştırın:

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

Sonucu içe aktar - SEGYData nesnesi
Jeofizikte Wolfram Mathematica

SEGY formatı gözlemlerle ilgili çeşitli bilgilerin saklanmasını içerir. Öncelikle bunlar metin yorumlarıdır. Bu, işin yeri, ölçümleri yapan firmaların isimleri vb. hakkındaki bilgileri içerir. Bizim durumumuzda bu başlık, TextHeader anahtarına sahip bir istek tarafından çağrılır. İşte kısaltılmış bir metin başlığı:

Short[marmousi["TextHeader"]]

“Marmousi veri seti Enstitüde oluşturulmuştur...minimum hız 1500 m/s ve maksimum 5500 m/s)”

“Traces” tuşunu kullanarak sismik izlere erişerek gerçek jeolojik modeli görüntüleyebilirsiniz (paketin özelliklerinden biri de tuşların büyük/küçük harfe duyarlı olmamasıdır):

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

Model Marmousi
Jeofizikte Wolfram Mathematica

Şu anda paket, büyük dosyalardan parçalar halinde veri yüklemenize de olanak tanıyarak, boyutu onlarca gigabayta ulaşabilen dosyaların işlenmesini mümkün kılıyor. Paketin işlevleri ayrıca verileri .segy'ye aktarma ve kısmen dosyanın sonuna ekleme işlevlerini de içerir.

Ayrı olarak, .segy dosyalarının karmaşık yapısıyla çalışırken paketin işlevselliğine dikkat etmek önemlidir. Çünkü bu, yalnızca anahtarları ve dizinleri kullanarak bireysel izlere ve başlıklara erişmenize değil, aynı zamanda bunları değiştirmenize ve ardından bunları bir dosyaya yazmanıza da olanak tanır. GeologyIO'nun uygulanmasına ilişkin teknik detayların birçoğu bu makalenin kapsamı dışındadır ve muhtemelen ayrı bir açıklamayı hak etmektedir.

Sismik araştırmada spektral analizin önemi

Sismik verileri Wolfram Mathematica'ya aktarma yeteneği, deneysel veriler için yerleşik sinyal işleme işlevselliğini kullanmanıza olanak tanır. Her sismik iz bir zaman serisini temsil ettiğinden, bunları incelemek için kullanılan ana araçlardan biri spektral analizdir. Sismik verilerin frekans kompozisyonunu analiz etmenin önkoşulları arasında örneğin aşağıdakileri sayabiliriz:

  1. Farklı dalga türleri, farklı frekans bileşimleriyle karakterize edilir. Bu, yararlı dalgaları vurgulamanıza ve girişim dalgalarını bastırmanıza olanak tanır.
  2. Gözeneklilik ve doygunluk gibi kaya özellikleri frekans kompozisyonunu etkileyebilir. Bu, en iyi özelliklere sahip kayaları tanımlamayı mümkün kılar.
  3. Farklı kalınlıktaki katmanlar farklı frekans aralıklarında anormalliklere neden olur.

Üçüncü nokta bu makale bağlamında asıl olanıdır. Aşağıda, değişen kalınlıktaki bir katman (kama modeli) durumunda sismik izlerin hesaplanmasına yönelik bir kod parçası bulunmaktadır. Bu model geleneksel olarak sismik araştırmada birçok katmandan yansıyan dalgalar üst üste bindirildiğinde girişim etkilerini analiz etmek için incelenir.

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

Bir kıstırma oluşumunun modeli
Jeofizikte Wolfram Mathematica

Kama içindeki dalga hızı 4500 m/s, kama dışındaki dalga hızı 4000 m/s olup yoğunluğun 2200 g/cm³ sabit olduğu varsayılmaktadır. Böyle bir model için yansıma katsayılarını ve sismik izleri hesaplıyoruz.

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]

Kama modeli için sismik izler
Jeofizikte Wolfram Mathematica

Bu şekilde gösterilen sismik izlerin dizisine sismik kesit adı verilir. Gördüğünüz gibi, yansıyan dalgaların geometrisi daha önce belirtilen modele açıkça karşılık geldiğinden, yorumu sezgisel düzeyde de gerçekleştirilebilir. İzleri daha detaylı incelerseniz, 1'den yaklaşık 30'a kadar izlerin farklı olmadığını fark edeceksiniz - formasyonun çatısından ve alttan gelen yansımalar birbiriyle örtüşmüyor. 31. izden itibaren yansımalar karışmaya başlar. Modelde yansıma katsayıları yatay olarak değişmese de sismik izlerin yoğunluğu, katmanın kalınlığı değiştikçe değişir.

Formasyonun üst sınırından yansımanın genliğini ele alalım. 60. rotadan itibaren yansımanın şiddeti artmaya başlıyor ve 70. rotada maksimuma ulaşıyor. Katmanların çatısından ve tabanından gelen dalgaların girişimi bu şekilde kendini gösterir ve bazı durumlarda sismik kayıtlarda önemli anormalliklere yol açar.

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]

Kamanın üst kenarından yansıyan dalganın genliğinin grafiği
Jeofizikte Wolfram Mathematica

Sinyal düşük frekanslı olduğunda, büyük oluşum kalınlıklarında girişimin ortaya çıkmaya başlaması ve yüksek frekanslı bir sinyal durumunda girişimin daha küçük kalınlıklarda meydana gelmesi mantıklıdır. Aşağıdaki kod parçacığı 35 Hz, 55 Hz ve 85 Hz frekanslarında bir sinyal oluşturur.

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]

35 Hz, 55Hz, 85Hz frekanslı bir dizi kaynak sinyali
Jeofizikte Wolfram Mathematica

Sismik izleri hesaplayarak ve yansıyan dalga genliklerinin grafiklerini çizerek, farklı frekanslar için farklı oluşum kalınlıklarında bir anormalliğin gözlemlendiğini görebiliriz.

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]

Farklı frekanslar için kamanın üst kenarından yansıyan dalganın genliklerinin grafikleri
Jeofizikte Wolfram Mathematica

Sismik gözlemlerin sonuçlarından formasyonun kalınlığı hakkında sonuç çıkarma yeteneği son derece faydalıdır, çünkü petrol aramalarındaki ana görevlerden biri kuyu döşemek için en umut verici noktaları (yani formasyonun bulunduğu alanları) değerlendirmektir. kalın). Ayrıca jeolojik bölümde oluşumu formasyonun kalınlığında keskin bir değişikliğe neden olan nesneler bulunabilir. Bu, spektral analizi bunları incelemek için etkili bir araç haline getirir. Makalenin bir sonraki bölümünde bu tür jeolojik nesneleri daha ayrıntılı olarak ele alacağız.

Deneysel veri. Onları nereden aldın ve içlerinde ne aramalısın?

Makalede analiz edilen malzemeler Batı Sibirya'da elde edildi. Bölge, istisnasız herkesin bildiği gibi ülkemizin başlıca petrol üreten bölgesidir. Bölgede mevduatların aktif gelişimi geçen yüzyılın 60'lı yıllarında başladı. Petrol yataklarını aramanın ana yöntemi sismik araştırmadır. Bu bölgenin uydu görüntülerine bakmak ilginç. Küçük ölçekte, çok sayıda bataklık ve göl fark edilebilir; haritayı büyüterek küme kuyusu sondaj alanlarını görebilir ve haritayı sınıra kadar genişleterek, sismik geçişlerin olduğu profillerin açıklıklarını da ayırt edebilirsiniz. gözlemler yapıldı.

Yandex haritalarının uydu görüntüsü - Noyabrsk şehir alanı
Jeofizikte Wolfram Mathematica

Tarlalardan birinde kuyu yastıklarından oluşan bir ağ
Jeofizikte Wolfram Mathematica

Batı Sibirya'nın petrol içeren kayaları, 1 km'den 5 km'ye kadar geniş bir derinlik aralığında bulunur. Petrol içeren kayaların ana hacmi Jura ve Kretase zamanlarında oluşmuştur. Jura dönemi muhtemelen birçok kişi tarafından aynı isimli filmden bilinmektedir. Jura iklimi modern olandan önemli ölçüde farklıydı. Britannica Ansiklopedisi'nde her helojik dönemi karakterize eden bir dizi paleo haritası vardır.

bu
Jeofizikte Wolfram Mathematica
dinozorlar dönemi
Jeofizikte Wolfram Mathematica

Jura döneminde Batı Sibirya topraklarının bir deniz kıyısı (nehirlerin ve sığ denizin geçtiği kara) olduğunu lütfen unutmayın. İklim rahat olduğundan o zamanın tipik bir manzarasının şöyle göründüğünü varsayabiliriz:

Jura Sibirya
Jeofizikte Wolfram Mathematica

Bu resimde bizim için önemli olan hayvanlar ve kuşlar değil, arka plandaki nehir görüntüsüdür. Nehir, daha önce durduğumuz jeolojik nesnenin aynısıdır. Gerçek şu ki, nehirlerin aktivitesi iyi ayrışmış kumtaşlarının birikmesine olanak tanıyor ve bu kumtaşları daha sonra petrol rezervuarı haline geliyor. Bu rezervuarlar tuhaf, karmaşık bir şekle (bir nehir yatağı gibi) sahip olabilir ve değişken kalınlıklara sahiptir; kıyıların yakınında kalınlık küçüktür, ancak kanalın merkezine daha yakın veya kıvrımlı alanlarda artar. Yani Jura'da oluşan nehirler şu anda yaklaşık üç kilometre derinlikte ve petrol rezervuarları arayışının hedefi.

Deneysel veri. İşleme ve görselleştirme

Makalede gösterilen sismik malzemelerle ilgili hemen bir çekince koyalım - analiz için kullanılan veri miktarının önemli olması nedeniyle - makale metninde orijinal sismik iz setinin yalnızca bir kısmı yer almaktadır. Bu, herkesin yukarıdaki hesaplamaları yeniden yapmasına olanak sağlayacaktır.

Sismik verilerle çalışırken, bir jeofizikçi genellikle farklı veri türlerini analiz etmenize olanak tanıyan ve uygun bir grafik arayüze sahip özel bir yazılım kullanır (geliştirmeleri aktif olarak kullanılan birkaç endüstri lideri vardır, örneğin Petrel veya Paradigm). Tüm kolaylıklara rağmen, bu tür yazılımların dezavantajları da vardır - örneğin, modern algoritmaların kararlı sürümlerde uygulanması çok zaman alır ve hesaplamaları otomatikleştirme olanakları genellikle sınırlıdır. Böyle bir durumda, geniş bir algoritmik tabanın kullanımına olanak tanıyan ve aynı zamanda birçok rutini üstlenen bilgisayar matematik sistemlerini ve üst düzey programlama dillerini kullanmak çok uygun hale gelir. Wolfram Mathematica'da sismik verilerle çalışmak için kullanılan prensip budur. Verilerle etkileşimli çalışma için zengin işlevsellik yazmak uygun değildir - genel kabul görmüş bir formattan yükleme yapılmasını sağlamak, bunlara istenen algoritmaları uygulamak ve bunları harici bir formata geri yüklemek daha önemlidir.

Önerilen şemayı takip ederek orijinal sismik verileri yükleyeceğiz ve bunları 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]

Bu şekilde indirilen ve içe aktarılan veriler, 10x5 kilometrelik bir alana kaydedilen rotalardır. Veriler üç boyutlu sismik araştırma yöntemi kullanılarak elde edilirse (dalgalar bireysel jeofizik profiller boyunca değil, tüm alan boyunca aynı anda kaydedilir), sismik veri küpleri elde etmek mümkün hale gelir. Bunlar, jeolojik çevrenin ayrıntılı bir şekilde incelenmesine olanak tanıyan dikey ve yatay bölümleri olan üç boyutlu nesnelerdir. Ele alınan örnekte üç boyutlu verilerle uğraşıyoruz. Metin başlığından bunun gibi bazı bilgiler alabiliriz

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

C 1 BU JEOLOJİ PAKET TESTİ İÇİN DEMO DOSYASIDIR
C 2
C 3
C 4
C 5 TARİH KULLANICI ADI: WOLFRAM KULLANICI
C 6 ANKET ADI: SİBİRYA'DA BİR YER
C 7 DOSYA TİPİ 3D SİSMİK HACİM
C 8
C 9
C10 Z SERİSİ: İLK 2200M SON 2400M

Bu veri seti veri analizinin ana aşamalarını göstermemiz için yeterli olacaktır. Dosyadaki izler sırayla kaydedilir ve her biri aşağıdaki şekle benzer - bu, yansıyan dalgaların genliklerinin dikey eksen (derinlik ekseni) boyunca dağılımıdır.

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]

Sismik kesit izlerinden biri
Jeofizikte Wolfram Mathematica

İncelenen alanın her yönünde kaç tane iz bulunduğunu bilerek, üç boyutlu bir veri dizisi oluşturabilir ve bunu Image3D[] işlevini kullanarak görüntüleyebilirsiniz.

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

Sismik veri küpünün XNUMX boyutlu görüntüsü (Dikey eksen - derinlik)
Jeofizikte Wolfram Mathematica

İlgilenilen jeolojik özellikler yoğun sismik anomaliler yaratıyorsa şeffaflık sağlayan görselleştirme araçları kullanılabilir. Kaydın "önemsiz" alanları görünmez hale getirilerek yalnızca anormallikler görünür hale getirilebilir. Wolfram Mathematica'da bu kullanılarak yapılabilir. Opaklık[] и 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]

Opaklık[] ve Raster3D[] işlevlerini kullanan sismik veri küpü görüntüsü Jeofizikte Wolfram Mathematica

Sentetik örnekte olduğu gibi, orijinal küpün bölümlerinde değişken kabartmalı bazı jeolojik sınırlar (katmanlar) tanımlanabilir.

Spektral analizin ana aracı Fourier dönüşümüdür. Onun yardımıyla her bir izin veya iz grubunun genlik-frekans spektrumunu değerlendirebilirsiniz. Ancak veri frekans alanına aktarıldıktan sonra frekansın hangi zamanlarda (hangi derinlikte okunduğu) değiştiğine dair bilgi kaybolur. Sinyal değişimlerini zaman (derinlik) ekseninde lokalize edebilmek için pencereli Fourier dönüşümü ve dalgacık ayrıştırması kullanılır. Bu makalede dalgacık ayrıştırması kullanılmaktadır. Dalgacık analiz teknolojisi 90'lı yıllarda sismik aramalarda aktif olarak kullanılmaya başlandı. Pencereli Fourier dönüşümüne göre avantajının daha iyi zaman çözünürlüğü olduğu düşünülmektedir.

Aşağıdaki kod parçasını kullanarak sismik izlerden birini ayrı bileşenlere ayırabilirsiniz:

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]

Bir izin bileşenlerine ayrıştırılması
Jeofizikte Wolfram Mathematica

Yansıma enerjisinin farklı dalga varış zamanlarında nasıl dağıldığını değerlendirmek için skalogramlar (spektrograma benzer) kullanılır. Kural olarak pratikte tüm bileşenlerin analiz edilmesine gerek yoktur. Tipik olarak düşük, orta ve yüksek frekanslı bileşenler seçilir.

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. Fonksiyon sonucu Dalgacık Skalogramı[]
Jeofizikte Wolfram Mathematica

Wolfram Dili, dalgacık dönüşümü için işlevi kullanır SürekliDalgacıkDönüşümü[]. Ve bu fonksiyonun tüm iz kümesine uygulanması, fonksiyon kullanılarak gerçekleştirilecektir. Masa[]. Burada Wolfram Mathematica'nın güçlü yönlerinden birini - paralelleştirmeyi kullanma yeteneğini - belirtmekte fayda var. ParalelTablo[]. Yukarıdaki örnekte paralelleştirmeye gerek yoktur; veri hacmi büyük değildir ancak yüzbinlerce iz içeren deneysel veri kümeleriyle çalışırken bu bir zorunluluktur.

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

Fonksiyonu uyguladıktan sonra SürekliDalgacıkDönüşümü[] Seçilen frekanslara karşılık gelen yeni veri setleri görünür. Yukarıdaki örnekte bu frekanslar: 38Hz, 33Hz, 27Hz. Frekans seçimi çoğunlukla test temelinde gerçekleştirilir - farklı frekans kombinasyonları için etkili haritalar elde edilir ve jeolog açısından en bilgilendirici olanı seçilir.

Sonuçları meslektaşlarınızla paylaşmanız veya müşteriye sunmanız gerekiyorsa GeologyIO paketinin SEGYExport[] işlevini kullanabilirsiniz.

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

Bu küplerden üçüyle (düşük frekans, orta frekans ve yüksek frekans bileşenleri), RGB harmanlama genellikle verileri bir arada görselleştirmek için kullanılır. Her bileşene kendi rengi atanır - kırmızı, yeşil, mavi. Wolfram Mathematica'da bu, fonksiyon kullanılarak yapılabilir. RenkBirleştir[].

Sonuçta jeolojik yorumların yapılabileceği görüntüler ortaya çıkıyor. Kesitte kaydedilen kıvrımlar, rezervuar olma olasılığı daha yüksek olan ve petrol rezervleri içeren paleokanalların tanımlanmasını mümkün kılmaktadır. Böyle bir nehir sisteminin modern analoglarının araştırılması ve analizi, mendereslerin en umut verici kısımlarını belirlememizi sağlar. Kanalların kendisi, iyi sıralanmış kalın kumtaşı katmanlarıyla karakterize edilir ve petrol için iyi bir rezervuardır. "Dantel" anomalilerin dışındaki alanlar, modern taşkın yatağı yataklarına benzer. Taşkın yatağı çökelleri çoğunlukla killi kayalardan oluşur ve bu bölgelere sondaj yapılması etkisiz olacaktır.

Veri küpünün RGB dilimi. Ortada (merkezin biraz solunda) kıvrımlı nehrin izini sürebilirsiniz.
Jeofizikte Wolfram Mathematica
Veri küpünün RGB dilimi. Sol tarafta kıvrımlı nehrin izini sürebilirsiniz.
Jeofizikte Wolfram Mathematica

Bazı durumlarda sismik verilerin kalitesi önemli ölçüde daha net görüntülere olanak sağlar. Bu, saha çalışması metodolojisine ve gürültü azaltma algoritmasının kullandığı ekipmana bağlıdır. Bu gibi durumlarda, yalnızca nehir sistemlerinin parçaları değil, aynı zamanda genişleyen paleo-nehirlerin tamamı da görülebilir.

Sismik bir veri küpünün (yatay dilim) üç bileşeninin RGB karışımı. Derinlik yaklaşık 2 km.
Jeofizikte Wolfram Mathematica
Saratov yakınlarındaki Volga Nehri'nin uydu görüntüsü
Jeofizikte Wolfram Mathematica

Sonuç

Wolfram Mathematica, sismik verileri analiz etmenize ve maden aramayla ilgili uygulamalı problemleri çözmenize olanak tanır ve GeologyIO paketi bu süreci daha kolay hale getirir. Sismik verilerin yapısı, hesaplamaları hızlandırmak için yerleşik yöntemlerin kullanılması şeklindedir (ParalelTablo[], ParalelYap[],…) oldukça verimlidir ve büyük miktarda veriyi işlemenize olanak tanır. Bu, büyük ölçüde GeologyIO paketinin veri depolama özellikleriyle kolaylaştırılmıştır. Bu arada paket yalnızca uygulamalı sismik araştırma alanında kullanılamaz. Yere nüfuz eden radar ve sismolojide neredeyse aynı tür veriler kullanılmaktadır.Sonucun nasıl iyileştirilebileceğine, Wolfram Mathematica cephaneliğindeki hangi sinyal analiz algoritmalarının bu tür verilere uygulanabileceğine dair önerileriniz varsa veya eleştiriniz varsa lütfen bir mesaj bırakın. Yorum.

Kaynak: habr.com

Yorum ekle