劉立葳,羅敬寧
(國家衛(wèi)星氣象中心中國氣象局,北京 100081)
北極區(qū)域觀測預(yù)報系統(tǒng)集成與應(yīng)用示范實現(xiàn)了多源極區(qū)遙感數(shù)據(jù)產(chǎn)品和數(shù)值模式產(chǎn)品的管理、綜合分析和分發(fā),為我國全球海洋立體觀測網(wǎng)向極區(qū)拓展提供衛(wèi)星觀測支撐,為北極國際科考船和商船提供航行安全保障服務(wù)。其中船舶航行的保障需要大量的風(fēng)云氣象衛(wèi)星遙感數(shù)據(jù)。而近年來風(fēng)云衛(wèi)星數(shù)據(jù)和遙感產(chǎn)品的體量,應(yīng)用的廣度和深度,都出現(xiàn)急劇地增長和擴(kuò)充,數(shù)據(jù)量呈幾何級數(shù)式增長[1]。當(dāng)前的數(shù)據(jù)管理和服務(wù)系統(tǒng)已經(jīng)不能滿足日益增長的需求,如何建立數(shù)據(jù)之間的關(guān)系和規(guī)則、如何分析數(shù)據(jù)的群體特征、如何發(fā)現(xiàn)數(shù)據(jù)內(nèi)部的規(guī)律和趨勢,為北極船舶的航行[2-3]提供高效、簡潔、準(zhǔn)確的數(shù)據(jù)保障和平臺支撐,是當(dāng)前面臨的巨大挑戰(zhàn)。
空間關(guān)聯(lián)的數(shù)據(jù)處理技術(shù)設(shè)計與實現(xiàn)主要利用多顆衛(wèi)星數(shù)據(jù),提供全新數(shù)據(jù)獲取,形成一個以數(shù)據(jù)為核心,適應(yīng)北極船舶航行需求的服務(wù)平臺。
空間關(guān)聯(lián)數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)的主要任務(wù)是采用全新的空間網(wǎng)格模型數(shù)據(jù)庫系統(tǒng),取代現(xiàn)有的基于文件的衛(wèi)星數(shù)據(jù)管理和服務(wù)方式,實現(xiàn)多衛(wèi)星、大范圍、高頻率等特性的衛(wèi)星數(shù)據(jù)的精準(zhǔn)獲取。該軟件通過建立以空間、時間片和物理層為基礎(chǔ)的空間網(wǎng)格模型[4],采用基于FileStream 技術(shù)[5-6]的BLOB[7]數(shù)據(jù)庫管理技術(shù),將定位于FY3C、FY3D 衛(wèi)星的等溫度廓線觀測數(shù)據(jù),統(tǒng)一到一致的數(shù)據(jù)空間中,并提供下一步可擴(kuò)展的時間、空間的任意數(shù)據(jù)挖掘功能。
系統(tǒng)最主要業(yè)務(wù)流程為數(shù)據(jù)入庫管理流程,如圖1 所示。該流程主要是自動探測前端各業(yè)務(wù)系統(tǒng)推送到該軟件文件交換區(qū)的FY3C、FY3D的NOM、HDF 格式數(shù)據(jù),并對這些數(shù)據(jù)進(jìn)行實時獲取、初檢后,通過數(shù)據(jù)解析模塊實現(xiàn)空間科學(xué)數(shù)據(jù)按網(wǎng)格規(guī)則的切塊處理和入庫存儲;并在入庫過程中建立數(shù)據(jù)、快視圖的關(guān)聯(lián)索引,實現(xiàn)統(tǒng)一的網(wǎng)格化管理。

圖1 數(shù)據(jù)入庫管理流程
空間關(guān)聯(lián)數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)的整體架構(gòu)主要包括:系統(tǒng)硬件基礎(chǔ)設(shè)施層、系統(tǒng)軟件和數(shù)據(jù)資源層、技術(shù)支撐平臺層、業(yè)務(wù)應(yīng)用層[8-9]。整體架構(gòu)如圖2所示。

