張濤,胡振,宋銘凱
(1.浙江師范大學,浙江 金華 321004;2.61175 部隊,江蘇 南京 210000)
在參與長江三峽集團有限公司的項目“長江生態格局與關鍵過程長期演變及效應研究”中,經常需要涉及大面積圖幅的歷史時期的紙質地形圖數據的收集與研究。為和現代遙感影像數據格式相統一以及將紙質地圖導入計算機中進行信息化地理學相關處理和分析,需要將紙質地圖轉化成矢量數據。
柵格數據矢量化的研究已經實現了基于二值化簡單多邊形圖像的自動識別生成矢量數據,但是對于復雜的彩色地圖和大面積的批量矢量化研究尚有欠缺。本文基于Arc Map軟件,對大型彩色地圖進行矢量化,提取其中主要圖斑的地理信息,為之后地理信息從業人員快速處理類似的歷史地形圖提供一定的經驗和技術基礎。
地理信息系統(GIS)是以空間數據為基礎,采取多種分析方法以提供地理信息,其廣泛的應用在不同的領域,是用于輸入、存儲、查詢、分析和顯示地理數據的計算機系統。因此,在地理學的相關研究中,我們經常用GIS 來管理和分析地理信息數據,同時在GIS 中最常見的兩種信息數據形式為矢量數據和柵格數據。
矢量數據是通過記錄坐標的方式,盡可能精確地表示點、線、面等地理實體的位置。其具有“位置明顯,屬性隱含”的特點,擁有較強的可編輯能力;數據表達精度高,存儲量小;方便拓撲分析和幾何運算。矢量數據通常通過點、線、面三種抽象幾何要素來表達空間實體的相關關系。
柵格數據是用規則的陣列來表示空間地物分布的數據組織,組織中每個數據表示地物或現象的非幾何屬性特征。相較于矢量數據,柵格數據具有“屬性明顯,位置隱含”的特點,其數據結構簡單,易用于數據交換;但同時數據量大且質量低。常用于表示地表形態,如DEM、遙感圖像和土地利用數據。
鑒于矢量和柵格數據各有各自不同的優缺點和運用范圍,并且通常需要運用對應的軟件進行數據處理,因此我們應該根據生產需求和工作環境選擇對應的數據形式或者靈活的在二者之間對其相互轉換。
在進行長時間序列的相關研究中,常用到歷史紙質地圖或其他紙質圖集,為方便信息的收集、處理和分析,常常通過掃描的方式將紙質地圖掃描信息化,其數據常以柵格數據的格式存儲于電子媒介中,出于幾何分析的需求,通常要將其轉換為矢量數據。傳統的地圖矢量化采用人工目視解譯,創建矢量數據對地理要素進行框選和標記的方法。這種方法在操作上十分依賴人力和時間成本,且成果存在一定的主觀誤差。
一般歷史地圖分為彩色和黑白,圖中常包含信息有經緯網、比例尺、圖例、成圖(出版)年份和地類地物等。在與湖泊相關的歷史地形圖中,湖泊一般呈大面積連續或河網連接連續的相同圖例地物、地形出現在地圖上,與周邊的其他地物、地形呈現明顯圖案或色彩的差別,本次研究所選用的數據是1930年以來東洞庭湖歷史地形圖,圖中圖形信息包含了水體、濕地、耕地和其他用地地類,包含的文字信息有經緯網、比例尺、圖例和坐標系以及對地點的標注。
根據湖泊歷史地圖的特點和最終的矢量數據需求,本次研究將結合Arc Map 的基本工具和其中的Arc Scan 模塊對矢量化做出以下方法設計:(1)對歷史地圖進行掃描錄入和配準,獲得具有地理位置屬性的柵格空間數據集;(2)調用重分類工具對柵格數據進行二值化處理,以前景值和背景值來區分湖泊和其他地物,獲得值為1 或0 的柵格數據集;(3)調用Arc Scan 模塊將二值化中的湖泊作為前景值進行自動矢量化,反復調整參數設置以優化矢量過程和結果,獲得初步的矢量圖斑;(4)結合柵格圖像數據,調用Arc Map 中相關工具對矢量化結果進行優化和調整,去除噪點和其他誤差值,以獲取符合需求的高質量矢量化數據。
根據歷史地形圖中的地圖文字信息或者說明文件中的地理坐標系、投影和經緯度信息等建立相對應的空間數據集。首先將地圖以柵格數據的形式載入Arc Map 軟件中,在Arc Map 的圖層列表中設置Layer 的坐標系和投影,使其與歷史地形圖中的說明信息一致。運行Geo Referencing 配準工具,依據地圖上標注的經緯度選擇合適的經緯線交叉點或者選擇其他無經緯信息的特殊地標點(一幅地圖一般選擇4 個點),本次樣本中所選擇的配準點為歷史地形圖中的手繪的4 個角點(圖1,這4 個點分布均勻且擁有準確的坐標信息)。當配準的殘差在允許范圍內時,選擇保存地理配準,即將無地理信息的柵格數據轉變為擁有坐標系和投影的地理柵格數據。

圖1 地理配準
一般的柵格圖像可分為多波段組合或者單波段圖像,彩色歷史地形圖一般擁有三個波段通過RGB 組合成像,對比柵格圖像的各個波段的圖像質量,依據水體的顯示效果排序,選擇顯示效果最優的一個波段載入Layer(單波段柵格圖像無需此操作步驟)(如圖2所示),在Layer 下調用該波段的Layer Properties 中的Symbology 模塊,選擇Classified,將Classes 設置為2(即分為兩類),調整合適的閾值對該波段進行二值化處理,在設置閾值時需要不斷嘗試調整,以使得水體和陸地可以很好地區分開。同時為避免之后矢量化過程中,柵格地圖中的經緯線和注釋造成的矢量圖斑割裂,應默認將其設置為前景值范圍內與水體合并(之后的優化處理過程中,刪除多余部分更加方便)。得到的圖像可以在Layer 中清晰表現為黑色與白色兩個值,各對應最小值至閾值和閾值至最大值兩類灰度值,將湖泊設置為前景值(黑色)其余地物為背景值(白色)(如圖3所示)。

