GAMIT/GLOBK 10.40在Ubuntu10.10系统下安装详解*

2012-01-15 19:19王国举尤宝平
全球定位系统 2012年4期
关键词:编译器配置文件脚本

王国举,尤宝平

(海军大连舰艇学院,辽宁 大连116000)

0 引 言

GAMIT/GLOBK高精度数据处理软件主要用于分析研究地壳变形、高精度GPS测量数据处理等。GAMIT是在美国国家科学基金会(NSF)的资助下,由美国麻省理工学院(MIT)、斯克里普斯海洋研究所(SIO)以及哈佛大学(HU)共同开发的免费的、开源的GPS测量分析软件[1]。目前,这套软件是全球应用最广泛的GPS数据分析软件之一。

Linux操作系统下GAMIT/GLOBK的安装就是一次源代码的编译。Linux版本众多,各版本往往采用不同内核,所带的编译器也不尽相同。不同编译器下,GAMIT/GLOBK的安装与配置也不尽相同。GAMIT/GLOBK显得十分复杂。并且随着硬件技术和性能的不断提高,操作系统和软件也不断更新、升级。这就需要操作系统具有很强的兼容性,才能保证软件的可移植性。而Ubuntu能够满足这种需求的系统。

1 Ubuntu简介

Ubuntu是一个以桌面应用为主的GNU/Linux操作系统。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于每6个月会发布一个新版本。它囊括了大量从Debian发行版精挑细选的软件包,同时保留了Debian强大的软件包管理系统,使软件的安装或彻底删除异常简单。

因为Ubuntu系统技术支持时间有限,所以在安装Ubuntu系统过程中尽量选择较新版本,否则将无法安装GAMIT所需的编译语言与相关软件。Ubuntu各种版本技术支持时间可参阅其官网发布信息,这里不再赘述。所采用的UBuntu版本为10.10[2]。

2 系统要求

系统要求是指保证GAMIT/GLOBK10.40可以正常安装。使用所需要的全部系统配置要求,包括软件和硬件两个部分。由于选用了Ubuntu 10.10操作系统,而该系统几乎能够支持当前所有硬件平台,因此,硬件要求已经满足,软件的要求则是配置GAMIT安装所需要的编译环境。具体的需求[3]如下.

2.1 gfortran编译器

gfortran是GCC中的GNU Fortran编译器。从GCC4.0版开始,gfortran取代了g77成为GCC中的fortran编译器。GAMIT/GLOBK的设计者推荐Linux系统使用gfortran编译器。同时,该编译器也是安装脚本(install_software)设定的默认编译器。

2.2 libx11-dev软件包

libx11-dev是X11(X Window)的客户库(X11 client-side library)。该软件包包含了全部的 X11应用编程接口(API)基本函数。其中,libX11.a和Xlib.h是GAMIT/GLOBK所必须依赖的两个库文件,主要为GLOBK图形提供库支持。Ubuntu的默认配置不包含该软件包。

2.3 csh/tcsh(SHELL)

SHELL是所谓的命令解译器,俗称“壳”。GAMIT/GLOBK的命令必须由csh或tcsh来解译。tcsh是csh的增强版,并且完全兼容csh.它不但具有csh的全部功能,还具有命令行编辑、拼写校正、可编程字符集、历史纪录、作业控制等功能,以及C语言风格的语法结构。建议使用tcsh,但是,Ubuntu的默认配置不包含任何C SHELL.

2.4 FTP软件

用来传输数据的GAMIT解算时需要下载的精密星历、广播星历和IGS框架站的观测文件。因此,系统中必须具备与GAMIT壳脚本兼容的FTP软件。否则,必须将系统中的FTP软件连接到/usr/lib/ftp.

2.5 GMT软件

GMT是一款专用于绘制地图的软件,在美国国家科学基金会的资助下,由夏威夷大学开发的免费的、开源的绘图工具。它包含了全球的海岸线、国界、河流等地图数据,被地理学界广泛使用。GAMIT/GLOBK壳脚本调用GMT生成处理结果的图表文件。

2.6 TEQC软件

TEQC读作“tek”,是由美国 UNAVCO Facility开发的GPS数据预处理软件,功能包括“translation,editing,and quality check”(TEQC),即GPS数据的格式转换、编辑和质量检查。sh_make_rinex壳脚本调用TEQC将各种原始数据转换成RINEX格式的数据。TEQC可以从UNAVCO Facility的官方网站免费下载。目前提供给Linux系统使用的TEQC包括64位动态和32位静态、动态三个版本。

3 Ubuntu的安装与配置

Ubuntu的安装盘可以通过从其官方网站免费下载。推荐Ubuntu安装在Windows系统操作环境下运行虚拟机VMWare中进行,将Ubuntu操作系统像款软件一样在windows中运行。虚拟机选择NAT方式与 Windows系统共享网络,使Ubuntu系统也可以简单地连接互联网。好处是简化了系统安装步骤,避免因切换系统与数据交换而带来的不便,提高数据解算的效率。具体安装方法略去。

GAMIT/GLOBK10.40的安装需要在 Root账户下进行(普通用户的权限有限),而Ubuntu默认状态下Root账户是禁止的。这需要你开启Root账户。先以普通用户登陆,打开终端,以sudo passwd root给root账户设定一个密码,然后选择系统→系统管理→登陆窗口,修改“安全”选项“允许本地系统管理员登陆”。重新启动电脑并以Root账户登陆。

接下来打开Ubuntu的终端,输入以下命令(不分先后),完成 Ubuntu的初步配置[4-5]。

1)apt-get install gfortran,安装gfortran编译器及其依赖的全部软件包;

2)apt-get install libx11-dev,安装libx11-dev软件包及其依赖的全部软件包;

3)apt-get install csh,安装csh;(ubuntu系统没有csh,默认为bash。因此,要先安装csh)

在上面的准备工作安装完成后在终端输入:

chsh

提示

正在更改root的SHELL

请输入新值,或直接敲回车键以使用默认值

登录 Shell[/bin/bash]:

输入

/bin/csh

修改bash为csh。重新启动ubuntu,并以root身份登录,打开终端,输入

#echo MYMSHELL

返回s“/bin/csh”,说明SHELL修改成功;

4)apt-get install tcsh,安装tcsh;

5)apt-get install gmt,安装gmt及其相关的软件包。

当你安装每一个软件包时,系统会为你安装和配置该软件包所必需的其他软件包,以及对本地相关软件包进行必要的升级,并建议和推荐你安装一些非必须安装的软件包。只要按要求安装即可。

TEQC目前还不能通过命令安装,可以在其官方网站下载适当的版本,并解压缩到/bin或/usr/bin等系统目录即可。

4 GAMIT/GLOBK安装、升级与配置

配置好系统后就可以安装GAMIT/GLOBK了。GAMIT/GLOBK软件的获取[6]首先到 MIT官网申请合法的ID和密码 (http://www.gpsg.mit.edu/~simon/gtgk/gtgk_download_form.html)。待审核后,相关负责人员会把ID和密码发到预留的指定邮箱里,然后按照邮件的地址到指定的FTP下载安装源程序。GAMIT/GLOBK软件更新消息会以邮件列表形式发送给用户,到指定的FTP下载更新源程序。由于该软件不断的更新,下载的软件包可能有所不同。必要软件包包括:

gamit.10.40.tar.Z Gamit源 代 码 包;com.10.40.tar.Z 组件包;libraries.10.40.tar.Z 库文件包;kf.10.40.tar.Z Globk源代码包;tables.10.40.tar.Z表格文件包;help.10.40.tar.Z帮助文件包;install_software安装脚本;install_updates升级脚本。

非必要软件包包括:

./incremental_updates 增 量 升 级 包;incremental_updates.110201.tar 2011年02月01日增量升级包;etopo5.grd.10.0.tar全球地形数据包;maps.10.1.tar.Z 地图包;example.10.40.tar.Z示例包。

4.1 安装GAMIT

在/opt目录(用于存放可选的应用程序)下建立GG的安装目录,将安装文件拷贝到该目录下。注意,该目录的名称中禁止使用“.”(点)字符,建议使用“_”作为目录名[7]。

打开终端,进入/opt/GG目录,执行install_software安装脚本,对五个问题回答“y”即可。安装过程中,Makefile.config文件内与GPS数据处理相关的重要参数[8],包括最大测站数(MAXSIT,默认值55)、最大卫星数(MAXSAT默认值32)、最大天顶延迟参数(MAXATM,默认值13)和最大历元数(MAXEPC,默认值2880),这些参数的修改不是必须的。因为,这些参数分别存储在./gamit/includes目录下的 dimpar.h(MAXSIT、MAXSAT、MAXATM)、makex.h(MAXEPC)、cview.h(NCVSIT,同MAXSIT)等文件中,在今后应用中根据需要修改即可。

4.2 升级

GAMIT/GLOBK发布以后,还不断提供增量升级包,几乎每周都有更新。升级包包含不断更新的各种表格文件、程序更新和漏洞修补文件等。

升级的步骤是:将增量升级包复制到/opt/GG目录,打开终端,进入该目录下,执行install_updates升级脚本;升级脚本搜索增量升级包,并提示“Continue?(y/n)”;输入“y”,安装脚本列出详细的升级文件,并提示 Do you want to install these changes into/opt/gamit_globk(y/n)?输入“y”,安装脚本解压缩增量升级包,提示 Do you want to remake everything from scratch (all)or only the changed modules(new)?此时先不要继续,检查Makefile.config文件中的参数是否适合你的要求;输入“new”,选择只更新修改的模块,或者输入“all”,重新编译所有模块。

4.3 配置

软件安装完成后,还要使软件能够正常使用,对“主文件夹”下的.cshrc(或.tcshrc,如果你使用tcsh)文件进行必要的配置,否则csh或者tcsh将无法在终端调用GAMIT命令进行数据解算。该文件是用户的C SHELL配置文件,默认为隐藏文件。但由于Ubuntu默认使用bash,所以,用户主目录下并没有csh的配置文件,你需要在自己的主文件夹下建立一个“.cshrc”文件,并输入如下内容:

# set prompt

set prompt= "[`echo$cwd`]%"

set history= 50

#set system path

set path= (./bin/sbin/etc/usr/bin/usr/sbin/usr/bin/X11/usr/X11R6/bin$path)

set path= (./usr/local/bin/usr/local/sbin/usr/local/lib/usr/lib$path)

setenv PATH"/usr/sbin:/sbin:${PATH}"

setenv MANPATH/usr/local/man:/usr/X11R6/man

setenv LIBPATH/usr/lib:/usr/local/lib

#set Gamit/Globk path

set gamitpath=/opt/GG

set path = (.$gamitpath/gamit/bin $gamitpath/kf/bin$gamitpath/com path)

setenv HELP_DIR $gamitpath/help/

#set GMT path

set gmtpath=/usr/lib/gmt/

set path = (.$gmtpath/bin$gmtpath/in-clude $gmtpath/lib$gmtpath/man $gmtpath/share$gmtpath/www$path)

set path = (./etc/gmt/usr/include/gmt/usr/lib/gmt/usr/share/gmt/usr/share/doc/gmt$path)

setenv MANPATH $gmtpath/man

#set full domain for GAMIT shell-scripts used to transfer data(sh_get_nav,sh_get_rinex,sh_get_orbits,and sh_get_hfiles)

set host=`\hostname|\awk-F.`{print$1}″

set dom=`\hostname|\awk-F.`{print$2}″

if($dom==')then

alias hostname'echo$host.mit.edu'

endif

# set alias

alias cd'cd\!*;set prompt= "[`echo$cwd`]%"'

alias pwd'echo$cwd'

alias ls'ls--classify'

alias ll'ls-l'

alias la'ls-a'

alias rm'rm-i'

alias mv'mv-i'

其中注意,在文件修改中有一路径的设置“set gamitpath=”这里要填自己定义的opt目录下安装文件夹名,否则将无法正常解算。其实,.cshrc和.ctshrc是用户级的C Shell配置文件,只能被某一确定的用户使用。而/etc目录下的csh.cshrc文件,是一个系统级的csh和tcsh共用的C Shell配置文件。把上面的内容加入这个文件,那么,系统中的任何一个用户,无论是使用csh还是tcsh,都可以访问这个文件实现C Shell用户环境的配置。相同级别的C Shell配置文件还包括/etc目录下的csh.login和csh.logout文件,用户可以根据自身的需要配置。

5 验证安装成功

1)运行doy命令验证

打开终端,输入一个Gamit的命令doy,如果能产生以下所示的内容,说明基本上已经安装好了[9]:

DOY:Converts various date formats

DOY:Converts various date formats.

Runstring:

%doy<jd/year> <doy/month> <day><hr> <min>

……

……

Example:doy 654W345600

Date 1992/07/23 0:00hrs,DOY 205JD 2448826.5000MJD 48826.0000

GPS Week 654Day of week 4,GPS Seconds 345600Day of Week Thu

Decimal Year 1992.55738

***TODAY***IS:

Date 2011/12/11 19:27hrs,DOY 345JD 2455907.3109MJD 55906.8109

GPS Week 1666Day of week 0,GPS Seconds 70065Day of Week Sun

Decimal Year 2011.944688

2)实例检验安装

在软 件 的/opt/gamit10.40/example目 录 下有一些实例,可以通过该文件夹下的README文档来一步步操作,进行GAMIT软件自带实例的解算[10]。整个过程无须人为干预,全部由批处理命令完成。运算最终生成每个站的图表(如psbase_pgga.BJFS)、基线长度统计base_stats_psbase_pgga等结果文件。检查/XXXX/gsoln目录,如果有这些文件,说明安装成功;如果缺少文件,可能是你的哪个步骤出现失误造成的,这时你需要重新安装。

6 结 论

在学习前人经验的基础上,在工作中不断解决工程实践所遇到的问题,探讨总结出GAMIT的安装便捷方法,减少初学者在安装软件时所走的弯路。希望对初学者有所帮助,GAMIT使用是比较复杂的,需要在实践中不断探索、交流和总结,以提高GAMIT的应用水平。

[1] 百度百科.GAMIT/GLOBK[OL].(2001-10-27)http://baike.baidu.com/view/2386420.htm.

[2] 维基百科.Ubuntu[OL].(2012-05-16).http://zh.wikipedia.org/org/wiki/Ubuntu.

[3] 刘志伟,占 伟,孟宪刚.Ubuntu系统平台的GAMIT/GLOBK 10.35安装详解 [J]全球定位系统,2009(5):53-56.

[4] 王天应,施 闯.GAMIT在PC机上的安装和使用[J].地理空间信息,2007,5(5):116-118.

[5] 武瑞宏.GAMIT软件的安装与使用[J].铁道勘察,2008,34(6):44-47.

[6] Gamit官 网 .GAMIT/GLOBK downloads[OL].(2011-11-08)http://www-gpsg.mit.edu/~simon/gtgk/down.htm.

[7] 毛 健,魏峰远.GAMIT在红旗5.0LINUX操作系统上的安装和使用[J].山西建筑,20(8),34(7):354-355.

[8] 王留朋,金慧华.GAMIT在LINUX操作系统上的安装和使用[J].全球定位系统,2005,31(6):43-46.

[9] 马洪滨,贺黎明.新版GAMIT软件的功能特点与应用实例分析[J].矿山测量,2008(4):35-39.

[10] 占 伟,武艳强,刘志广.GAMIT/GLOBK数据自处理的应用[J].测绘科学,2009,34(5):171-173.

猜你喜欢
编译器配置文件脚本
酒驾
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
从Windows 10中删除所有网络配置文件
面向理想性能空间的跨架构编译分析方法
安奇奇与小cool 龙(第二回)
用软件处理Windows沙盒配置文件
基于相异编译器的安全计算机平台交叉编译环境设计
互不干涉混用Chromium Edge
运行速度大突破华为《方舟编译器》详解
自动推送与网站匹配的脚本