OpenFWI代码

重点关注文章第4部分

一、代码模块概览

这一部分了解代码主要实现的功能有哪些。

二、运行

这一部分关注如何跑通。

三、数据集

12个数据集(11个2D+1个3D)
在这里插入图片描述
对计算机而言,上述输入、输出维度大小是按次数定义的。
在这里插入图片描述
以“Vel,Fault和Style”系列为例,观测系统设置是:
网格间距10m(Q:网格的作用是什么 A:一是建立数据和实际地球空间位置上的对应;二是方便数据处理。在实际勘探中,观测点分布可能不均匀,对没观测到的地方通过插值填充,此外网格化有助于标准化地震数据处理流程,确保不同数据集之间的一致性和可比性。)
每条炮线的长度是700m,炮间距是140m——共5次放炮
每条接收线的长度是700m,由于检波器间距是10m——共70个检波点
总共的记录时长是1s,每0.001s采样一次,一共采样1000次。

3.0数据加载

对于 Vel、Fault、Style 系列中的任何数据集,地震数据都保存为 .npy 文件,每个文件包含一批 500 个样本。
datai.npy 指地震数据的 i-th 样本,包含500个样本。
注意:并不是i取值从1-500,而是每份第i个.npy文件都包含500个样本。

import numpy as np
# load seismic data
seismic_data = np.load('data1.npy')
print(seismic_data.shape) #(500,5,1000,70)
# load velocity map
velocity_map = np.load('model1.npy')
print(velocity_map.shape) #(500,1,70,70)

Q:为什么加载的是data1.npy,地震数据的第1个样本,注释里print出来的却是500个样本?
A:歧义出现“地震数据的第1个样本”,实际上是地震数据的第1个.npy文件,每个.npy文件都包含500个样本。

the data is saved as .npy files, each file contains a batch of 500 samples. datai.npy refers to the i-th sample of seismic data

方式一:加载.npy文件的方法之一是可以通过.txt文件找位置。

3.1 与现有数据集特征的对比——文章第3部分

  • Wenlong Wang and Jianwei Ma. Velocity model building in a crosswell acquisition geometry with image-trained artificial neural networks. Geophysics, 85(2):U31–U46, 2020.
  • Bin Liu, Senlin Yang, Yuxiao Ren, Xinji Xu, Peng Jiang, and Yangkang Chen. Deep-learning seismic full-waveform inversion for realistic structural modelsdl seismic fwi. Geophysics, 86(1):R31–R44, 2021.
  • Mauricio Araya-Polo, Joseph Jennings, Amir Adler, and Taylor Dahlke. Deep-learning tomography. The Leading Edge, 37(1):58–66, 2018.
  • Fangshu Yang and Jianwei Ma. Deep-learning inversion: A next-generation seismic velocity model building method. Geophysics, 84(4):R583–R599, 2019.
  • Yuxiao Ren, Lichao Nie, Senlin Yang, Peng Jiang, and Yangkang Chen. Building complex seismic velocity models for deep learning inversion. IEEE Access, 9:63767–63778, 2021.
  • Zhicheng Geng, Zeyu Zhao, Yunzhi Shi, Xinming Wu, Sergey Fomel, and Mrinal Sen. Deep learning for velocity model building with common-image gather volumes. Geophysical Journal International, 228(2):1054–1070, 2022.
    在这里插入图片描述

地质结构

  • 界面 Mrinal K Sen. Seismic inversion. Society of Petroleum Engineers Richardson, TX, 2006.
  • 断层 Mauricio Araya-Polo, Taylor Dahlke, Charlie Frogner, Chiyuan Zhang, Tomaso Poggio, and Detlef Hohl. Automated fault detection without seismic processing. The Leading Edge, 36(3):208–214, 2017.
  • 多样性 Hui Li, Jing Lin, Baohai Wu, Jinghuai Gao, and Naihao Liu. Elastic properties estimation from prestack seismic data using ggcnns and application on tight sandstone reservoir characterization. IEEE Transactions on Geoscience and Remote Sensing, 60:1–21, 2021.

速度图是从三个来源生成的:数学函数、自然图像和地质储层。
这一特性显著增强了速度图的多样性和通用性。
数据生成流程在这里插入图片描述

  • 生成速度图的数学公式:
    在这里插入图片描述
    (f是用于模拟断层的随机线性函数)

  • 风格迁移的数学公式:
    在这里插入图片描述