圖2 單波段載入圖像

圖3 二值化圖像
通過調用Arc Scan 模塊矢量化前景值得到湖泊水體初步矢量圖斑。在Arc Map 中打開Catalog 建立Personal Geodatabase 以用來儲存Arc Scan 模塊執行生成的矢量數據,在 Personal Geodatabase 下建立新的Feature Dataset,并設置成和柵格地圖相同的地理坐標系或投影坐標系以確保生成的矢量數據擁有和柵格地圖相同的地理信息。在新生成的Feature Dataset 下添加New Feature Class,分別為Polyline、Polygon 要素用于存儲矢量線要素和矢量面要素。在Arc Map 中調用Arc Scan 模塊(調用前應先在Customize中的Extensions 和Customize Model 中勾選Arc Scan 以啟用該模塊功能),在Arc Scan 中調用Vectorization Settings 對矢量化過程的參數進行相關設置,主要設置參數包括調控連接點處處理,最大線寬(Intersection Solution,Maximum Line Width)等,可以依據實際地圖做出相應調整,也可在Styles 中選擇預設的常用模型,本次地圖應考慮到經緯線對連接點的影響,經過多次調整實驗對比結果,最終將節點處設置為None,最大線寬設置為20(如圖4所示)以獲得最好的矢量化結果,同時要在Options 中設置水體的一類Foreground。

圖4 參數設置
經過之前的步驟,ArcScan 工具可以輸出初步的矢量化成果,如圖5所示,但是一般這樣的矢量數據都還存在很多需要進一步優化的地方。本次研究實驗中總結了常見的幾個問題:(1)由于紙質地圖的長時間保存導致紙質下降或者掃描時掃描機器自身精度不夠或過高將紙質紋理掃入等的各種系統誤差原因,柵格數據會存在很多噪點或空缺值,這些誤差直接反映在初步矢量化的結果中矢量圖斑存在大量的點面空值;(2)由于Arc Scan 工具的局限性,其他地物或地名與水體相連的部分也被矢量化并入水體斑塊,存在很多多余部分(如圖5所示);(3)Arc Scan 追蹤像素點的原理導致矢量圖斑的邊界呈現明顯鋸齒狀,如圖6所示。

圖5 矢量化初步結果

圖6 鋸齒狀邊界
為優化以上問題導致的矢量成果質量低,本次實驗研究總結了一些常用的有效措施來消除這些問題,從而獲取更高質量的矢量數據。第一步,剔除多余的未連接的像素點生成的冗余矢量圖斑,在Layer 下調用Polygon 矢量要素集的Table,對其按面積篩選,因為所要提取的水體面積遠遠大于其他地名注釋和其他標注,依據需求的大小設定閾值,將需要的Polygon 導出即可去除其他不需要的矢量圖形,如圖7所示。

圖7 導出后的圖斑
第二步,將矢量面中的空洞值填補并與相連接的矢量圖斑融合,在Arc Map 中調用Feature To Polygon,選擇導出矢量要素保存在的Layer,將一個矢量面和它的空洞值轉換成多個面要素,再調用該矢量要素所在Layer 的Table,對所有的矢量面圖形進行合并處理,得到一個完整的矢量面圖形,如圖8所示。

圖8 合并后的面
第三步,對以追蹤像素點為原理的自動矢量化所生成的鋸齒狀邊界進行進行平滑處理,在Arc Map 中調用Smooth Polygon 工具,選擇合并后的矢量面所在的Layer,根據需求和出圖結果進行優化調整設置平滑值(本次樣本選擇50),平滑后得到對應優化后的矢量圖形,如圖9所示。

圖9 平滑處理后的邊
第四步,對應平滑后的矢量圖形,任然存在部分與經緯線和地圖注釋相連接的多余面,調用Arc Map 中的Cut Polygon 工具對其剪裁,最終獲得符合要求的水體矢量化圖形,如圖10所示。

圖10 優化后的自動矢量化圖形
本次研究實驗成功實現了歷史湖泊地圖的一種矢量化方法,通過調用Arc Map 中的Arc Scan 和其他各種工具提取大面積的湖泊水體,并快速得到高質量的矢量化數據。方法中的Arc Scan 模塊自動矢量化大大減少了傳統矢量化的人力和時間成本,消除了主觀判斷所存在的人為誤差,提高了矢量化結果的精度。但是,本次研究實驗也有以下幾個需要改進的點:(1)部分Arc Map 中的工具的調用需要手動操作完成,未能實現全部的自動化。(2)最終成果的優化仍然需要手動結合原圖識別修改,還需進一步節省人力成本和時間成本。
經過本次方法實驗,Arc Map 軟件是可以提供完整的自動矢量化操作的,傳統的矢量化方法因其煩瑣重復的操作流程和大量人力時間成本投入必將在不遠的將來淘汰。本次實驗的結果與不足也揭示了完整自動矢量化所缺失的幾個重點所需要的進一步研究的方向:(1)基于AE(Arc Engine)平臺編程實現全程按步驟自動調用Arc Map 中的模塊,方便批量操作;(2)伴隨著當今人工智能技術的發展和計算機算力的提升。基于計算機大數據學習的能力,可以通過大數據學習實現自動識別矢量圖斑形狀規則以達成自動優化矢量化結果。