感谢博客作者Anton Ekimenko的演讲引言
该说明是在
Wolfram俄罗斯技术会议之后撰写的,其中包含我所提供报告的提要。 该活动于六月在圣彼得堡市举行。 鉴于我在会场附近工作,因此我不禁参加了这次活动。 在2016年和2017年,我听了会议报告,今年我做了一个演讲。 首先,我们正在与
基里尔·贝洛夫 (
Kirill Belov)一起发展一个有趣的话题(在我看来),其次,在对俄罗斯联邦有关制裁政策的立法进行了长期研究之后,在我工作的企业中出现了两个
Wolfram Mathematica许可证。
在继续我的演讲主题之前,我想指出这次活动的组织性。 会议页面使用喀山大教堂的图像。 大教堂是圣彼得堡的主要景点之一,从举行会议的大厅可以清楚看到。

在圣彼得堡国立经济大学的入口处,参加者与学生助理见面-他们不允许他们迷路。 在注册过程中,赠送了一些小纪念品(玩具-闪光的粘着物,笔,带有Wolfram符号的贴纸)。 午餐和茶歇时间也包括在会议日程中。 关于美味的咖啡和馅饼,我已经在团队成员的墙上指出-做得好的厨师。 在此介绍性部分中,我想强调一下,事件本身,事件的形式和地点已经带来了积极的情绪。
由我和基里尔·贝洛夫(Kirill Belov)编写的报告被称为“使用Wolfram Mathematica解决应用地球物理学的问题。 地震数据的频谱分析或“古代河流的流向”。 该报告的内容包括两个部分:首先,利用
Wolfram Mathematica中可用的算法来分析地球物理数据,其次,这就是如何将地球物理数据放入Wolfram Mathematica中。
地震勘探
首先,您需要对地球物理学进行一些游览。 地球物理学是一门研究岩石物理性质的科学。 好吧,由于岩石具有不同的属性:电,磁,弹性,因此有相应的地球物理方法:电勘探,磁勘探,地震勘探……在本文的上下文中,我们将仅更详细地介绍地震勘探。 地震勘探是发现油气的主要方法。 该方法基于弹性振动的激发和随后记录组成研究区域的岩石的响应。 在陆地(炸药或弹性爆炸的非爆炸性振动源)或海上(气枪)进行振动激发。 弹性振动通过岩石的厚度传播,在具有不同特性的层的边界处被折射和反射。 反射波返回到地面,并由陆基地震检波器(通常基于悬浮在线圈中的磁体的运动基于电动力装置)或海中的水听器(基于压电效应)进行记录。 通过波的到达时间,人们可以判断地质层的深度。
地震船拖曳设备:

气枪激发弹性振动:

波浪穿过岩体并被水听器记录:

圣彼得堡布拉戈维申斯基桥上的地球物理勘探研究船“伊凡·古布金”:

地震信号模型
岩石具有不同的物理性质。 对于地震勘探而言,弹性特性是最重要的-弹性振动的传播速度和密度。 如果两个图层具有相同或相似的属性,则波浪将不会“注意”它们之间的边界。 如果层中的波速不同,则反射将在层的边界处发生。 性质的差异越大,反射越强烈。 其强度将由反射系数(rc)确定:
其中ρ是岩石密度,ν是波速,1和2表示上层和下层。卷积模型是最简单和最常用的地震信号模型之一,当由于反射系数序列与探测脉冲的卷积而给出配准的地震迹线时:
其中s(t)是地震道,即 在固定的记录时间内记录的水听器或地震检波器,
w(t)是气枪产生的信号,
n(t)是随机噪声。
我们计算例如综合地震勘测。 我们将地震勘探中广泛使用的里克脉冲作为初始信号。
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]
源地震脉冲

我们在300 ms和600 ms的深度处设置两个边界,并且反射系数将是随机数。
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]]
反射系数的顺序:

计算并显示地震轨迹。 由于反射系数具有不同的符号,因此我们在地震路径上获得了两次交替反射。
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]]
模拟轨迹:
对于此示例,必须进行保留-实际上,层的深度当然是以米为单位确定的,并且地震路径的计算是针对时域进行的。 以米为单位设置深度并知道地层中的速度来计算到达时间会更正确。 在这种情况下,我立即在时间轴上设置图层。如果我们谈论实地研究,则由于观察到的结果,会记录大量这样的时间序列(地震道)。 例如,在探索长25公里,宽15公里的站点时,由于工作的原因,每个轨道都表征了一个尺寸为25x25米的单元(这种单元称为箱),最终数据阵列将包含600,000条轨道。 采样时间为1毫秒,记录时间为5秒,最终数据文件将超过11 GB,原始“原始”素材的数量可达到数百GB。
如何在
Wolfram Mathematica中与他们合作?
一揽子计划的制定始于在俄语支持小组的VK墙上
提问 。 感谢社区的回应,很快找到了解决方案。 结果,它发展成为一个严肃的发展。 主持人甚至注意到
Wolfram社区墙上的相应
帖子 。 当前,该软件包支持处理地质行业中活跃使用的以下类型的数据:
- 导入ZMAP和IRAP格式的地图数据
- 将测量值导入LAS格式的孔中
- SEGY格式的地震文件的输入和输出
要安装该软件包,您必须按照组装好的软件包下载页面上的说明进行操作,即 在任何
Mathematica笔记本上执行以下代码:
If[PacletInformation["GeologyIO"] === {}, PacletInstall[URLDownload[ "https://wolfr.am/FiQ5oFih", FileNameJoin[{CreateDirectory[], "GeologyIO-0.2.2.paclet"}] ]]]
之后,该软件包将安装在默认文件夹中,可以通过以下方式获取其路径:
FileNameJoin[{$UserBasePacletsDirectory, "Repository"}]
作为示例,我们演示该软件包的主要功能。 传统上,该调用是针对Wolfram语言的软件包:
Get["GeologyIO`"]
该软件包正在使用
Wolfram Workbench开发。 这使您可以将软件包的主要功能与文档一起使用,该文档的表达格式与Wolfram Mathematica本身的文档没有什么不同,并为软件包提供了初次接触的测试文件。


这样的文件尤其是Marmousi.segy文件,它是法国石油学院开发的地质剖面的合成模型。 使用此模型,开发人员可以测试自己的算法来建模波场,数据处理,地震迹线反演等。 Marmousi模型本身存储在存储库中,从中可以下载软件包本身。 为了获取文件,请执行以下代码:
If[Not[FileExistsQ["Marmousi.segy"]], URLDownload["https://wolfr.am/FiQGh7rk", "Marmousi.segy"];] marmousi = SEGYImport["Marmousi.segy"]
导入的结果是SEGYData对象:

SEGY格式涉及有关观测的各种信息的存储。 首先,这些是文本注释。 在此输入有关工作地点,进行测量的公司名称等信息。 在我们的示例中,此标头由带有TextHeader键的请求调用。 这是一个简短的文本标题:
Short[marmousi["TextHeader"]]
“ Marmousi数据集是在研究所生成的……最大速度为1500 m / s,最大速度为5500 m / s)”
可以通过使用“迹线”键接触地震迹线来显示实际的地质模型(包装的功能之一是键的大小写不敏感):
ArrayPlot[Transpose[marmousi["traces"]], PlotTheme -> "Detailed"]
Marmousi模型:

此刻,该软件包还允许您从大文件中下载部分数据,从而可以处理大小可达数十GB的文件。 该软件包还包括用于将数据导出到.segy并将部分重写到文件末尾的功能。
另外,在使用.segy文件的复杂结构时,值得注意程序包的功能。 由于它不仅允许访问键和索引到各个迹线,标头,还可以在随后写入文件时更改它们。 实现GeologyIO的许多技术细节超出了本文的范围,可能值得单独描述。
频谱分析在地震勘探中的意义
将地震资料导入Wolfram Mathematica的功能使您可以将内置信号处理功能用于实验数据。 由于每个地震道都是一个时间序列,因此研究地震道的主要工具之一就是频谱分析。 例如,分析地震数据频率组成的前提条件如下:
- 不同类型的波具有不同的频率组成。 这使我们可以选择有用的波并抑制干扰波。
- 诸如孔隙度和饱和度之类的岩石特性会影响频率组成。 这使您可以选择性能更好的岩石。
- 具有不同厚度的层会导致不同频率范围内的异常。
第三段是本文的重点。 以下是用于在厚度变化的情况下计算地震迹线的代码片段-楔形模型。 传统上在地震勘探中研究此模型以分析当多层反射的波相互重叠时的干扰效应。
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]]
突出形成模型:

楔形内部的波速为4500 m / s,楔形外部的波速为4000 m / s,并且假定密度为恒定的2200 g /cm³。 对于这样的模型,我们计算反射系数和地震道。
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]
楔形模型的地震道:

该图所示的地震迹线序列称为地震剖面。 如您所见,由于反射波的几何形状唯一对应于先前设置的模型,因此可以在直观的水平上执行其解释。 如果您更详细地分析轨迹,那么您会发现从第1条到第30条的轨迹没有不同-地层顶部和底部的反射不会重叠。 从路线31开始,反射开始产生干扰。 而且,尽管在模型中反射系数不会水平变化-地震道随储层厚度的变化而改变其强度。
考虑来自储层上边界的反射幅度。 从第60条路线开始,反射强度开始增加,在第70条路线时变为最大。 这就是如何表现出来自屋顶和鞋底的波浪对地层的干扰,从而在某些情况下导致地震记录的明显异常。
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]
楔形物上边缘反射波的振幅图

