地震反演基础知识2(代码演示)

news2024/11/20 10:30:35

文章目录

  • 数据集代码演示
    • 1. SEG盐真实数据
    • 2. SEG盐速度模型
    • 3. SEG盐模拟地震数据
    • 4. SEG盐模拟速度模型
    • 5. openfwi地震数据
    • 6. openfwi速度模型

数据集代码演示

1. SEG盐真实数据

# 绘制SEG盐层数据的地震图像
def pain_seg_seismic_data(para_seismic_data):
    '''
    Plotting seismic data images of SEG salt datasets
    :param para_seismic_data:   Seismic data (400 x 301) (numpy)
    :param is_colorbar:         Whether to add a color bar (1 means add, 0 is the default, means don't add)
    '''

    fig, ax = plt.subplots(figsize=(6.2, 8), dpi=120)

    im = ax.imshow(para_seismic_data, extent=[0, 300, 400, 0], cmap=plt.cm.seismic, vmin=-0.4, vmax=0.44)

    ax.set_xlabel('Position (km)', font21)
    ax.set_ylabel('Time (s)', font21)

    ax.set_xticks(np.linspace(0, 300, 5))
    ax.set_yticks(np.linspace(0, 400, 5))
    ax.set_xticklabels(labels=[0, 0.75, 1.5, 2.25, 3.0], size=21)
    ax.set_yticklabels(labels=[0.0, 0.50, 1.00, 1.50, 2.00], size=21)

    plt.rcParams['font.size'] = 14  # Set colorbar font size
    divider = make_axes_locatable(ax)
    cax = divider.append_axes("top", size="3%", pad=0.32)
    plt.colorbar(im, ax=ax, cax=cax, orientation='horizontal')

    plt.subplots_adjust(bottom=0.08, top=0.98, left=0.11, right=0.99)

    plt.show()

在这里插入图片描述

2. SEG盐速度模型

def pain_seg_velocity_model(para_velocity_model):
    '''
    :param para_velocity_model: Velocity model (200 x 301) (numpy)
    :param min_velocity:        Upper limit of velocity in the velocity model
    :param max_velocity:        Lower limit of velocity in the velocity model
    :return:
    '''

    fig, ax = plt.subplots(figsize=(5.8, 4.3), dpi=150)
    im = ax.imshow(para_velocity_model, extent=[0, 3, 2, 0])

    ax.set_xlabel('Position (km)', font18)
    ax.set_ylabel('Depth (km)', font18)
    ax.tick_params(labelsize=14)

    plt.rcParams['font.size'] = 14  # Set colorbar font size
    divider = make_axes_locatable(ax)
    cax = divider.append_axes("top", size="3%", pad=0.32)
    plt.colorbar(im, ax=ax, cax=cax, orientation='horizontal')
    plt.subplots_adjust(bottom=0.12, top=0.95, left=0.11, right=0.99)

    plt.show()

在这里插入图片描述

3. SEG盐模拟地震数据

def pain_seg_seismic_data(para_seismic_data):
    '''
    Plotting seismic data images of SEG salt datasets
    :param para_seismic_data:   Seismic data (400 x 301) (numpy)
    :param is_colorbar:         Whether to add a color bar (1 means add, 0 is the default, means don't add)
    '''

    fig, ax = plt.subplots(figsize=(6.2, 8), dpi=120)

    im = ax.imshow(para_seismic_data, extent=[0, 300, 400, 0], cmap=plt.cm.seismic, vmin=-0.4, vmax=0.44)

    ax.set_xlabel('Position (km)', font21)
    ax.set_ylabel('Time (s)', font21)

    ax.set_xticks(np.linspace(0, 300, 5))
    ax.set_yticks(np.linspace(0, 400, 5))
    ax.set_xticklabels(labels=[0, 0.75, 1.5, 2.25, 3.0], size=21)
    ax.set_yticklabels(labels=[0.0, 0.50, 1.00, 1.50, 2.00], size=21)

    plt.rcParams['font.size'] = 14  # Set colorbar font size
    divider = make_axes_locatable(ax)
    cax = divider.append_axes("top", size="3%", pad=0.32)
    plt.colorbar(im, ax=ax, cax=cax, orientation='horizontal')

    plt.subplots_adjust(bottom=0.08, top=0.98, left=0.11, right=0.99)

    plt.show()

