常 津
(南京市國土資源信息中心,江蘇 南京 210005)
“一張圖”工程整合了基礎地理框架、遙感影像、業(yè)務流轉和實時更新、建設用地審批等多源數據信息,不僅對于保持自然資源基礎數據的現勢性和真實性具有重大意義,還為國家直接、及時、準確掌握自然資源現狀和時空變化提供了綜合平臺[1]。但是,隨著自然資源信息化的不斷發(fā)展,“一張圖”中的數據量也在快速增長。日益龐大的數據庫給日常維護和管理帶來了一定困難,同時也對業(yè)務系統的穩(wěn)定運行造成了影響。因此,如何適時適度地清理“一張圖”數據庫,實現數據庫性能優(yōu)化,保證系統運行順暢,成了當前亟待解決的問題。
在進行數據庫清理時,需遵循以下原則:一是保障數據的保密性、完整性、可用性,降低數據安全風險;二是選擇適當類別的數據進行清理,盡可能減小對當前業(yè)務系統的影響[2]。目前,南京市“一張圖”在自然資源調查、動態(tài)監(jiān)測等工作中積累了大量的影像數據,全市每年的影像數據量平均在200 GB左右,歷史數據總量已達到了TB級。遙感影像占據了相當大的數據庫空間,但基本維持在一年更新一次,相對于實時更新的地籍管理、建設用地等數據,對數據庫的現勢性影響較小?;谏鲜龇治觯瑢v年遙感影像從“一張圖”數據庫中轉移出來,單獨離線存儲,是清理數據庫的適當選擇。但是,如何快速更新發(fā)布離線數據,保證數據清理后“一張圖”影像的顯示效果,實現更好的用戶體驗,是另一個需要解決的重要問題。在過去的工作中,通常將影像入庫并存儲在“一張圖”數據庫中,然后再進行切片發(fā)布等,這樣的做法效率較低且占據了大量的數據庫空間,若入庫時不慎出現了誤操作會很難完全釋放原本的自由空間,給數據庫帶來巨大壓力。為了滿足數據庫減負和地圖服務高效的雙重需求,本文改進了傳統的工作方法,設計實現基于ArcGIS SERVER和GeoWebCache的遙感影像切片更新發(fā)布模式,將歷年影像從數據庫中剝離出來,釋放數據庫空間。實驗證明,本方案有效緩解了“一張圖”數據庫的存儲壓力,優(yōu)化了數據庫性能,同時提高了影像數據的更新發(fā)布效率,保證了訪問速度。
目前,影像數據存儲模式主要分為三類:數據庫存儲、文件系統存儲、混合存儲[3]。
(1)數據庫存儲。使用Oracle擴展的面向對象關系數據模型GeoRaster實現遙感數據組織和管理,在數據安全性、多用戶并發(fā)控制和存儲擴展等方面具有優(yōu)勢,但其弊端也非常明顯:需要大型關系型數據庫平臺的支持,影像數據入庫耗費大量時間,建庫后影像數據將會占用較大的存儲空間,數據的局部更新和備份操作煩瑣。
(2)文件系統存儲。數據以文件的形式集中存儲在指定的服務器上,通過文件的方式對影像數據進行組織和管理,具有易于維護管理和不需要建立影像數據庫的特點。對于離線影像文件,更新較為方便,但是無法使用動態(tài)切片緩存方法,要基于文件進行切片,因此保證切片生產效率和成果質量是使用該存儲方法的重點。
(3)混合存儲。結合關系數據庫和文件系統存儲的特點,將遙感影像數據存儲在文件系統中,數據庫只管理影像數據的索引信息,因此影像數據的檢索效率會得到大幅提高。但是,使用該方法進行存儲依舊不能從根本上改變影像數據對數據庫的依賴。
根據以上分析可以看出,只有改變影像數據的存儲方式,將歷年遙感影像集中存儲在文件系統中,釋放當前數據庫的空間,才能實現數據庫清理的目的。同時,為了保證數據快速更新發(fā)布,需要選擇適當的方法,基于離線影像文件預生成靜態(tài)瓦片,通過緩存大量規(guī)則的地圖瓦片來響應客戶端的請求。
本文提出的數據庫清理方案總體設計如圖1所示,首先對數據庫中的所有影像進行備份,保證其安全性和完整性;然后對歷年影像依次進行預處理,處理過程主要包括坐標轉換、重采樣、數據鑲嵌、數據裁剪、建立金字塔等,生成規(guī)格統一的遙感影像,并在ArcGIS中按照年份創(chuàng)建全市范圍的影像文檔,并對每個文檔進行分割,以提高切片效率;接著利用ArcGIS Server基于離線數據進行切片生產,同時用GeoWebCache發(fā)布切片數據,保證數據訪問速度;最后全面清理“一張圖”數據庫中存儲影像的表空間,優(yōu)化數據庫性能。

