高 樂,成英燕
(1.中國測繪科學研究院,北京100830;2.山東科技大學測繪學院,山東青島 266510)
隨著GPS日臻完善,GPS導(dǎo)航定位技術(shù)在航空、測繪、授時及遙感等領(lǐng)域中已得到了廣泛的應(yīng)用,精密解算GPS觀測數(shù)據(jù)的軟件也隨之得到了重視與發(fā)展。國內(nèi)外開發(fā)了很多GPS數(shù)據(jù)處理軟件,所要介紹的GAMIT/GLOBK軟件正是其中之一,還有瑞士伯爾尼大學天文研究所研制的BERNESE軟件,美國宇航局(NASA)噴氣推進實驗室(JPL)研制的GIPSY/OASIS軟件等。GAMIT/GLOBK最主要的特點是其解算精度高,且免費開放源代碼,用戶可以根據(jù)需要對源程序做相應(yīng)的修改,以便于科研工作。
Linux是一套免費使用和自由傳播的類Unix操作系統(tǒng),Linux之所以受到廣大計算機愛好者的喜愛,主要原因有兩個,一是它屬于自由軟件,用戶不用支付任何費用就可以獲得它和它的源代碼,并且可以根據(jù)自己的需要對它進行必要的修改和無約束地繼續(xù)傳播;另一個原因是,它具有Unix的全部功能,任何使用 Unix操作系統(tǒng)或想要學習Unix操作系統(tǒng)的人都可以從Linux中獲益。下面以SUSE Linux說明其安裝過程中的關(guān)鍵問題[1]。
1.1.1 分區(qū)類型
該軟件每個硬盤都有一個分區(qū)表,其中有 4個項。分區(qū)表中的一項可以對應(yīng)于一個主分區(qū)或一個擴展分區(qū)。但只允許有一個擴展分區(qū)項。主分區(qū)和擴展分區(qū)都是由一系列連續(xù)的柱面(物理磁盤區(qū)域)組成。限制每個硬盤最多具有 4個分區(qū),因為超過4個分區(qū)就不能與分區(qū)表相符,這也是使用擴展分區(qū)的原因。擴展分區(qū)本身可以再分為多個邏輯分區(qū),它是邏輯分區(qū)的容器。
1.1.2 使用YaST進行分區(qū)
如果選擇按原樣接受建議,則分區(qū)設(shè)置不會有任何改變。如果選擇基于此建議調(diào)整分區(qū)設(shè)置,則將打開專家分區(qū)工具。利用它可以精確調(diào)整分區(qū)設(shè)置。現(xiàn)在將 YaST建議的原始設(shè)置作為進行調(diào)整的基礎(chǔ)。
首次在建議窗口中選擇分區(qū)項目時,YaST分區(qū)對話框?qū)@示當前建議的分區(qū)設(shè)置。在繼續(xù)操作之前,按原樣接受這些當前設(shè)置或?qū)λ鼈冞M行更改。也可以丟棄所有這些設(shè)置,而從頭開始設(shè)置。
YaST專家分區(qū)程序?qū)υ捒蛑辛谐隽怂幸堰B接硬盤上的所有現(xiàn)有分區(qū)或建議分區(qū)。其中將整個硬盤作為不帶編號的設(shè)備列出,如/dev/hda或/dev/sda。將分區(qū)作為這些設(shè)備的一部分列出,如/dev/hda1或/dev/sda1。此外還顯示硬盤的大小、類型、文件系統(tǒng)和裝入點以及硬盤的分區(qū)。裝入點描述Linux文件系統(tǒng)樹中裝入分區(qū)的位置。
圖1 編輯分區(qū)設(shè)置
如果在安裝期間運行專家對話框,還會列出并自動選中所有可用硬盤空間。要為SUSE Linux提供更多磁盤空間,請在列表中自下而上(從硬盤的最后一個分區(qū)向上到第一個分區(qū))釋放所需空間。如果連接了多個硬盤,則會出現(xiàn)一個選擇對話框,可以在其中選擇要用于新分區(qū)的硬盤。然后,指定分區(qū)類型(主要類型和擴展類型)。圖2~5展示了創(chuàng)建分區(qū)的過程(2->3->4->5)
單擊編輯來編輯分區(qū)并設(shè)置以下關(guān)鍵參數(shù):
1)文件系統(tǒng)
要在安裝范圍內(nèi)立即格式化分區(qū),請為分區(qū)指定以下文件系統(tǒng)之一:Swap、Ext2、Ext3、ReiserFS或JFS
2)裝入點
指定應(yīng)將分區(qū)裝入文件系統(tǒng)樹中的哪個目錄。請從各個 YaST建議中選擇,或指定任何其它名稱。
如果先前選擇了包含 Windows FAT或NTFS分區(qū)的硬盤作為安裝目標,則YaST建議將該分區(qū)刪除或縮小。這樣,即使當前硬盤上沒有足夠的空間,仍可以安裝 SUSE Linux。如果所選硬盤只包含一個覆蓋整個硬盤的Window s分區(qū),則此功能尤其有用。預(yù)安裝 Windows的計算機上通常是這種情況。如果 YaST發(fā)現(xiàn)所選硬盤上沒有足夠的空間,但可以通過刪除或縮小Windows分區(qū)騰出空間。
圖6 調(diào)整分區(qū)大小
SUSE Linux中包含許多用于各種用途的軟件包。在建議窗口中單擊“軟件”打開一個對話框,然后在其中選擇一個預(yù)定義系統(tǒng)。要啟動軟件安裝模塊(包管理器)并修改安裝范圍,請單擊“細節(jié)”。如圖7(YaST包管理器)所示。
圖7 YaST包管理器
需要特別注意的是不能安裝軟件包的任意組合。要安裝的不同軟件包必須相互兼容,否則它們可能會互相影響并造成沖突,從而影響整體系統(tǒng)。因此,在此對話框中選擇或取消選擇軟件包后,可能會看到有關(guān)未解決的包依賴性或沖突的警報。因此,在YaST包管理器中進行了如下設(shè)置:過濾器關(guān)鍵詞是:“模式”,基本技術(shù)—>基礎(chǔ)系統(tǒng)—>細節(jié)—>右鍵單擊基礎(chǔ)系統(tǒng),在快捷菜單下選擇“此列表中的全部內(nèi)容”—>安裝—>接受。
LINUX系統(tǒng)的C和Fortran編譯器系統(tǒng)默認的文件選項中MAXUNIT為100,而GAMIT軟件源代碼中則要求MAXUNIT為10000。如果不進行修改而直接進行GAMIT軟件的安裝,則會產(chǎn)生很多的警告性錯誤,造成安裝后無法正常運行。因此,在安裝 GAMIT/GLOBK之前,需要用GAMIT/GLOBK特定的編譯器取代原LIUNX系統(tǒng)自帶的Gcc編譯器。Gamit軟件的安裝是在用戶目錄下進行的,因此,本人在SUSE Linux系統(tǒng)中建立了用戶帳戶gaole,而GCC編譯器的安裝是在根用戶下進行的。在SUSE Linux根用戶上安裝gcc3.4.4為例,介紹gcc的安裝步驟[2]。
1)gcc編譯器裝前須知:
安裝之前,系統(tǒng)中必須要有cc或者gcc等編譯器,并且是可用的,或者用環(huán)境變量CC指定系統(tǒng)上的編譯器。如果系統(tǒng)上沒有編譯器,不能安裝源代碼形式的gcc3.4.4。因此,在SUSE Linux中,應(yīng)用YaST包管理器選擇相關(guān)包并進行安裝。
2)gcc編譯器下載
從網(wǎng)站上(http://gcc.gnu.org)下載GCC編譯器gcc3.4.4的源代碼,可供下載的文件一般有兩種形式:gcc-3.4.4.tar.gz和 gcc-3.4.4.tar.bz2,只是壓縮格式不一樣,內(nèi)容完全一致,下載其中一種即可。
3)修改root
GCC要在 root用戶下安裝,且 root為bash,因此,進行如下設(shè)置:在 YaST — >Securing and users—>user and group mangement里修改root為/bin/bash。
4)文件解壓縮
在根用戶下,將GCC編譯器源代碼拷貝至/usr/gcc目錄下,進入該目錄,用tar_zxvf命令將其解壓后,找到gcc3.4.4/libf2c/libI77/目錄下的fio.h文件,用vi命令打開,將#define MAXUNIT 100這一行改為10000,保存后,退到/usr/gcc目錄,重新進行編譯和安裝GCC。
5)建立目標目錄
建議編譯后的文件不要放在源目錄中(雖然這樣做也可以),最好單獨存放在另外一個目錄中,而且不能是源目錄的子目錄。
輸入的命令為:#mkdir gcc_obj;#cd gcc_obj
6)覆蓋原有系統(tǒng)的gcc
輸入命令:#/usr/src/gcc-3.4.4/configureprefix=/usr/(此時的目錄為/usr/src/gcc-3.4.4_obj)。這樣,將用gcc-3.4.4覆蓋原來系統(tǒng)自帶的gcc。對原有系統(tǒng)的gcc進行覆蓋,可以省去許多麻煩的設(shè)置。
7)編譯
執(zhí)行命令:#make bootstrap,這是一個較長的過程。
8)安裝
執(zhí)行命令:#make install,運行結(jié)束后重啟系統(tǒng)。
GAMIT軟件的安裝是在用戶目錄下進行的。下面以在SUSE Linux用戶目錄上安裝Gamit 10.31為例,介紹Gamit的安裝過程[2,3,4]。
從麻省理工學院的FTP服務(wù)器(http://bowie.mit.edu)下載GAMIT軟件包,其中包括了軟件源代碼和安裝包。在 LINUX系統(tǒng)中創(chuàng)建/home/gaole/gamit目錄,將GAMIT安裝包目錄下的文件拷貝至此,其中有安裝批處理文件install_software和幾個以.tar.Z結(jié)尾的壓縮文件,以10.31版為例,有:
install_software安裝批處理文件;
com.10.2.tar.Z組件壓縮包;
gamit.10.2.tar.Z gamit軟件壓縮包;
help.10.2.tar.Z幫助系統(tǒng)壓縮包;
kf.10.2.tar.Z kf軟件壓縮包;
libraries.10.2.tar.Z庫文件壓縮包;
可選的還有:
templates.10.2.tar.Z數(shù)據(jù)模塊壓縮包;
maps.10.2.tar.Z地圖數(shù)據(jù)壓縮包。
1)YaST—>Securing and users—>user and group mangement— >/bin/csh
2)要對安裝程序的配置文件Makefile.config進行修改。
與系統(tǒng)相關(guān)的設(shè)置主要是庫文件和編譯器的路徑設(shè)置,在 SUSE Linux下設(shè)置的路徑為/home/gaole/gamit/libraries下的Makefile.config文件是安裝程序的配置文件,很多與系統(tǒng)和GAMIT相關(guān)的參數(shù)都在里面設(shè)置。將“#Specific to FC5”這一項下面的兩個X11環(huán)境前的“#”去掉,然后保存。
X11LIBPATH/usr/X11R6/lib
X11INCPATH/usr/X11R6/include/X11
與GPS數(shù)據(jù)處理相關(guān)的幾個參數(shù)可以設(shè)置為
MAXSIT最大測站數(shù)默認值50;
MAXSAT最大衛(wèi)星數(shù)默認值32;
MAXATM 最大天頂延遲參數(shù)默認值13;
MAXEPC最大歷元數(shù)默認值2880
以上幾個參數(shù)根據(jù)用戶的實際研究需要作相應(yīng)的修改。
1)由于install_software是用C shell寫的安裝腳本,所以在運行install_software前要確保命令解釋程序為C shell,且install_software具有可執(zhí)行的屬性,可用命令chmod+x為其添加可執(zhí)行屬性。執(zhí)行命令:#chmod+x install_software
做好以上準備就可以安裝軟件了,進入/usr/gamit/source目錄,執(zhí)行./install_software。在安裝中會出現(xiàn)三個問題:
①找到的X11路徑正確,此時按Y+回車。
②剛才設(shè)置的最大測站等參數(shù)時合適,此時按Y+回車,然后開始安裝。
③安裝完成Gamit后安裝GLOBK,按Y+回車即可。
2)設(shè)置軟件路徑
等待上述安裝過程結(jié)束之后,并不能正常運行GAMIT軟件,要對.cshrc/.tcshrc文件配置,否則csh將無法再終端調(diào)用GAMIT命令進行數(shù)據(jù)解算,該文件是C Shell配置文件,默認為隱藏文件。由于SUSE默認使用bash,所以用戶主目錄下并沒有該配置文件,需要自己在主文件夾下建立一個.cshrc文 件。 把 路 徑/usr/gamit/com、/usr/gamit/gamit/bin、/usr/gamit/kf/bin,加入到 path。
具體過程為
顯示隱藏文件,打開.cshrc修改,加入路徑set path=(……)等項,如:set path=(/home/gaole/gamit/com /home/gaole/gamit/gamit/bin /home/gaole/gamit/kf/bin /home/gaole/gamit/help /usr/local/bin /sbin /bin /usr/ccs/bin$path)setenv HELP_DIR home/gaole/gamit/help/
GAMIT/GLOBK軟件是高精度GPS數(shù)據(jù)處理軟件中最為經(jīng)濟,使用最廣泛的一個軟件,利用該軟件解算GPS數(shù)據(jù)需要進行如下工作[5]:
1)準備數(shù)據(jù)文件,這包括準備連續(xù)觀測臺站和全球IGS站的觀測數(shù)據(jù)文件以及IGS所提供的服務(wù)數(shù)據(jù);
2)對觀測數(shù)據(jù)進行編輯,這包括文件的分割、合并和質(zhì)量檢查;
3)應(yīng)用GAMIT軟件解算GPS數(shù)據(jù),包括設(shè)置GAMIT軟件參數(shù)并進行解算,解算完畢后檢查結(jié)果的質(zhì)量;
4)對解算結(jié)果做進一步的處理,包括數(shù)據(jù)的提取,剔除突跳點以及繪制序列圖等。
GAMIT/GLOBK具有自動批處理功能,按照上述步驟,從IGS網(wǎng)站上下載了2000年第34天BLYT 、JPLM 、LNCO、MATH 、VNDP 五個站點的數(shù)據(jù),建立工程目錄d034,在此目錄下建立brdc(保存導(dǎo)航文件brdc0340.00n)、rinex(保存觀測o文件)、tables(保存控制文件)、igs(保存精密星歷.sp3文件),使用終端運行GAMIT/GLOBK,輸入下列命令
#Csh
#Sh_gamit–extp casm–d 2000 034–noftp–orbit IGSF
用戶會在自動生成的結(jié)果目錄034中得到處理結(jié)果。Sh_gamit完成后生成ASCII碼的結(jié)果文件Q文件、完全解結(jié)果文件O文件、協(xié)方差文件H文件。
一般用以下三個標準來評價每天的結(jié)算結(jié)果[6]:
①包括所需要的所有的數(shù)據(jù);
②數(shù)據(jù)與模型的擬合在期望值內(nèi);
③認為殘差值合理。
1)從所用觀測數(shù)據(jù)檢查
大部分情況下,可以通過GAMIT的總結(jié)文件sh_gamit_ddd.summary中以及由sh_glred產(chǎn)生的單天解重復(fù)性來評價解算結(jié)果是否合理。
首先檢查是否包含所需要的所有數(shù)據(jù)??偨Y(jié)文件中“Total xfile”項應(yīng)等于 RINEX文件數(shù),如果“Number of station used”小于x文件數(shù),就說明其中有些RINEX文件建立后,在中間處理時因為數(shù)據(jù)太少又被摒棄了。
2)Gamit數(shù)據(jù)處理質(zhì)量的評價標準
GAMIT計算得到的單天解標準化均方差Post_nrms是衡量單天解質(zhì)量的主要標準之一,其值應(yīng)在0.2左右,若nrms太大,則說明處理過程中周跳可能未完全修復(fù)。
從生成的Q文件中得到的效果ITRF2000框架下的基線結(jié)果,如表1所示。
表1 基線處理結(jié)果
從表1中可看出,GAMIT/GLOBK處理數(shù)據(jù)的精度是非常高的,解算基線的相對精度可以達到10-9。
GAMIT/GLOBK軟件作為高精度GPS解算處理軟件,對于大數(shù)據(jù)量的數(shù)據(jù)處理具有運算速度快的特點,在實際工作中有著重要的作用。讀者可以根據(jù)以上步驟進行SUSE系統(tǒng)平臺與GAMIT/GLOBK軟件的安裝與運行。在實際使用中還可能遇到各種各樣的問題,想要真正地用好GAMIT/GLOBK軟件,需要在實踐中不斷地摸索與總結(jié)。
[1]ARNDT J,BEHLERT S.Suse Linux 10.0[M/OL].novell Inc,2005,http://www.novell.com/..
[2]王天應(yīng),施 闖.GAMIT在 PC機上的安裝和使用[J].地理信息空間,2007,5(5):116-118.
[3]王志強,李 軍.GAMIT使用指南[J].全球定位系統(tǒng),2002,27(2):36-39.
[4]成 樺 .在Linux操作系統(tǒng)下安裝與運行GAMIT軟件[J].計算機與信息技術(shù),2007,(4):73-77.
[5]趙桂儒.基于GAMIT軟件的GPS數(shù)據(jù)處理框架建設(shè)[D].中國地震局地震研究所,2007.
[6]黨亞民,秘金鐘,成英燕.全球?qū)Ш叫l(wèi)星系統(tǒng)原理與應(yīng)用[M].北京:測繪出版社,2007.