圖2 基于空間管理數(shù)據(jù)檢索與處理軟件架構(gòu)
系統(tǒng)硬件基礎(chǔ)設(shè)施層是支撐整個系統(tǒng)運行的硬件環(huán)境,主要包括:計算機(jī)基礎(chǔ)網(wǎng)絡(luò)設(shè)施、數(shù)據(jù)庫服務(wù)器、計算機(jī)主機(jī)設(shè)備、存儲設(shè)備等。
系統(tǒng)軟件和數(shù)據(jù)資源層是支撐整個系統(tǒng)運行的軟件和數(shù)據(jù)環(huán)境,系統(tǒng)軟件主要包括:各類操作系統(tǒng)、文件服務(wù)系統(tǒng)、數(shù)據(jù)庫系統(tǒng)等;數(shù)據(jù)資源是支撐系統(tǒng)運行的各類數(shù)據(jù),包括:用戶請求數(shù)據(jù)、網(wǎng)格規(guī)則管理數(shù)據(jù)、衛(wèi)星科學(xué)數(shù)據(jù)集、各類元數(shù)據(jù)、系統(tǒng)管理數(shù)據(jù)等。
技術(shù)支撐平臺層是實現(xiàn)整個系統(tǒng)的核心基礎(chǔ)平臺,本軟件的技術(shù)實現(xiàn)依賴的平臺主要包括:流程控制平臺、FileStream 平臺等。
業(yè)務(wù)應(yīng)用層由實現(xiàn)整個項目需求的功能部件(或軟件系統(tǒng))組成,主要包括如下內(nèi)容:數(shù)據(jù)處理與入庫工具、中間層處理服務(wù)、數(shù)據(jù)發(fā)布與獲取服務(wù)平臺(Web)等。
空間關(guān)聯(lián)數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)由4 大功能組成,包括:空間關(guān)聯(lián)數(shù)據(jù)庫生成功能、數(shù)據(jù)轉(zhuǎn)換處理功能、任務(wù)調(diào)度管理功能。
根據(jù)任務(wù)要求,系統(tǒng)劃分如圖3 所示。

圖3 軟件功能模塊
由于遙感數(shù)據(jù)的空間分布、數(shù)據(jù)形態(tài)、時空分辨率、數(shù)據(jù)組織形式和應(yīng)用處理要求等方面具有很多專業(yè)特性,數(shù)據(jù)集成管理的復(fù)雜度比較高,現(xiàn)有的數(shù)據(jù)庫模型無法適應(yīng)要求,需要建立一個新的數(shù)據(jù)集成管理的模型,并應(yīng)用成熟的數(shù)據(jù)庫技術(shù)來實現(xiàn)復(fù)雜的數(shù)據(jù)管理功能,真正將遙感數(shù)據(jù)納入數(shù)據(jù)庫管理系統(tǒng),而不是游離在外文件系統(tǒng)管理。
該軟件將按照空間網(wǎng)格模型建立靜止衛(wèi)星遙感數(shù)據(jù)空間數(shù)據(jù)庫,建立統(tǒng)一的數(shù)據(jù)空間,通過網(wǎng)格、時間片和物理層等多維結(jié)構(gòu)進(jìn)行數(shù)據(jù)組織和管理,采用面向BLOB 二進(jìn)制大數(shù)據(jù)塊的FileStream 技術(shù),實現(xiàn)靜止衛(wèi)星遙感數(shù)據(jù)的高速I/O 處理和基于事物的數(shù)據(jù)庫管理,數(shù)據(jù)體真正進(jìn)入數(shù)據(jù)庫統(tǒng)一管理。
數(shù)據(jù)轉(zhuǎn)化處理功能是一個后臺自動處理程序,主要實現(xiàn)衛(wèi)星數(shù)據(jù)的到達(dá)、進(jìn)行標(biāo)準(zhǔn)化和網(wǎng)格化處理,按照數(shù)據(jù)空間的范圍和統(tǒng)一的空間分辨率,將數(shù)據(jù)存入空間數(shù)據(jù)庫,處理任務(wù)的調(diào)度與執(zhí)行,對各個任務(wù)處理進(jìn)行合理的負(fù)載分配和錯誤處理[11]。
主要包括如下功能:
1)數(shù)據(jù)解譯和讀取:完成衛(wèi)星數(shù)據(jù)的解譯,讀取數(shù)據(jù)對象到內(nèi)存處理區(qū),提取相關(guān)屬性參數(shù)。
2)數(shù)據(jù)網(wǎng)格化處理:按照統(tǒng)一的空間分辨率,在確定的數(shù)據(jù)空間內(nèi),建立靜止衛(wèi)星數(shù)據(jù)空間網(wǎng)格體系,將經(jīng)過空間轉(zhuǎn)換處理的標(biāo)準(zhǔn)數(shù)據(jù),進(jìn)行網(wǎng)格化切片處理,如圖4 所示,計算網(wǎng)格散列計數(shù),形成網(wǎng)格切片數(shù)據(jù)流。