圖1 數據庫清理方案總體設計
2.2.1 遙感影像預處理
數據預處理的目的是統一原始影像的分辨率、坐標系、色調等,將分塊的影像以行政區(qū)為單位進行整合梳理,保證數據質量,為切片生產提供完整準確的基礎數據。其基本步驟如下:
(1)坐標轉換。將國家下發(fā)的標準格式數據統一轉換為地方坐標系。
(2)影像鑲嵌。將歷年影像以行政區(qū)為單位進行拼接,鑲嵌為完整區(qū)域的影像。原始數據往往在規(guī)格上存在差異,因此對于同一年度相同行政區(qū)內的若干影像,需要以分辨率最高的影像為基準像幅,在拼接時選擇雙線性內插法進行重采樣,確保成果的整體分辨率。
(3)影像裁剪。對每個行政區(qū)的影像按照行政界線進行裁剪,獲得區(qū)域影像,并利用JPEG_YCbCr方式對影像進行視覺無損壓縮,并構建影像金字塔,保證影像在ArcGIS中的加載速度和顯示效率。
2.2.2 ArcGIS Server生產地圖瓦片
根據傳統模式,“一張圖”中的地圖瓦片是基于在線影像動態(tài)生成的,也就是說所有的數據在切片前都要進行數據入庫,并完成相應的圖層配置。如果將影像數據從數據庫中剝離,必須改變現有的切片方式。針對這一問題,本方案將選擇ArcGIS Server生產切片數據,其地圖服務緩存機制的工作原理是:按照一定的數學規(guī)律,在先期選擇的各個比例尺下,將整個原始地圖文件,切成一定規(guī)格的圖片,然后保存這些圖片的副本到服務器端[4-5]。當客戶端向服務器請求地圖服務時,服務器不需要動態(tài)生成新的瓦片,而是根據客戶端請求的地圖區(qū)域信息將原來切好的地圖圖片傳輸到客戶端,從而有效地提升地圖的瀏覽速度,減輕數據庫的負荷。
基于ArcGIS Server生產切片,首先將所有影像以年份為單位在ArcMap中逐年創(chuàng)建全市范圍的遙感影像地圖文檔;然后對每一個地圖文檔按照一定的行列數進行分割,保證切片效率;最后按照電子地圖的顯示要求,分12個級別的比例尺進行影像數據緩存。
2.2.3 GeoWebCache發(fā)布切片數據
ArcGIS Server的緩存圖片構建好之后,進行部署時,如果只需要某個區(qū)域內的緩存圖片,需單獨針對該區(qū)域重新構建緩存圖片,要花費大量的時間。為解決這個問題,需要選擇一種可以從已經建立好的地圖瓦片中提取目標范圍內緩存圖片的方法。
GeoWebCache是 OpenGEO 的一個開源瓦片地圖服務模塊,采用Java實現基于WMS的動態(tài)緩存服務。在實際工作中,GeoWebCache部署于客戶端和WMS兼容服務器之間,充當地圖訪問代理。其發(fā)布數據的基本原理是:當客戶端請求加載地圖服務時,服務地址指向geowebcache,geowebcache接收到請求后,會根據請求的位置和比例尺在切片目錄中找到對應的瓦片,然后返回給客戶端[6-7]。本方案中請求的切片資源是ArcGIS Server提前生成的,瀏覽器加載這些圖片之后,下一次再請求同樣的圖片時,就會從瀏覽器的緩存中抽取數據,不需要在服務器端重復計算,這使得地圖繪制的速度提升數倍,也得到了更好的用戶體驗效果。
南京市“一張圖”數據庫中積累了大量的影像數據,包括專項土地調查數據與遙感監(jiān)測影像等。根據區(qū)域面積和分辨率的差異,一個縣(區(qū))的遙感影像數據量為20 GB到50 GB,全市每年的衛(wèi)片影像數據量平均在200 GB 左右,高分航片影像數據量平均在500 GB,歷年影像數據總量更是達到了TB級。
本文主要從兩個方面進行試驗,一方面對影像數據進行清理,結果顯示清理前歷史遙感影像及其冗余數據占據了目前Oracle數據庫近2TB的存儲空間,清理后數據庫負荷較小,性能提升。另一方面以南京市2013年高分航空影像為例進行切片試驗,其數據量為460 GB,從表1的對比結果可以看出,用本文提出的方案進行影像切片發(fā)布,雖然不能動態(tài)生成地圖瓦片,但是大大緩解了數據庫的存儲壓力,還能夠省去數據入庫的環(huán)節(jié),簡化生產過程。使用ArcGIS Server切片效率較高,相較在線切片的方法也更為穩(wěn)定,保證了響應速度。通過GeoWebCache發(fā)布服務,保證了影像顯示質量。因此綜合考慮,本方案是保證系統全線穩(wěn)定的有利選擇。

表1 切片方案對比
“一張圖”數據庫日益龐大,對數據庫性能和系統運行造成了一定影響,本文針對這一問題設計了數據庫清理方案。首先根據實際工作需求鎖定歷年遙感影像數據為清理目標;然后分析影像數據存儲模式,將影像存儲在文件系統中;最后提出基于ArcGIS SERVER和GeoWebCache的遙感影像切片更新發(fā)布模式,保證影像數據脫離數據庫后的發(fā)布效率。實踐證明,本方案行之有效,不僅實現了數據庫清理的目的,優(yōu)化了數據庫性能,而且提高了影像數據的更新發(fā)布效率,簡化了切片生產過程,為國土資源“一張圖”數據庫清理提供了新的思路。