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