楊明芬 李文雯 吳旭 高楊 塔杰 西熱加措
(1.西藏自治區(qū)科技信息研究所,西藏 拉薩 850008;2.成都理工大學,四川 成都 610000)
對地觀測技術(shù)是國家與地區(qū)重要的戰(zhàn)略高新技術(shù),對地觀測獲取的海量遙感數(shù)據(jù)是基礎性和戰(zhàn)略性的空間信息資源。整合現(xiàn)有的遙感數(shù)據(jù)資源,“盤活”現(xiàn)有空間數(shù)據(jù)存量,減少浪費,提高遙感數(shù)據(jù)的有效供給,能夠為各領(lǐng)域的科學研究提供支撐,為相關(guān)行業(yè)應用向廣度和深度發(fā)展提供基礎,為國防安全建設提供有力的信息保障。作為一種寶貴的信息資源,遙感數(shù)據(jù)可以不斷地被重復使用,發(fā)揮遙感數(shù)據(jù)的作用,也是對巨額投資的回報。因此,遙感數(shù)據(jù)的集成與共享普遍受到世界各國重視。通過空天地多種傳感器所獲取到的遙感影像,成為了對地探測目標最直接、豐富的信息載體。作為一種真實、客觀的圖像資源,很多有價值的信息都可以從遙感影像數(shù)據(jù)中識別出來。因此,從遙感影像中獲取的特定信息,具有廣泛的應用前景,如農(nóng)業(yè)、探測和監(jiān)測全球變化、環(huán)境監(jiān)測與評價、氣象、測繪等。
西藏具有得天獨厚的自然資源、文化資源和生態(tài)資源,在國家經(jīng)濟社會發(fā)展中具有不可替代的重要地位。遙感技術(shù)可面向西藏地區(qū)農(nóng)林牧業(yè)發(fā)展、數(shù)字基礎設施建設、生態(tài)屏障保護與修復、應急搶險救災等多個方面發(fā)揮重要作用。同時,由于西藏地廣人稀,邊境線長,生態(tài)環(huán)境脆弱,自然災害多、強度大,因此在經(jīng)濟社會發(fā)展、防災減災、生態(tài)文明建設、資源勘查等方面對高分遙感數(shù)據(jù)資源的需求十分迫切。目前,西藏地區(qū)在遙感信息服務方面還需加快發(fā)展步伐,形成一批有代表性的遙感信息服務軟件系統(tǒng)和數(shù)據(jù)產(chǎn)品,實現(xiàn)西藏地區(qū)實現(xiàn)各部門之間信息資源的互聯(lián)互通、共用共享。
在遙感信息服務方面,國外許多商業(yè)公司以開展多年的研究并推出了相應的產(chǎn)品。Bing Maps 是由微軟公司發(fā)布的一項在線地圖服務,采用瓦片劃分模型,在Windows Azure 中以二進制格式存儲瓦片數(shù)據(jù),并使用關(guān)系數(shù)據(jù)庫SQL Azure 管理遙感影像的元數(shù)據(jù)信息[1]。Google Maps 是谷歌推出的共享數(shù)字地圖服務產(chǎn)品,其衛(wèi)星遙感影像以瓦片形式傳輸,不但能支持瀏覽器中的空間數(shù)據(jù)的查詢,還能在應用中請求所需要的衛(wèi)星影像數(shù)據(jù)[2]。武漢大學吳華意等人,研究出了一種分布式的在線管理遙感數(shù)據(jù)的跨平臺框架,在對遙感數(shù)據(jù)的管理和服務的模型進行抽象的基礎上,采用混合存儲模型和分布式計算模型,使遙感數(shù)據(jù)管理效能與服務效能得到顯著提升。該框架具備良好的跨平臺性,能提供高效、穩(wěn)定的服務,給海量遙感數(shù)據(jù)資源的實時管理、應用、服務及研究提供了有效、可靠的借鑒[3]。地礦測繪的王愷,為搭建遙感影像數(shù)據(jù)的時空云服務系統(tǒng),設計了功能共享及數(shù)據(jù)共享的理念,最終實現(xiàn)了遙感影像的質(zhì)量檢測、查詢?yōu)g覽、任務發(fā)送等云服務[4]。該系統(tǒng)采用分布式文件系統(tǒng)來實現(xiàn)海量遙感影像的高效存儲管理,并提供遙感信息共享、交換的服務[5]。
本文設計的軟件系統(tǒng),前端使用Vue3+Vite2+ElementPlus;后端采用Spring Boot框架;持久層使用了MyBatis 進行CRUD 操作;數(shù)據(jù)庫采用PostgreSQL,以及其空間數(shù)據(jù)存儲擴展工具PostGIS,能提供對空間信息服務的支持[6]。SpringBoot 采用約定優(yōu)于配置的核心思想,使用JavaConfig 來進行配置,可以充分利用復用、繼承、多態(tài)等特性[7,8]。ElementPlus 是基于Vue3 設計的一套組件庫,遵循使用者習慣的語言和觀念,整個UI 風格簡約、實用,提供了豐富的組件,極大的提高了開發(fā)效率[9]。
本文采用PostgreSQL 的bytea 類型存儲遙感影像的縮略圖,方便預覽遙感影像;依靠GDAL 提供的一系列函數(shù),獲取遙感影像的信息,將元數(shù)據(jù)信息存放到PostgreSQL 中,實現(xiàn)元數(shù)據(jù)的自動提取,并將海量的原始遙感影像數(shù)據(jù)存儲HDFS 中?;炯夹g(shù)路線如圖1 所示。
圖1 文章技術(shù)路線圖
元數(shù)據(jù)的產(chǎn)生是遙感影像存儲中的一個重要問題。對于少量的遙感影像,采用人工方法進行提取元數(shù)據(jù)是可以的。但是,由于空間信息技術(shù)的飛速發(fā)展,目前各個部門要處理的影像資料數(shù)量非常龐大,如果繼續(xù)采用人工方法,不但需要大量的時間和精力,而且還會影響到提取的準確性。因此,對遙感影像元數(shù)據(jù)的自動抽取技術(shù)進行研究,并將其與影像數(shù)據(jù)相映像,實現(xiàn)圖像的高效檢索,是遙感影像管理的一個關(guān)鍵問題。系統(tǒng)中具有普通用戶、數(shù)據(jù)管理員和系統(tǒng)管理員三種角色。這三種不同的角色對于遙感信息服務系統(tǒng)有不同的功能需求,下面將依次展開說明。
(1)數(shù)據(jù)管理員,該角色的用例圖如圖2 所示。
圖2 數(shù)據(jù)管理員用例圖
數(shù)據(jù)管理員可以將遙感數(shù)據(jù)進行上傳,上傳過程中涉及到元數(shù)據(jù)的生成問題,系統(tǒng)自動對遙感影像的元數(shù)據(jù)進行自動提取,不需要手工錄入,并且系統(tǒng)會自動將遙感影像按照“衛(wèi)星名稱/傳感器類型/獲取時間”目錄存放,完成影像入庫操作;數(shù)據(jù)管理員具有選擇的將已存放到服務器中的遙感數(shù)據(jù)下載到本地,支持下載單個的遙感影像文件及多個文件;針對已經(jīng)被提取的元數(shù)據(jù)信息,數(shù)據(jù)管理員可以指定條件,如指定衛(wèi)星、遙感器類型、地理位置等條件,檢索出系統(tǒng)中已有的元數(shù)據(jù)。
(2)普通用戶,可以指定條件,如指定衛(wèi)星、遙感器類型、地理位置等,檢索出系統(tǒng)中已有的遙感數(shù)據(jù),對檢索出來的遙感數(shù)據(jù)可以查看其相關(guān)信息及縮略圖,進行放大縮小等操作;普通用戶可以有選擇的將已存放到服務器中的遙感數(shù)據(jù)下載到本地,支持下載文件和文件夾。
(3)系統(tǒng)管理員,對系統(tǒng)的用戶賬號信息進行管理,指定條件如指定用戶名稱、創(chuàng)建時間、當前狀態(tài)等條件進行查詢,對單個用戶可以停用或啟用該賬號,編輯用戶的信息,重置登錄密碼,分配指定的權(quán)限。系統(tǒng)管理員可以查看包含登錄和操作日志的系統(tǒng)記錄信息。
本文設計出遙感信息服務系統(tǒng)的功能結(jié)構(gòu),如圖3 所示。遙感影像資料上傳就是將遙感數(shù)據(jù)進行上傳即影像數(shù)據(jù)入庫操作。在遙感影像上傳過程中涉及三個方面的問題。
圖3 系統(tǒng)功能結(jié)構(gòu)圖
首先是如何提取遙感影像的元數(shù)據(jù),有些影像數(shù)據(jù)中存在頭文件,頭文件中包含有傳感器、軌道號等信息。為了達到自動提取遙感影像元數(shù)據(jù)的目的,本系統(tǒng)依靠GDAL 提供的一系列函數(shù),獲得遙感影像的信息,比如getRasterXSize()獲取x 寬度、GetGeoTransform()獲得仿射矩陣信息,將提取出來的元數(shù)據(jù)信息存放到PostgreSQL 數(shù)據(jù)庫中。對于各種遙感影像,在元數(shù)據(jù)規(guī)范的基礎上,需要編寫對應的提取接口,解決不同來源的遙感影像的元數(shù)據(jù)的生成問題。其次在解析元數(shù)據(jù)時,借助GDAL 將原始圖像重采樣轉(zhuǎn)化成JPG 格式的,并借助Java 圖像縮略圖類庫Thumbnailator 進行壓縮生成縮略圖,存放在元數(shù)據(jù)表Metadata 表的bytea 類型的字段中。最后為方便數(shù)據(jù)管理員進行遙感影像的存儲管理,對多個來源的遙感影像進行歸類。采用目錄樹的方法,在Hadoop 分布式文件系統(tǒng)上根該遙感影像元數(shù)據(jù)信息中的衛(wèi)星名稱/傳感器類型/采集時間創(chuàng)建一個三級目錄,將遙感影像歸類到相應的目錄中。整個資料上傳流程如圖4 所示。
圖4 資料上傳流程圖
元數(shù)據(jù)放在PostgreSQL 關(guān)系型數(shù)據(jù)庫中。對遙感影像的元數(shù)據(jù)管理有元數(shù)據(jù)的查詢、導出、導入、編輯、刪除等功能。查詢操作就是根據(jù)用戶指定的條件,如指定衛(wèi)星、遙感器類型等條件,檢索出對應的元數(shù)據(jù)。另外借助PostgreSQL 的擴展工具PostGIS,在PostgreSQL 上添加了一個額外的存儲和管理空間數(shù)據(jù)的能力,利用其可以實現(xiàn)數(shù)據(jù)的空間查詢。元數(shù)據(jù)管理流程如圖5 所示。
圖5 元數(shù)據(jù)管理流程圖
遙感信息服務系統(tǒng)的數(shù)據(jù)庫采用PostgreSQL,PostgreSQL 是當前最強大的、最先進的開源數(shù)據(jù)庫管理系統(tǒng)。它能跨多種平臺工作,并且能夠支持多種語言的開發(fā)。其擴展PostGIS,為PostgreSQL 添加了一個額外的存儲和管理空間數(shù)據(jù)的能力。表中字段的定義、數(shù)據(jù)類型均遵循其相關(guān)規(guī)定。
2.2.1 普通用戶功能。普通用戶涉及的界面包括登錄界面、注冊界面、首頁界面。登錄功能的驗證碼借助Kaptcha 驗證碼生成工具實現(xiàn)的,將生成的驗證碼存放到Redis 緩存中。在登錄驗證時再查詢Redis 中記錄的正確驗證碼和用戶輸入的進行比較。完成驗證碼、用戶驗證并驗證成功后會生成token并返回給客戶端。普通用戶登錄成功后,會跳轉(zhuǎn)到系統(tǒng)首頁。普通用戶可以在首頁進行遙感數(shù)據(jù)的檢索,指定條件,如指定衛(wèi)星、遙感器類型等,還可以在地圖上繪制區(qū)域,如圖6 所示。
圖6 首頁遙感數(shù)據(jù)檢索
普通用戶在檢索出來的遙感數(shù)據(jù)列表中,勾選想要下載的數(shù)據(jù),然后點擊下載按鈕,進行遙感圖像的下載操作。遙感影像下載如圖7 所示。
圖7 遙感影像下載
系統(tǒng)提供影像下載功能,從數(shù)據(jù)庫中的storage表中查找出其存儲在HDFS 對應的路徑,然后借助fileToZip 函數(shù)完成打包。打包借助ZipOutputStream 類完成文件或文件夾的壓縮,ZipEntry 類用于表示ZIP文件條目。
2.2.2 數(shù)據(jù)管理功能實現(xiàn)。在遙感信息服務系統(tǒng)中,數(shù)據(jù)管理員涉及的界面主要包括資料上傳、元數(shù)據(jù)管理、存儲管理。數(shù)據(jù)管理員可以點擊選擇遙感影像資料按鈕,選擇要上傳的遙感影像文件,然后點擊自動解析元數(shù)據(jù)按鈕,將遙感影像上傳至HDFS,并將其元數(shù)據(jù)信息入庫。解析出的元數(shù)據(jù)信息如圖8 所示。
圖8 元數(shù)據(jù)信息
自動提取元數(shù)據(jù)模塊是借助開源類庫GDAL 實現(xiàn)的,GDAL 將遙感影像的元數(shù)據(jù)信息提取出來,并將其插入metadata 表中。在生成縮略圖時借助GDAL 將原始圖像重采樣轉(zhuǎn)化成JPG 格式的,并借助Java 圖像縮略圖類庫Thumbnailator 進行壓縮生成縮略圖。對于各種遙感影像,在元數(shù)據(jù)規(guī)范的基礎上,需要編寫對應的提取接口,實現(xiàn)不同來源的遙感影像的元數(shù)據(jù)的生成。目前該系統(tǒng)支持Lansat、MODIS、GeoEye、Spot 等衛(wèi)星遙感數(shù)據(jù)的元數(shù)據(jù)信息自動解析。
2.2.3 系統(tǒng)管理功能實現(xiàn)。系統(tǒng)管理員可以在該界面指定條件如用戶名稱、狀態(tài)等條件進行查詢,也可以點擊左側(cè)的用戶組,比如系統(tǒng)管理員1 組,則會顯示該組下的用戶。針對單一用戶,可以停用或啟用該賬號,也可以編輯用戶的信息,重置登錄密碼,分配角色以獲得相應權(quán)限。用戶管理界面如圖9 所示。角色管理功能,系統(tǒng)管理員可以在該界面進行角色的查詢,對角色擁有的權(quán)限進行修改。
圖9 用戶管理界面
日志監(jiān)控包括登錄日志界面和操作日志界面。登錄日志界面展示了系統(tǒng)所有的用戶的登錄信息包括用戶名稱、地址、登錄狀態(tài)等信息。系統(tǒng)管理員可以對所有用戶登錄信息進行查詢、刪除、清空、導出操作,界面如圖10 所示。操作日志界面展示了用戶在系統(tǒng)中進行的操作信息包括所在系統(tǒng)模塊、日期、狀態(tài)等。系統(tǒng)管理員可以對所有用戶操作信息進行查詢、刪除、清空、導出操作。
圖10 日志管理
本文在研究以西藏地區(qū)內(nèi)采集的遙感影像數(shù)據(jù)為典型遙感信息資源的基礎上,分析了遙感信息服務系統(tǒng)的用戶基本需求,將本系統(tǒng)的使用人員分為:遙感數(shù)據(jù)管理者、相關(guān)地學研究者、系統(tǒng)管理者。在對系統(tǒng)需求進行分析整理的基礎上,設計出遙感信息服務系統(tǒng)的功能結(jié)構(gòu),地學研究者即普通用戶有檢索遙感影像、下載的功能,數(shù)據(jù)管理員有遙感影像資料上傳、資料下載、元數(shù)據(jù)管理、存儲管理的功能,系統(tǒng)管理員有用戶相關(guān)的管理、日志監(jiān)控的功能,然后對這些功能模塊進行了分析設計。結(jié)合遙感數(shù)據(jù)的元數(shù)據(jù)信息規(guī)范和系統(tǒng)需求,設計并建立了遙感信息服務系統(tǒng)的數(shù)據(jù)庫。本文重點研究了對于不同類型遙感影像數(shù)據(jù),如何實現(xiàn)統(tǒng)一標準化的元數(shù)據(jù)提取以及如何對遙感原始影像進行存儲管理的功能設計和實現(xiàn)方法。