3.2 基准方法对比——文章第4部分

  • InversionNet:
    Yue Wu and Youzuo Lin. InversionNet: An efficient and accurate data-driven full waveform inversion. IEEE Transactions on Computational Imaging, 6:419–433, 2019.
  • VelocityGAN:
    Zhongping Zhang and Youzuo Lin. Data-driven seismic waveform inversion: A study on the robustness and generalization. IEEE Transactions on Geoscience and Remote sensing,
    58(10):6900–6913, 2020.
  • UPFWI:
    Peng Jin, Xitong Zhang, Yinpeng Chen, Sharon Huang, Zicheng Liu, and Youzuo Lin. Unsurpervised learning of full-waveform inversion: Connecting CNN and partial differential equation in a loop. In Proc. Tenth International Conference on Learning Representations (ICLR), 2022.
  • InversionNet3D:
    Qili Zeng, Shihang Feng, Brendt Wohlberg, and Youzuo Lin. InversionNet3D: Efficient and scalable learning for 3-D full-waveform inversion. IEEE Transactions on Geoscience and Remote Sensing, 60:1–16, 2022.

3.3 OpenFWI数据集(对于Vel和Fault系列)的复杂性度量——文章第5部分

  • 复杂度指标1:熵
  • 复杂度指标2:空间信息度
  • 复杂度指标3:梯度稀疏指数

以上3个指标都是指标越大,越复杂。

四、效果展现

图5:复杂度指标(横轴——实际的速度图模型复杂度)和SSIM(纵轴——反演预测出来的速度图图像质量)之间的关系(映射)
(为什么要把模型复杂度评价指标和图像质量评价指标SSIM进行比较?)
观察随着目标反演的数据集变化,即速度图复杂度的变化,反演输出图像(速度图)质量的变化。
左图:以复杂度指标2为横轴,把Vel和Fault系列的8个数据集定量刻画在横轴上,经网络反演后的结果分别用SSIM度量。发现随着标签的复杂度增大,反演预测的图像质量也在下降。

M思考:3张图分别从不同的方面定量刻画标签复杂度:发现数据集的反演效果随熵(整体复杂度)增加变化不大,若是局部指标(像空间信息或梯度稀疏指数)变化,则对反演效果影响较大。说明描述数据集的重要属性是梯度稀疏指数。

不论哪个指标描述标签复杂度的变化,3张图像都反映了SSIM下降的趋势
因此得出结论:复杂的速度图更难从地震数据中反演。

下一步工作:
结合代码,加深对网络参数的理解,完善一、二的学习内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/787810.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

javaweb个人主页设计(html+css+js)

目录 1 前言和要求 1.1 前言 1.2 设计要求 2 预览 2.1 主页页面 2.2 个人简介 2.3 个人爱好 2.4 个人成绩有代码,但是图片已省略,可以根据自己情况添加 2.5 收藏夹 3 代码实现 3.1 主页 3.2 个人简介 3.3 个人爱好 3.4 个人成绩&#xff…

图吧工具箱:装机爱好者必备工具合集

名人说:莫道谗言如浪深,莫言迁客似沙沉。 ——刘禹锡《浪淘沙》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、概述二、主要功能1、硬件检测2、测试与故障诊断三、使用方法四、总结很高兴你打开了这篇博客,更多好用的软件工具,请关注我、订阅专栏…

0302GPIO外设输入功能

GPIO外设输入功能 输入部分硬件电路按键简介传感器模块简介按键和传感器模块的硬件电路 C语言的学习C语言数据类型宏定义typedef结构体枚举C语言知识总结 按键控制LED灯&光敏传感器蜂鸣器GPIO总结GPIO使用方法总结模块化编程的方法: 两个程序:按键控…

图像分割-编码解码网络的训练-kreas实现

一、数据集加载: 纯手工打造一个函数用来加载数据,数据分别为image和mask 我们所需要的类型:(B数量,长,宽,通道数),只要将数据加载成这样并mask和image对应就行。 第一步…

S271系列RTU在旅游景区人流监控中的应用案例

S271系列RTU在旅游景区人流监控中的应用案例 随着全球旅游业的迅猛发展,旅游景区的管理者越来越关注如何利用先进的技术手段提升游客体验、优化管理效率以及确保安全。S271系列RTU作为一款先进的无线工业物联网设备,在旅游景区的人流监控中展现出了其独…

PTA - 编写函数计算圆面积

题目描述: 1.要求编写函数getCircleArea(r)计算给定半径r的圆面积,函数返回圆的面积。 2.要求编写函数get_rList(n) 输入n个值放入列表并将列表返回 函数接口定义: getCircleArea(r); get_rList(n); 传入的参数r表示圆的半径&#xff0c…

