賀蔚,董淑鵬
(武漢市政工程設計研究院有限責任公司,湖北武漢 430023)
目前國際上GPS數據處理軟件主要有美國JPL的GIPSY/OASIS及MIT的GAMIT/GLOBK,瑞士伯爾尼大學的BERN系列,國內處理精度比較好的軟件為武漢大學的PANDA軟件。BERN軟件由瑞士伯爾尼大學研制,目前即將升級到5.2版本,軟件功能十分強大,既有事后精密單點定位(PPP)模塊,又有雙差處理(RNX2SNX)模塊,此外在鐘差計算、對流層參數、電離層參數、定軌計算方面均能達到較高精度,是一款專業性能非常強大的軟件,基本上涵蓋了GPS數據處理的所有功能模塊[1~5]。
BERN 5.0軟件分Windows微機版及Unix版本,Windows版本由于所有功能已編譯,按照使用說明直接安裝到本地微機上即可使用;Unix版本需要編譯才能使用,不同的操作系統使用不同的編譯器,按照說明書找到編譯器后編譯完成即可使用。但是筆者在使用時發現,按照軟件說明書的操作進行安裝時會碰到錯誤,導致安裝執行不下去。基于此本文主要介紹了如何在Linux系統下成功安裝BERN 5.0軟件以方便初學者使用;基于目前國內CORS站網數據較多,使用相關數據處理時需分區處理耗時費事的問題,本文提出利用BERN 5.0軟件進行快速處理的方法和編譯策略[6]。
本文所述的在Linux下成功安裝的過程主要采用的操作系統為 Linux2.6.18 -164.el5 版本,c shell環境,基本編譯語言為G95。要想成功安裝BERN 5.0,必須做好必要的文件準備工作,如檢查安裝文件是否齊全;下載輔助安裝軟件,如在Linux操作系統下必須安裝QT、Perl以及Fortran 編譯器,其中,QT 需要3.0.7版本以上,Perl需要5.6版本以上,目前操作系統主要分為32位和64位,注意下載對應版本的軟件,Fortran編譯器則有F77,F90,G95等,根據不同用戶需要選擇相應編譯器。
Unix版本的BERN 5.0軟件安裝包共有8個壓縮文件,分別是 BPE.TAZ,EXAMPLE.TAZ,GPS.TAZ,ICONS.TAZ,INC.TAC,LIB.TAZ,MENU.TAZ,PGM.TAZ,以及SETUP.SH文件和一個README文件夾,內含一些說明文件,在安裝前必須檢查以上所述安裝文件是否齊全。
首先在.chsrc中設置如下環境變量:

接下來相繼運行:

即可安裝完畢。

即可成功安裝。

將路徑鏈接后就可以執行g95,而不需要重新安裝。
在準備文件安裝完畢后即可以進行BERN 5.0軟件的編譯,本文所述的軟件編譯并不是對BERN 5.0軟件操作說明書的簡單翻譯,而是對其未提及技術問題的補充,因而須結合軟件操作說明書的安裝步驟及本文所說內容進行安裝,因而普通的安裝流程將不是本文的重點,也不再贅述。
首先打開Linux終端進入安裝目錄,查看是否安裝了uncompress解壓軟件,一般Linux下不帶uncompress這個解壓軟件,解決方法一是下載安裝uncompress,另外一個方法是采用Linux下自帶的gzip解壓軟件,即打開安裝源文件SETUP.SH,把uncompress換成gzip-d源文件系統,檢查,然后在該安裝目錄下執行以下命令:sh SETUP.SH
①將會出現拷貝文件到安裝目錄的命令,等文件拷貝完成后,先不按照提示進行安裝,而選擇退出,進入$X/EXE($X代表BERN 5.0安裝路徑)目錄下修改CMPOPT.pl文件,加入g95編譯器到系統指定的編譯選項,添加的語言如下:

②輸入:

將會出現編譯窗口,再按照窗口中的提示一步步進行,就可以編譯成功當前版本的BERN 5.0。
安裝完成以后,必須將以下兩行加入.cshrc文件中去:

至此,安裝過程已基本完畢,在終端輸入G回車,即可出現bernese界面。
由于不同的用戶使用的版本可能不一樣,而BERN 5.0軟件開發小組定期對軟件進行升級和維護,要想正常使用Bern必須將當前安裝完畢的版本升級到最新版本。例如筆者安裝的軟件版本為2004-07-15,則必須將其升級到2010-02-18版本。
在軟件安裝完畢后,必須對現有的版本進行升級,去伯爾尼官方網站上下載對應時期的升級包,解壓覆蓋或安裝編譯即可。需要記住的是要按照時間順序先后解壓覆蓋,最終解壓完畢以后一起編譯,如筆者版本為2004-07-15版本,則必須依次下載2004-2010年補丁,依照時間先后順序解壓到$X目錄下。然后再運行一遍:

