资源简介
能够准确读取segy文件,并从中提取裸数据、文件头、道头等重要信息,还能存储成多种文件格式
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
int read_Si(char* Segy_filename)
{
//Function:从Segy文件中提取segy文件的道数Si
//INPUTS:输入
//Segy_filename--文件名
//OUTPUTS:输出
//data--处理后的到的裸数据
//INPUTS:输出
//Si 采样点数
int Trace;
short int Si;
//打开文件
FILE * fp;
fp=fopen(Segy_filename“rb+“);
if(fp==NULL)
{
cout<<“error!cant open file“< exit;
};
cout<<“加载文件“< //读取采样点数Si
fseek(fp32190);
fread(&Si21fp);
Si=Si+111;
cout<<“采样点数“< return Si;
}
int read_Trace(char* Segy_filename)
{
//Function:从Segy文件中提取segy文件的道数Trace
//INPUTS:输入
//Segy_filename--文件名
//OUTPUTS:输出
//data--处理后的到的裸数据
//INPUTS:输出
//Trace 道数
int Trace;
short int Si;
//打开文件
FILE * fp;
fp=fopen(Segy_filename“rb+“);
if(fp==NULL)
{
cout<<“error!cant open file“< exit;
};
cout<<“加载文件“< //读取采样点数Si
fseek(fp32190);
fread(&Si21fp);
Si=Si+111;
cout<<“采样点数“< //文件总字节数file_n
int file_n;
float buffer; //缓存
fseek(fp0L2);
file_n=ftell(fp); //函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数。
//计算道数Trace
Trace=(file_n-3600)/(240+Si*4);
cout<<“道数“< return Trace;
}
void Convert_Sgy_To_Raw(char* Segy_filenameint ntrint ns)
{
//输入:
//ntr--- Segy文件总道数
//ns--- Segy文件的采样点
//Segy_filename--- 读入文件的路径 ‘
vector data;
// vector::iterator it;
ifstream infile;
infile.open(Segy_filenameios::binary);
//读取地震裸数据
infile.seekg(3600ios::beg); //跳过3600字节的卷头
for(int i=0;i {
infile.seekg(240ios::cur); //跳过240字节的道头
for(int j=0;j {
float buffer;
infile.read((char*)&buffersizeof(float));//读取每个采样点的数据格式为float类型
data.push_back(buffer);
}
}
// for(it=data.begin();it!=data.end();++it)
// { cout<<*it< FILE * fs;
fs=fopen(“C:/Users/ljc/Desktop/data.txt““wb+“);
for(int m=0;m {
fwrite(&data[m]sizeof(float)1fs);
}
fclose(fs);
infile.close();
}
//raw to segy
void SaveSegyFile(char* Segy_filenameint Traceshort int Si)
{
//打开原始数据的文件取文件头和道头
ifstream fp1 ;
fp1.open(Segy_filenameios::binary);
if(!fp1)
{
cout<<“Open file falid“< return;
}
//打开已存处理后的裸数据的文件
ifstream fp2;
fp2.open(“C:/Users/ljc/Desktop/data.txt“std::ios::binary);
if(!fp2)
{
cout<<“Open file falid“< return;
}
//打开新的文件,用于存放处理后的segy
ofstream fp3;
fp3.open(“C:/Users/ljc/Desktop/NewSegy.segy“ios::binary);
if(!fp3)
{
cout<<“Open file falid“< return;
}
float buffer; //缓存
int ijk; //用于for循环
for( i=0;i<(3600/sizeof(float));i++) //从Segy_filename中读取文件头
{
fp1.read((char*)&buffersizeof(float));
fp3.write((char*)&buffersizeof(float));
}
for( i=0;i {
for(j=0;j<(240/sizeof(float));j++) //从Seg
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 97792 2015-07-18 16:18 test\Debug\test.exe
文件 704068 2015-07-18 16:18 test\Debug\test.ilk
文件 945152 2015-07-18 16:18 test\Debug\test.pdb
文件 23724032 2015-07-19 21:22 test\ipch\test-31d20948\test-2434c52c.ipch
文件 610 2015-07-18 16:18 test\test\Debug\cl.command.1.tlog
文件 8604 2015-07-18 16:18 test\test\Debug\CL.read.1.tlog
文件 276 2015-07-18 16:18 test\test\Debug\CL.write.1.tlog
文件 2 2015-07-18 16:18 test\test\Debug\li
文件 2 2015-07-18 16:18 test\test\Debug\li
文件 2 2015-07-18 16:18 test\test\Debug\li
文件 2 2015-07-18 16:18 test\test\Debug\li
文件 2 2015-07-18 16:18 test\test\Debug\li
文件 2 2015-07-18 16:18 test\test\Debug\li
文件 1356 2015-07-18 16:18 test\test\Debug\li
文件 2828 2015-07-18 16:18 test\test\Debug\li
文件 618 2015-07-18 16:18 test\test\Debug\li
文件 346 2015-07-18 16:18 test\test\Debug\mt.command.1.tlog
文件 266 2015-07-18 16:18 test\test\Debug\mt.read.1.tlog
文件 266 2015-07-18 16:18 test\test\Debug\mt.write.1.tlog
文件 458 2015-07-18 16:13 test\test\Debug\rc.command.1.tlog
文件 238 2015-07-18 16:13 test\test\Debug\rc.read.1.tlog
文件 246 2015-07-18 16:13 test\test\Debug\rc.write.1.tlog
文件 406 2015-07-18 16:13 test\test\Debug\test.exe.em
文件 472 2015-07-18 16:13 test\test\Debug\test.exe.em
文件 381 2015-07-18 16:18 test\test\Debug\test.exe.intermediate.manifest
文件 53 2015-07-18 16:18 test\test\Debug\test.lastbuildstate
文件 1522 2015-07-18 16:18 test\test\Debug\test.log
文件 254173 2015-07-18 16:18 test\test\Debug\test.obj
文件 0 2015-07-18 16:13 test\test\Debug\test.write.1.tlog
文件 198 2015-07-18 16:13 test\test\Debug\test_manifest.rc
............此处省略18个文件信息
相关资源
- 泰克TDS2014数字存储示波器用户手册
- 电子档案管理系统,可存储任意图片
- 业界主流数据中心存储双活完全解析
- IBM V3500存储安装配置手册
- 动态分区分配存储管理-操作系统课程
- 操作系统课程设计进程管理与通信,
- 车牌bmp文件读取与字符分割、归一化
- Openfiler HA双活存储
- Acronis2018激活工具
- SegY可视化分析工具
- KEPServerEX6 data logger中文说明书完整版
- ZFS文件系统.pdf
- HDS安装配置手册
- HDS G系列 NAS文档1
- 模拟设计段式虚拟存储管理中地址转
- 东南大学 崇志宏:非结构数据存储和
- 微机原理 Proteus和存储器的仿真
- 实现和参数化存储器ip
- Netapp CDOT存储系统操作手册
- 图书管理系统简单的“文件”实现数
- IBM SVC异构存储容灾解决方案建议书
- FPGA数字存储扫频仪-源代码及PCB图
- 毕业设计论文基于FPGA技术的数字存储
- 北京农学院数字图书馆建设技术方案
- 基于ARM和Linux的嵌入式视频采集存储系
- 初级教程篇:按键(中断方式)实现
- NetApp统一存储技术优势分析
- xFsRedir目录重定向程序2019年更新版本
- 语音存储与回放的c程序
- 基于STM32的AD采集与SD卡数据存储
评论
共有 条评论