1 Star 1 Fork 2

Floating dream/matlab_segy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
readsegyfile.m 1.05 KB
一键复制 编辑 原始数据 按行查看 历史
Floating dream 提交于 2022-07-18 13:48 . 读取segy文件
function [seismic_data,SI,Sx,Sy,Rx,Ry,Tn,nch]= readsegyfile(filename)
%input: filename: 文件名
%output:
% seismic_data ;//地震数据
% SI ;//采样点数
% Sx,Sy ;//炮点xy坐标
% Rx,Ry ;//检波点xy坐标
% Tn ;//每一炮道数
% nch ;//道集数
%email:2906310084@qq.com
%2020-6-21
fid=fopen(filename,'r','b');
fseek(fid,3220,'bof'); %读取采样点数
SI=fread(fid,1,'int16','b') ;
fseek(fid,3212,'bof'); %读取每一炮道数
Tn=fread(fid,1,'int16');
fseek(fid,0,'eof');
nch=(ftell(fid)-3600)/((240+SI*4)*Tn);%获取道集数
seismic_data=zeros(SI,Tn*nch);
fseek(fid,3672,'bof');
for i=1:nch
for j=1:Tn
fseek(fid,3600+(j-1)*240+(j-1)*SI*4+72+(240+SI*4)*Tn*(i-1),'bof');
Sx(i,j)=fread(fid,1,'int32');
Sy(i,j)=fread(fid,1,'int32');
Rx(i,j)=fread(fid,1,'int32');
Ry(i,j)=fread(fid,1,'int32');
fseek(fid,152,'cof');%240-72-16
seismic=fread(fid,[1,SI],'float32');
seismic_data(:,j+Tn*(i-1))=seismic';
end
end
fclose(fid);
end
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Matlab
1
https://gitee.com/cumtb_lihe/matlab_segy.git
git@gitee.com:cumtb_lihe/matlab_segy.git
cumtb_lihe
matlab_segy
matlab_segy
cumtb

搜索帮助

0d507c66 1850385 C8b1a773 1850385