第三周:tesseral 2D软件的使用

1.软件资源:

链接:https://pan.baidu.com/s/1JdemzbYmEhiX-vPvrlgiXw
提取码:w1lq
也可以直接区官网下载:http://www.tesseral-geo.com/solutions.en.php

2.介绍

经过后面的参考资料学习后,建立模型,做好的模型,运行后会自动生成sgy文件,地震数据都在sgy文件里面。

3.对运行后的数据处理

  • sgy转成csv
  • 对csv数据运算,改变后的数据重新转成sgy文件

3.1 main.py

import random
from pakages.UseSGY import UseSGY
import math
'''
main.py
'''

srcSGYFile="./data/Model+GathAP.sgy"
targetCSVFile="./data/sgytocsv1.csv"
srcCSVFileName=targetCSVFile
targeSGYFileName="./data/Model+GathAP_copy.sgy"

srcSGYFile2="./data/Model+GathAP_copy.sgy"
targetCSVFile2="./data/sgytocsv2.csv"

# 对原来的数据进行操作
def operator(a):
    a=a+random.random()
    return a

if __name__ == '__main__':
    useSgy=UseSGY()
    # 把sgy转换成csv数据
    useSgy.read_from_sgy(srcSGYFile,targetCSVFile)
    # 把csv数据处理后重新转成sgy
    useSgy.read_from_csv(srcCSVFileName, targeSGYFileName,operator)

    # 把sgy转换成csv数据
    useSgy.read_from_sgy(srcSGYFile2, targetCSVFile2)

3.2 UseSGY.py

import segyio# segyio 1.16.2
import numpy as np

'''
UseSGY.py
'''
class UseSGY():
    #初始化
    def __init__(self):
        pass

    #把SGY的数据转为matrix,储存到目标csv
    def read_from_sgy(self,srcSGYFileName,targeCSVFileName):
        self.srcSGYFileName=srcSGYFileName
        self.targeCSVFileName=targeCSVFileName

        # 初始化一个列表存数据,最后再转为矩阵
        data_list = []
        with segyio.open(self.srcSGYFileName,ignore_geometry=True) as segyfile:
            for i in range(len(segyfile.trace)):
                data_list.append(segyfile.trace[i])
        data_numpy=np.array(data_list)
        # print(data_numpy)
        np.savetxt(self.targeCSVFileName,data_numpy,delimiter=',')

    #把csv数据处理后重新转成sgy
    def read_from_csv(self, srcCSVFileName, targeSGYFileName,operator):
        '''

        :param srcCSVFileName:读取的CSV文件
        :param targeSGYFileName:输入到目标SGY文件
        :param operator:对数据的运算
        :return:
        '''
        self.srcCSVFileName=srcCSVFileName
        self.targeSGYFileName=targeSGYFileName

        with open(self.srcCSVFileName, encoding='utf-8') as f:
            data_matrix = np.loadtxt(f, float, delimiter=',')
        data_numpy = np.array(data_matrix)
        print(data_numpy)

        with segyio.open(self.targeSGYFileName, mode="r+", ignore_geometry=True) as f:
            for i in range(len(f.trace)):
                f.trace[i] = operator(data_numpy[i])
                # print(data_numpy[i]*1000)

注:
从segy中读出到txt后,txt中一行是segy图像中的一列(一个道集),例如:segy图像从左上到左下第一道地震数据,在txt中就是第一行的数据。

4.遇到的问题

  • 进行数据处理的时候,当把数据乘以某个常数得到的新数据存回sgy文件的时候,sgy文件用tesseral 2D打开后还是显示原来的图像。
    答:数据做乘法运算后,虽然数据是变化了的,但Tesseral显示的时候,有自动增益控制(AGC),会自动归一化。所以只要相对大小不变,看图都是一样的。
  • 我设置模型的时候,,设置了10个发射点,100个检波器,应该有100*10=1000道数据,等数据在csv中却变成971道数据。
    答:可能是模型宽度不够,最后一炮中有些检波器超出模型范围,无效,还在想看看tessral官方文档,看有之前别人是怎么做的。

5.参考资料:

Tesseral官方网站 http://www.tesseral-geo.com/solutions.en.php
Tesseral中文用户手册.doc , https://max.book118.com/html/2021/0111/5343040031003110.shtm
tesseral软件教学-数据处理到成剖面图 , https://www.bilibili.com/video/BV1f64y1U7gj?from=search&seid=4001933724500544312&spm_id_from=333.337.0.0
tesseral软件教学-观测系统的建立 , https://www.bilibili.com/video/BV1pK411w79n?spm_id_from=333.999.0.0
tesseral软件教学-声波方程模拟 , https://www.bilibili.com/video/BV1R54y1t74N?spm_id_from=333.999.0.0
tesseral软件教学-模型绘制 , https://www.bilibili.com/video/BV1xX4y1g7XT?spm_id_from=333.999.0.0
地震勘探我二维正演模拟软件 , https://www.gydoc.com/p-16964.html
地震数据仿真实战(含软件和程序) https://zhuanlan.zhihu.com/p/358525180
Tesseral 建立地震模型 ,https://blog.csdn.net/weixin_41857483/article/details/120472503

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值