⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csp1.cpp

📁 把segy格式的地震数据转换成csp格式的地震数据
💻 CPP
字号:
//#include "stdlib.h"
#include "stdio.h"
//#include "iostream.h"

void main()
{
	////////////////////////////////////////////////////////////////////////////
	 short fmtcd,  //0xdddd---------------------------------------------------1---1~2
		   trcnbr, //---------------------------------------------------------2---3~4
		   nch,    //number of channels     道数   5-6------------------------3---5~6
		   sof,    //offset                 偏移距   7-8(19)------------------4---7~8
		   spc,    //space between channels  道间距   9-10(104)---------------5---9~10
		   lnh,    //length per channel      每一道的长度  11-12(58)----------6---11~12
		   dlt;    //delaytime               延迟时间-------------------------7---13~14
	 float srt;	   //sample rate             采样率---------------------------1---15~18
	 float rsv1;   //offset				     偏移距(浮点型)-------------------2---19~22
	 short tsg,    //						----------------------------------8---23~24
		   tss,	   //						----------------------------------9---25~26
		   tsz,    //						----------------------------------10--27~28
		   dls,    //						----------------------------------11--29~30
		   rsv2;   //						----------------------------------12--31~32
	 int   hpk;    //                       ----------------------------------1---33~36???
	 short lpf,    //						----------------------------------13--37~38
		   hpf,    //						----------------------------------14--39~40
		   bru;    //						----------------------------------15--41~42
	 short lrf;    //						----------------------------------16--43~44
	 short hrf;    //						----------------------------------17--45~46
	 int   rsv3;   //						----------------------------------2---47~50
	 short gck,	   //						----------------------------------18--51~52
		   lbw,	   //						----------------------------------19--53~54
		   hbw,	   //						----------------------------------20--55~56
		   rsv4;   //						----------------------------------21--57~58
	 float blg,	   //						----------------------------------3---59~62
		   exg;	   //						----------------------------------4---63~66
	 int   smr;	   //						----------------------------------5---509~512
	/////////////////////////////////////////////////////////////////////////////////////


	short temp_shot,i,j,tracenum,trcl,trcinter,offs,smp_rate;
	float temp_flt,offset,sam_rate;
	int	  temp_int;
	short head_sgy[120];
	char  infilename[32],outfilename[32];

	///////////////////////////////////////////////////////////////
	FILE *fp0;
	fp0=fopen("csp.par","rb");
	fscanf(fp0,"%d%d",&tracenum,&trcl);				//道数,道长(采样点数)
	fscanf(fp0,"%d%d%d",&trcinter,&offs,&smp_rate);	//道间隔,最小炮检距,采样率(微秒单位)
	fscanf(fp0,"%s",infilename);
	fscanf(fp0,"%s",outfilename);
	printf("%s\t%s\n",infilename,outfilename);
	printf("%d\n%d\n\n",tracenum,trcl);
	printf("%d\n%d\n%d\n\n",trcinter,offs,smp_rate);
	offset=float(offs);
	sam_rate=float(smp_rate)/1000000.0;
	printf("%f\n%f\n\n",offset,sam_rate);
	///////////////////////////////////////////////////////////////


	float *data_set;
	int   *data_trc;
	data_set=new float[trcl];
	data_trc=new int[trcl];
	FILE *fp,*fp1,*fp2;
	fp=fopen("A1.d","rb");//A2464.DAT
	fp1=fopen(infilename,"rb");
	fp2=fopen(outfilename,"wb");
//	printf("%d\n\n",sizeof(CSPrecord));
	//////////////////////////////////////////////////////////////////////////////////////
	fread(&fmtcd,2,1,fp);	printf("fmtcd=%d\n",fmtcd);				//----------1~2
	fread(&trcnbr,2,1,fp);	printf("trcnbr=%d\n",trcnbr);				//----------3~4
	fread(&nch,2,1,fp);		printf("nch=%d\n",nch);					//----------5~6
	fread(&sof,2,1,fp);		printf("sof=%d\n",sof);					//----------7~8
	fread(&spc,2,1,fp);		printf("spc=%d\n",spc);					//----------9~10
	fread(&lnh,2,1,fp);		printf("lnh=%d\n",lnh);					//----------11~12
	fread(&dlt,2,1,fp);		printf("dlt=%d\n",dlt);					//----------13~14
	fread(&srt,4,1,fp);		printf("srt=%f\n",srt);					//----------15~18-----
	fread(&rsv1,4,1,fp);	printf("%f\n",rsv1);				//----------19~22
	fread(&tsg,2,1,fp);		printf("%d\n",tsg);					//----------23~24
	fread(&tss,2,1,fp);		printf("%d\n",tss);					//----------25~26
	fread(&tsz,2,1,fp);		printf("%d\n",tsz);					//----------27~28
	fread(&dls,2,1,fp);		printf("%d\n",dls);					//----------29~30
	fread(&rsv2,2,1,fp);	printf("%d\n",rsv2);				//----------31~32-----
	fread(&hpk,4,1,fp);		printf("%d\n",hpk);					//----------33~36?????
	fread(&lpf,2,1,fp);		printf("%d\n",lpf);					//----------37~38
	fread(&hpf,2,1,fp);		printf("%d\n",hpf);					//----------39~40
	fread(&bru,2,1,fp);		printf("%d\n",bru);					//----------41~42
	fread(&lrf,4,1,fp);		printf("%d\n",lrf);					//----------43~46-----
	fread(&hrf,2,1,fp);		printf("%d????\n",hrf);				//----------47~48?????
	fread(&rsv3,4,1,fp);	printf("%d\n",rsv3);				//----------49~52
	fread(&gck,2,1,fp);		printf("%d\n",gck);					//----------53~54
	fread(&lbw,2,1,fp);		printf("%d\n",lbw);					//----------55~56
	fread(&hbw,2,1,fp);		printf("%d\n",hbw);					//----------57~58
	fread(&rsv4,2,1,fp);	printf("%d\n",rsv4);				//----------59~60
	fread(&blg,4,1,fp);		printf("%f\n",blg);					//----------61~64-----
	fread(&exg,4,1,fp);		printf("%f\n",exg);					//----------65~68-----
	fread(&temp_flt,4,1,fp);printf("%f\n",temp_flt);			//----------69~72-----
	fread(&temp_flt,4,1,fp);printf("%f\n",temp_flt);			//----------73~76-----
	for(i=0;i<108;i++)
	{
		fread(&temp_int,4,1,fp);								//----------77~508----
	}
	fread(&smr,4,1,fp);		printf("%d\n",smr);					//----------509~512---
	/////////////////////////////////////////////////////////////////////////////////////


	/////////////////////////////////////////////////////////////////////////////////////
	nch=tracenum;
	sof=offs;
	spc=trcinter;
	lnh=trcl;
	dlt=0;
	srt=sam_rate;
	smr=smp_rate;
	rsv1=offset;

	fwrite(&fmtcd,2,1,fp2);		printf("%d\n",fmtcd);				//----------1~2
	fwrite(&trcnbr,2,1,fp2);	printf("%d\n",trcnbr);				//----------3~4
	fwrite(&nch,2,1,fp2);		printf("%d\n",nch);					//----------5~6
	fwrite(&sof,2,1,fp2);		printf("%d\n",sof);					//----------7~8
	fwrite(&spc,2,1,fp2);		printf("%d\n",spc);					//----------9~10
	fwrite(&lnh,2,1,fp2);		printf("%d\n",lnh);					//----------11~12
	fwrite(&dlt,2,1,fp2);		printf("%d\n",dlt);					//----------13~14
	fwrite(&srt,4,1,fp2);		printf("%f\n",srt);					//----------15~18-----
	fwrite(&rsv1,4,1,fp2);		printf("%f\n",rsv1);				//----------19~22
	fwrite(&tsg,2,1,fp2);		printf("%d\n",tsg);					//----------23~24
	fwrite(&tss,2,1,fp2);		printf("%d\n",tss);					//----------25~26
	fwrite(&tsz,2,1,fp2);		printf("%d\n",tsz);					//----------27~28
	fwrite(&dls,2,1,fp2);		printf("%d\n",dls);					//----------29~30
	fwrite(&rsv2,2,1,fp2);		printf("%d\n",rsv2);				//----------31~32-----
	fwrite(&hpk,4,1,fp2);		printf("%d\n",hpk);					//----------33~36?????
	fwrite(&lpf,2,1,fp2);		printf("%d\n",lpf);					//----------37~38
	fwrite(&hpf,2,1,fp2);		printf("%d\n",hpf);					//----------39~40
	fwrite(&bru,2,1,fp2);		printf("%d\n",bru);					//----------41~42
	fwrite(&lrf,4,1,fp2);		printf("%d\n",lrf);					//----------43~46-----
	fwrite(&hrf,2,1,fp2);		printf("%d????\n",hrf);				//----------47~48?????
	fwrite(&rsv3,4,1,fp2);		printf("%d\n",rsv3);				//----------49~52
	fwrite(&gck,2,1,fp2);		printf("%d\n",gck);					//----------53~54
	fwrite(&lbw,2,1,fp2);		printf("%d\n",lbw);					//----------55~56
	fwrite(&hbw,2,1,fp2);		printf("%d\n",hbw);					//----------57~58
	fwrite(&rsv4,2,1,fp2);		printf("%d\n",rsv4);				//----------59~60
	fwrite(&blg,4,1,fp2);		printf("%f\n",blg);					//----------61~64-----
	fwrite(&exg,4,1,fp2);		printf("%f\n",exg);					//----------65~68-----
	fwrite(&temp_flt,4,1,fp2);	printf("%f\n",temp_flt);			//----------69~72-----
	fwrite(&temp_flt,4,1,fp2);	printf("%f\n",temp_flt);			//----------73~76-----
	for(i=0;i<108;i++)
	{
		fwrite(&temp_int,4,1,fp2);									//----------77~508----
	}
	fwrite(&smr,4,1,fp2);		printf("%d\n",smr);					//----------509~512---
	/////////////////////////////////////////////////////////////////////////////////////
//	for(i=0;i<120;i++)
	{
	}
	for(i=0;i<tracenum;i++)
	{
		fread(head_sgy,240,1,fp1);
		fread(data_set,trcl*4,1,fp1);
//		fwrite(head_sgy,240,1,fp2);
		for(j=0;j<trcl;j++)
		{
			data_trc[j]=int(1000*data_set[j]);
			fwrite(&data_trc[j],4,1,fp2);
		}
	}
//	printf("%d\t%d\n\n",head_sgy[57],head_sgy[58]);
	fclose(fp2);
	fclose(fp1);
	fclose(fp);
	fclose(fp0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -