注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

notes

@-@

 
 
 

日志

 
 
 
 

linux下安装su   

2009-05-26 22:30:37|  分类: UNIX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
安装su之前要去确保系统安装gcc,g77,否则无法make

1访问 cwp网站 http://www.cwp.mines.edu/cwpcodes/index.html
下载原始文件包  ftp.cwp.mines.edu/pub/cwpcodes/cwp_su_all_39_tar.Z
2 解压 选择一文件夹下解压 ,比如我在su文件夹下解压
tar -xvzf cwp_su_all_39_tar.Z 解压出四个文件夹,包括src,原代码都在这里
3 进入src,认真阅读 README_TO_INSTALL,接下来按照指导一步步去做
4 设置路径 ,做这一步目的是要设置安装的路径,否则make的时候无法找到路径。编辑你的用户主目录下 .bashrc 或者 .bash_profile
我实验了下,基本上设置.bashrc很关键 ,最好两者都设下
比如我的原文件解压在/home/test/su里,在/home/test下
   vi .bashrc或者.bash_profile
   添加 下面 代码
   export CWPROOT=/home/test/su

   export PATH=$PATH:$CWPROOT/bin
   然后 保存退出
   source .bashrc
   然后关掉终端,重新打开终端,echo $CWPROOT
   如果输出 /home/test/su,则路径设置正确

   ( 我也设置了.bash_profile,添加
     export CWPROOT=/home/test/su
     export PATH=$PATH:/home/test/su/bin
    两者都设置的话,就不会出问题,这样可以下一步了)  多余了,不必作

5   修改Makefile.config:将#i nclude $(CWPROOT)/src/Rules/gnumake.rules这一行的#去掉(反注释)(su40不用修改了)

6 编译 cd /../src
make install
make xtinstall
make finstall
...
make install编译时间比较长,大约十几分钟吧

安装完成,测试
输入 suplane |suxwigb &,出现 如下图像,恭喜你,安装完成

关于SU安装的步骤

README_BEFORE_UNTARRING

需要下面的文件(xx is 版本号 ):

untar_me_first.xx.tar.Z --- contains README and Portability information

cwp.su.all.xx.tar.Z --- contains the source code for the release

documentation.xx.tar.Z --- 300dpi PostScript version of the SU Users manual and

the selfdocumentation listing.

假设要安装在工作目录/home/zhang/su下,那么把压缩的tar文件考到目录下解压,就会出现一个src的目录。

Example of how to uncompress and untar the compressed tarfile:

% zcat cwp.su.all.xx.tar.Z | tar -xvf -

alternately:

% uncompress cwp.su.all.xx.tar.Z

% tar -xvf cwp.su.all.xx.tar

or

% gunzip cwp.su.all.xx.tar.gz

% tar -xvf cwp.su.all.xx.tar

README_FIRST

安装前确定系统有ANSI C compiler, 在Linux下用gcc compiler made by GNU software.

另外需要GNU make。On Linux systems, "make" is really "GNU make"。

README_TO_INSTALL

安装的7个步骤:

1) 在解压缩cwp.su.all.xx.tar.Z前读README。

2)不要以ROOT用户的身份安装

3)在安装目录下(/home/zhang/su,su是自己建立的目录)解压cwp.su.all.xx.tar.Z

4)设置环境变量CWPROOT,在bash下可以通过编辑.bashrc,加入export CWPROOT=/home/zhang/su,修改/src中的Makefile中的CWPROOT

5) 把/home/zhang/su/bin放到PATH中

6) 解压缩zcat cwp.su.all.xx.tar.Z | tar -xvf -,在/home/zhang/su回出现/home/zhang/su/src

7) compile codes via:

cd /your/root/path/src

1) edit the file /your/root/path/src/Makefile.config

to agree with the needs of your system.(关键的一步)

2) type:

make install (to install the basic set of codes)

make xtinstall (to install the X-toolkit applications)(事先需要安装X的development包,xlibs-dev)

make finstall (to install the Fortran codes)(要安装ifort编译器,注意libstdc++.so.5的问题)

make mglinstall (to install the Mesa/ Open GL items)(要安装freeglut3-dev, OPGL的实现,在linux下是Mesa)

make utils (to install libcwputils) (nonessential)

make xminstall (to install the Motif application)(nonessential)(需要安装lesstif2-dev)
SU的编程环境

源文件夹src下的cwp文件夹中的readme说明 :这是CWP编程环境的top level,可以导入到任何ANSI C中而无需修改。这里有很多常用的库函数,好像大部分是数学算法的。

