亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
99精品久久只有精品| 精品亚洲porn| 天堂久久久久va久久久久| 男人的天堂久久精品| 精品日韩欧美在线| 中文字幕国产精品一区二区| 日韩一区在线免费观看| 精品亚洲成a人| 成人天堂资源www在线| 亚洲无人区一区| 99精品欧美一区二区三区小说| 国产精品丝袜久久久久久app| 在线不卡免费欧美| 国产欧美一区二区精品性色超碰 | 亚洲欧美电影院| 丝袜a∨在线一区二区三区不卡| 国产一区二区三区在线观看免费| 99这里只有久久精品视频| 日韩国产在线观看一区| 日韩一区二区三区在线| 亚洲一区二区三区小说| 欧美影片第一页| 蜜桃视频一区二区| 国产视频亚洲色图| 成人激情免费网站| 亚洲精选视频免费看| 欧美日韩三级一区| 国产精品国产a| 在线视频国内自拍亚洲视频| 久久99精品久久久久久国产越南| 国产成人av电影在线| 国产精品久久久久影院色老大| 国产福利一区二区三区视频| 中文字幕中文在线不卡住| 欧美日韩在线综合| 国产精品一区二区三区网站| 久久综合色天天久久综合图片| 在线日韩一区二区| 国产成人精品www牛牛影视| 一区二区三区影院| 狠狠色丁香久久婷婷综合_中 | 北条麻妃一区二区三区| 久久久久久9999| 欧美久久久久久久久| 欧美日韩成人在线| 久久久夜色精品亚洲| 粉嫩aⅴ一区二区三区四区五区 | 欧美日韩综合在线免费观看| 亚洲免费资源在线播放| 欧美午夜理伦三级在线观看| 免费观看一级特黄欧美大片| 欧美日韩精品一区二区天天拍小说 | 欧美日韩日日夜夜| 国产欧美日韩视频在线观看| 久久久久久亚洲综合| 国产精品久久久久aaaa樱花 | 亚洲人被黑人高潮完整版| 欧美国产精品中文字幕| 国产日韩欧美制服另类| 亚洲三级电影网站| 日韩成人一级大片| 国产ts人妖一区二区| 欧美色视频一区| 国产欧美日韩久久| 亚洲欧洲性图库| 日本不卡免费在线视频| 国产精品一区专区| av一区二区不卡| 久久综合九色综合97_久久久| 国产精品久久久久久久久免费相片| 中文字幕电影一区| 麻豆成人久久精品二区三区红| 国产成人免费高清| 7777精品伊人久久久大香线蕉经典版下载 | 麻豆视频一区二区| 欧美日韩亚洲丝袜制服| 久久久久久久一区| 国产成人午夜高潮毛片| 欧美日韩视频第一区| 丝瓜av网站精品一区二区 | 一本高清dvd不卡在线观看| 欧美一卡二卡在线观看| www.66久久| 久久久www成人免费无遮挡大片| 午夜不卡在线视频| 欧美男人的天堂一二区| 欧美最新大片在线看| 欧美在线播放高清精品| 久久er99精品| 亚洲视频一区二区在线| 精品成人免费观看| 欧美裸体bbwbbwbbw| 97超碰欧美中文字幕| 国产老妇另类xxxxx| 久久国产精品99久久人人澡| 亚洲青青青在线视频| 欧美午夜精品一区二区蜜桃| 亚洲国产一区二区三区| 99精品在线观看视频| 亚洲午夜视频在线观看| 在线区一区二视频| 日韩av电影免费观看高清完整版| 欧美喷潮久久久xxxxx| 亚洲va欧美va人人爽| 6080日韩午夜伦伦午夜伦| 国产精品私人影院| 麻豆精品视频在线观看免费| 亚洲成a人在线观看| 91精品婷婷国产综合久久| 国产欧美日韩亚州综合| 国产拍揄自揄精品视频麻豆| 久久久蜜臀国产一区二区| 欧美激情在线一区二区三区| 欧美精彩视频一区二区三区| 国产精品成人午夜| 婷婷综合五月天| 国产不卡视频在线播放| 欧美专区日韩专区| 日韩一区二区在线播放| 国产精品三级久久久久三级| 亚洲另类在线一区| 五月天亚洲婷婷| 欧美最新大片在线看| 欧美精品乱码久久久久久| 亚洲欧美色图小说| 欧美久久久一区| 国产精品丝袜91| 成人免费观看男女羞羞视频| 亚洲精品你懂的| 91精品婷婷国产综合久久| 久久精品国产亚洲一区二区三区 | 国产91精品入口| 不卡视频一二三四| 国产精品久久久久影院色老大| 日韩一二三区视频| 日本道免费精品一区二区三区| 一区二区三区四区在线播放 | 精品国产乱码久久久久久久久| 《视频一区视频二区| 国产自产视频一区二区三区| 欧美人成免费网站| 亚洲视频网在线直播| 暴力调教一区二区三区| 黑人巨大精品欧美黑白配亚洲| 欧美日韩亚洲不卡| 亚洲精品国产一区二区三区四区在线| 国产伦精品一区二区三区视频青涩| 色婷婷综合久久久中文一区二区 | 成人av网站大全| 欧美日韩国产欧美日美国产精品| 日韩美女视频一区二区| 国产一区二区三区观看| 538prom精品视频线放| 日韩电影一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 亚洲国产精品综合小说图片区| 欧美丝袜丝交足nylons| 亚洲午夜国产一区99re久久| 欧美日韩亚洲另类| 精品一区二区久久| 欧美韩国一区二区| 在线精品视频免费播放| 亚洲最大的成人av| 欧美精品色综合| 国产福利91精品| 亚洲v中文字幕| 精品美女在线播放| 成人一级黄色片| 日本午夜精品一区二区三区电影| 亚洲天堂2014| 久久久久久久av麻豆果冻| 91精品国产全国免费观看| 欧美伊人久久大香线蕉综合69| kk眼镜猥琐国模调教系列一区二区| www.66久久| 91在线免费视频观看| 午夜精品aaa| 欧美三级日韩三级| 国产精品自产自拍| 从欧美一区二区三区| 欧美一区二区三区在线| 一区二区三区中文在线观看| 七七婷婷婷婷精品国产| 日韩一区二区三区三四区视频在线观看 | 国产一区二区网址| 久久久国产精品午夜一区ai换脸| 国产又黄又大久久| 国产精品久久久久久久久免费相片 | 欧美裸体一区二区三区| 成人av网址在线| 国产91丝袜在线观看| 久久99精品国产.久久久久久| 亚洲黄色在线视频| 亚洲欧美日韩电影| 国产精品青草综合久久久久99| 欧美一区二区免费| 欧美一区二区三区精品| 在线观看视频欧美| 欧美午夜电影在线播放| 91丨porny丨首页|