亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? migprefd.c

?? 用于石油地震資料數字處理
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright (c) Colorado School of Mines, 2005.*//* All rights reserved.                       *//* SUMIGPREFD: $Vision: 1.00 $ ; $Date: 2004/12/23 22:41:54 $       */#include "su.h"#include "segy.h"#include "header.h"#include <signal.h>/* #include <time.h> *//*********************** self documentation ******************************/char *sdoc[] = {"                                                                       "," SUMIGPREFD - The 2-D prestack common-shot 45-90 degree   		","                     finite-difference migration.       		","   sumigprefd <indata >outfile [parameters] 	                        ", "                                                                       "," Required Parameters:                                                   ",  "                                                                       "," nxo=           number of total horizontal output samples               "," nxshot=        number of shot gathers to be migrated                   "," nz=            number of depth sapmles                                 "," dx=            horizontal sampling interval                            ",   " dz=            depth sampling interval                                 "," vfile=         velocity profile, it must be binary format.             ","                                                                       ",  " Optional Parameters:                                                   ","                                                                       "," dip=79       the maximum dip to migrate, it can be 45,65,79,80,87,89,90", "	      The computation cost is 45=65=79<80<87<89<90		","                                                                       "," fmax=25      the peak frequency of Ricker wavelet used as source wavelet","                                                                       "," f1=5,f2=10,f3=40,f4=50         frequencies to build a Hamming window   ","                                                                       "," lpad=9999,rpad=9999            number of zero traces padded on both    ","				sides of depth section to determine the	","				migration aperature, the default values ","				are using the full aperature.           ","                                                                       "," Notes:								"," The input velocity file \'vfile\' consists of C-style binary floats.  "," The structure of this file is vfile[iz][ix]. Note that this means that"," the x-direction is the fastest direction instead of z-direction! Such a"," structure is more convenient for the downward continuation type       "," migration algorithm than using z as fastest dimension as in other SU  "," programs.                                                     	","                                                                       "," Because most of the tools in the SU package (such as  unif2, unisam2, ", " and makevel) produce output with the structure vfile[ix][iz], you will"," need to transpose the velocity files created by these programs. You may"," use the SU program \'transp\' in SU to transpose such files into the  "," required vfile[iz][ix] structure.                                     ",NULL};/* * Credits: CWP, Baoniu Han, bhan@dix.mines.edu, April 19th, 1998 * * * Trace header fields accessed: ns, dt, delrt, d2 * Trace header fields modified: ns, dt, delrt *//**************** end self doc *******************************************//* Prototypes for subroutines used internally */float *ricker(float Freq,float dt,int *Npoint);void retris(complex *data,complex *a,complex *c,complex *b,complex                endl,complex endr, int nx, complex *d);void fdmig( complex **cp, int nx, int nw, float *v,float fw,float                dw,float dz,float dx,float dt,int dip);segy tr;/* static time_t t1,t2; */int main (int argc, char **argv){	int nt;			/* number of time samples */	int nz;			/* number of migrated depth samples */	int nx,nxshot,oldsx;	/* number of midpoints 	*/	int iz,iw,ix,it;	/* loop counters 	*/	int ntfft;		/* fft size		*/	int nw,truenw;		/* number of wave numbers */		int dip=79;		/* dip angle	*/	/* prestack goes here */	float sx,gxmin,gxmax;	/* source and geophone location	*/	int isx,nxo,ifx=0;	/* index for source and geophone*/	int ix1,ix2,ix3,ixshot; /* dummy index			*/	int lpad,rpad; /* padding on both sides of the migrated section */	int flag=1;		/* flag control for feet or meters */	float *wl,*wtmp;        float fmax;	float f1,f2,f3,f4;	int nf1,nf2,nf3,nf4;	int ntw;	float dt=0.004,dz;	/* time and depth sampling interval 	*/	float dw;		/* frequency  sampling interval		*/	float fw;		/* first frequency 			*/	float w;		/* frequency				*/	float dx;		/* spatial sampling interval		*/	float **p,**cresult;	/* input, output data			*/	float v1;		/* average velocity			*/	double kz2;		float **v,**vp;		/* pointer for the velocity profile	*/	complex cshift2;	complex *wlsp,**cp,**cp1,**cq;	/*complex input,output*/	char *vfile="";		/* name of file containing velocities */	FILE *vfp;	/* hook up getpar to handle the parameters */	initargs(argc,argv);	requestdoc(1);        /* get optional parameters */        if (!getparint("nz",&nz)) err("nz must be specified");        if (!getparfloat("dz",&dz)) err("dz must be specified");        if (!getparstring("vfile", &vfile)) err("vfile must be specified");        if (!getparint("nxo",&nxo)) err("nxo must be specified");        if (!getparint("nxshot",&nxshot)) err("nshot must be specified");        if (!getparfloat("fmax",&fmax)) fmax = 25.0;          if (!getparfloat("f1",&f1)) f1 = 10.0;        if (!getparfloat("f2",&f2)) f2 = 20.0;        if (!getparfloat("f3",&f3)) f3 = 40.0;        if (!getparfloat("f4",&f4)) f4 = 50.0;        if (!getparint("lpad",&lpad)) lpad=9999;        if (!getparint("rpad",&rpad)) rpad=9999;        if (!getparint("flag",&flag)) flag=1;        if (!getparint("dip",&dip)) dip=79;	cresult = alloc2float(nz,nxo);	vp=alloc2float(nxo,nz);	/*load velicoty file*/	vfp=efopen(vfile,"r");	efread(vp[0],FSIZE,nz*nxo,vfp);	efclose(vfp);	for(ix=0;ix<nxo;ix++)	for(iz=0;iz<nz;iz++)	cresult[ix][iz]=0.0;				/* get info from first trace */loop:/*	time(&t1); */	if (!gettr(&tr))  err("can't get first trace");	nt = tr.ns;	/* let user give dt and/or dx from command line */	if (!getparfloat("dt", &dt)) {		if (tr.dt) { /* is dt field set? */			dt = ((double) tr.dt)/1000000.0;		} else { /* dt not set, assume 4 ms */			dt = 0.004;			warn("tr.dt not set, assuming dt=0.004");		}	}	if (!getparfloat("dx",&dx)) {		if (tr.d2) { /* is d2 field set? */			dx = tr.d2;		} else {			dx = 1.0;			warn("tr.d2 not set, assuming d2=1.0");		}	}	sx=tr.sx;	isx=sx/dx;	gxmin=gxmax=tr.gx;	oldsx=sx;         /* determine frequency sampling interval*/        ntfft = npfar(nt);        nw = ntfft/2+1;        dw = 2.0*PI/(ntfft*dt);        /*compute the index of the frequency to be migrated*/        fw=2.0*PI*f1;        nf1=fw/dw+0.5;                         fw=2.0*PI*f2;        nf2=fw/dw+0.5;        fw=2.0*PI*f3;        nf3=fw/dw+0.5;        fw=2.0*PI*f4;        nf4=fw/dw+0.5;          /*the number of frequency to migrated*/        truenw=nf4-nf1+1;        fw=0.0+nf1*dw;        warn("nf1=%d nf2=%d nf3=%d nf4=%d nw=%d",nf1,nf2,nf3,nf4,truenw);        /* allocate space */        wl=alloc1float(ntfft);        wlsp=alloc1complex(nw);        /*generate the Ricker wavelet*/        wtmp=ricker(fmax,dt,&ntw);        for(it=0;it<ntfft;it++)        wl[it]=0.0;                  for(it=0;it<ntw;it++)        wl[it]=wtmp[it];        free1float( wtmp);        pfarc(-1,ntfft,wl,wlsp);        /* allocate space */        p = alloc2float(ntfft,nxo);        cq = alloc2complex(nw,nxo);	        for (ix=0; ix<nxo; ix++)                for (it=0; it<ntfft; it++)                        p[ix][it] = 0.0;        /*read in a single shot gather*/        if (tr.gx < 0 ) {                ix=tr.gx/dx + nxo;        } else {                ix=tr.gx/dx ;        }        memcpy( (void *) p[ix], (const void *) tr.data,nt*FSIZE);	nx = 0;        while(gettr(&tr)){                        int igx=0;                        if(tr.sx!=oldsx){ efseeko(stdin,(off_t)(-240-nt*4),SEEK_CUR); break;}        		if (tr.gx < 0 ) {                		igx=tr.gx/dx + nxo;        		} else {                		igx=tr.gx/dx ;        		}                        memcpy( (void *) p[igx], (const void *) tr.data,nt*FSIZE);                        if(gxmin>tr.gx)gxmin=tr.gx;                        if(gxmax<tr.gx)gxmax=tr.gx;                        nx++;                        oldsx=tr.sx;                        }        warn("sx %f , gxmin %f  gxmax %f",sx,gxmin,gxmax);        /*transform the shot gather from time to frequency domain*/        pfa2rc(1,1,ntfft,nxo,p[0],cq[0]);        /*compute the most left and right index for the migrated section*/        ix1=sx/dx;        ix2=gxmin/dx;        ix3=gxmax/dx;        if(ix1>=ix3)ix3=ix1;        if(ix1<=ix2)ix2=ix1;        ix2-=lpad;        ix3+=rpad;        if(ix2<0)ix2=0;        if(ix3>nxo-1)ix3=nxo-1;        /*the total traces to be migrated*/        nx=ix3-ix2+1;	nw=truenw;        /*allocate space for velocity profile within the aperature*/        v=alloc2float(nx,nz);                   for(iz=0;iz<nz;iz++)        for(ix=0;ix<nx;ix++){        v[iz][ix]=vp[iz][ix+ix2];        }        /*allocate space*/        cp = alloc2complex(nx,nw);        cp1 = alloc2complex(nx,nw);        /*transpose the frequency domain data from data[ix][iw] to data[iw][ix] and        apply a Hamming at the same time*/        for (ix=0; ix<nx; ix++)        for (iw=0; iw<nw; iw++){        float tmpp=0.0,tmppp=0.0;	if(iw>=(nf1-nf1)&&iw<=(nf2-nf1)){	tmpp=PI/(nf2-nf1);tmppp=tmpp*(iw-nf1)-PI;tmpp=0.54+0.46*cos(tmppp);        cp[iw][ix]=crmul(cq[ix+ix2][iw+nf1],tmpp);}        else{	if(iw>=(nf3-nf1)&&iw<=(nf4-nf1)){	tmpp=PI/(nf4-nf3);tmppp=tmpp*(iw-nf3);tmpp=0.54+0.46*cos(tmppp);        cp[iw][ix]=crmul(cq[ix+ix2][iw+nf1],tmpp);}        else{	cp[iw][ix]=cq[ix+ix2][iw+nf1];}        }	cp1[iw][ix]=cmplx(0.0,0.0);	}        ix=sx/dx-ifx;	ixshot=ix;        warn("ix %d",ix);        for(iw=0;iw<nw;iw++){        cp1[iw][ix-ix2]=wlsp[iw+nf1];        }                                free2float(p);        free2complex(cq);        free1float(wl);        free1complex(wlsp);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产精品一区二区| 精品美女一区二区三区| 国产宾馆实践打屁股91| 成人av免费观看| 91老师片黄在线观看| 欧洲人成人精品| 4438x亚洲最大成人网| 欧美xxxxxxxx| 国产精品久久久久久久蜜臀| 一区二区三区欧美久久| 性欧美大战久久久久久久久| 国产成人鲁色资源国产91色综 | 激情文学综合丁香| 精品在线亚洲视频| 欧美日本在线视频| 午夜久久久久久久久久一区二区| 精品国免费一区二区三区| 国产精品全国免费观看高清| 有码一区二区三区| 久久99精品一区二区三区三区| 成人免费观看视频| 91精品国产欧美一区二区| 国产精品乱人伦中文| 奇米精品一区二区三区在线观看一 | 国产精品久久久久久久久快鸭| 亚洲精品视频在线看| 精品一区二区三区av| 欧美成人bangbros| 国产欧美日韩精品一区| 亚洲成在人线在线播放| 粉嫩久久99精品久久久久久夜| 欧美浪妇xxxx高跟鞋交| 久久www免费人成看片高清| 国产精品麻豆一区二区| 日韩一区二区在线免费观看| 中文字幕中文在线不卡住| 另类小说视频一区二区| 91美女在线视频| 久久精品一区二区三区不卡| 日日夜夜精品视频免费| 色欧美乱欧美15图片| 久久精品亚洲一区二区三区浴池| 日韩精品乱码免费| 欧美性色欧美a在线播放| 亚洲国产精品99久久久久久久久| 蜜桃91丨九色丨蝌蚪91桃色| 欧洲精品一区二区| 亚洲男人天堂av网| a4yy欧美一区二区三区| 久久理论电影网| 精品一区二区国语对白| 7777精品伊人久久久大香线蕉 | 久久精品国产秦先生| 欧美丰满美乳xxx高潮www| 一区二区三区 在线观看视频| 国产成人无遮挡在线视频| 欧美精品一区二区三区蜜桃 | 日韩精品一区二区三区swag | 日韩精品一区二区三区中文不卡| 肉肉av福利一精品导航| 欧美日韩成人综合在线一区二区| 亚洲视频1区2区| www.66久久| 亚洲欧洲无码一区二区三区| 国产黄色精品网站| 中文字幕精品一区二区精品绿巨人 | 国产日韩影视精品| 国产一区二区三区观看| 日韩丝袜情趣美女图片| 天天操天天干天天综合网| 欧美日韩三级一区| 午夜伦欧美伦电影理论片| 欧美日韩免费观看一区三区| 亚洲国产视频a| 欧美日韩精品欧美日韩精品| 午夜亚洲福利老司机| 欧美三区在线视频| 午夜精品久久一牛影视| 欧美精品99久久久**| 日本大胆欧美人术艺术动态| 日韩一区二区三区四区| 精品一区二区三区在线观看| 精品欧美久久久| 国产69精品久久久久毛片| 国产精品久久久久久久裸模| 99久久精品免费| 亚洲午夜免费视频| 91精品国产一区二区| 狠狠色伊人亚洲综合成人| 久久中文娱乐网| 成人av在线资源网站| 亚洲精品少妇30p| 欧美人妖巨大在线| 精品一区精品二区高清| 国产精品久久久久久久久图文区 | 亚洲国产综合在线| 日韩午夜在线播放| 国产成人在线电影| 亚洲精品久久嫩草网站秘色| 4438x成人网最大色成网站| 国产一区二区看久久| 国产精品国产三级国产| 欧美日韩精品免费| 国产九色精品成人porny| 中文字幕在线不卡视频| 欧美日韩一级片在线观看| 日韩国产成人精品| 久久精品水蜜桃av综合天堂| 色婷婷av一区二区三区大白胸| 男男视频亚洲欧美| 国产精品嫩草影院av蜜臀| 欧美三级三级三级爽爽爽| 国产原创一区二区| 调教+趴+乳夹+国产+精品| 天天色天天爱天天射综合| 久久综合九色综合欧美98| 91丨九色丨国产丨porny| 日韩国产精品久久久久久亚洲| 国产日本欧洲亚洲| 欧美嫩在线观看| 豆国产96在线|亚洲| 天堂午夜影视日韩欧美一区二区| 久久影院电视剧免费观看| 色婷婷av一区二区三区大白胸| 久久99国产精品免费网站| 亚洲免费av网站| 久久久久久久久久久久久久久99| 色噜噜偷拍精品综合在线| 精品一区二区三区视频| 亚洲男帅同性gay1069| 久久久综合激的五月天| 精品视频1区2区| 成人毛片视频在线观看| 日韩av一级电影| 亚洲精品国产a| 中文字幕不卡在线观看| 日韩欧美高清在线| 欧美亚洲综合一区| 成人免费毛片嘿嘿连载视频| 亚洲国产精品久久久久秋霞影院| 中文字幕乱码一区二区免费| 日韩欧美国产成人一区二区| 欧美视频中文字幕| 99久久伊人精品| 国内欧美视频一区二区| 手机精品视频在线观看| 1024成人网| 国产精品视频免费看| 2021中文字幕一区亚洲| 制服丝袜日韩国产| 欧美午夜免费电影| 91同城在线观看| 成人免费毛片a| 狠狠色丁香久久婷婷综合丁香| 午夜久久久久久| 亚洲国产一区二区a毛片| 日韩美女久久久| 日本一区二区成人| 精品福利在线导航| 日韩一区二区三区四区五区六区 | 日韩黄色免费电影| 亚洲图片欧美色图| 一区二区三区精品在线观看| 久久九九影视网| 精品av综合导航| 欧美一级黄色大片| 777色狠狠一区二区三区| 欧美视频一区二区在线观看| 欧美成人女星排名| 一区二区三区**美女毛片| 中文字幕一区三区| 国产精品色呦呦| 国产精品麻豆一区二区| 国产精品美女久久久久久| 国产女人水真多18毛片18精品视频| 久久亚洲综合av| 国产亚洲精品aa午夜观看| 国产色婷婷亚洲99精品小说| 欧美刺激午夜性久久久久久久| 欧美肥妇free| 91精品国产高清一区二区三区 | 日韩中文字幕一区二区三区| 亚洲国产精品一区二区久久| 亚洲猫色日本管| 亚洲精品视频免费看| 亚洲国产日韩av| 石原莉奈一区二区三区在线观看| 午夜视频一区二区三区| 五月天激情综合| 免费观看成人鲁鲁鲁鲁鲁视频| 久久精品99国产精品日本| 国产做a爰片久久毛片| 国产高清久久久| 白白色 亚洲乱淫| 97成人超碰视| 欧美日韩午夜精品| 欧美成人伊人久久综合网| 久久色.com| 成人免费在线播放视频| 樱花影视一区二区|