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