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.lvi > 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 < local+offset+2+num ) {
ncdp ++;
if ( pkey != pcdp ) {
if ( fline == 999 ) \
printf(" (");
printf("%7d)=T%5dV%5d,\n",pkey,$1+2,$2);
printf(" ");
fline = 999;
pcdp = pkey;
} else {
if ( (ncdp-1)%5==1 )printf(" "); printf("T%5dV%5d,",$1,$2); if ( (ncdp-1)%5==0 )printf("\n"); }
count ++;
}
if ( NR == local+offset+2+num ) { local = local+offset+3+num; printf("\n VF 6000,\n");
ncdp = 1;
}
}
END{
printf("\n VF 6000,\n");
if ( total != count ) {
printf("ERROR!\n");
}
}
(2)v_cgg2focus
#!/bin/csh -f
########################### # GeoRisc,Dec-04-2004 #
########################### sed -e 's/ //g' | sed -e 's/(//g' | \ sed -e 's/)//g' | \
awk '{if(NF!=0){n=split($0,a,"-");print a[n];}}' | \
awk '{n=split($0,a,"=");\
if(n>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