批量下载手机中APP程序中文件

需求 利用 adb pull 下载手机中app的某目录 adb pull 命令本身不支持直接下载整个目录(文件夹)及其所有子目录和文件作为一个单一的操作。但是,可以通过一些方法来间接实现这一目的。 方法 1. 首先将要下载的目录进行 tar 打包 # 在 And…

2020 ICPC Shanghai Site B. Mine Sweeper II 题解 构造 鸽巢原理

Mine Sweeper II 题目描述 A mine-sweeper map X X X can be expressed as an n m n\times m nm grid. Each cell of the grid is either a mine cell or a non-mine cell. A mine cell has no number on it. Each non-mine cell has a number representing the number of…

Raylib 实现超大地图放大缩小与两种模式瓦片地图刷新

原理: 一种刷新模式: 在宫格内整体刷新,类似九宫格移动到边缘,则九宫格整体平移一个宫格,不过这里是移动一个瓦片像素,实际上就是全屏刷新,这个上限是 笔记本 3060 70帧 100*100个瓦片每帧都…

《赌局的诱惑》-反赌反诈剧情脚本

场景1: 一家普通公司的休息室,有一张桌子,上面摆放着扑克牌和一些现金。墙上挂着一个时钟,显示时间是下午5点。 人物: 张伟:新员工,被同事拉入赌局。 赵刚:资深员工,赌…

UE5.3-基础蓝图类整理一

常用蓝图类整理: 1、获取当前关卡名:Get Current LevelName 2、通过关卡名打开关卡:Open Level(by name) 3、碰撞检测事件:Event ActorBeginOverlap 4、获取当前player:Get Player Pawn 5、判断是否相等&#xff1…

反弹球python小游戏

1.准备图片(可以替换) 2.python Pygame类 class Ls(pygame.sprite.Sprite):def __init__(self,pos):#pos 鼠标点击的位置super().__init__()self.image pygame.image.load(ji.png)self.dx2self.dx r.randint(20,500)self.image pygame.transform.scale(self.image,(self.dx…

昇思25天学习打卡营第21天|LSTM+CRF序列标注

1. 学习内容复盘 概述 序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。以命名…

iis部署前后端分离项目(React前端,Node.js后端)

iis虽然已经有点过时,但不少用户还在用,故总结一下。 1. 安装iis 如果电脑没有自带iis管理器,打开控制面板->程序->启用或关闭Windows功能,勾选iis安装即可 2. 部署前端项目 打开iis,添加网站,物理…

Linux基本命令的使用示例

目录 1实现效果:在downloads目录下创建1个空文件夹empty,创建1个空文件lake.txt,输入任意数据保存后退出 2实现效果:搜索包含关键字"泉眼"的行 3实现效果:重命名文件夹empty为full,复制文件cc…

Anaconda+Pycharm 项目运行保姆级教程(附带视频)

最近很多小白在问如何用anacondapycharm运行一个深度学习项目,进行代码复现呢?于是写下这篇文章希望能浅浅起到一个指导作用。 附视频讲解地址:AnacondaPycharm项目运行实例_哔哩哔哩_bilibili 一、项目运行前的准备(软件安装&…

锅总反驳李彦宏说的“不要卷模型,要卷应用”

李彦宏的观点是大家不要卷模型,要卷应用,但我认为这种看法是荒谬的。以下是24条反驳李彦宏观点的论点和论据: 模型的准确性直接决定应用的质量和用户体验: 论据:在自然语言处理、计算机视觉等领域,模型的准…

Java虚拟机面试题汇总

目录 1. JVM的主要组成部分及其作用? 1.1 运行时数据区划分? 1.2 哪些区域可能会发生OOM? 1.3 堆和栈的区别? 1.4 内存模型中的happen-before是什么? 2. HotSpot虚拟机对象创建流程? 2.1 类加载过程…

kafka 消费者

消费者 消费者。消费者连接到Kafka上并接收消息,进而进行相应的业务逻辑处理。 消费组 消费者负责订阅Kafka中的主题,并且从订阅的主题上拉取消息。 消费组:每个消费者都有一个对应的消费组,每一个分区只能被一个消费组中的一个…

windows JDK11 与JDK1.8自动切换,以及切换后失效的问题

1.windows安装不同环境的jdk 2.切换jdk 3.切换失败 原因:这是因为当我们安装并配置好JDK11之后它会自动生成一个环境变量(此变量我们看不到),此环境变量优先级较高,导致我们在切换回JDK8后系统会先读取到JDK11生成的…