王國舉,尤寶平
(海軍大連艦艇學(xué)院,遼寧 大連116000)
GAMIT/GLOBK高精度數(shù)據(jù)處理軟件主要用于分析研究地殼變形、高精度GPS測量數(shù)據(jù)處理等。GAMIT是在美國國家科學(xué)基金會(NSF)的資助下,由美國麻省理工學(xué)院(MIT)、斯克里普斯海洋研究所(SIO)以及哈佛大學(xué)(HU)共同開發(fā)的免費(fèi)的、開源的GPS測量分析軟件[1]。目前,這套軟件是全球應(yīng)用最廣泛的GPS數(shù)據(jù)分析軟件之一。
Linux操作系統(tǒng)下GAMIT/GLOBK的安裝就是一次源代碼的編譯。Linux版本眾多,各版本往往采用不同內(nèi)核,所帶的編譯器也不盡相同。不同編譯器下,GAMIT/GLOBK的安裝與配置也不盡相同。GAMIT/GLOBK顯得十分復(fù)雜。并且隨著硬件技術(shù)和性能的不斷提高,操作系統(tǒng)和軟件也不斷更新、升級。這就需要操作系統(tǒng)具有很強(qiáng)的兼容性,才能保證軟件的可移植性。而Ubuntu能夠滿足這種需求的系統(tǒng)。
Ubuntu是一個(gè)以桌面應(yīng)用為主的GNU/Linux操作系統(tǒng)。Ubuntu基于Debian發(fā)行版和GNOME桌面環(huán)境,與Debian的不同在于每6個(gè)月會發(fā)布一個(gè)新版本。它囊括了大量從Debian發(fā)行版精挑細(xì)選的軟件包,同時(shí)保留了Debian強(qiáng)大的軟件包管理系統(tǒng),使軟件的安裝或徹底刪除異常簡單。
因?yàn)閁buntu系統(tǒng)技術(shù)支持時(shí)間有限,所以在安裝Ubuntu系統(tǒng)過程中盡量選擇較新版本,否則將無法安裝GAMIT所需的編譯語言與相關(guān)軟件。Ubuntu各種版本技術(shù)支持時(shí)間可參閱其官網(wǎng)發(fā)布信息,這里不再贅述。所采用的UBuntu版本為10.10[2]。
系統(tǒng)要求是指保證GAMIT/GLOBK10.40可以正常安裝。使用所需要的全部系統(tǒng)配置要求,包括軟件和硬件兩個(gè)部分。由于選用了Ubuntu 10.10操作系統(tǒng),而該系統(tǒng)幾乎能夠支持當(dāng)前所有硬件平臺,因此,硬件要求已經(jīng)滿足,軟件的要求則是配置GAMIT安裝所需要的編譯環(huán)境。具體的需求[3]如下.
gfortran是GCC中的GNU Fortran編譯器。從GCC4.0版開始,gfortran取代了g77成為GCC中的fortran編譯器。GAMIT/GLOBK的設(shè)計(jì)者推薦Linux系統(tǒng)使用gfortran編譯器。同時(shí),該編譯器也是安裝腳本(install_software)設(shè)定的默認(rèn)編譯器。
libx11-dev是X11(X Window)的客戶庫(X11 client-side library)。該軟件包包含了全部的 X11應(yīng)用編程接口(API)基本函數(shù)。其中,libX11.a(chǎn)和Xlib.h是GAMIT/GLOBK所必須依賴的兩個(gè)庫文件,主要為GLOBK圖形提供庫支持。Ubuntu的默認(rèn)配置不包含該軟件包。
SHELL是所謂的命令解譯器,俗稱“殼”。GAMIT/GLOBK的命令必須由csh或tcsh來解譯。tcsh是csh的增強(qiáng)版,并且完全兼容csh.它不但具有csh的全部功能,還具有命令行編輯、拼寫校正、可編程字符集、歷史紀(jì)錄、作業(yè)控制等功能,以及C語言風(fēng)格的語法結(jié)構(gòu)。建議使用tcsh,但是,Ubuntu的默認(rèn)配置不包含任何C SHELL.
用來傳輸數(shù)據(jù)的GAMIT解算時(shí)需要下載的精密星歷、廣播星歷和IGS框架站的觀測文件。因此,系統(tǒng)中必須具備與GAMIT殼腳本兼容的FTP軟件。否則,必須將系統(tǒng)中的FTP軟件連接到/usr/lib/ftp.
GMT是一款專用于繪制地圖的軟件,在美國國家科學(xué)基金會的資助下,由夏威夷大學(xué)開發(fā)的免費(fèi)的、開源的繪圖工具。它包含了全球的海岸線、國界、河流等地圖數(shù)據(jù),被地理學(xué)界廣泛使用。GAMIT/GLOBK殼腳本調(diào)用GMT生成處理結(jié)果的圖表文件。
TEQC讀作“tek”,是由美國 UNAVCO Facility開發(fā)的GPS數(shù)據(jù)預(yù)處理軟件,功能包括“translation,editing,and quality check”(TEQC),即GPS數(shù)據(jù)的格式轉(zhuǎn)換、編輯和質(zhì)量檢查。sh_make_rinex殼腳本調(diào)用TEQC將各種原始數(shù)據(jù)轉(zhuǎn)換成RINEX格式的數(shù)據(jù)。TEQC可以從UNAVCO Facility的官方網(wǎng)站免費(fèi)下載。目前提供給Linux系統(tǒng)使用的TEQC包括64位動態(tài)和32位靜態(tài)、動態(tài)三個(gè)版本。
Ubuntu的安裝盤可以通過從其官方網(wǎng)站免費(fèi)下載。推薦Ubuntu安裝在Windows系統(tǒng)操作環(huán)境下運(yùn)行虛擬機(jī)VMWare中進(jìn)行,將Ubuntu操作系統(tǒng)像款軟件一樣在windows中運(yùn)行。虛擬機(jī)選擇NAT方式與 Windows系統(tǒng)共享網(wǎng)絡(luò),使Ubuntu系統(tǒng)也可以簡單地連接互聯(lián)網(wǎng)。好處是簡化了系統(tǒng)安裝步驟,避免因切換系統(tǒng)與數(shù)據(jù)交換而帶來的不便,提高數(shù)據(jù)解算的效率。具體安裝方法略去。
GAMIT/GLOBK10.40的安裝需要在 Root賬戶下進(jìn)行(普通用戶的權(quán)限有限),而Ubuntu默認(rèn)狀態(tài)下Root賬戶是禁止的。這需要你開啟Root賬戶。先以普通用戶登陸,打開終端,以sudo passwd root給root賬戶設(shè)定一個(gè)密碼,然后選擇系統(tǒng)→系統(tǒng)管理→登陸窗口,修改“安全”選項(xiàng)“允許本地系統(tǒng)管理員登陸”。重新啟動電腦并以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系統(tǒng)沒有csh,默認(rèn)為bash。因此,要先安裝csh)
在上面的準(zhǔn)備工作安裝完成后在終端輸入:
chsh
提示
正在更改root的SHELL
請輸入新值,或直接敲回車鍵以使用默認(rèn)值
登錄 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及其相關(guān)的軟件包。
當(dāng)你安裝每一個(gè)軟件包時(shí),系統(tǒng)會為你安裝和配置該軟件包所必需的其他軟件包,以及對本地相關(guān)軟件包進(jìn)行必要的升級,并建議和推薦你安裝一些非必須安裝的軟件包。只要按要求安裝即可。
TEQC目前還不能通過命令安裝,可以在其官方網(wǎng)站下載適當(dāng)?shù)陌姹?,并解壓縮到/bin或/usr/bin等系統(tǒng)目錄即可。
配置好系統(tǒng)后就可以安裝GAMIT/GLOBK了。GAMIT/GLOBK軟件的獲?。?]首先到 MIT官網(wǎng)申請合法的ID和密碼 (http://www.gpsg.mit.edu/~simon/gtgk/gtgk_download_form.html)。待審核后,相關(guān)負(fù)責(zé)人員會把ID和密碼發(fā)到預(yù)留的指定郵箱里,然后按照郵件的地址到指定的FTP下載安裝源程序。GAMIT/GLOBK軟件更新消息會以郵件列表形式發(fā)送給用戶,到指定的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全球地形數(shù)據(jù)包;maps.10.1.tar.Z 地圖包;example.10.40.tar.Z示例包。
在/opt目錄(用于存放可選的應(yīng)用程序)下建立GG的安裝目錄,將安裝文件拷貝到該目錄下。注意,該目錄的名稱中禁止使用“.”(點(diǎn))字符,建議使用“_”作為目錄名[7]。
打開終端,進(jìn)入/opt/GG目錄,執(zhí)行install_software安裝腳本,對五個(gè)問題回答“y”即可。安裝過程中,Makefile.config文件內(nèi)與GPS數(shù)據(jù)處理相關(guān)的重要參數(shù)[8],包括最大測站數(shù)(MAXSIT,默認(rèn)值55)、最大衛(wèi)星數(shù)(MAXSAT默認(rèn)值32)、最大天頂延遲參數(shù)(MAXATM,默認(rèn)值13)和最大歷元數(shù)(MAXEPC,默認(rèn)值2880),這些參數(shù)的修改不是必須的。因?yàn)?,這些參數(shù)分別存儲在./gamit/includes目錄下的 dimpar.h(MAXSIT、MAXSAT、MAXATM)、makex.h(MAXEPC)、cview.h(NCVSIT,同MAXSIT)等文件中,在今后應(yīng)用中根據(jù)需要修改即可。
GAMIT/GLOBK發(fā)布以后,還不斷提供增量升級包,幾乎每周都有更新。升級包包含不斷更新的各種表格文件、程序更新和漏洞修補(bǔ)文件等。
升級的步驟是:將增量升級包復(fù)制到/opt/GG目錄,打開終端,進(jìn)入該目錄下,執(zhí)行install_updates升級腳本;升級腳本搜索增量升級包,并提示“Continue?(y/n)”;輸入“y”,安裝腳本列出詳細(xì)的升級文件,并提示 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)?此時(shí)先不要繼續(xù),檢查Makefile.config文件中的參數(shù)是否適合你的要求;輸入“new”,選擇只更新修改的模塊,或者輸入“all”,重新編譯所有模塊。
軟件安裝完成后,還要使軟件能夠正常使用,對“主文件夾”下的.cshrc(或.tcshrc,如果你使用tcsh)文件進(jìn)行必要的配置,否則csh或者tcsh將無法在終端調(diào)用GAMIT命令進(jìn)行數(shù)據(jù)解算。該文件是用戶的C SHELL配置文件,默認(rèn)為隱藏文件。但由于Ubuntu默認(rèn)使用bash,所以,用戶主目錄下并沒有csh的配置文件,你需要在自己的主文件夾下建立一個(gè)“.cshrc”文件,并輸入如下內(nèi)容:
# 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_h(yuǎn)files)
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'
其中注意,在文件修改中有一路徑的設(shè)置“set gamitpath=”這里要填自己定義的opt目錄下安裝文件夾名,否則將無法正常解算。其實(shí),.cshrc和.ctshrc是用戶級的C Shell配置文件,只能被某一確定的用戶使用。而/etc目錄下的csh.cshrc文件,是一個(gè)系統(tǒng)級的csh和tcsh共用的C Shell配置文件。把上面的內(nèi)容加入這個(gè)文件,那么,系統(tǒng)中的任何一個(gè)用戶,無論是使用csh還是tcsh,都可以訪問這個(gè)文件實(shí)現(xiàn)C Shell用戶環(huán)境的配置。相同級別的C Shell配置文件還包括/etc目錄下的csh.login和csh.logout文件,用戶可以根據(jù)自身的需要配置。
1)運(yùn)行doy命令驗(yàn)證
打開終端,輸入一個(gè)Gamit的命令doy,如果能產(chǎn)生以下所示的內(nèi)容,說明基本上已經(jīng)安裝好了[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)實(shí)例檢驗(yàn)安裝
在軟 件 的/opt/gamit10.40/example目 錄 下有一些實(shí)例,可以通過該文件夾下的README文檔來一步步操作,進(jìn)行GAMIT軟件自帶實(shí)例的解算[10]。整個(gè)過程無須人為干預(yù),全部由批處理命令完成。運(yùn)算最終生成每個(gè)站的圖表(如psbase_pgga.BJFS)、基線長度統(tǒng)計(jì)base_stats_psbase_pgga等結(jié)果文件。檢查/XXXX/gsoln目錄,如果有這些文件,說明安裝成功;如果缺少文件,可能是你的哪個(gè)步驟出現(xiàn)失誤造成的,這時(shí)你需要重新安裝。
在學(xué)習(xí)前人經(jīng)驗(yàn)的基礎(chǔ)上,在工作中不斷解決工程實(shí)踐所遇到的問題,探討總結(jié)出GAMIT的安裝便捷方法,減少初學(xué)者在安裝軟件時(shí)所走的彎路。希望對初學(xué)者有所幫助,GAMIT使用是比較復(fù)雜的,需要在實(shí)踐中不斷探索、交流和總結(jié),以提高GAMIT的應(yīng)用水平。
[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系統(tǒng)平臺的GAMIT/GLOBK 10.35安裝詳解 [J]全球定位系統(tǒng),2009(5):53-56.
[4] 王天應(yīng),施 闖.GAMIT在PC機(jī)上的安裝和使用[J].地理空間信息,2007,5(5):116-118.
[5] 武瑞宏.GAMIT軟件的安裝與使用[J].鐵道勘察,2008,34(6):44-47.
[6] Gamit官 網(wǎng) .GAMIT/GLOBK downloads[OL].(2011-11-08)http://www-gpsg.mit.edu/~simon/gtgk/down.htm.
[7] 毛 健,魏峰遠(yuǎn).GAMIT在紅旗5.0LINUX操作系統(tǒng)上的安裝和使用[J].山西建筑,20(8),34(7):354-355.
[8] 王留朋,金慧華.GAMIT在LINUX操作系統(tǒng)上的安裝和使用[J].全球定位系統(tǒng),2005,31(6):43-46.
[9] 馬洪濱,賀黎明.新版GAMIT軟件的功能特點(diǎn)與應(yīng)用實(shí)例分析[J].礦山測量,2008(4):35-39.
[10] 占 偉,武艷強(qiáng),劉志廣.GAMIT/GLOBK數(shù)據(jù)自處理的應(yīng)用[J].測繪科學(xué),2009,34(5):171-173.