對源文件進行重新編譯。
同時還需要下載最新的EXAMPLE壓縮包,因為新版本的軟件支持天線帶罩子,而老版本的并不支持,所以必須更新算例。此外,還要到ftp://aiub.unibe.ch下更新GPS/GEN目錄下的一些常用參數文件,該目錄包含接收機型號、天線型號、衛星狀態信息及地球物理常數,需要及時更新到最新版本。
安裝過程中最容易遇到問題的是Fortran編譯器的使用,因為在老版本的軟件中,只列了6類操作系統和編譯軟件,很多時候都沒有對應的編譯軟件,因而在使用新機器或新的編譯器情況下,都需在CMPOPT.pl文件中加入編譯語言。
在安裝過程中,僅第一次使用sh SETUP.sh命令,將所有的文件解壓完畢拷貝當安裝目錄后,不能再執行該命令,特別是修改完CMPOPT.pl文件后切記不能運行,否則將修改的CMPOPT.pl文件覆蓋。
安裝完畢后需設置環境變量,特別是加入setenv BPE_SERVER_HOST“`uname - n`”這一行至.cshrc文件中,否則安裝的結果看似正常實則不能運行。
安裝完畢后運行程序前還須按照說明文件所述生成DEP200文件,否則安裝步驟并沒有完全。
BERN 5.0開發的BPE引擎是處理連續運行基準站(CORS)數據的利器,因為CORS站的數據設置統一,通過BPE計算可實現連續自動化。但是目前國內很多省市CORS數據已接近100站,而對于國家基準站數據,更是高達260個,如果用GAMIT計算,則需考慮分區處理,而由于BERN 5.0采用的是非差處理方式(PPP)和雙差處理方式(RNX2SNX),采用的是n-1基線組合方式,因而可通過調整源程序重新編譯使其適應更多站的計算。本文主要介紹PPP數據處理模塊進行大規模基準站網數據處理的編譯策略。
在BERN 5.0中精密單點定位(PPP)數據處理模塊采用了非差處理模式,處理精度在2 cm左右,其日常設置中最大測站數設置為100站,由于其處理采用非相關模式,因而可以進行相對擴展,進而處理大規模基準站觀測數據。根據數據計算需求,擬將其更改為最大可同時處理300個CORS站數據,在實際計算過程中,主要采用2011年第172天229個CORS站數據進行大規模網處理調試,對運行過程中出現的問題查找原因并修改源程序后編譯執行。以下為主要的源程序編譯過程:
主程序文件:M_MAXDIM.F文件中,MAXFIL變量由200改為300;CRDMRG文件中文件限制由100改為300;P_gpsest.f文件中MAXFIL變量由200改為300,如果需要計算電離層參數,還需將其擴展至900。
對于主程序,修改后編譯需執行以下命令:

在對話框出現后選擇選項“4”,即編譯源程序即可使用。
子程序文件:QBLH.f,PRIDIS.f,GPHELM.f,CORSAV.f,XYZTIM.f等文件中 MAXFIL 變量由 200 更改為300。
更改后首先打開$I/I_GPSLIB.f90文件,查看文件里面是否含有該子程序的交互定義,如果有,則需按照修改主程序的步驟進行重新編譯;如果沒有子程序的交互定義,則可采用如下方法進行編譯:

則以上修改的信息均已編譯完成,可以進行大規模就CORS站網數據處理。圖1是筆者基于PPP模式計算的229個GNSS連續運行基準站數據的統計結果,從該結果中可以看出,BERN 5.0軟件可以經過修改后可進行大規模基準站網的數據處理,共可計算229站,458個文件數據,處理結果的驗后精度為0.001 18 m滿足精度需求。且計算過程耗時不長,大約每天230站數據采用PPP模式計算的話在30 min左右就可以計算出結果。

圖1 229個CORS站數據處理統計
本文主要介紹了BERN 5.0在Linux系統下成功安裝的技術細節并對軟件說明書進行了必要補充,方便初學者在Linux系統下使用該軟件;同時基于目前國內CORS站網數據較多,使用相關數據處理時需分區處理,耗時費事的問題根據筆者實際應用過程中的經驗,給出Linux系統下進行大規模CORS站網數據處理策略和編譯方法。
[1]顧國華.GNSS科學發展與前景[J].全球定位系統,2008,33(4):1 ~6.
[2]張彩紅,朱波,張黎.應用Bernese軟件進行高精度GPS定位解算[J].測繪信息與工程,2006,31(3):8~9.
[3]李志才,武軍酈,張鵬等.基于BERN 5.0軟件計算的北京地區GPS可降水量研究[J].全球定位系統,2008,6,1 ~5.
[4]譚建冬,師倩.基于BERN 5.0軟件GPS動態單歷元計算的初步探討[J].礦山測量,2009(04):67~69.
[5]李志才,張鵬,蔣志浩等.基于單歷元方法研究汶川8.0級地震對中國大陸的同震變形影響[J].測繪科學,2009(05):49~51.
[6]Rolf Dach,Urs Hugentobler,Pierre Fridez,Michael Meindl.Bernese GPS Software Version 5.0[R].2007.