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

📄 filter.cpp

📁 地震勘探滤波程序
💻 CPP
字号:
#include<iostream>
#include<fstream>
#include"Susgy.h"
#include"lvbo.cpp"
using namespace std;
void main()
{
	FILE *fp1,*fp2,*fp3;
	segy tracehead;
	int i,j,*x;
	int head[60],reel[900];
	int trace,sample;
	float **z,t,dt,fc1,fc2;
	double **xt;
	
	fp1 = fopen("fpar.txt","r");
	fscanf(fp1,"%d%d",&trace,&sample);
	cout<<"trace="<<trace<<"  "<<"sample="<<sample<<endl;
	fscanf(fp1,"%f",&dt);
	cout<<"dt="<<dt<<endl;
	fscanf(fp1,"%f%f",&fc1,&fc2);
	cout<<"fc1="<<fc1<<"  "<<"fc2="<<fc2<<endl;
	fclose(fp1);

	tracehead.ns=sample; 
	tracehead.dt=dt*pow(10,6); 
	tracehead.ntr=trace;  
	tracehead.cdp=1480;
	
    x = new int[trace];
	z = new float*[trace]; 
    xt = new double*[trace];
	for(i=0;i<trace;i++)
	{
		z[i] = new float[sample];
		xt[i] = new double[sample];
	}
    
	fp2 = fopen("ZZ1300_73_pc.segy","rb");
	fp3 = fopen("1300.sgy","wb");

	fread(reel,sizeof(int),900,fp2);
	fwrite(reel,sizeof(int),900,fp3);
	for(i=0;i<trace;i++)
	{
		cout<<i<<endl;

		fread(head,sizeof(int),60,fp2);
		fwrite(head,sizeof(int),60,fp3);
		fread(z[i],sizeof(float),sample,fp2);
		for(j=0;j<sample;j++)
		    xt[i][j] = double(z[i][j]);
		lvbo(xt[i],sample,dt,fc1,fc2);	
        
//		fwrite(&tracehead,sizeof(segy),1,fp3);
	    for(j=0;j<sample;j++)
		{
	    	t = j*dt;
			z[i][j] = float(xt[i][j]);
			fwrite(&z[i][j],sizeof(float),1,fp3);
		}		
	}
	fclose(fp2);
	fclose(fp3);
	for(i=0;i<trace;i++)
	{
		delete []z[i];
//		delete []xt[i];
	}
	delete []x;
	delete []z;
//	delete []xt;

}

⌨️ 快捷键说明

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