Ubuntu系统平台的GAMIT/GLOBK 10.35安装详解(已在《全球定位系统》2009年第5期发表)
刘志广,占 伟,孟宪刚
(中国地震局第一监测中心,天津300180)
摘 要: GAMIT/GLOBK是全球应用最广泛的GPS数据分析软件之一,多安装于Linux操作系统。由于Linux版本众多,使得该软件的安装很复杂。虽然介绍安装方法的文章很多,但是实践中仍会遇到很多问题。本文讲述了以Ubuntu桌面版构建系统平台,在有网络的支持下,安装、更新最新版GAMIT/GLOBK10.35的详细过程,并以实例检验安装是否成功。
关键词: GAMIT/GLOBK;Ubuntu;安装;更新
中图分类号:P228 文献标志码:A 文章编号:1008-9268(2009)05-0000-00
——————————————
本文要用到的GAMIT 10.35文件下载在Linux公社5 号FTP服务器
Linux公社(LinuxIDC.com) 5 号FTP服务器【关于GAMIT】资源浏览查询:
IP地址 ftp://www.linuxidc.com
端口 21
用户 ftp5.linuxidc.com
密码 www.linuxidc.com
具体下载方法见http://www.linuxidc.net/thread-1186-1-1.html 与 http://www.linuxidc.net/thread-1189-1-1.html
相关文章见 http://www.linuxidc.com/GAMIT/
——————————————
引 言
GAMIT/GLOBK是在美国国家科学基金会(NSF)的资助下,由美国麻省理工学院(MIT)、斯克里普斯海洋研究所(SIO)以及哈佛大学(HU)共同开发的免费的、开源的GPS测量分析软件,目的是应用于地壳形变研究。目前,这套软件是全球应用最广泛的GPS数据分析软件之一。
GAMIT/GLOBK可以运行于所有UNIX及其衍生的(Linux、SCO UNIX、Solaris、HP-UX、AIX)操作系统中,甚至苹果公司的MAC OSX系统中,但是需要gcc/g77、gcc/gfortran及Intel icc/ifort等编译器的支持。最新的GAMIT/GLOBK10.35于2009年6月2日发布,在上面提到的系统中均测试通过。
Linux操作系统下GAMIT/GLOBK的安装,就是一次源代码的编译。Linux版本众多,各版本往往采用不同内核,所带的编译器也不尽相同。不同编译器下,GAMIT/GLOBK的安装与配置也不尽相同。这就导致GAMIT/GLOBK显得十分复杂。并且随着硬件技术和性能的不断提升,新技术、新硬件的不断出现,必然决定操作系统和软件不断更新、升级。这就需要操作系统具有很强的兼容性,才能保证软件的可移植性。Ubuntu正是能够满足这种需求的系统。
1 Ubuntu简介
Ubuntu(发音”oo-BOON-too”–“乌班图”)是基于 Debian 之上的 Linux 系统。它囊括了大量从 Debian 发行版精挑细选的软件包,同时保留了 Debian 强大的软件包管理系统,使软件的安装或彻底删除异常简单。
2008年4月21日发布的Ubuntu 8.04版(包括桌面版和服务器版以及它们的衍生版)使用linux2.6.24-19内核,可以自由访问FAT16、FAT32及NTFS等Windows文件系统。系统自带了gcc4.2.2编译器,同时还支持gfortran4.2.2编译器。而2009年4月20日最新发布的Ubuntu 9.04使用更强大、更稳定linux2.6.28-11内核,自带了gcc4.3.3编译器,支持gfortran4.3.3编译器。
Ubuntu由马克?舍特尔沃斯创立,其首个版本于2004年10月20日发布。在2005年于伦敦举行的Linux世界论坛及会议(LinuxWorld Conference and Expo)上,Ubuntu被评为最佳Linux发行版。
2 系统要求
本文所指的系统要求是指保证GAMIT/GLOBK10.35可以正常安装、使用所需要的全部系统配置要求,包括软件和硬件两个部分。由于笔者选用了Ubuntu 8.04/9.04操作系统,而该系统几乎能够支持当前所有硬件平台,因此,硬件要求已经满足,软件的要求更简单、更具体。
2.1 gfortran4.2编译器
GAMIT/GLOBK10.35的设计者推荐Linux系统使用gfortran4.2编译器。同时,该编译器也是安装脚本(install_software)设定的默认编译器。因为gcc/gfortran4.2及以上编译器不需要你修改编译器的“最大单元数(MAXUNIT)”。Ubuntu自带了gcc编译器,但却不包含gfortran。这意味着你要安装gfortran编译器,或者指定gcc为你的编译器。虽然设计者认为gcc4.3可能存在BUG,但是笔者在安装和使用过程中并没有发现任何问题。
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壳脚本(包括sh_get_nav, sh_get_rinex, sh_get_orbits, 和 sh_get_hfiles)需要用到FTP软件下载数据。因此,你的系统中必须具备与GAMIT壳脚本兼容的FTP软件。否则,你必须将你系统中的FTP软件连接到/usr/lib/ftp。
笔者使用which ftp命令确定了系统中存在/usr/bin/ftp链接指向 /etc/alternatives/ftp链接,再指向/usr/bin/netkit-ftp,这说明Ubuntu系统中使用netkit-ftp为默认的FTP工具。但为了增强兼容性,Ubuntu又分别在/usr/bin/和/etc/alternatives/目录建立了两个链接。
GAMIT还支持NCFTP和WGET两种FTP软件。Ubuntu自带了WGET,但没有预装NCFTP。如果你想使用NCFTP,可以通过“apt-get install ncftp”命令安装它。
2.5 awk、tail 和ls
awk是一个强大的用于处理文本的编程语言工具;tail用于显示文件结尾;ls用于显示目录内容。GAMIT/GLOBK的壳脚本借住这三个工具完成文件的生成、编辑、存储及目录、文件信息的获取。用户在进行数据的批处理时,这三个工具也很重要。
笔者使用which命令确定了Ubuntu系统中使用了mawk,并为其作了与 netkit-ftp相同的的处理。tail 和ls工具使用了Linux传统的版本,因此不存在兼容问题。
2.6 gzip和gunzip
遵从Linux的现行惯例,sh_gamit壳脚本现在使用gzip和gunzip而不是compress和uncompress来压缩和加压缩文件。Ubuntu已经自带了这两个软件,并且与GAMIT/GLOBK兼容。
2.7 GMT(Generic Mapping Tools)
GMT是在美国国家科学基金会的资助下,由夏威夷大学开发的免费的、开源的绘图工具。它包含了全球的海岸线、国界、河流等地图数据,被地理学界广泛使用。GAMIT/GLOBK壳脚本调用GMT生成处理结果的图表文件。
2.9 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的安装十分简单,共七个步骤,分别为语言选择、时区设定、键盘布局设定、硬盘分区设定、账户设定、迁移文档及设置、系统安装。
GAMIT/GLOBK10.35的安装需要在Root账户下进行(普通用户的权限有限),而Ubuntu默认状态下Root账户是禁止的。这需用你开启Root账户。先以普通用户登陆,打开终端,以sudo passwd root给root账户设定一个密码,然后选择系统→系统管理→登陆窗口,修改“安全”选项“允许本地系统管理员登陆”。重新启动电脑并以Root账户登陆。
接下来输入以下命令(不分先后),完成Ubuntu的初步配置。
apt-get install gfortran,安装gfortran4.2编译器及其依赖的全部软件包;
apt-get install libx11-dev,安装 libx11-dev软件包及其依赖的全部软件包;
apt-get install csh,安装csh;
apt-get install tcsh,安装tcsh;
apt-get install gmt,安装gmt4.2及其相关的软件包。
当你安装每一个软件包时,系统会为你安装和配置该软件包所必需的其他软件包,以及对本地相关软件包进行必要的升级,并建议和推荐你安装一些非必须安装的软件包。例如,当你安装gmt时,系统会为你安装gmt必需的软件包libnetcdf4,建议你安装gmt-doc-pdf、gmt-examples和gmt-tutorial-pdf,推荐你安装gmt-coastline-data、gmt-coast-low和gmt-doc。
TEQC目前还不能通过命令安装,你可以在其官方网站下载适当的版本,并解压缩到/bin或/usr/bin等系统目录即可。
4 GAMIT/GLOBK安装、升级与配置
配置好系统后就可以安装GAMIT/GLOBK10.35了。源代码包可以在其官方FTP免费下载。由于该软件在不断的更新中,你下载的软件包可能有所不同。必要软件包包括[1-9]:
gamit.10.35.tar.Z Gamit源代码包
com.10.35.tar.Z 组件包
libraries.10.35.tar.Z 库文件包
kf.10.35.tar.Z Globk源代码包
tables.10.35.tar.Z 表格文件包
help.10.35.tar.Z 帮助文件包
install_software 安装脚本
install_updates 升级脚本
非必要软件包包括:
./incremental_updates 增量升级包
incremental_updates.090610.tar.Z 2009年6月10日增量升级包
etopo5.grd.10.0.tar 全球地形数据包
maps.10.1.tar.Z 地图包
example.10.35.tar.Z 示例包
4.1 安装
首先在/opt目录(用于存放可选的应用程序)下建立GAMIT/GLOBK的安装目录,并将安装文件拷贝到该目录下。注意,该目录的名称中禁止使用“.”(点)字符,建议使用gamit_globk作为目录名。但是,笔者曾经在该目录名中加入“.”,并未见任何异常。
打开终端,进入/opt/Gamit_Globk目录,执行install_software安装脚本,对五个问题回答“y”即可。安装过程中,Makefile.config文件内与GPS数据处理相关的重要参数,包括最大测站数(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/GLOBK10.35发布以后,还在不断提供提供增量升级包,几乎每周都有更新。升级包包含不断更新的个各种表格文件、程序更新和漏洞修补文件等。
升级的步骤是:将增量升级包复制到/opt/gamit_globk,目录打开终端,进入该目录下,执行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/gamit_globk
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/include $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’
其实,.cshrc和.ctshrc是用户级的C Shell配置文件,只能被某一确定的用户使用。而/etc目录下的csh.cshrc文件,是一个系统级的、csh和tcsh共用的C Shell配置文件。把上面的内容加入这个文件,那么,系统中的任何一个用户,无论是使用csh还是tcsh,都可以访问这个文件实现C Shell用户环境的配置。相同级别的C Shell配置文件还包括/etc目录下的csh.login和csh.logout文件,用户可以根据自身的需要配置。
5 验证实例
全部配置完成后,我们可以通过一个实例检验一下安装是否存在问题[10]。
首先在用户目录下建立一个名为test的目录,然后在该目录下建立一个名test.bat的批处理文件,并加入以下代码:
sh_get_rinex -archive sopac -yr 2008 -doy 100 -ndays 2 -sites bjfs kunm shao wuhn lhaz irkt
mkdir 100 ; mv *1000.08o 100 ; mkdir 101 ; mv *1010.08o 101
sh_setup -yr 2008 -doy 100
sh_gamit -expt pgga -d 2008 100 101 -orbit IGSF -copt x k p -dopt c ao
sh_glred -s 2008 100 2008 101 -expt pgga -opt H G E
整个过程自动完成,但需要你手动作一些配置。包括:
a 修改/opt/gamit_globk/tables/sestbl.文件,将Use otl.grid的值改为NO,禁用海洋潮汐负荷校正,将Tides applied改为23;
b 修改/opt/gamit_globk/tables/ftp_info文件,将sopac password的值改为一个任意的E-mail格式的字符串,因为sopac FTP服务器需要这样的一个字符串作为匿名登录用户的密码。
配置完成后启动终端,进入./test目录,执行test.bat命令。整个过程无须人为干预,全部由批处理命令完成。运算最终生成每个站的图表文件(如psbase_pgga.BJFS)、基线长度统计文件base_stats_psbase_pgga等结果文件。检查/test/gsoln目录,如果有这些文件,说明安装成功;如果缺少文件,可能是你的哪个步骤出现失误造成的,这时你可能需要重新安装。
6 结束语
Linux自1991年诞生以来,已经有超过100个不同版本,其中比较成熟的、广泛应用的也有十余个版本。Ubuntu起步较晚,但发展较快,稳定性强,界面友好、精美,已经习惯了Windows界面的用户可以轻松掌握Ubuntu。Ubuntu不需要复杂的安装和配置,已成为最受欢迎Linux系统。
以Ubuntu8.04构建系统平台,安装最新的GAMIT/GLOBK 10.35版,具有兼容性强、安装简便、功能强大、安全可靠、多用户并行等优点。建议GAMIT/GLOBK的初学者选用,也建议广泛推广使用。
致谢:真挚感谢美国麻省理工学院(MIT)R. W. King教授对本文所提供的指导和帮助!
参考文献
[1] 王志强,李军.GAMIT使用指南[J].全球定位系统,2002, 27(2):36-39.
[2] 程晓等.在PC机上运行GAMIT/GLOBK软件包[J].测绘通报,2003,(1):4-6.
[3] 王留朋,过静珺,金慧华等.GAMIT在LINUX操作系统上的安装和使用[J].全球定位系统,2005,30(6):43-46.
[4] 孙建,王勇.GAMIT在工程测量方面的使用技巧[J].矿山测量,2006,(1):56-59.
[5] 成桦.在Linux操作系统下安装与运行GAMIT软件[J]. 计算机与信息技术,2007,(4):73-74,77.
[6] 王天应,施闯.GAMIT在PC机上的安装和使用[J].地理空间信息,2007,5(5):116-118.
[7] 武瑞宏.GAMIT软件的安装与使用[J].铁道勘察,2008,34(6):44-47.
[8] 毛健,魏峰远.GAMIT在红旗5.0 LINUX操作系统上的安装和使用[J].山西建筑,2008,34(7):354-355.
[9] 马洪滨,贺黎明.新版GAMIT软件的功能特点与应用实例分析[J].矿山测量,2008,(4):35-39.
[10] 占伟,武艳强,刘志广. GAMIT/GLOBK数据自处理的应用[J].测绘科学,2009,34(S):171-173.
作者简介:
刘志广(1978-),男,河北迁安,助理工程师,硕士,第四纪地质学。
A detailed explanation of GAMIT/GLOBK 10.35 installation under Ubuntu
LIU Zhi-guang,ZHAN Wei
(First Crustal Monitoring and Application Center, CEA, Tianjin 300180, China)
Abstract: GAMIT/GLOBK is one of the widely used software for GPS data analysis in the world. For there so many Linux releases, it becomes complex to install GAMIT/GLOBK on your computer successfully. Although there are so many articles talking about this, it seems that you would meet many different problems in you process. This paper relates the installation and update process of GAMIT/GLOBK 10.35 under Ubuntu 8.04/9.04 LTS with network, detailedly, and also, tells you how to check the work with a simple instance.
Key words: GAMIT/GLOBK; Ubuntu; installation; update