圖4 不同衛(wèi)星數(shù)據(jù)空間網(wǎng)格切片拼圖
3)元數(shù)據(jù)提取:將文件中記錄的數(shù)據(jù)屬性信息提取出來,記錄到相應(yīng)的數(shù)據(jù)庫表中。需要提取的元數(shù)據(jù)既包括單個文件的,也包括整個數(shù)據(jù)集的屬性信息。
4)網(wǎng)格切片入庫處理:將得到的網(wǎng)格切片數(shù)據(jù)流,通過FileStream 底層接口,按照事物邏輯控制方式,根據(jù)網(wǎng)格存儲位置寫入空間數(shù)據(jù)庫,完成網(wǎng)格切片入庫處理。
該軟件設(shè)計的目標(biāo)是一個自動處理系統(tǒng),軟件可以監(jiān)控數(shù)據(jù)的到達(dá)、處理和入庫的全過程,對各個任務(wù)處理進(jìn)行合理的負(fù)載分配和錯誤處理,為運行維護(hù)人員提供相關(guān)的參數(shù)配置和管理功能。
1)遠(yuǎn)程文件自動發(fā)現(xiàn):根據(jù)配置的遠(yuǎn)程目錄信息,實時監(jiān)控遠(yuǎn)程目錄中的文件到達(dá)情況,支持NFS、SMB、FTP 等協(xié)議掛載的文件系統(tǒng),可以使用文件通配符進(jìn)行文件過濾,將新到達(dá)的文件復(fù)制到本地處理區(qū)。
2)任務(wù)調(diào)度和進(jìn)程管理:根據(jù)功能劃分要求,提供對后臺進(jìn)程的調(diào)度管理功能,包括數(shù)據(jù)發(fā)現(xiàn)、數(shù)據(jù)復(fù)制、數(shù)據(jù)處理、數(shù)據(jù)入庫等。提供系統(tǒng)資源的控制管理,可以配置管理每個進(jìn)程的使用資源,對于失敗進(jìn)程進(jìn)行監(jiān)控和隔離,提供進(jìn)程運行報告。
3)提供集中統(tǒng)一的參數(shù)(策略信息)維護(hù)和管理界面,供系統(tǒng)平臺管理員對整個系統(tǒng)運行的相關(guān)參數(shù)信息進(jìn)行配置。管理員可以通過流程配置的方式定義向?qū)脚渲脜?shù)的流程,以應(yīng)對未來配置參數(shù)流程的變化,提高系統(tǒng)的可配置性。
多線程處理技術(shù)的基本原理是將多項任務(wù)分配到多個線程并行處理,從而提高系統(tǒng)效率,目前在專業(yè)遙感圖像處理軟件設(shè)計中廣泛應(yīng)用。
將數(shù)據(jù)處理平臺設(shè)計成多線程運行模式,將一些操作和響應(yīng)放到主線程,對空間分析及處理相關(guān)的各種耗時操作采用工作線程,這些耗時操作包括各種數(shù)據(jù)的讀取、高速緩存數(shù)據(jù)準(zhǔn)備、常用圖像處理等。采用多線程方式的好處有3 點:一是用戶界面友好,工作線程可以在外部中止取消,避免為執(zhí)行某一任務(wù)而耗時等待卻無法中止;二是可以利用用戶輸入、瀏覽等CPU 空閑時間進(jìn)行后臺數(shù)據(jù)準(zhǔn)備與處理;三是便于安排分塊并行處理。
空間關(guān)聯(lián)數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)中對于衛(wèi)星遙感數(shù)據(jù)的拆分入庫處理采用并行處理和多線程處理技術(shù),大大提高了處理效率。
當(dāng)前GIS 技術(shù)發(fā)展的最新趨勢是采用關(guān)系數(shù)據(jù)庫管理空間數(shù)據(jù),可以充分利用關(guān)系數(shù)據(jù)庫的數(shù)據(jù)管理的功能,利用SQL 語言對空間與非空間數(shù)據(jù)進(jìn)行操作,同時可以利用關(guān)系數(shù)據(jù)庫的海量數(shù)據(jù)管理、事務(wù)處理(Transaction)、記錄鎖定、并發(fā)控制、數(shù)據(jù)倉庫等功能,實現(xiàn)真正的空間數(shù)據(jù)與非空間數(shù)據(jù)一體化集成[13]。
該軟件采用SQL Server的FileStream 數(shù)據(jù)存儲技術(shù)和自定義的空間網(wǎng)格存儲衛(wèi)星科學(xué)數(shù)據(jù)。在數(shù)據(jù)庫中可以存儲各種空間、時間相關(guān)的數(shù)據(jù)和數(shù)據(jù)規(guī)則。
采用SQL Server的FileStream 數(shù)據(jù)存儲技術(shù)和自定義的空間網(wǎng)格規(guī)則將科學(xué)數(shù)據(jù)以分塊分通道方式保存在SQL Server的FileStream 文件系統(tǒng)中[14]。數(shù)據(jù)分塊存儲,可以根據(jù)實際情況調(diào)整塊的粒度(如2.5°×2.5°、5°×5°等),每個數(shù)據(jù)塊存儲為一個記錄。采用表結(jié)構(gòu)存儲,可以追加新的數(shù)據(jù)字段保存科學(xué)數(shù)據(jù)其他屬性信息,包括時間屬性、數(shù)據(jù)描述信息等,如圖5 所示。