顺理成章的是,当信号为低频时,干扰会在较大的地层厚度处开始出现,而在高频信号的情况下,干扰会在较小的厚度处发生。 以下代码片段创建一个频率为35 Hz,55 Hz和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]
一组频率为35 Hz,55 Hz,85 Hz的源信号

在计算了地震迹线并绘制了反射波的幅度后,我们可以看到,对于不同的频率,在不同厚度的地层上都观察到了异常。
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]
来自楔形上边缘的反射波在不同频率下的振幅图

根据地震观测结果得出有关储层厚度的结论的能力非常有用,因为勘探油田的主要任务之一是评估最有希望的油井铺设点(即那些储层厚度较大的部分)。 另外,在地质部分中,可能存在这样的物体,由于其起源,导致地层厚度的急剧变化。 这使频谱分析成为研究它们的有效工具。 在本文的下一部分中,我们将更详细地考虑此类地质对象。
实验数据。 他们在哪里领取以及在其中寻找什么?
本文中分析的材料是在西西伯利亚地区获得的。 众所周知,该地区是我国的主要产油区。 上世纪60年代,该地区开始积极发展都市出生。 寻找油田的主要方法是地震勘探。 考虑该区域的卫星图像很有趣。 在较小的规模上,可以注意到大量的沼泽和湖泊,通过增加地图可以看到用于钻探井的集束井,通过将地图增加到极限,您还可以区分进行地震观测的剖面林间空地。
Yandex地图的卫星图像-Noyabrsk市区域:

集群站点网络位于以下字段之一:

西西伯利亚的含油岩石的深度范围很广-从1公里到5公里。 含油岩石的主要体积是在侏罗纪和白垩纪形成的。 许多同名电影可能都知道侏罗纪时期。
侏罗纪时期的气候与现代
时期明显不同。 在《大不列颠百科全书》中,有一系列的古卡片代表了每个地质时代。
现在时间:

侏罗纪时期:

请注意,在侏罗纪,西西伯利亚的领土是沿海(河流和浅海相交的土地)。 由于气候宜人,因此可以假定当时的典型景观如下:
侏罗纪的西伯利亚:

在这张照片中,对我们来说,没有多少动物和鸟类重要,因为背景中的河流形象。 河流是我们早些时候停留的非常地质的对象。 事实是,河流的活动使堆积良好的砂岩聚积起来,然后成为了石油的储藏库。 这些水库可能具有奇异,复杂的形状(如河床),并且厚度各不相同-沿着海岸,厚度很小,并且靠近河道中心或蜿蜒部分逐渐增加。 因此,侏罗纪时期形成的河流深度约为三公里,是寻找油藏的对象。
实验数据。 处理和可视化
我们立即对文章中显示的地震资料有所保留-由于用于分析的数据量很大,因此在本文中仅放置了原始地震痕迹集的一部分。 这将使每个人都可以重现以上计算。
在处理地震数据时,地球物理学家通常使用专门的软件(有数家行业领导者正在积极使用其开发成果,例如Petrel或Paradigm),它使您能够分析不同类型的数据并具有方便的图形界面。 尽管提供了所有便利,但这些类型的软件也有其缺点-例如,在稳定版本中实施现代算法会花费大量时间,并且通常会限制自动计算的可能性。 在这种情况下,使用计算机数学系统和高级编程语言变得非常方便,这些语言和语言可以使您使用广泛的算法基础,同时又需要执行大量例程。 使用此原理,可以在Wolfram Mathematica中处理地震数据。 用数据编写具有丰富交互功能的功能是不切实际的-确保从普遍接受的格式加载,对它们应用所需的算法并将其上传回外部格式更为重要。
按照建议的方案,加载原始地震数据并将其显示在
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]
以这种方式下载和导入的数据是在10 x 5公里的站点上注册的轨道。 如果通过三维地震勘探方法获得数据(不是沿着单独的地球物理剖面进行波记录,而是同时在整个区域进行波记录),就有可能获得地震数据立方体。 这些是三维对象,其垂直和水平截面允许对地质环境进行详细研究。 在所考虑的示例中,我们仅处理三维数据。 我们可以从文本标题中获取一些信息,例如这样
StringPartition[seismic3DSEGY["textheader"], 80] // TableForm
C 1这是地质软件包测试的演示文件
C 2
C 3
C 4
C 5日期用户名:WOLFRAM用户
C 6调查名称:西伯利亚的其他地方
C 7文件类型3D地震体积
C 8
C 9
C10 Z范围:第一2200M最后2400M
该数据集足以让我们演示数据分析的主要阶段。 文件中的轨道被顺序记录,每个轨道看起来都如下图所示-这是反射波沿垂直轴(深度轴)的振幅分布。
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]
地震部分之一:

