杜 偉,劉 浩
(1.中國(guó)科學(xué)院國(guó)家空間科學(xué)中心,北京 100190;2.中國(guó)科學(xué)院大學(xué) 計(jì)算機(jī)與控制學(xué)院,北京 100049)
與低地球軌道探測(cè)相比,靜止軌道[1-4]全天候、大視場(chǎng)以及凝視觀測(cè)[5]等的特點(diǎn)有助于連續(xù)監(jiān)測(cè)熱帶氣旋、強(qiáng)降雨等短時(shí)間內(nèi)快速變化的災(zāi)害性天氣系統(tǒng)的連續(xù)變化過(guò)程[6-8]。2006 年,靜止軌道毫米波大氣探測(cè)儀(Geostationary Interferometric Microwave Sounder,GIMS)作為中國(guó)下一代靜止軌道氣象衛(wèi)星的概念被提出,迄今已先后完成了兩代樣機(jī)研制[9-10]。其中,第二代載荷樣機(jī)(GIMS-II)可實(shí)現(xiàn)50 km 分辨率、5 min 觀測(cè)周期的全圓盤觀測(cè)能力[11]。
目標(biāo)亮溫建模系統(tǒng)可以為靜止軌道微波輻射計(jì)生成輸入亮溫?cái)?shù)據(jù)集,來(lái)指導(dǎo)靜止軌道微波輻射計(jì)的指標(biāo)設(shè)計(jì)。文中介紹了在Linux 平臺(tái)下搭建目標(biāo)亮溫建模系統(tǒng),以及解決亮溫文件從產(chǎn)生到顯示的文件同步方法。亮溫文件可以自動(dòng)實(shí)現(xiàn)在不同操作系統(tǒng)之間的傳輸,不僅可以解決亮溫顯示問(wèn)題,而且可以作為模擬亮溫?cái)?shù)據(jù)實(shí)時(shí)輸入未來(lái)靜止軌道微波輻射計(jì),以驗(yàn)證其參數(shù)設(shè)置。
臺(tái)風(fēng)災(zāi)害是我國(guó)最嚴(yán)重的極端災(zāi)害性天氣之一[12-14],每年7 月份在我國(guó)東南部頻發(fā),造成了不可估量的經(jīng)濟(jì)損失和人員損失,并且臺(tái)風(fēng)來(lái)臨時(shí)伴隨著大風(fēng)、強(qiáng)降雨等災(zāi)害,臺(tái)風(fēng)變化迅速,且臺(tái)風(fēng)來(lái)臨時(shí)伴有多個(gè)臺(tái)風(fēng),因此有效地觀測(cè)臺(tái)風(fēng)、暴雨等天氣系統(tǒng)的內(nèi)部結(jié)構(gòu)變得刻不容緩。目前用于觀測(cè)臺(tái)風(fēng)內(nèi)部系統(tǒng)的在軌靜止軌道氣象衛(wèi)星探測(cè)器多數(shù)依賴于光學(xué)、紅外線手段,微波波段在軌氣象衛(wèi)星多為極軌衛(wèi)星。盡管靜止軌道微波衛(wèi)星在觀測(cè)臺(tái)風(fēng)天氣系統(tǒng)中有著不可比擬的優(yōu)勢(shì),然而,高空間分辨率與高時(shí)間分辨率制約了靜止軌道微波衛(wèi)星的發(fā)展。目前,靜止軌道微波衛(wèi)星處在設(shè)計(jì)仿真階段,但實(shí)際上目前并沒有實(shí)際的靜止軌道在軌衛(wèi)星數(shù)據(jù)用于輸入輻射計(jì)系統(tǒng),來(lái)驗(yàn)證輻射計(jì)的設(shè)計(jì)參數(shù)是否合理,所以需要目標(biāo)亮溫建模系統(tǒng)來(lái)模擬靜止軌道衛(wèi)星的探測(cè)亮溫?cái)?shù)據(jù),并作為輻射計(jì)系統(tǒng)的輸入來(lái)驗(yàn)證輻射計(jì)的設(shè)計(jì)指標(biāo)。另一方面,利用目標(biāo)亮溫建模系統(tǒng)生成的亮溫文件實(shí)時(shí)顯示臺(tái)風(fēng)的運(yùn)動(dòng)軌跡,也有助于研究人員對(duì)臺(tái)風(fēng)的分析。
采用逐6 小時(shí),以1°×1°為單元網(wǎng)格的全球再分析資料作為輸入,通過(guò)數(shù)值天氣預(yù)報(bào)模式WRF[15]得到指定時(shí)刻、指定空間分辨率格點(diǎn)上的氣象預(yù)報(bào),利用氣象數(shù)據(jù)分析軟件(Grid Analysis and Display system,GrADs)提取預(yù)報(bào)輸出大氣環(huán)境參數(shù)作為RTTOV[16]的輸入,同時(shí)配置GIMS 參數(shù)信息,實(shí)現(xiàn)靜止軌道上多個(gè)頻率通道的亮溫圖像模擬。
集群技術(shù)可以利用多個(gè)計(jì)算機(jī)進(jìn)行并行計(jì)算,從而獲得較高的運(yùn)算速度,且成本低、可靠性高、靈活性好、性能高。而且集群中的多個(gè)計(jì)算機(jī)之間可以進(jìn)行簡(jiǎn)單通信,如文件同步。由于RTTOV 中需要同時(shí)獲得多個(gè)頻率通道的亮溫?cái)?shù)據(jù)集,并且多個(gè)頻率通道相互之間沒有關(guān)系,可以用來(lái)將多個(gè)頻率通道分到不同的服務(wù)器節(jié)點(diǎn)上進(jìn)行獨(dú)立的運(yùn)算。
為實(shí)現(xiàn)目標(biāo)亮溫建模系統(tǒng)各個(gè)模塊之間的對(duì)接,需要解決文件訪問(wèn)沖突的問(wèn)題,即當(dāng)前一個(gè)模塊輸出文件時(shí)需要鎖定該文件,接收該模塊輸出文件的進(jìn)程不得修改和訪問(wèn)未寫入完成的文件,否則會(huì)得到錯(cuò)誤的文件輸出,如圖1 所示。以WRF模塊與ARWpost 模塊為例,其他模塊之間同理所得。解決該矛盾的方法采用Linux 的命令lsof,在Linux 系統(tǒng)中,一切皆文件,lsof 命令是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具,在終端下輸入lsof 即可顯示該系統(tǒng)打開的文件,若當(dāng)前文件不在列表中,即可得到該文件已寫入完成,ARWpost模塊可以對(duì)其進(jìn)行訪問(wèn),否則ARWpost 將一直等待直到該文件寫入完成,代碼如下:
圖1 文件訪問(wèn)過(guò)程
代碼中的-f 用來(lái)判斷file1 是否存在,lsof 用來(lái)列出當(dāng)前是否有進(jìn)程打開file1,wc 用來(lái)計(jì)算當(dāng)前打開file1 的進(jìn)程,若等于0,則說(shuō)明file1 已經(jīng)寫完,可以允許下一級(jí)程序?qū)ζ洳僮?,ARWpost 程序可以對(duì)其進(jìn)行讀操作,讀完之后刪除file1。While 用來(lái)循環(huán)判斷當(dāng)前處理的文件是否已經(jīng)完成。
實(shí)驗(yàn)中利用WinSCP 工具進(jìn)行兩個(gè)平臺(tái)的文件同步,如圖2 所示。亮溫文件產(chǎn)生模塊作為服務(wù)器端,亮溫顯示模塊作為客戶端,通過(guò)WinSCP 工具來(lái)同步兩個(gè)模塊之間的亮溫文件。
圖2 文件同步過(guò)程
采用流水作業(yè)方法的目標(biāo)亮溫建模系統(tǒng)在Linux 平臺(tái)上已經(jīng)搭建完成,優(yōu)化的目標(biāo)亮溫建模系統(tǒng)可以滿足實(shí)際應(yīng)用中對(duì)時(shí)效性的要求,而亮溫顯示模塊是用Matlab 語(yǔ)言編寫成的界面,工作在Windows 平臺(tái)上,如何實(shí)現(xiàn)兩個(gè)平臺(tái)上的文件自動(dòng)同步,成為制約該實(shí)驗(yàn)的關(guān)鍵。為解決該問(wèn)題,文中提出利用WinSCP 軟件來(lái)實(shí)現(xiàn)兩個(gè)平臺(tái)上的文件傳輸,WinSCP 操作界面示意圖如圖3 所示。
圖3 WinSCP操作界面示意圖
文件傳輸協(xié)議有SFTP 協(xié)議、SCP 協(xié)議、FTP 協(xié)議和WwbDAV 協(xié)議,實(shí)驗(yàn)選擇了SCP 協(xié)議,主機(jī)名為實(shí)驗(yàn)連接的主機(jī)名,端口號(hào)選擇22,當(dāng)利用界面手動(dòng)傳輸文件時(shí)需要手動(dòng)填寫圖3 的內(nèi)容,即可在客戶機(jī)上連接目標(biāo)服務(wù)器,連接成功時(shí),示意圖如圖4 所示,即可實(shí)現(xiàn)手動(dòng)在Linux 系統(tǒng)和Windows 系統(tǒng)之間自由拖拽文件。
圖4 WinSCP連接成功示意圖
該實(shí)驗(yàn)的目的是為了實(shí)現(xiàn)兩個(gè)平臺(tái)之間文件的自動(dòng)傳輸,編寫腳本文件run.txt,run.txt 腳本主要是實(shí)現(xiàn)打開WinSCP 工具,利用命令將服務(wù)器文件傳輸至 客戶端,在DOS 命令下輸入WinSCP.exe ∕console ∕run.txt,既可以成功從服務(wù)器端∕home∕hpc∕wrf-rttov∕rttov∕output∕amsua∕目錄下復(fù)制亮溫文件gims.txt 到本地目錄。
目標(biāo)亮溫建模顯示系統(tǒng)是用Matlab 寫的GUI界面,系統(tǒng)界面主要分成3 部分,第一部分為配置參數(shù)模塊,第二部分為亮溫顯示區(qū)域,第三部分為運(yùn)行區(qū)。在界面上輸入時(shí)間、輸出文件間隔、頻率通道則可以自動(dòng)地指示Linux 平臺(tái)上的目標(biāo)亮溫建模系統(tǒng)[17],修改相應(yīng)的配置文件并執(zhí)行目標(biāo)亮溫系統(tǒng)輸出亮溫文件,顯示模塊將自動(dòng)判斷亮溫文件是否生成,若生成,則處理并顯示,系統(tǒng)工作流程如圖5 所示。
圖5 系統(tǒng)工作流程
圖6 的GUI 界面亮溫顯示模塊上輸入模擬積分時(shí)間起止點(diǎn),修改相應(yīng)的配置文件,通過(guò)WinSCP 工具將配置文件傳入Linux 平臺(tái),調(diào)用editNamelist 腳本程序修改WPS、WRF、ARWpost 的相應(yīng)參數(shù)文件,修改完成后,調(diào)用run 腳本來(lái)執(zhí)行優(yōu)化后的調(diào)用方法。其中editNamelist 為編輯修改數(shù)據(jù)腳本,主要利用sed 命令,run 腳本是用來(lái)將所有的執(zhí)行腳本匯總起來(lái)一次性調(diào)用所有執(zhí)行文件。
圖6 亮溫顯示模塊
文中介紹了目標(biāo)亮溫建模系統(tǒng)的意義及工具WinSCP 的使用,解決了目標(biāo)亮溫建模系統(tǒng)產(chǎn)生的亮溫?cái)?shù)據(jù)文件自動(dòng)傳輸?shù)搅翜仫@示模塊的問(wèn)題[18],實(shí)現(xiàn)在GUI 上輸出起止時(shí)間、通道頻率等參數(shù),則目標(biāo)亮溫建模系統(tǒng)能自動(dòng)開始工作,并實(shí)時(shí)傳輸文件至顯示端進(jìn)行顯示,主要可應(yīng)用于天氣預(yù)報(bào)業(yè)務(wù)展示中。