源 文件夹下src下的par文件夹中的readme说明 :这是CWP的第二级编程环境。It provides getpar parameter passing, error reporting routines and analogs of system routines the check for errors. Par.h中包含了很多的函数声明,事实上在许多的具体的程序实现中都包含了这个头文件,是必须的。Par.h包含在su.h中,而在每个具体的功能程序 中都包含#include "su.h"和#include "segy.h"

在par中的lib文件夹中的文件包含了很多常用的函数,例如getpar parameter passing, 错误报告和检查系统调用错误和系统子函数。

举例来说:如ERRPKGE.H - routines for reporting errors这里面的解释和说明非常详细,还包括具体的用法举例。

The third level of the CWP programming environment are applications such as X routines, SU segy rocessing and so on.

Sufft中的initargs()、getparint()、err()、getparfloat()、warn()、ealloc1float()、ealloc1complex()都可以在这里找到。Gettr()在\src\su\lib的 fgettr.c中。

另外,su文件的道头和segy是一样的,也就是说只要把segy的3600个字节去掉就是su格式文件。

发布者: zhang741 来自精准石油论坛 http://forum.petro-china.com
SU的数据格式

SU数据格式相当于不含有卷头的segy地震道数据,也就是把原来的segy数据除去3200个EBCDIC,还有400个卷头,剩下的就是SU数据(各道的数据加上各道的240个道头),而且它的浮点型和所用计算机的浮点型格式一样,估计不会再用IBM浮点型了。

一些基本的命令

segyread

为了把SEGY数据转成SU程序所用的格式,需要使用segyread。如果本身segy是一个标准的而且工作站格式(big endian),那么在工作站上读取命令是:

segyread tape=filename verbose=1 endian=1 | segyclean >data.su

如果要在微机上读取工作站格式的数据,则endian=0(交换字节)

程序segyclean会把可选道头字里容易让SU图形程序产生误解的参数清零。(在SEGY道头里有可选的道头字(字节181-240)。这些道头字的内容是没有标准的,所以很多人按自己的需要来填写。SU也不例外。有几个SU图形程序使用的参数存储在这些道头字里)。

如果道部分不是IBM浮点型,需要用

segyread tape=filename verbose=1 endian=1 conv=0 | segyclean >data.su

conv=0是告诉程序不进行IBM到float的转换。

=1 把IBM的定点型转成浮点性

对于微机数据格式的d5.sgy,因为是在微机linux读取 所以不用交换字节,因此endian=1(阻止交换)

segyread tape=d5.sgy verbose=1 endian=1 > d5.su(可读)

segyread tape=d5.sgy verbose=1 endian=0 > d5.su(出错)

gather.syg是一个工作站的IBM格式,也就是big endian格式,在读取时:

segyread tape=gather.sgy verbose=1 endian=0 | segyclean >data.su(可读)

segyread tape=gather.sgy verbose=1 endian=0 conv=0 | segyclean >data.su(出错)

segyread tape=gather.sgy verbose=1 endian=0 conv=1 | segyclean >data.su(正确)

说明:endian是一个字节转换的选项,=0转换;=1不转换

conv是IBM到浮点的转换选项,=0不转;=1转换(默认=1)

segywrite


segywrite tape=ozdata.1.sgy verbose=1 < ozdata.1.sw bfile=b.1 hfile=h.1



segyhdrs

写成segy之前需要提供头和卷头文件,就是3200和400个字节。可以用segyhdrs.exe来准备,一般就是:

segyhdrs < data.su

会出现一个header文件和一个binary文件。Header文件里是ASCII文件,就是3200个字节。可以利用文本编辑器来修改。

bhedtopar

而对于binary文件,可以利用bhedtopar转成ASCII格式的parfile,然后就可以编辑。

Bhedtopar < binary outpar=binary.par

编辑后利用setbhed来转回二进制。

Setbhed bfile=binary par=binary.par

suswapbytes

suswapbytes < data.su format=0 > data.su.swapped

suswapbytes < data.su format=1 > data.su.swapped

上面是把从a machine of the reverse endian的SU数据转换成你的系统上的byte order.,下面是相反的操作,把你系统上的SU格式转换成相反的byte order.

Suaddnoise

-为地震道添加噪音,一般的调用方式是:

Suaddnoise <stdin >stdout sn=20

例如:

% suplane | suxwigb title="no noise" &

% suplane | suaddnoise | suxwigb title="noise added" &

% suplane | suaddnoise sn=2 | suxwigb title="noise added" &

sn是信噪比,值越大信号能量越强,也就是噪音越弱。

At S/N=2, the strongest reflector is well delineated, so to see something 1/nth strong as this dominant reflector requires S/N=2*n.

Suspike

产生一个含有脉冲的小数据体(make a small spike data set)

使用方式是:suspike [optional parameters] > out_data_file
发布者: zhang741 来自精准石油论坛 http://forum.petro-china.com
  评论这张
 
阅读(3771)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018