知道研究区域的每个方向上有多少迹线,您可以形成三维数据数组并使用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]]
地震数据立方体的三维图像(垂直轴-深度):

如果感兴趣的地质对象产生强烈的地震异常,则可以使用具有透明度的可视化工具。 可以使记录的“不重要”部分不可见,而仅使异常可见。 在Wolfram Mathematica中,这可以使用
Opacity []和
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]
使用Opacity []和Raster3D []函数的地震数据立方体的图像

如在合成示例中那样,在原始立方体的切片上,可以区分具有可变浮雕的某些地质边界(层)。
主要的频谱分析工具是傅里叶变换。 使用它,您可以评估每条路径或每组路径的幅度频谱。 但是,在将数据传输到频域之后,会丢失有关频率在什么时间(以什么深度读取)的信息。 为了能够在时间(深)轴上定位信号变化,使用了窗口傅立叶变换和小波分解。 本文使用小波分解。 小波分析技术在90年代开始被积极地用于地震勘探中。 相对于窗口傅立叶变换的优势被认为是最佳的时间分辨率。
使用以下代码片段,您可以分解为一条地震道的各个组成部分:
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]
成分分解

为了评估在波到达的不同时间反射能量的分布方式,使用了比例图(频谱图的类似物)。 通常,实际上不需要分析所有组件。 通常选择低频,中频和高频分量。
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]
刻度图。
WaveletScalogram []函数的结果
Wolfram语言对小波变换使用ContinuousWaveletTransform []函数。并使用Table []函数将该函数应用于整个跟踪集。在这里值得注意的是Wolfram Mathematica的优势之一是能够使用ParallelTable []并行化。在给定的示例中,并行化不是必需的-数据量不大,但是在处理包含成千上万条迹线的实验数据集时,这是必要的。 tracesCWD=Table[Map[Hilbert[#,0]&,Re[ContinuousWaveletTransform[traces[[i]]][[1]]][[{13,15,18}]]],{i,1,Length@traces}];
应用ContinuousWaveletTransform []函数后,将出现与所选频率相对应的新数据数组。在上面的示例中,这些频率是:38Hz,33Hz,27Hz。频率的选择通常基于测试-它们会获得不同频率组合的有效图,并从地质学家的角度选择最有用的信息。如果您需要与同事共享结果或将结果提供给客户,则可以使用GeologyIO的SEGYExport []函数 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];
通常,他们拥有三个这样的立方体(低频,中频和高频分量),它们使用RGB混合进行数据的联合可视化。每个组件都有自己的颜色-红色,绿色,蓝色。在Wolfram Mathematica中,可以使用ColorCombine []函数完成此操作。结果,获得了可用于执行地质解释的图像。该部分上的曲折曲线使您可以勾勒出帕劳斯的轮廓,它更可能是储层并且包含石油储量。对此类河流系统的现代类似物的搜索和分析使我们能够确定蜿蜒的最有希望的部分。床层本身的特征是厚层的砂岩层厚,是很好的储油层。 “鞋带”异常以外的区域类似于现代洪泛区沉积物。洪泛区的沉积物主要以黏土岩石为代表,在这些地区钻探将是无效的。数据多维数据集的RGB切片。在中心(中心左侧),您可以追踪蜿蜒的河。
数据多维数据集的RGB切片。在左侧,您可以追踪蜿蜒的河。
在某些情况下,地震数据的质量可以使图像清晰得多。它取决于现场工作的方法论,降噪算法所采用的设备。在这种情况下,不仅可以看到河流系统的片段,而且还可以看到整个延伸的古河。地震数据立方体(水平切片)的三个分量的RGB混合。深度约为2公里。
萨拉托夫地区伏尔加河的卫星图像
结论
在Wolfram Mathematica中,您可以分析地震数据并解决与寻找矿物有关的应用问题,而GeologyIO软件包使您可以简化此过程。地震数据的结构使得可以使用内置方法来加速计算(ParallelTable [],ParallelDo [],...)非常高效,可让您处理大量数据。在很大程度上,GeologyIO软件包的数据存储功能有助于实现这一点。顺便说一句,该软件包不仅可以用于地震勘探领域。地质雷达和地震学几乎使用相同的数据类型,如果您对如何改善结果有建议,哪些Wolfram Mathematica信号分析算法适用于此类数据,或者有重要评论,请留下评论。