袁昱緯 衛(wèi) 強(qiáng) 楊亞鵬 夏明卓
(中國人民解放軍91977部隊(duì) 北京 100036)
隨著衛(wèi)星技術(shù)的不斷發(fā)展,衛(wèi)星的重訪周期越來越短,時間分辨率越來越高,多時相衛(wèi)星影像被廣泛應(yīng)用于GIS[1]、變化檢測[2]、地物識別[3]、遙感反演[4]等領(lǐng)域,但同樣面臨多時相衛(wèi)星影像數(shù)據(jù)組織管理中數(shù)據(jù)冗余量大、檢索操作復(fù)雜等問題,因此面向多時相衛(wèi)星影像的數(shù)據(jù)組織管理問題已成為眾多學(xué)者的研究熱點(diǎn)[5~6]。
侯平等[7]運(yùn)用變化檢測技術(shù)提出一種多時相遙感影像存儲管理的新方法,能夠有效節(jié)省存儲空間,但是較新時刻的遙感影像需要較長的讀取時間;陸納納等[8]提出面向?qū)ο蟮幕鶓B(tài)修正模型改進(jìn)及查詢方法,能夠有效提高各時相影像的檢索和讀取效率,但難以高效組織管理大規(guī)模的衛(wèi)星影像;楊建思等[9]提出一種大文件多版本遙感影像數(shù)據(jù)組織管理方法,存儲的效率較高,但檢索同一地區(qū)不同時相影像時需要跳轉(zhuǎn)多個金字塔結(jié)構(gòu),計算過程較為繁瑣。本文針對多時相衛(wèi)星影像數(shù)據(jù)組織管理中數(shù)據(jù)冗余量大、檢索操作繁瑣等問題,通過引入多基態(tài)修正模型、動態(tài)基態(tài)距以及Hilbert空間排列碼等,提出了一種多時相衛(wèi)星影像數(shù)據(jù)組織方法。
基態(tài)修正模型是一種典型的時空數(shù)據(jù)模型,相較于序列快照模型,能夠避免對各時刻數(shù)據(jù)的完整存儲,僅需存儲起始時刻數(shù)據(jù)(稱為基態(tài))和后續(xù)各時刻相對于基態(tài)的變化數(shù)據(jù)(稱為差文件),通過將給定時刻及其之前所有變化數(shù)據(jù)與基態(tài)數(shù)據(jù)進(jìn)行疊加處理,即可得到給定時刻的完整數(shù)據(jù)。
基態(tài)修正模型中,對于相鄰時刻的相同數(shù)據(jù),僅需存儲一次;同時,通過疊加處理能夠獲得給定時刻完整數(shù)據(jù),數(shù)據(jù)的空間分辨率沒有損失。因此基態(tài)修正模型能夠在保證空間數(shù)據(jù)的空間分辨率不變的前提下,減少冗余數(shù)據(jù)存儲,并滿足不同時相空間數(shù)據(jù)的存儲需要。
基態(tài)修正模型在組織時空數(shù)據(jù)時,同樣面臨空間關(guān)系計算復(fù)雜、數(shù)據(jù)讀取時計算量大等缺點(diǎn),尤其在處理變化數(shù)據(jù)鄰域中的非變化數(shù)據(jù)時,不能在鄰域計算后直接進(jìn)行讀取數(shù)據(jù),需要順序讀取其之前時刻的全部歷史數(shù)據(jù)并疊加處理。多時相衛(wèi)星影像數(shù)據(jù)在采用基態(tài)修正模型組織管理時,由于常常調(diào)用的不是起始時刻的影像,而是較新時刻的影像,這就造成高頻調(diào)用的影像往往都需要不斷進(jìn)行歷史訪問和順序疊加操作,嚴(yán)重影響了衛(wèi)星影像的讀取效率。
多基態(tài)修正模型是在基態(tài)修正模型的基礎(chǔ)上,通過在若干個特定時刻存儲完整數(shù)據(jù)(即多個基態(tài)),差文件在其之前最近基態(tài)的基礎(chǔ)上建立,形成多個基態(tài)修正模型疊加的結(jié)構(gòu),如圖1 所示,圖中的T0、T5、T10、T15時刻對應(yīng)的粗實(shí)線表示基態(tài),其余細(xì)實(shí)線表示差文件。基態(tài)之間的時間差稱為基態(tài)距,如圖1 中的L1、L2、L3。與傳統(tǒng)基態(tài)修正模型相比,多基態(tài)修正模型能夠有效減少獲取較新時刻數(shù)據(jù)時的歷史訪問和順序疊加操作,并減少差文件空間結(jié)構(gòu)的復(fù)雜度和數(shù)量[10]。
在多基態(tài)修正模型中,快照建立的越多、基態(tài)距越短,能夠獲得更高的數(shù)據(jù)訪問效率,但數(shù)據(jù)量就越大;相反地,快照建立的越少、基態(tài)距越長,數(shù)據(jù)量就越小,差文件數(shù)越多越復(fù)雜,數(shù)據(jù)訪問效率越低。因此,選取合適的基態(tài)距就顯得尤為重要。
不同時刻數(shù)據(jù)量之間的變化可以用差文件數(shù)據(jù)率ki表示:
其中,Qi為i 時刻對應(yīng)的數(shù)據(jù)量,B 為i 時刻相對應(yīng)基態(tài)的數(shù)據(jù)量。
在構(gòu)建多基態(tài)修正模型時,不同時相數(shù)據(jù)的對應(yīng)時刻記為i ,i=1,2,3...,n,相鄰基態(tài)變化量閾值記為a。當(dāng)變化率累積Kj大于a 且Kj-1小于a時,則建立新快照。變化率累積Kj如下所示:
建立新基態(tài)后,上式i 從j 時刻重新開始累積,直至建立下一個新基態(tài)。如此往復(fù),直至所有時刻均完成構(gòu)建。如圖2所示。
圖2 基于動態(tài)基態(tài)距的多基態(tài)修正模型示意圖
從圖2 可以看出,基態(tài)距隨不同時刻數(shù)據(jù)的變化率ki變化而動態(tài)變化。不同時相數(shù)據(jù)間的變化率ki越小或閾值a 越大,基態(tài)距則越大;不同時相數(shù)據(jù)間的變化率ki越大或閾值a 越小,基態(tài)距則越小。
當(dāng)變化率累積Kj達(dá)到50%~60%時,差文件一般出現(xiàn)較高的空間浪費(fèi)率,因此閾值a 一般選取50%或60%。也可通過實(shí)際檢索和讀取效率比測的方式確定閾值a。
單幅衛(wèi)星影像數(shù)據(jù)一般覆蓋范圍廣,數(shù)據(jù)量較大,以整幅衛(wèi)星影像為單位進(jìn)行組織、檢索和瀏覽時,效率極低。由于用戶檢索和瀏覽的范圍通常僅占整幅衛(wèi)星影像一小部分,為提高效率,需對衛(wèi)星影像對進(jìn)行分塊處理,形成影像瓦片[11]。瓦片一般大小為256×256像素。
為快速獲得同一地區(qū)不同分辨率的衛(wèi)星影像,提高影像數(shù)據(jù)檢索、調(diào)度和不同尺度瀏覽時的效率,需按照不同分辨率等級將影像瓦片層次化組織起來,這種數(shù)據(jù)模型稱為金字塔模型,如圖3 所示。相鄰分辨率等級一般為2 倍關(guān)系,金字塔模型中越低層級,影像分辨率越高。高層級的影像瓦片可通過對低層級影像瓦片重采樣得到。
圖3 影像金字塔模型示意圖
與傳統(tǒng)金字塔模型中每個分塊分別代表一個影像瓦片不同,在多時相影像金字塔模型中,金字塔模型的每個分塊均代表對應(yīng)區(qū)域所有刻的影像瓦片。改進(jìn)的多時相影像金字塔模型的每個分塊均采用基于動態(tài)基態(tài)距的多基態(tài)修正模型來組織多時相的影像瓦片,其構(gòu)建過程如下。
1)對起始時刻的衛(wèi)星影像,在進(jìn)行影像分塊形成瓦片后,直接存儲于金字塔模型的對應(yīng)分塊,此時金字塔模型為基態(tài)修正模型的基態(tài)。
2)對后續(xù)多時相的衛(wèi)星影像輻射校正、輻射配準(zhǔn)后,進(jìn)行影像分塊形成瓦片,瓦片分別與上一時刻對應(yīng)區(qū)域分塊進(jìn)行變化檢測;變化檢測一般采用圖像差值法,該方法簡單、效率高且易于工程實(shí)現(xiàn),也可采用主成分分析法、聚類法等方法進(jìn)行變化檢測。
3)設(shè)定變化檢測閾值b,若影像瓦片的變化量大于變化閾值b,則說明該瓦片較上一時刻發(fā)生了變化,應(yīng)當(dāng)作為基態(tài)修正模型中的差文件,在金字塔模型中進(jìn)行存儲;若影像瓦片的變化量小于變化閾值b,則將該瓦片視作未發(fā)生變化,不在金字塔模型中存儲,僅在金字塔模型的對應(yīng)分塊上進(jìn)行標(biāo)記。同時,累積統(tǒng)計發(fā)生變化的影像瓦片數(shù)量。
4)若累積統(tǒng)計的影像瓦片變化數(shù)量未超過對應(yīng)基態(tài)的變化量閾值a,則對下一時刻的衛(wèi)星影像重復(fù)第2)、3)步;若累積統(tǒng)計的影像瓦片變化數(shù)量達(dá)到或超過對應(yīng)基態(tài)的變化量閾值a,則不進(jìn)行變化監(jiān)測和判斷,新建多基態(tài)修正模型中的下一個基態(tài),該時刻的全部數(shù)據(jù)在金字塔模型中的對應(yīng)分塊進(jìn)行存儲,同時累積統(tǒng)計的影像瓦片變化數(shù)量清零,對下一時刻衛(wèi)星影像重新第2)、3)步。
5)直至所有時刻的衛(wèi)星影像均完成多基態(tài)修正模型的建立。
6)對于影像金字塔模型高層級中的低分辨率影像,可通過對下一層級多基態(tài)修正模型中的對應(yīng)影像瓦塊進(jìn)行重采樣獲得;對于重采樣時缺少的影像瓦塊,可采用多基態(tài)修正模型中的對應(yīng)基態(tài)和差文件進(jìn)行疊加獲得。
改進(jìn)的多時相影像金字塔模型如圖4所示。
圖4 改進(jìn)的多時相影像金字塔模型示意圖
Hilbert曲線具有良好的空間聚類效果,影像瓦片存儲時能夠較好地保持鄰接關(guān)系,具有較高的順序讀取效率[12],其空間查詢和鄰域編碼計算復(fù)雜的缺點(diǎn)可通過曲線網(wǎng)格劃分或查表的方式進(jìn)行優(yōu)化。
將金字塔模型各層級分塊分別按照Hilbert 曲線順序進(jìn)行編碼,成為Hilbert空間排列碼。因此本文采用“L_H_T”的命名規(guī)則對多時相影像金字塔的影像瓦片進(jìn)行編碼,其中,L 為影像瓦片所在的金字塔層級,H 為影像瓦片在所在金字塔層級中的Hilbert 空間排列碼,T 為影像瓦片對應(yīng)的時刻。由于“L_H_T”命名規(guī)則的編碼能夠唯一標(biāo)識每一個影像瓦片文件,能夠直接從編碼獲取影像瓦片在金字塔模型中所處的位置和對應(yīng)時刻時間。
在進(jìn)行多時相影像瓦片的檢索時,根據(jù)影像瓦片編碼規(guī)則和用戶檢索瀏覽習(xí)慣,本文設(shè)計為三級檢索:
第一級索引根據(jù)用戶檢索和瀏覽的分辨率,映射到對應(yīng)的金字塔層級;
第二級索引根據(jù)用戶提供的影像瓦塊Hilbert空間排列碼,計算其行列編碼和地理空間位置,索引到金字塔模型的對應(yīng)分塊;
第三級索引根據(jù)用戶指定的時刻,索引到特定的影像塊;若金字塔模型中該分塊在給定時刻僅有對應(yīng)的差文件,則在多基態(tài)修正模型中查找最近的基態(tài),并與其之后的差文件進(jìn)行疊加操作,獲得指定時刻的影像塊,所需的基態(tài)和差文件可通過修改影像塊“L_H_T”編碼的T編碼快速獲得。
本文采用Esri ArcGIS 和Google Earth 提供的某地多時相衛(wèi)星影像數(shù)據(jù)進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)的原始影像數(shù)據(jù)總量約3.62GB。9 個不同時刻的局部樣例影像如圖5所示。
圖5 多時相衛(wèi)星影像示例
實(shí)驗(yàn)分別采用序列快照模型、基態(tài)修正模型和本文提出的方法(基態(tài)距閾值選取60%),進(jìn)行多時相影像金字塔模型的數(shù)據(jù)組織和存儲,并對最新時刻影像進(jìn)行讀取,影像讀取效果如圖6 所示。存儲空間開銷比對,如圖7所示。隨機(jī)選取10個不同時刻不同地點(diǎn)的影像塊,分別采用上述三種模型進(jìn)行讀取的時間開銷如圖8所示。
通過實(shí)驗(yàn)驗(yàn)證了本文模型的可行性,并從實(shí)驗(yàn)影像的比對可以看出,本文提出的多時相衛(wèi)星影像數(shù)據(jù)組織方法,雖然不能像序列快照模型那樣完整地保存原始影像,但能夠保證主要的影像數(shù)據(jù)不丟失,時相間變化小的區(qū)域利用之前時相的影像進(jìn)行了代替。
圖6 采用不同模型進(jìn)行多時相衛(wèi)星影像存儲并讀取的影像結(jié)果
圖7 存儲空間開銷對比圖
圖8 影像瓦片讀取的時間開銷對比圖
從圖7 可以看出,本文提出模型的存儲開銷明顯小于序列快照模型,略高于較傳統(tǒng)的基態(tài)修正模型;從圖8 可以看出,本文提出模型的讀取時間開銷低于傳統(tǒng)的基態(tài)修正模型,略高于序列快照模型。因此,本文提出模型能夠在大幅度減少數(shù)據(jù)冗余存儲的同時,兼顧影像塊的讀取效率。
采用基于動態(tài)基態(tài)距的多基態(tài)修正模型組織多時相的衛(wèi)星影像數(shù)據(jù),在傳統(tǒng)多分辨率金字塔模型的基礎(chǔ)上,將每個金字塔分塊對應(yīng)一個多基態(tài)修正模型,用以管理衛(wèi)星影像分塊的基態(tài)和差文件,并對基態(tài)之間的間隔進(jìn)行了動態(tài)分配,提出了改進(jìn)的多時相基于Hilbert 空間排列碼的多時相影像瓦片編碼和相應(yīng)的檢索機(jī)制,兼顧了影像塊的讀取效率和數(shù)據(jù)冗余程度,為解決多時相衛(wèi)星影像的管理問題進(jìn)行了有益的探索。