• 大小: 4KB
    文件类型: .c
    金币: 2
    下载: 0 次
    发布日期: 2024-01-31
  • 语言: 其他
  • 标签: NMO  动校正  

资源简介

地震数字处理,动校正,拉东变换,用于处理地震资料。

资源截图

代码片段和文件信息

#include
#include
#include “malloc.h“
#define EP 0.0000001       //精度
 
#define NTR 30               //道数
#define NN  500              //每道采样点
#define N  3               //地层层数
#define DX  200             //道间距
#define fm  30    // 子波的主频
#define dt  0.002    // 采样间隔
#define XL  0.10    // 子波的长度
#define HL  4.0        // 反射系数序列长度                       
#define PI  3.1415926

float qiuhe(float x[]int m)
{
int i;
float y=0.0;
for(i=0;i {
y=y+x[i];
}
return(y);
}

main ()
{   
       int kijdnt1[N];
   float vrms[N]tt[NN]x1[N]x2[N]ntt0[N];
   FILE *fp1*fp2;
   float **seis1**seis2**t;
   float vn[N]={1000.02000.03000.0};
       float h[N]={1000.02000.03000.0};
       fp1=fopen(“seis3.dat““rb“);
       fp2=fopen(“nmo1.dat““wb“);

   seis1=(float **)calloc(NTRsizeof(float));
   seis2=(float **)calloc(NTRsizeof(float));
   t=(float **)calloc(Nsizeof(float));
   for (i=0;i    {
       seis1[i]=(float *)calloc(NNsizeof(float));
   seis2[i]=(float *)calloc(NNsizeof(float));
   t[i]=(float *)calloc(NNsizeof(float));
       }
for (i=0;i       for (j=0;j            seis2[i][j]=0;
  
    if ((fp1=fopen(“seis3.dat““rb“))!=NULL)
  { 
 fseek(fp15*NTR*NN*sizeof(float)0);
            for (j=0;j     fread(seis1[j]sizeof(float)NNfp1);
           }
else
       { printf(“file seis3.dat open error\n“);
     exit(0);
   }
t0[0]=2*h[0]/vn[0]; 
t1[0]=(int)(t0[0]/dt+0.5);
    for (i=1;i     {  t0[i]=(2*h[i]/vn[i])+t0[i-1];
   t1[i]=(int)(t0[i]/dt+0.5); //一层的反射时间中共有多少个采样点
             }

    for(j=0;j        {
     x1[j]=2*h[j]/vn[j]*pow(vn[j]2);
    x2[j]=2*h[j]/vn[j];
        }
    for (i=1;i<=N;i++)
{ vrms[i-1]=sqrt(qiuhe(x1i)/qiuhe(x2i));//由层速度求均方根速度
}
        printf(“vrms \n“);
        printf(“%lf%lf%lf\n“vrms[0]vrms[1]vrms[2]);
           

for (i=0;i   {  for (j=0

评论

共有 条评论