在这里插入图片描述

4. SEG盐模拟速度模型

def pain_seg_velocity_model(para_velocity_model):
    '''
    :param para_velocity_model: Velocity model (200 x 301) (numpy)
    :param min_velocity:        Upper limit of velocity in the velocity model
    :param max_velocity:        Lower limit of velocity in the velocity model
    :return:
    '''

    fig, ax = plt.subplots(figsize=(5.8, 4.3), dpi=150)
    im = ax.imshow(para_velocity_model, extent=[0, 3, 2, 0])

    ax.set_xlabel('Position (km)', font18)
    ax.set_ylabel('Depth (km)', font18)
    ax.tick_params(labelsize=14)

    plt.rcParams['font.size'] = 14  # Set colorbar font size
    divider = make_axes_locatable(ax)
    cax = divider.append_axes("top", size="3%", pad=0.32)
    plt.colorbar(im, ax=ax, cax=cax, orientation='horizontal')
    plt.subplots_adjust(bottom=0.12, top=0.95, left=0.11, right=0.99)

    plt.show()

在这里插入图片描述

5. openfwi地震数据

def pain_openfwi_seismic_data(para_seismic_data):
    '''
    Plotting seismic data images of openfwi dataset
    :param para_seismic_data:   Seismic data (1000 x 70) (numpy)
    '''
    data = cv2.resize(para_seismic_data, dsize=(400, 301), interpolation=cv2.INTER_CUBIC)

    fig, ax = plt.subplots(figsize=(6.1, 8), dpi=120)
    im = ax.imshow(data, extent=[0, 0.7, 1.0, 0], cmap=plt.cm.seismic, vmin=-18, vmax=19)

    ax.set_xlabel('Position (km)', font21)
    ax.set_ylabel('Time (s)', font21)

    ax.set_xticks(np.linspace(0, 0.7, 5))
    ax.set_yticks(np.linspace(0, 1.0, 5))
    ax.set_xticklabels(labels=[0, 0.17, 0.35, 0.52, 0.7], size=21)
    ax.set_yticklabels(labels=[0, 0.25, 0.5, 0.75, 1.0], size=21)

    plt.rcParams['font.size'] = 14  # Set colorbar font size
    divider = make_axes_locatable(ax)
    cax = divider.append_axes("top", size="3%", pad=0.3)
    plt.colorbar(im, ax=ax, cax=cax, orientation='horizontal')
    plt.subplots_adjust(bottom=0.08, top=0.98, left=0.11, right=0.99)

    plt.show()

在这里插入图片描述

6. openfwi速度模型

def pain_openfwi_velocity_model(para_velocity_model):
    '''
    Plotting seismic data images of openfwi dataset
    :param para_velocity_model: Velocity model (70 x 70) (numpy)
    :param min_velocity:        Upper limit of velocity in the velocity model
    :param max_velocity:        Lower limit of velocity in the velocity model
    :param is_colorbar:         Whether to add a color bar (1 means add, 0 is the default, means don't add)
    :return:
    '''

    fig, ax = plt.subplots(figsize=(5.8, 6), dpi=150)

    im = ax.imshow(para_velocity_model, extent=[0, 0.7, 0.7, 0])

    ax.set_xlabel('Position (km)', font18)
    ax.set_ylabel('Depth (km)', font18)
    ax.set_xticks(np.linspace(0, 0.7, 8))
    ax.set_yticks(np.linspace(0, 0.7, 8))
    ax.set_xticklabels(labels=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7], size=18)
    ax.set_yticklabels(labels=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7], size=18)

    plt.rcParams['font.size'] = 14  # Set colorbar font size
    divider = make_axes_locatable(ax)
    cax = divider.append_axes("top", size="3%", pad=0.35)
    plt.colorbar(im, ax=ax, cax=cax, orientation='horizontal')
    plt.subplots_adjust(bottom=0.10, top=0.95, left=0.13, right=0.95)

    plt.show()

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第69步 时间序列建模实战:ARIMA建模(R)

基于WIN10的64位系统演示 一、写在前面 这一期,我们使用R进行SARIMA模型的构建。 同样,这里使用这个数据: 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Re…

Material Design的基本使用方法、Tollbar、菜单等

一、Toolbar 1、基本用法 <androidx.appcompat.widget.Toolbarandroid:id"id/toolbar"android:layout_width"match_parent"android:layout_height"?attr/actionBarSize"android:background"color/cardview_dark_background"andr…

Linux:keepalived 双热备份(基础备份web)

简介 Keepalived是一个用于Linux环境的路由软件&#xff0c;具有健康检查功能以及可用于实现高可用性(High Availability, HA)的功能。它主要支持两种协议&#xff1a;VRRP (Virtual Router Redundancy Protocol) 和 LVS (Linux Virtual Server)。Keepalived的项目源代码托管在…

一文读懂 QUIC 协议:更快、更稳、更高效的网络通信

作者 | 李龙彦 来源&#xff1a;infoQ 你是否也有这样的困扰&#xff1a;打开 APP 巨耗时、刷剧一直在缓冲、追热搜打不开页面、信号稍微差点就直接加载失败…… 如果有一个协议能让你的上网速度&#xff0c;在不需要任何修改的情况下就能提升 20%&#xff0c;特别是网络差的…

一篇文章讲清楚 Mendix 与 SAP 集成开发流程

一、引言 在今日瞬息万变的商业环境中&#xff0c;大量企业依赖SAP&#xff0c;这款全球领先的企业资源规划&#xff08;ERP&#xff09;系统&#xff0c;来优化其业务流程。想象一下&#xff0c;在一家大型制造公司&#xff0c;SAP系统负责从供应链管理到财务报告的一切重要业…

day44:C++ day4,拷贝赋值、友元、常成员、运算符重载

一、仿照string类&#xff0c;完成myString 类 mystring.h #ifndef MYSTRING_H #define MYSTRING_H#include <iostream> #include <cstring>using namespace std;class myString { private:char *str; //记录c风格的字符串int size; //记录字…

计算一串输出数字的累加和

计算一个文件内数字的累加和 awk {sum$1}END{print sum} 直接抽取数据以后的打印是这样的 cat step-iostat.1125.log |grep sda |cut -c "49-56" |awk {sum$1}END{print sum}

使用Arthas诊断线上问题的常见命令(热更新,监听耗时,方法出入参,jvm信息)

Arthas 启动&#xff08;windows&#xff09; jar包丢到项目任意目录&#xff0c;启动jar&#xff0c;选择java进程&#xff0c;项目上一般选择tomcat对应的pid java -jar arthas-boot.jar * [1]: 35542[2]: 71560 math-game.jar监听方法入参及返回 参数 返回对象 调用深度…

DC/DC开关电源学习笔记(五)开关电源的主要技术指标

(五)开关电源的主要技术指标 1.输入参数2.输出参数3.效率4.电压调整率和负载调整率5.动态特性:负载突变时输出电压的变化6.电源启动时间(Set-Up Time)与保持时间(Hold-Up Time)1.输入参数 输入电压大小,交流还是直流,相数,频率等。 2.输出参数 输出功率,输出电压,输出…

java自定义注解(Annotation)

概念 注解 (Annotation)是以“注解名称”的形式存在于代码中的&#xff0c;相信用过spring的小伙伴们都会使用大量的注解。注解是JDK1.5之后引入的&#xff0c;它可以写在类、方法、属性上面&#xff0c;用于说明或标记某些含义&#xff0c;这些说明或标记可用于生成文档、程序…

