郭強 何瀟 朱大明



摘 ?要: 針對天地圖·云南平臺數據更新的需求,提出了基于地理信息系統(GIS)的海量DOM影像數據重采樣系統的設計方案,論述了系統的結構以及實現方法。重點對系統的整體框架、功能設計和系統實現進行了詳細介紹。有效解決了將1:2000DOM影像批量化重采樣為1:5000DOM影像的問題,完成了天地圖·云南平臺數據更新工作。
關鍵詞: GIS;DOM;重采樣;ArcObjects
中圖分類號: TP391. 41 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.08.004
本文著錄格式:郭強, 何瀟, 朱大明, 等. 基于GIS的海量DOM影像數據重采樣系統的設計與實現[J]. 軟件,2019,40(8):1419
【Abstract】: Aiming at the demand of Map World·Yunnan platform data update, a design scheme of massive DOM image data re-sampling system based on geographic information system (GIS) is proposed, and the structure and implementation method of the system are discussed. The focus is on the overall framework, functional design and implementation of the system. It effectively solves the problem of re-sampling 1:2000 DOM image into 1:5000 DOM image, and completes the data update work of Map World·Yunnan platform.
【Key words】: GIS; DOM; Re-sampling; ArcObjects
0 ?引言
數字正射影像圖(Digital Orthophoto Map),縮寫DOM)是對航空航天影像的像素進行數字微分糾正和鑲嵌,按照國家基本比例尺的圖幅范圍裁剪生成的數字正射影像集[1]。DOM不但具有地圖的影像特征和幾何精度,而且集高精度、信息豐富和真實直觀等優點于一體。DOM不僅可以充當地圖分析的背景控制信息、還可以從中獲取自然資源的信息和社會發展的情況、為災害防治以及建筑規劃提供可靠的依據。
天地圖·云南平臺作為國家“天地圖”的省級節點,旨在為公眾提供提供專業的地理信息綜合服務。云南地處高原,部分地區海拔落差太大,氣象條件不穩定,采集到原始影像包括1:2000DOM和部分1:5000DOM。為滿足天地圖·云南平臺的更新需求和國家保密要求,需要將現有全省范圍的1:2000DOM影像重采樣為1:5000DOM影像。天地圖·云南的影像數據處理工作主要基于ArcGIS軟件平臺進行,海量DOM影像重采樣的生產過程繁瑣,而且包含了大量耗時耗力重復性工作。針對現有的云南全省約39萬平方公里的DOM影像,本文設計并實現了一個基于GIS的海量DOM影像數據的重采樣系統。
1 ?基本思路與技術路線
1.1 ?基本思路
系統需要對30T以上的數據進行處理,要求實時性和可維護性好,安全可靠性高,操作使用方便,同時滿足7*24小時不間斷運行的要求。由于原始影像數據數量龐大,情況復雜,要求系統隨時根據突發的特殊情況進行修改,故采用分布執行方案。將較為獨立的數據處理步驟分成多個子系統進行操作,在人工的干預下各個子系統有序運行;為了降低數據處理過程的風險性,對影像數據進行單個處理,即每個圖幅根據自身情況要執行全部的或者部分的操作步驟。在執行過程發生意外中斷后,可繼續執行,不影響整體進度。
1.2 ?技術路線和要求
(1)技術路線
整個重采樣過程分為兩部分:一是將現有的1:2000DOM原始影像轉換為1:5000DOM。首先要按照國家標準生成云南省0.5米分辨率的影像分幅外擴圖框,每個圖框要攜帶標準圖幅號屬性,找出外擴圖框與原始影像圖框的對應關系,然后將0.2米分辨率的影像圖經過重采樣操作變為0.5米分辨率。二是對原始1:5000DOM影像數據進行空間參考轉換,把重采樣后臨時影像和空間參考轉換后臨時影像進行鑲嵌合并、裁剪得到成果影像。
(2)技術要求
以《GDPJ 05-2013數字正射影像生產技術規定》為依據,可知1:5000數字正射影像產品的標準:大地基準采用2000國家大地坐標系、高程基準采用1985國家高程基準、投影分帶采用高斯克呂格投影3°分帶[2]。
2 ?關鍵技術
2.1 ?雙線性內插法(Linear Interpolation)
重采樣是指根據一類象元的信息內插出另一類象元信息的過程。目前,最常用的重采樣方法有:雙線性內插法(Linear Interpolation)、最鄰近內插法(Nearest Neighbor Interpolation)和三次卷積內值法Cubic Convolution Interpolation)[3]。考慮到本項目既要保證成果數據盡量精確,又要體現執行效率,故采用雙線性內插法作為影像重采樣技術。
2.2 ?ArcObjects
ArcObjects作為ArcGIS這個大型地理信息軟件的開發平臺,可同時對ArcMap、ArcScene和Arc-Catalog等應用程序進行開發。ArcObjects是一系列基于微軟的COM技術所構建的組件集[5],具有強大的開放性和拓展性。用戶可以從支h持COM標準的各種開發環境中進行選擇,例如VB,VBA,VC++和DELPHI等。可以自主開發COM組件對ArcObjects組件庫進行擴展補充。
2.3 ?Geoprocessing
Geoprocessing是用于處理地理數據和相關數據的框架和工具集,可用于執行空間分析或以自動化方式管理GIS數據。通過Geoprocessing,用戶只需要簡單的填寫參數和設置環境變量,就可以實現相應的數據處理,適用于大量數據的循環處理。
2.4 ?ModelBuilder
ModelBuilder是一種可視化編程語言,用于構建地理處理工作流。ModelBuilder常用于空間分析和數據管理流程的自動化處理。用戶可以通過對ModelBuilder中的地理處理模型進行創建或修改,將一系列流程和地理處理工具串聯在一起,達到將一個流程的輸出用作另一個流程的輸入的效果并生成示意圖[6]。用戶具體可以通過添加地理處理工具、地圖圖層、數據集以及其他數據類型并將其連接到流程來構建所需的地理處理模型。
3 ?系統設計
3.1 ?系統總體框架設計
由于系統涉及到多條業務線,由若干個子系統模塊組成,為了保證各個子系統、子模塊具有可擴展性、易維護性、高容錯性,將采用四層架構進行設計,包括基礎設施層、數據層、支撐層、應用層。
(1)基礎設施層
基礎設施層包括計算資源、存儲資源、安全設備、網絡設備等,是組成數據更新系統的各種硬件設備。計算資源主要用于運行各子系統,保證運行過程穩定、準確、高效;存儲資源主要用于存儲各種原始數據、過程數據、成果數據,要保證讀寫流暢、存儲穩定、備份完整;安全設備為系統網絡安全、數據安全、運行安全、操作安全等提供各種保護措施;網絡設備實現計算資源和存儲資源的連接,保證數據傳輸高效、穩定、安全。
(2)數據層
通過Geodatabase和Shapefile實現標準圖框數據、元數據、空間參考數據、原始影像、輔助數據、過程數據、成果影像的存儲;通過ArcGIS相關組件實現數據的導入、導出、轉換、合并、查詢、空間分析等操作,為下一步的數據處理準備材料。
(3)支撐層
本系統的數據處理主要基于ArcGIS提供的各種組件、中間件、類庫、工具和模塊,開發框架主要基于.Net和Python,具體體現方式為:.Net+ArcOb-j??ects、Python+ArcToolBox+Geoproc?essing+ModelB?ui-lder, 通過優化組合,各自實現相關功能。
(4)應用層
應用層包含標準圖框生成子系統、圖框匹配子系統、重采樣子系統、空間參考轉換子系統、鑲嵌子系統、裁剪子系統。
3.2 ?系統功能設計
基于天地圖·云南的生產需求,結合已有的程序功能,來設計本系統的功能。
3.2.1 ?標準圖框生成子系統
標準圖框生成子系統按照國家標準生成云南省0.5米分辨率影像分幅外擴圖框,每個圖框要攜帶標準圖幅號屬性。該子系統包含四個步驟:
(1)根據《國家基本比例尺地形圖分幅和編號》(GB/T 13989-2012)生成涵蓋云南省范圍的0.5米影像分幅圖框,并計算每個圖框的圖幅號[7]。
(2)用云南省的行政區域與0.5米分辨率影像分幅圖框做覆蓋分析,得到云南省0.5米分辨率影像分幅圖框。
(3)對云南省0.5米分辨率影像分幅圖框做緩沖區和外接矩形操作,得到云南省0.5米分辨率影像分幅外擴圖框。
(4)對云南省0.5米分辨率影像分幅外擴圖框按照CGCS2000投影坐標系分帶范圍進行覆蓋分析。
3.2.2 ?圖框匹配子系統
圖框匹配子系統用于找出云南省0.5米分辨率影像分幅外擴圖框與原始影像圖框的對應關系。具體要把多個0.2米分辨率影像進行鑲嵌,鑲嵌后得到的臨時影像范圍要大于對應的標準0.5米分辨率影像圖幅。輸出結果為標準0.5米分辨率圖幅號與原始影像圖幅號的對應關系列表。
3.2.3 ?重采樣子系統
重采樣子系統用于把0.2米分辨率的原始影像數據經過重采樣操作變為0.5米分辨率的影像數據。為了提高執行效率,采用多進程技術。輸出結果為重采樣后臨時影像和記錄臨時影像的圖幅號與影像文件的路徑的文本文件。
3.2.4 ?空間參考轉換子系統
空間參考轉換子系統用于把原始數據中0.5米分辨率的影像圖經過投影操作變為CGCS2000地理坐標系。
3.2.5 ?鑲嵌子系統
鑲嵌子系統用于把重采樣后臨時影像和空間參考轉換后臨時影像進行鑲嵌,也就是合并。
3.2.6 ?裁剪子系統
裁剪子系統用于把無需鑲嵌臨時影像和鑲嵌后臨時影像按照云南省0.5米分辨率影像分幅外擴圖框進行裁剪,得到最終的成果影像。
4 ?系統實現
4.1 ?開發環境
本系統采用分布執行方案,針對不同的數據類型可分別采用不同的開發環境。對于非柵格數據處理,采用.Net+ArcObjects的方式進行開發;對于柵格數據處理,采用Python+ArcToolBox+Geoproce?ss-ing+ModelBuilder的方式進行開發,支持對進程處理方式,不需額外安裝開發環境,通過人工檢查臨時數據的方式分析運行結果。
4.2 ?系統實現
在整個天地圖·云南數據更新項目(一期)小比例尺影像數據重采樣項目中,本系統運行的關鍵步驟及實現代碼如下:
(1)在ModelBuilder中建立模型、輸入參數生成云南省0.5米分辨率影像的標準分幅圖框(如圖5)。并進行緩沖區、外接矩形分析。
(2)將云南省0.5米分辨率的影像分幅外擴圖框與原始影像圖框進行匹配,依次選擇輸入路徑、線程數和輸出路徑(如圖6)。樣例代碼如下:
…
private void lbl2CellFeatureClass_Click(object sender, EventArgs e)
{
IGxDialog iGxDialog = new GxDialogClass();
IEnumGxObject iEnumGxObject;
…
}
…
(3)通過命令行調用重采樣子系統把原始數據中0.2米分辨率的影像圖經過重采樣操作變為0.5米分辨率的影像圖(如圖7)。樣例代碼如下:
…
import sys,os,re,datetime,multiprocessing,arcpy
def resample(inTif,outTif):
try:
…
def main():
if len(sys.argv)<3:
print "need argument:"
…
pool=multiprocessing.Pool(threadCountMax)
index=0
…
#arcpy.Resample_management(inTif, outTif, ".5 .5","BILINEAR")
#print "Resample_management", outTif
…
(4)對原始數據中0.5米分辨率的影像圖進行空間參考轉換,處理后影像會有少量的旋轉變形,周圍會產生細微的無數據邊框(如圖8),最終需要裁剪掉這些無數據邊框才能作為最終成果。空間參考轉換操作的樣例代碼為:
…
try:
outRef="GEOGCS['GCS_China_Geodetic_Coordinate_System_2000',DATUM['D_China_2000',SPHER-OID['CGCS2000',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199?4?3-3]]"
…
(5)以圖框映射表(如圖9)為依據進行影像鑲嵌。樣例代碼為:
import sys,os,re,datetime,multiprocessing,arcpy
def mosaic(temp5TifFileNameList,outPath,cellId5):
try:
arcpy.MosaicToNewRaster_management(";".join-(temp5TifFileNameList),outPath,cellId5+"_.tif","","",?"",-3,"","")
…
(6)進行影像裁剪,得到成果影像(如圖10)。樣例代碼為:
import sys,os,re,datetime,multiprocessing,arcpy
def clip(cell5ShapeFileName,tif5Path,cellId5):
try:
clipShapeFileName=tif5Path+"\\"+cellId5+-"__.shp"arcpy.Select_analysis(cell5ShapeFileName,clipShapeFileName,"圖幅號='"+cellId5+"'")
arcpy.Clip_management(tif5Path+"\\"+cellId5+"?
_.tif","",tif5Path+"\\"+cellId5+".tif",clipShapeFileName, "","true","true")
…
5 ?結語
基于GIS的海量DOM影像數據重采樣系統,能夠批量化地對DOM影像數據進行重采樣工作。不但解決了海量DOM數據重采樣工作耗時耗力、效率低下和程序繁瑣等問題,而且優化了整個業務流程、為地圖數據管理提供了新思路;在遵守國家涉密數據處理規范的前提下,高效地完成了天地圖·云南平臺的數據更新工作,為各行業提供豐富詳實的數據資源,為政府、企事業單位等專業部門提供更好的基礎地理信息數據支撐保障服務。
參考文獻
[1] 史與正, 王英, 張淑玲. 基于VirtuoZoNT的DEM和DOM的制作方法[J]. 地礦測繪, 2013, 29(03): 30-32.
[2] GDPJ 05-2013, 數字正射影像生產技術規定[S].
[3] 李德仁, 王樹根, 周月琴. 攝影測量與遙感概論[M]. 北京:測繪出版社, 2008.
[4] 郭衛芳. 3D產品在地理國情普查應用中的關鍵技術研究[D]. 東華理工大學, 2015.
[5] 李光雨. 農經權確權數據匯交與質檢系統設計與實現[D]. 中國礦業大學, 2018.
[6] 張振鵬, 米鴻燕. 基于流域提取模型的河網結構信息研究[J]. 軟件, 2018, 39(08): 117-121.
[7] GB/T 13989-2012, 國家基本比例尺地形圖分幅和編號[S].
[8] Pimpler E. Programming ArcGIS 10.1 with Python Cookbook[M]. Packt Publishing Ltd, 2013.
[9] Zhang Y, Unger D, Grogan J, et al. Using ArcPy to Automate Making Thematic Map Books: Two Cases[J]. 2012.
[10] 張小璞, 左小清. 在ArcGIS下基于Python的路網數據批處理方法[J]. 軟件, 2018, 39(07): 130-133.
[11] 劉翔宇, 朱大明. Arcgis中基于Python的地理數據庫批量合并方法研究[J]. 軟件, 2018, 39(07): 161-165.
[12] 吳建波, 孫慶. 基于Web的地鐵盾構施工數據管理平臺[J]. 軟件, 2018, 39(02): 120-124.
[13] 楊帆, 門偉. 嵌入式環境下柵格數據訪問引擎的設計[J].軟件, 2015, 36(11): 115-119.