资源简介
能够准确读取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个文件信息
相关资源
- DAS1302蜂鸣 独立按键 闹钟设定 IIC存储
- 51单片机读取温度数据存储到SD卡中并
- 模拟段页式虚拟存储管理中地址转换
- 图片存储到数据库保存二进制文件并
- 模拟首次适应动态分区存储管理方案
- hibernate调用存储过程
- 图的邻接矩阵存储和邻接表存储
- DICOM文件读取程序
- 操作系统课程设计实现可变分区存储
- 一种抗SEU存储器电路的FPGA设计
- LabVIEW 声音信号的采集与存储.vi
- curve分布式存储系统 v0.1.3
- curve分布式存储系统 v0.1.4
- 四大RAID存储详解
- 浪潮FC光纤接口系统SAN存储解决方案
- 英迅(Intransa) IP7500存储解决方案
- IP-SAN存储解决方案
- IP 网络存储IP SAN解决方案(iSCSI)
- NetApp存储方案助无锡希捷确保数据高
- Netapp近线存储助EDS成功实施移动消息
- 第一美国银行采用NetApp统一存储简化
- HP ProLiant 存储服务器满足任何规模企
- 广东省工商银行存储备份项目
- NetApp绿色存储解决方案
- HDS推出服务型存储解决方案
- 如何通过VMware虚拟桌面及NetApp存储管
- NetApp综合存储灾难备份解决方案
- 服务器及存储设备安装记录检查表
- 广东核电大亚湾数据中心统一存储平
- HP携手ADIC提供媒体和娱乐行业存储解
评论
共有 条评论