golang面试题:reflect(反射包)如何获取字段tag​?为什么json包不能导出私有变量的tag?

问题 json包里使用的时候&#xff0c;会结构体里的字段边上加tag&#xff0c;有没有什么办法可以获取到这个tag的内容呢&#xff1f; 举例 tag信息可以通过反射&#xff08;reflect包&#xff09;内的方法获取&#xff0c;通过一个例子加深理解。 package mainimport (&quo…

DevSecOps 中的漏洞管理(下)

建立漏洞管理程序以支持DevSecOps 在讨论DevSecOps及DevOps模型中包含安全性的重要性时&#xff0c;建立有效的漏洞管理实践是非常重要的。这可以通过将漏洞管理设置为程序来实现。 我们可以开始对IT组织进行漏洞管理评估。人们经常问的问题可能是&#xff0c;既然已经建立了…

第一章 计算机系统概述 四、操作系统的运行机制

注:很多人习惯把Linux、Windows、MacOS的“小黑框”中使用的命令也称为“指令”&#xff0c;其实这是“交互式命令接口”&#xff0c;注意与本节的“指令”区别开。本节中的“指令”指二进制机器指令。 一、CPU的两种状态 状态的切换&#xff1a; 内核态转用户态&#xff0c;是…

【个人博客系统 × Redis】“最后的升级“ · 连接Redis · Redis的基本使用

【JavaEE】进阶 个人博客系统&#xff08;7&#xff09; 文章目录 【JavaEE】进阶 个人博客系统&#xff08;7&#xff09;1. linux安装Redis1.1 通过yum商店下载Redis1.2 启动Redis1.3 操作Redis 2. Redis的基本使用&#xff08;关键字大小写不区分&#xff09;2.1 set2.2 g…

SUMPRODUCT函数

SUMPRODUCT函数返回相应范围或数组的个数之和。 默认操作是乘法&#xff0c;但也可以执行加减除运算。 本示例使用 SUMPRODUCT 返回给定项和大小的总销售额&#xff1a; SUMPRODUCT 匹配项 Y/大小 M 的所有实例并求和&#xff0c;因此对于此示例&#xff0c;21 加 41 等于 62。…

UML-用例图

目录 一、UML 什么是UML&#xff1f; 为什么要用UML&#xff1f; UML图有哪些&#xff1f; 二、用例图 用例图摘要 用例图主要元素 1. 参与者&#xff08;Actor&#xff09; 2. 用例(Use Case) 3. 关系 4. 边界 用例图之间的关系 &#xff08;1&#xff09;参与者…

Figma实用插件速收藏!精选19个干货插件大公开!

Figma 如今有着大量的插件&#xff0c;在 UI/UX 设计领域&#xff0c;很多工作已经不用真的从零开始做了。用好 Figma 插件&#xff0c;往往能让设计工作事半功倍。不过其中的插件素质差别很大&#xff0c;需要仔细筛选。不过如果你选择了对的插件&#xff0c;合理的设置&#…

SpringCloud(17~21章):Alibaba入门简介、Nacos服务注册和配置中心、Sentinel实现熔断与限流、Seata处理分布式事务

17 SpringCloud Alibaba入门简介 17.1 why会出现SpringCloud alibaba Spring Cloud Netflix项目进入维护模式 https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now 说明 Spring Cloud Netflix Projects Entering Maintenance Mode 什么是维护模…

c高级day4(shell)

实现一个对数组求和的函数&#xff0c;数组通过实参传递给函数写一个函数&#xff0c;输出当前用户的uid和gid&#xff0c;并使用变量接收结果

20230911 Shell指令数组以及函数值传递,值返回

实现一个对数组求和的函数&#xff0c;数组通过实参传递给函数 #!/bin/bashfunction fun() {sum0for ((i0;i<$var;i))do(( sumarr[i] ))doneecho $sum } read -p "输入该数组个数: " var for((j0;j<$var;j)) doread -p "输入数组第$j个值: " arr[j] …