2021-05-12 14:32:11
在Linux作業系統下安裝與執行GAMIT軟體
本文主要介紹了Linux作業系統中GAMIT的安裝過程,並結合範例介紹了其使用方法。
1、引言
隨著GPS技術的發展,在大地測量、工程測量、地球動力學、GPS氣象學等多種學科中得到廣泛的應用,精密解算GPS觀測資料的軟體也得到了重視與發展。國內外開發了許多GPS資料處理軟體,主要有著名的美國麻省理工學院(MIT)和斯克里普斯海洋研究所(SIO)開發的GAMIT軟體,美國宇航局(NASA)噴氣推進實驗室(JPL)研發的GIPSY-OASIS軟體,以及瑞士伯爾尼大學天文研究所研製的BERNESE軟體等幾種。本文主要介紹GAMIT軟體,其最主要的特點是其解算精度高,且免費開放原始碼,使用者可以根據需要對源程式做相應的修改,以便於科研工作。
2、GAMIT簡介
GAMIT可以解算衛星軌道、測站坐標、大氣延遲、整周模糊度等。它主要由以下幾個模組組成:ARC(軌道積分)、MODEL(組成觀測方程)、SINCLN(單差自動修復周跳)、DBLCLN(雙差自動修復周跳)、CVIEW(人工互動式修復周跳)、CFMRG(用於建立SOLVE所需的M檔案)、SOLVE(利用雙差觀測按最小二乘法求解引數)。
GAMIT軟體所需的資料是RINEX格式的,可以處理各種不同型號的GPS接收機採集的資料。目前,GAMIT軟體支援在UNIX和LINUX作業系統上執行,本文以GAMIT 10.2和LINUX RedHat 9.0為例來講解其安裝與使用過程。
3、軟體的安裝
3.1 LINUX系統的安裝
首先確保電腦上有足夠的空間來安裝LINUX,在這推薦至少有10G的空閒空間。LINUX系統的安裝可選擇從光碟安裝,硬碟安裝或網路安裝,一般選擇從光碟安裝。在光碟機中插入安裝光碟,從光碟引導後,根據安裝嚮導的提示,就能完成LINUX系統的安裝。
3.2 LINUX編譯器的更新
LINUX系統的C和Fortran編譯器系統預設的檔案選項中MAXUNIT為100,而GAMIT軟體原始碼中則要求MAXUNIT為10000。如果不進行修改而直接進行GAMIT軟體的安裝,則會產生很多的警告性錯誤,造成安裝後無法正常執行。安裝GCC的步驟如下:使用者可以從網站上(http://gcc.gnu.org)下載GCC編譯器2.95.3或以上版本的原始碼,拷貝至/usr/gcc目錄下,進入該目錄,用tar zxvf 命令將其解壓後,找到gcc-2.95.3/libf2c/libI77/目錄下的fio.h檔案,用vi命令開啟,將#define MAXUNIT 100這一行改為10000,儲存後,退到/usr/gcc目錄,重新進行編譯和安裝GCC。
3.3 GAMIT系統的安裝
從麻省理工學院的FTP伺服器(http://bowie.mit.edu)下載GAMIT軟體包,其中包括了軟體原始碼和安裝包。在LINUX系統中建立/usr/gamit目錄,將GAMIT安裝包目錄/source下的檔案拷貝至此,其中有安裝批次檔install_software和幾個以.tar.Z結尾的壓縮檔案,以10.2版為例,分別為:
install_software 安裝批次檔
com.10.2.tar.Z 元件壓縮包
gamit.10.2.tar.Z gamit軟體壓縮包
help.10.2.tar.Z 幫助系統壓縮包
kf.10.2.tar.Z kf軟體壓縮包
libraries.10.2.tar.Z 庫檔案壓縮包
templates.10.2.tar.Z 資料模組壓縮包
maps.10.2.tar.Z 地圖資料壓縮包
在安裝軟體前,要做一些相關設定。首先,要對安裝程式的組態檔Makefile.config進行修改。與系統相關的設定主要是庫檔案和編譯器的路徑設定,在linux redhat 9.0下設定的路徑為:
X11LIBPATH /usr/X11R6/lib
X11INCPATH /usr/X11R6/include/X11
與GPS資料處理相關的幾個引數為:
MAXSIT 最大測站數 預設值45
MAXSAT 最大衛星數 預設值30
MAXATM 最大天頂延遲引數 預設值49
MAXEPC 最大曆元數 預設值2880
以上幾個引數可根據使用者的實際研究需要作相應的修改。其次,由於install_software是用C shell寫的安裝指令碼,所以在執行install_software前要確保命令解釋程式為C shell,且install_software具有可執行的屬性,可用命令chmod +x為其新增可執行屬性。
做好這些準備就可以安裝軟體了,進入/usr/gamit目錄,執行命令./install_software,然後根據螢幕給出的提示給予回應,就可以完成安裝。
3.4 設定軟體路徑
等待上述安裝過程結束之後,並不能正常執行GAMIT軟體,要對.cshrc檔案設定。把路徑/usr/gamit/com、/usr/gamit/gamit/bin、/usr/gamit/kf/bin,加入到path。這樣做是因為我們在控制台中執行程式時,使用的是bash shell,若不改寫C shell組態檔,會導致系統無法從路徑中呼叫到GAMIT的命令。這樣GAMIT軟體才算真正地完成了安裝。
4、執行範例
本文選取了2006年,年積日為100天的安徽黃山(ahhs)、安徽馬鞍山(ahma)、江蘇常州(jscz)、江蘇高郵(jsgy)、上海奉先(shfx)、上海浦東(shpd)6個國內的GPS觀測站的觀測資料。
4.1 資料準備
建立rinex、eph、tables目錄和以年積日100命名的工作目錄。在rienx目錄中準備該天的所選用的各個觀測站的觀測檔案o-files。在eph目錄中準備導航檔案auto1000.06n,GPS衛星星曆igu13701.sp3,極移表pole.,TAI-UT1國際時間系統表ut1.,壞衛星資訊檔案svs_exclude.txt。在tables中建立:測站資訊檔案station.info,測段資訊控制檔案sestbl., 測站資訊控制檔案sittbl.,天線相位中心改正表antmod,dat,周跳的自動探測和修改命令表autcln.cmd,地球形狀參數列gdetic.dat,跳秒表leap.sec,月亮表luntab.,章動表nutabl.,太陽表soltab.,星號對照表svnav.dat,接收機及其天線型號對照表rcvan.dat。
上述的檔案,可以在網站(ftp://lox.ucsd.edu)下載2006年底100天的衛星星曆,以及2005年的太陽表、月亮表和章動表(這些表每年都要更新,因此要下載所處理資料當年的),其餘的檔案在安裝GAMIT時是自帶的,複製到對應的資料夾下即可。需要注意的是, station.info, sestbl., sittbl.這三個檔案,應該根據實際處理的情況做相應的修改。
編輯station.info檔案:首先開啟o-files,記錄每個選用台站的X、Y、Z方向的高度和接收機型號、天線型號,然後來校正station.info檔案中的資料,以求每一個站都有正確的天線高度等資訊。開始和結束時間形如:0 0 0 0 24 0 0,則天線資訊不僅適用於這一天,而且適用於以後的天,直到有更新的資訊。同一站的資訊可以出現多次,但不必相鄰,但必須是按時間先後順序排列的。
編輯sestbl.檔案:檔案選擇計算方案和設定與計算方案相應的引數。主要設定下面幾項:
A、Choice of Experiment
RELAX:定軌、定位、解ERP;
BASELINE:僅僅定位。
B、Choice of Observable
LC_HELP:用LC觀測解模糊度;
LC_RANGE:用LC觀測模糊度,但更強調偽距的作用;
LC_ONLY:用LC觀測,不解模糊度;
L1_ONLY:僅僅使用L1,解模糊度,對於幾公里的小網;
L2_ONLY:僅僅使用L2,解模糊度,對於幾公里的小網;
C、Zenith Delay Estimation
YES:解算天頂延遲估計;
NO:不解算天頂延遲估計。
D、Interval Zen
解算天頂延遲引數的時間間隔。
編輯sittbl.檔案:首先檢查是否包括每個選用測站的資訊,缺少的資訊要補全,然後對每一個站設定先驗約束。這裡主要是對台站在X、Y、Z方向擺動的作限制。
4.2 資料處理步驟
(1)用ln命令連結../rinex,../eph,../tables內的檔案到work;
(2)執行makexp程式建立所有準備檔案的輸出及一些模組的輸入檔案。系統會提示讓輸入試驗名、軌道名、year、doy、session number、概略坐標檔案、導航檔名,系統還會提示輸入取樣間隔、起始時間、歷元數。這樣,我們依次輸入pgga,pgga,2006,100,0,lpgga,auto1000.06n,60 0 0 1440即可。
(3)sh_sp3fit –-f igu13701_18.sp3 –-d 2006 099 100 –-t tpgga6.100
並將生成的*.099檔案改名為*.100
(4)makej auto1000.06n jauto6.100
(5)makex pgga.
(6)fixdrv dpgga6.100
(7)csh b*.bat
以上pgga為工程名稱,可以根據需要進行替換。
4.3 資料處理結果分析
此次資料處理例子是解算對流層天頂延遲的。結算的精度與可靠性主要看兩個方面:
(1)是否使用了足夠的資料。所得基線分量的精度是衡量這個標準是否滿足的標誌。此例中基線邊解算精度的統計如表1所示。
由表1可以看到,GAMIT解算得到的基線相對精度均優於對台站坐標和衛星軌道所加的約束10-3。
(2)對資料的擬合模型是否達到它的噪聲水平。滿足這個條件的判據是解的nrms(normalized rms),即每個自由度的chi-square的平方根。其理論值是1,但實際上這個值在0.25左右才算正常,本例中nrms=0.28。如果這個值大於0.5,則意味著有殘餘的周跳,或是有嚴重的其它問題。
表 1
基線邊 |
基線長(m) |
精度(m) |
相對精度 |
AHHS- AHMA |
221380.31016 |
0.00386 |
1.74×10-8 |
AHHS- JSCZ |
288514.33161 |
0.00344 |
1.19×10-8 |
AHHS- JSGY |
358731.77533 |
0.00354 |
0.99×10-8 |
AHHS- SHFX |
335520.06794 |
0.00456 |
1.36×10-8 |
AHHS- SHPD |
355131.54150 |
0.00496 |
1.40×10-8 |
AHMA- JSCZ |
139674.63390 |
0.00490 |
3.51×10-8 |
AHMA- JSGY |
149475.83358 |
0.00417 |
2.79×10-8 |
AHMA- SHFX |
294612.54009 |
0.00580 |
1.97×10-8 |
AHMA- SHPD |
293058.38336 |
0.00645 |
2.20×10-8 |
JSCZ- JSGY |
114012.99629 |
0.00343 |
3.01×10-8 |
JSCZ- SHFX |
176465.95374 |
0.00508 |
2.88×10-8 |
JSCZ- SHPD |
165474.09440 |
0.00610 |
3.69×10-8 |
JSGY- SHFX |
281897.78401 |
0.00498 |
1.77×10-8 |
JSGY- SHPD |
264050.84049 |
0.00603 |
2.28×10-8 |
SHFX- SHPD |
32751.45431 |
0.00630 |
1.92×10-7 |
5、結論
讀者可以根據以上的步驟進行GAMIT軟體的安裝與執行,不同的硬體設定,處理結果可能有微小的差異。從以上可以得到結論,GAMIT在LINUX系統上的處理結果是可靠的。然而,GAMIT為一複雜的GPS處理軟體,在實際使用時,會遇到各種各樣的問題,這就需要在實踐中不斷地摸索總結,這樣,才能熟練掌握它。
相關文章