趙國強,董偉
(1.中國地震局地震預測研究所,北京 100036; 2. 中鐵第四勘察設(shè)計院集團有限公司,湖北 武漢 430063)
國際GNSS服務(wù)(IGS)數(shù)據(jù)自動下載與管理
趙國強1*,董偉2
(1.中國地震局地震預測研究所,北京 100036; 2. 中鐵第四勘察設(shè)計院集團有限公司,湖北 武漢 430063)
系統(tǒng)詳細介紹了國際GNSS服務(wù)(IGS)數(shù)據(jù)自動下載與管理系統(tǒng)的實現(xiàn)方法及相關(guān)知識,主要包括下載數(shù)據(jù)站點介紹、FTP工具測試、數(shù)據(jù)自動下載程序設(shè)計以及程序功能穩(wěn)定性測試等,旨在為相關(guān)行業(yè)及工作人員提供一個穩(wěn)定、高效的數(shù)據(jù)自動下載方案,解決在數(shù)據(jù)下載中碰到的實際問題,提高工作效率。
IGS ;FTP ;GPS ;數(shù)據(jù)下載
當前,全球定位系統(tǒng)[1](以下簡稱“GPS”)在我國國民經(jīng)濟建設(shè)各個領(lǐng)域發(fā)揮著越來越重要的作用。GPS的基本原理是接收機接收衛(wèi)星信號,生成觀測數(shù)據(jù),通過數(shù)據(jù)處理獲得位置等相關(guān)參數(shù)。隨著GPS在我國的蓬勃發(fā)展,觀測獲得大量的GPS觀測數(shù)據(jù),因此數(shù)據(jù)處理始終是這個行業(yè)人員要從事的一項日常性工作,尤其是高精度GPS數(shù)據(jù)處理,人工干預程度更高。在做高精度GPS數(shù)據(jù)處理時,通常首要工作是下載精密星歷產(chǎn)品、表文件以及中間計算文件等。另外,目前國內(nèi)建立了很多GPS數(shù)據(jù)中心,匯集、保存以及管理國際GPS數(shù)據(jù)及產(chǎn)品是數(shù)據(jù)中心的主要功能之一。因此,如何穩(wěn)定、高效、自動化的匯集國際相關(guān)GPS數(shù)據(jù)及產(chǎn)品,是數(shù)據(jù)處理,尤其是高精度數(shù)據(jù)處理的一個重要環(huán)節(jié)和技術(shù)問題。
本文介紹了國際上主流的數(shù)據(jù)下載站點及其內(nèi)容,評測了三種數(shù)據(jù)下載工具的優(yōu)劣,描述了國際GNSS服務(wù)(IGS)數(shù)據(jù)自動下載與管理系統(tǒng)的實現(xiàn)方法,最后對該系統(tǒng)進行了測試及評估,旨在為相關(guān)行業(yè)及工作人員提供一個穩(wěn)定、高效的數(shù)據(jù)自動匯集方案,解決在數(shù)據(jù)下載中碰到的實際問題,省去工作人員在數(shù)據(jù)下載這個環(huán)節(jié)可能會進行的一些重復嘗試,提高工作效率。
2.1 FTP站點
國際GNSS服務(wù)[2]簡稱IGS,是一個由200多個國際機構(gòu)自發(fā)組成的非盈利性民間組織,這些國際機構(gòu)源源不斷地將連續(xù)運行的GPS以及GLONASS基準站觀測數(shù)據(jù)匯集至IGS數(shù)據(jù)中心,隨后IGS通過解算獲得高精度的產(chǎn)品。IGS致力于向各行各業(yè)無償提供高質(zhì)量的觀測數(shù)據(jù)及產(chǎn)品,這些數(shù)據(jù)及產(chǎn)品已經(jīng)成為全球衛(wèi)星導航定位系統(tǒng)(GNSS)領(lǐng)域的行業(yè)標準,用于支持地學研究、多學科交叉應用以及科研教學的發(fā)展。在做高精度GPS數(shù)據(jù)處理時,必須要用到IGS提供的數(shù)據(jù)和產(chǎn)品,這些數(shù)據(jù)和產(chǎn)品可以從IGS官網(wǎng)發(fā)布的IGS數(shù)據(jù)分中心站點以匿名用戶的身份下載獲得,用戶無需注冊或登記。值得慶賀的是,2014年底,武漢大學成為全球第5個IGS數(shù)據(jù)分中心,這將大大滿足國內(nèi)用戶下載IGS數(shù)據(jù)的需求,徹底改變我國用戶完全依賴國外IGS數(shù)據(jù)中心的現(xiàn)狀,并且使國內(nèi)用戶下載IGS數(shù)據(jù)的速度從過去10 Kb/s左右提升至峰值 1 Mb/s左右,速度提高近100倍。除此之外,還有一些其他的國際機構(gòu),也提供相應的GPS數(shù)據(jù)及產(chǎn)品,如表1所示。
為測定表1中各站點的數(shù)據(jù)下載穩(wěn)定性,設(shè)計了1套數(shù)據(jù)下載方案,即利用Linux自帶的下載工具ftp,下載表1各站點的精密星歷(igs18161.sp3.Z)和鐘差文件(igs18161.clk.Z),大小約 1.3 Mb,從2015年4月1日~2015年4月30日,每天上午10:00開始下載1次這兩個文件,并記錄每日的數(shù)據(jù)下載狀況,測試結(jié)果見表1。由于UNAVCO[3]不提供精密星歷,因此以下載觀測數(shù)據(jù)代替進行測試。通過表1測試結(jié)果可以得出如下結(jié)論:下載國外站點數(shù)據(jù)整體不穩(wěn)定,時斷時續(xù),但可以滿足日常下載的需求。武漢大學IGS中國數(shù)據(jù)中心無論在下載穩(wěn)定性、網(wǎng)絡(luò)可靠性以及下載速度上,都表現(xiàn)出色,在下載數(shù)據(jù)時,應首選該站點。
國際FTP站點 表1
2.2 FTP工具
大量的、日常性的、自動化的通過FTP方式下載數(shù)據(jù),通常情況都是在Linux系統(tǒng)下實現(xiàn),因此本文主要介紹Linux下的FTP工具。由于Linux版本眾多,本文以在 Ubuntu10.04.4 LTS系統(tǒng)環(huán)境下為例進行說明。
ftp,是Linux系統(tǒng)自帶的一個下載工具,不需要安裝,沒有界面,直接在終端輸入ftp即可使用。
lftp[4],是一個功能強大的數(shù)據(jù)下載工具,它支持FTP、SFTP和FTPS等文件訪問協(xié)議。lftp沒有圖形界面,純命令行方式進行操作,風格和SHELL類似,具有命令補全、顯示下載進度、歷史記錄、斷點續(xù)傳、允許多個后臺任務(wù)、鏡像、書簽、排隊、多進程下載等功能,使用起來十分方便。lftp不是Linux自帶的工具,需要下載安裝,在Ubuntu下,輸入sudo apt-get install lftp即可完成下載安裝。
ncftp[5],是一款在Linux平臺上傳下載數(shù)據(jù)的FTP工具,它提供更加強大、快捷、方便的功能,被廣泛的應用于Linux的各個版本上,與傳統(tǒng)ftp相比,它的優(yōu)勢在于:采用遞歸的方法可以下載整個目錄及其子目錄、支持斷點續(xù)傳、匿名自動登錄、可以顯示下載進度等。ncftp不是Linux自帶的工具,需要下載安裝,在Ubuntu下,輸入sudo apt-get install ncftp即可完成下載安裝。
lftp和ncftp一個共同的優(yōu)勢在于,能夠繼續(xù)失敗的傳輸并重新嘗試,在通過有網(wǎng)絡(luò)瓶頸的網(wǎng)絡(luò)傳輸大型文件時這點非常有用,并且都可以輸出狀態(tài)行,顯示傳輸?shù)倪M度,而ftp只能顯示傳輸速度。無論哪種FTP工具,在使用時,都需要用到get和mget這兩個命令,get只能下載單個文件名確定的文件,mget可以進行批量下載,并可以使用通配符,即“*”、“?”等。另外,如果在Windows下臨時下載少量數(shù)據(jù),則推薦使用Xftp軟件,該軟件功能強大、性能穩(wěn)定,可以在360軟件管家中搜索Xftp免費下載安裝使用。
為了測試ftp、lftp和ncftp三種工具在實際下載數(shù)據(jù)時的可靠性及有效性,設(shè)計如下方案,從2015年5月1日~2015年5月31日,在這個月期間每天的上午10:00用上述三種工具分別從SOPAC下載7個GAMIT-hfiles,分別是higs1a.15046.Z、higs2a.15046.Z、higs3a.15046.Z、higs4a.15046.Z、higs5a.15046.Z、higs6a.15046.Z、higs7a.15046.Z。選擇這些文件的原因是,hfiles相對較大,單個文件每個約4 Mb,這樣在下載時,碰到網(wǎng)絡(luò)不穩(wěn)定的幾率要大,使得測試更接近實際應用中的狀態(tài),便于發(fā)現(xiàn)在下載中碰到諸如網(wǎng)絡(luò)異常等原因時各個工具的不同表現(xiàn),同時hfiles總數(shù)只有7個,總量不是很大,使得實際測試更具有操作性和可實施性。每天記錄下載數(shù)據(jù)的速度、用時以及出現(xiàn)的問題,速度和用時按天求平均,匯總?cè)绫?。表中空文件是指只有一個文件名,大小可以忽略不計,打開后沒有內(nèi)容的文件。壞文件是指文件無法打開,或者打開時報錯的文件,IGS提供的大部分文件都是壓縮文件,如果下載后無法解壓,一般均為壞文件。小文件是指文件可正常打開,但文件內(nèi)容不完整,只有部分內(nèi)容,文件大小比源文件小的文件。
FTP工具測試結(jié)果 表2
通過表2測試結(jié)果可知,日常數(shù)據(jù)下載應該采用穩(wěn)定性和可靠性更高的lftp和ncftp。
3.1 設(shè)計原則
在設(shè)計數(shù)據(jù)下載程序時,應該遵從以下一些原則:
穩(wěn)定性,即系統(tǒng)不會輕易出現(xiàn)故障,在自動下載大量數(shù)據(jù)時,穩(wěn)定是第一位的,在硬件平臺確保正常運行的前提下,系統(tǒng)可以持續(xù)穩(wěn)定的自動運行,基本無需人工干預;
可靠性,即下載下來的數(shù)據(jù)是正確的,要確保下載到的數(shù)據(jù)與源數(shù)據(jù)保持一致,避免產(chǎn)生小文件、空文件及壞文件;
高效性,即下載效率高,用最少的網(wǎng)絡(luò)資源,最優(yōu)化的算法,盡可能一次下載成功,減輕網(wǎng)絡(luò)壓力,并且已經(jīng)正確下載的文件,不會被再次下載;
靈活性,即當某個FTP站點故障時,系統(tǒng)可以馬上切換到備用站點,而不單純依賴某個站點獲得數(shù)據(jù),做到少量站點出現(xiàn)問題時,不會影響系統(tǒng)的正常運行;
可移植性,數(shù)據(jù)下載系統(tǒng)不受操作系統(tǒng)的影響,可在大部分Linux平臺應用。
3.2 程序設(shè)計流程
選擇常用的C Shell語言編程,根據(jù)設(shè)計原則及FTP工具的測試結(jié)果,選用lftp進行數(shù)據(jù)下載,F(xiàn)TP站點首選高速穩(wěn)定的,具體下載文件類別及配置如表3所示。
IGS數(shù)據(jù)下載站點列表 表3
正確設(shè)置操作系統(tǒng)時間,并利用date命令獲得當前時間參數(shù),利用GAMIT[6]軟件中的doy命令獲取想要下載的數(shù)據(jù)當天時間,由于GPS的相關(guān)數(shù)據(jù)、產(chǎn)品命名以及FTP站點的目錄設(shè)置等都與日期有關(guān),因此只要獲取了目標數(shù)據(jù)的時間信息,包括年、月、日、年積日、GPS周以及GPS周-天等相關(guān)參數(shù),即可進入站點的相應目錄獲取相應的數(shù)據(jù)。
設(shè)計數(shù)據(jù)下載程序頭文件,由于每一個FTP站點的文件目錄結(jié)構(gòu)不盡相同,沒有統(tǒng)一的標準,因此無法自動生成數(shù)據(jù)下載程序,用手工編輯的方式生成表3中每種文件類型在不同站點下載時需要用到的程序頭文件,存放于固定位置,等待主程序的調(diào)用,頭文件主要包括站點地址、進入站點方式等內(nèi)容。
主程序的主要功能是自動生成和調(diào)用數(shù)據(jù)下載程序,首先判斷目標目錄、文件在本地是否存在,如果目錄不存在,則在本地建立目錄,如果文件不存在,則將文件名添加到數(shù)據(jù)下載程序頭文件中,并生成一個完整的數(shù)據(jù)下載程序。最后調(diào)用數(shù)據(jù)下載程序,進入ftp站點開始下載數(shù)據(jù),并將數(shù)據(jù)保存在本地結(jié)構(gòu)化的目錄中。3.3 定時任務(wù)
IGS的數(shù)據(jù)和產(chǎn)品都是定時更新,如表4所示,借助Linux里面自帶的配置定時任務(wù)命令crontab即可實現(xiàn)定時自動下載。設(shè)計定時任務(wù)的基本原則是,既要考慮同一數(shù)據(jù)安排多次下載以確保下載成功,又不能重復太多次浪費系統(tǒng)資源和網(wǎng)絡(luò)資源,同時盡可能將所有的下載任務(wù)均勻分配在一天的各個時間段以避免偶然因素導致的系統(tǒng)性數(shù)據(jù)下載失敗,并且盡可能串行下載,即某一個時刻只在某一個站點下載某一個文件,以防止網(wǎng)絡(luò)擁堵(具體方案見表4)。在設(shè)置定時任務(wù)時,首先要明確UTC時間、GPS時間以及北京時間的含義及關(guān)系。世界協(xié)調(diào)時(UTC)即我們通常生活中所使用的時間,UTC與格林尼治平均時一致,即為零時區(qū)的時間,北京時區(qū)是東八區(qū),因此北京時間領(lǐng)先UTC時間8個小時。GPS時間,也就是GPS原子時,它的時間基準是1980年1月6日0點與UTC時刻相一致,以后按原子時秒長累積計時,GPS時與UTC時之差為秒的整倍數(shù),通常采用跳秒的方法來處理這種差異。我們要意識到北京時間比GPS時間早8個小時,即當天的IGS數(shù)據(jù)要在北京時間早8點以后才開始陸續(xù)生成,也就是說,在0點~8點設(shè)置的定時任務(wù),只能下載到前一天的數(shù)據(jù),而無法下載當天的數(shù)據(jù)。
最后生成系統(tǒng)運行日志,以便日常對系統(tǒng)進行監(jiān)控并且在出現(xiàn)故障時易于排查,日志內(nèi)容應包括數(shù)據(jù)開始下載時間、數(shù)據(jù)量、用時、完成情況、故障記錄等信息。日志可通過Linux的郵件系統(tǒng)定時發(fā)送到指定郵箱,這樣就不必經(jīng)常登陸系統(tǒng)查看運行狀況,每天查收郵件就能知曉系統(tǒng)的基本狀態(tài)??梢允褂煤唵戊`活的sendemail工具發(fā)送郵件,sendemail不是Linux自帶的工具,在Ubuntu下輸入sudo apt-get install sendemail即可完成下載安裝。
IGS數(shù)據(jù)自動下載定時任務(wù) 表4
根據(jù)設(shè)計原則對數(shù)據(jù)下載系統(tǒng)的實際運行情況進行評估。穩(wěn)定性,即系統(tǒng)是否能長時間正常運行而無需人工干預,故障率是表征這類性能的一個指標,故障率是指總體時間段內(nèi)出現(xiàn)各類故障所占時間的百分比。在設(shè)置定時任務(wù)時,為了確保數(shù)據(jù)下載成功,某個文件會在第一次下載失敗后的某些時間段內(nèi)再嘗試進行多次下載,首次下載成功率,即下載任務(wù)中的所有數(shù)據(jù)第一次下載成功所占比例,如果是因為站點上沒有目標數(shù)據(jù)而導致的首次下載失敗,則不計入統(tǒng)計范圍??煽啃?,即已經(jīng)下載得到的數(shù)據(jù)是否有質(zhì)量問題,如果發(fā)現(xiàn)數(shù)據(jù)有問題,比如出現(xiàn)空文件、小文件或者是壞文件,需跟源數(shù)據(jù)進行比對,如果源數(shù)據(jù)本身存在問題,則與數(shù)據(jù)下載系統(tǒng)是否可靠無關(guān),如果源數(shù)據(jù)正確無誤,說明數(shù)據(jù)下載系統(tǒng)還存在問題,不可靠。高效性,即測試數(shù)據(jù)的首次下載成功率及用時以及定時任務(wù)設(shè)置是否合理。靈活性,當某個IGS分中心無法連接時,系統(tǒng)是否會自動切換至備用站點進行下載??梢浦残?,本系統(tǒng)在Ubuntu C Shell環(huán)境下建立,由于C Shell是Linux中通用的一種編程環(huán)境,因此,只要在安裝有C Shell的任何Linux系統(tǒng)下,都可以安裝部署此系統(tǒng)。
根據(jù)上述穩(wěn)定性、可靠性、高效性以及靈活性等評價指標的含義,設(shè)計如下測試方案:時間為2015年6月1日~2015年11月30日共計6個月,測試期間確保服務(wù)器、網(wǎng)絡(luò)以及存儲等系統(tǒng)硬件平臺正常運行,并避免人為因素的干擾,用時為所對應文件成功下載時間按天求平均,具體下載文件類型、文件名稱、文件大小、定時任務(wù)以及測試結(jié)果如表3~表5所示。
系統(tǒng)測試結(jié)果列表 表5
通過表5可以得到以下結(jié)論:該系統(tǒng)在測試期間,穩(wěn)定性高,運行流暢,程序沒有出現(xiàn)崩潰死機等狀況。系統(tǒng)可靠,經(jīng)檢驗比對,下載成功的數(shù)據(jù)里面沒有出現(xiàn)小文件、空文件及壞文件。下載效率高,所有數(shù)據(jù)都在第一次下載成功,用時較短,沒有長時間占用網(wǎng)絡(luò)資源。
因此該系統(tǒng)可用于日常的工作生產(chǎn)中,滿足相關(guān)部門及人員對IGS數(shù)據(jù)和產(chǎn)品的需求。
本系統(tǒng)在數(shù)據(jù)下載前沒有去測試目標站點的連通性,如果數(shù)據(jù)第一次下載失敗,第二次下載會更換站點,以此類推,具體參見表3。系統(tǒng)智能化程度較低,如需增加下載文件的類型及數(shù)量,需要人工添加至下載列表。對網(wǎng)絡(luò)環(huán)境要求較高,如果網(wǎng)絡(luò)環(huán)境較差,會導致數(shù)據(jù)下載用時成倍增加甚至導致系統(tǒng)崩潰。系統(tǒng)沒有操作界面,運行維護時主要依靠命令行的方式,對于初學者來說,需要一個相對較長的學習熟悉時間,今后可在本系統(tǒng)的基礎(chǔ)上開發(fā)Windonws版本,更易于推廣應用。由于文章篇幅所限,無法給出系統(tǒng)完整的源代碼,有興趣的讀者可與作者電子郵箱(zhao@cmonoc.cn)聯(lián)系。
[1] Elliott D.Kaplan,Christopher J.Hegarty .GPS原理與應用(第二版)[M]. 北京:電子工業(yè)出版社,2007.
[2] IGS[OL]. http://igsws.unavco.org/,2015.
[3] TEQC[OL]. http://www.unavco.org/,2015.
[4] baidu[OL]. http://www.baidu.com/,2015.
[5] ncftp[OL]. http://www.ncftp.com/,2013.
[6] GAMIT/GLOBK[OL]. http://www-gpsg.mit.edu/~simon/gtgk/,2015.
[7] 邢誠,徐亞明,周校等. IBIS-S系統(tǒng)檢測方法研究[J]. 測繪地理信息,2013,38(4):9~12.
[8] 姚飛娟,王建強,劉偉等. GPS歷元比較時間對齊方法[J]. 測繪地理信息,2014,39(1):17~22.
Automatic Downloading Data and Product from IGS
Zhao Guoqiang1,Dong Wei2
(1.Institute of Earthquake Science,CEA,BeiJing 100036,China;2.China Railway Siyuan Survey And Design Group Co.,Ltd. WuHan 430063,China)
In detail,we introduce how to design a system to download IGS data and product automatically,including:basic knowledge,F(xiàn)TP sites,testing about FTP tools,flow of the program and testing about the program. We aim to provide a stable and efficient data downloading project for GPS industry and staff,solve the problem when we downloaded the IGS data and product,and improve work efficiency.
IGS;FTP;GPS;data downloading
1672-8262(2016)06-103-05
P228
B
2016—01—28
趙國強(1981—),男,碩士,助理研究員,主要從事GPS數(shù)據(jù)處理及其地學應用等研究工作。
中國地震局地震預測研究所基本科研業(yè)務(wù)費專項(2016IES0202)資助