圖5 數(shù)據(jù)網(wǎng)格化處理
SQL Server的FileStream 數(shù)據(jù)存儲技術(shù)同時提供了對科學(xué)數(shù)據(jù)的訪問能力。數(shù)據(jù)訪問時,以文件流方式進(jìn)行,存取速度都非常高效,存儲過程如圖6所示。

圖6 網(wǎng)格數(shù)據(jù)FileStream數(shù)據(jù)存儲
建立“空間關(guān)聯(lián)數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)”采用參數(shù)化設(shè)計,建立完善的系統(tǒng)配置參數(shù)表以支持?jǐn)?shù)據(jù)類型、屬性結(jié)構(gòu)的擴(kuò)充,應(yīng)對未來衛(wèi)星數(shù)據(jù)管理和服務(wù)的擴(kuò)展要求。
1)采用配置庫的設(shè)計方法
①處理流程的靈活配置;
②根據(jù)產(chǎn)品存檔要求進(jìn)行配置;
③單個處理作業(yè)的處理方法(參數(shù))配置;
2)新增數(shù)據(jù)的配置
①不需要進(jìn)行程序修改;
②配置此類產(chǎn)品的處理流程;
③處理作業(yè)的方法(參數(shù));
3)處理策略(參數(shù)等)的靈活配置
超時/補(bǔ)做/回調(diào)/清理的參數(shù)可以靈活地配置。
該軟件采用C#.NET、C、C++、VC++等多種程序設(shè)計語言與開發(fā)工具,采用SQL Server 2012R2數(shù)據(jù)庫。
該軟件允許平臺管理員對整個系統(tǒng)運行的相關(guān)參數(shù)信息進(jìn)行配置。管理員可以通過流程配置的方式定義向?qū)脚渲脜?shù)的流程,以應(yīng)對未來配置參數(shù)流程的變化,提高系統(tǒng)的可配置性。
該軟件達(dá)到衛(wèi)星遙感數(shù)據(jù)準(zhǔn)實時提供功能,訪問效率較高,性能體現(xiàn)如表1 所示。

表1 空間關(guān)聯(lián)數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)訪問效率
“空間關(guān)聯(lián)數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)”包含8 個計算節(jié)點:兩個數(shù)據(jù)庫節(jié)點、兩個數(shù)據(jù)處理節(jié)點、一個系統(tǒng)管理節(jié)點、兩個中間層處理節(jié)點和一個Web訪問節(jié)點,均采用Windows Server 2012R2 操作系統(tǒng),部署情況如圖7 所示。

圖7 空間關(guān)聯(lián)數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)硬件部署
數(shù)據(jù)庫系統(tǒng)采用SQL Server 2012R2,該數(shù)據(jù)庫支持流行的軟硬件平臺(PC 服務(wù)器及Windows 操作系統(tǒng)環(huán)境);支持客戶機(jī)/服務(wù)器技術(shù)、瀏覽器/服務(wù)器技術(shù);具有C2 級以上數(shù)據(jù)安全控制機(jī)制和權(quán)限控制,支持多種數(shù)據(jù)備份方式;支持多種數(shù)據(jù)庫開發(fā)機(jī)制,具有開發(fā)三層結(jié)構(gòu)、客戶/服務(wù)器結(jié)構(gòu)應(yīng)用的工具;同時具有數(shù)據(jù)備份和恢復(fù)功能。
該軟件基于風(fēng)云3 號氣象衛(wèi)星遙感數(shù)據(jù)的時間、空間和波段的任意數(shù)據(jù),提供挖掘功能,可快速準(zhǔn)確地獲取北極地區(qū)所需數(shù)據(jù),避免了大量無效的數(shù)據(jù)傳輸和處理。該軟件為北極船舶的航行提供了高效、準(zhǔn)確的氣象衛(wèi)星遙感觀測數(shù)據(jù)保障。