www.blogoil.com CGG和Focus之间速度转换程序
CGG和Focus之间速度转换程序
GeoRisc
在使用资料处理软件CGG和Focus时经常会遇到其间速度格式的转换问题。这里提供了两个用C-shell编写的程序v_focus2cgg和v_cgg2focus,利用它们可以实现从Focus的数据库速度到CGG的数据库速度以及到Focus的卡片格式的转换。
(1)Focus数据库速度-->CGG速度格式
%v_focus2cgg project line vel > velout.lv
(2)CGG速度格式-->Focus速度卡片
%cat velout.lvi | v_cgg2focus > velout.dat
或者,
%v_cgg2focus velout.dat
(3)Focus数据库速度-->Focus速度卡片
%v_focus2cgg project line vel | v_cgg2focus > velout.dat
附录:
(1)v_focus2cgg
#!/bin/csh -f
###########################
# GeoRisc,Dec-04-2004 #
###########################
set bdir=`dirname $0`
set project = $1
set line = $2
set vsdb = $3
if ( $1 == "" || $2 == "" || $3 == "" ) then
echo Usage:$0 project line vsdb
exit
endif
if ( $?PG_ROOT == 0 ) then
set PG_ROOT=/PG2.0
endif
set vfile=`echo $line $vsdb | \
awk '{printf("dir /file %s.veldefn.%s\nquit\n",$1,$2)}' | \
$PG_ROOT/bin/sdbutl $project | grep $project`
if ( $vfile == "" ) then
echo "$project:$line.VELDEFN.$vsdb not found."
endif
set awkfile=/var/tmp/v2_focus2cgg_$$.awk
tail +32 $0 > $awkfile
chmod +x $awkfile
if ( -e $awkfile ) then
$awkfile $vfile
/bin/rm -f $awkfile
else
echo "$awkfile not found."
endif
exit
#!/usr/bin/awk -f
BEGIN{
offset = 17;
local = 34;
count = 0;
pcdp = 1;
ncdp = 1;
n = split(FILENAME,a,"/");
lname = a[n];
n = split(lname,a,".");
lname = a[1];
}
{
if ( NR == 3 ) handnum = $1;
if ( NR == 4 ) total = $1;
if ( NR == 5 ) {
pkeyname = $1;
vtype = $2;
printf("* LIBRI VI 1 TN ( 1-");
}
if ( NR == local ) num = $1;
if ( NR == local+1 ) pkey = $1;
if ( NR > local+offset+1 && NR 1)printf("\n%s",$0);\
else printf("%s",$0);}' | \
sed -e 's/=/ /g' | \
sed -e 's/,/ /g' | \
awk '{if(NF==0)\
printf("*CALL VELDEF CDP VCGG\n");\
else{printf("HANDVEL %-8d\n",$1);\
for(i=2;i<NF;i++)\
{k=match($i,"V");l=length($i);\
time=substr($i,2,k-2);\
vel=substr($i,k+1,l-k);\
printf("%-8d%-8d",time-2,vel);\
if((i-1)%4==0)printf("\n");};\
if((i-2)%4!=0)printf("\n");}}'
[ 此贴被笑韵在2007-09-07 09:47重新编辑 ]