朱先鴻,王星捷,袁偉強
(1.成都理工大學 工程技術學院,四川樂山 614007;2.四川經準檢驗檢測集團股份有限公司,四川廣安 638500)
青藏高原是中國最大、世界海拔最高的高原,被稱為“世界屋脊”,青藏高原所擁有的湖泊數量是全國湖泊數量的39.2%,而湖泊作為陸地水環境的重要組成部分,參與大自然的水循環,對氣候的變化有著敏感反應,相當于氣候變化的指示器[1],青藏高原的湖泊群是研究青藏高原氣候環境變化的重要組成部分。為研究青藏高原湖泊面積的時空變化規律,利用遙感監測是非常便捷、高效、可行的方法。在遙感數據處理和分析上,目前的方法大多采用ENVI 軟件結合ArcGIS 進行處理和分析。楊珂含等[2]在研究青藏高原湖泊面積動態監測時根據NDWI 和HRWI值,進而通過閾值進行提取,再進行一系列處理,從而得到提取結果,并且對湖泊的時序變化進行了統計。德吉央宗等[3]對近40 年西藏色林錯流域湖泊面積變化及影響因素進行了分析,董斯揚等[4]對近40年青藏高原湖泊面積變化進行了遙感分析,他們同樣也是采用歸一化差異水體指數(NDWI)并結合目視解釋來進行人機交互的水體提取。
利用波段信息計算相關水體指數來對水體進行提取,能夠有效地對湖泊水域進行提取,但是對相關軟件的依賴性較強,過程較為繁瑣,智能提取化程度不高。
結合地理信息系統(GIS)和遙感(RS)技術,引入機器學習算法對遙感影像水體進行智能提取,可以簡化湖泊水體的提取過程。因此,設計青藏高原湖泊智能提取系統對研究青藏高原湖泊動態的監測與分析具有重要意義。
目前在地理信息技術上有很多知名的GIS 平臺提供二次開發接口,如ArcGIS、MapGIS、SurperMap等,其在GIS 服務、二次開發方面都很出色,能為用戶提供一系列展示、分析等服務。
文中所設計的系統采用.NET 開發環境,基于MapGIS 的二次開發,結合地理遙感數據處理庫(GDAL)和機器學習算法支持向量機(Support Vector Machines,SVM)[5-6]、決策樹[7-8]進行系統設計與實現。
MapGIS 是中國地質大學開發的通用工具型地理信息系統軟件,它提供了一套完整且功能齊全的組件、控件及插件,用戶只需要靈活地應用它們便可以非常方便簡潔地開發各自行業領域內的GIS 平臺及應用系統[9]。在面向桌面端的應用開發上,MapGIS 提供了基于MapGIS 基礎二次開發庫,在.NET Framework 框架上,即Objects 開發。文中系統結合使用Objects 開發模式,具體的系統框架如圖1 所示。

圖1 系統框架
GDAL 是一個操作各種柵格地理數據格式的庫,包括讀取、寫入、轉換、處理各種柵格數據格式(有些特定的格式對一些操作如寫入等不支持)。GDAL 使用了一個單一的抽象數據模型,支持大多數的柵格數據。GDAL 支持幾乎所有在遙感領域中用到的柵格影像格式數據和矢量格式數據文件[10]。除了柵格操作,這個庫還包括操作矢量數據的另一個庫——OGR,因此這個庫同時具備操作柵格和矢量數據的能力,并且支持跨平臺。目前幾乎所有主流GIS 軟件都結合了GDAL 庫的功能。
系統是采用C/S 架構的桌面應用,實現了數據的可視化、管理與分析,實現了GIS 系統所擁有的基礎功能,能夠對影像數據進行讀取、處理、分析和存儲,可以實現柵格數據向矢量數據的轉換、空間數據的查詢功能,提取影像數據中的湖泊水體面積是系統的核心功能。具體功能設計如圖2 所示。

圖2 系統功能
系統的基本功能主要是基于MapGIS Object 二次開發,用于圖層的展示、空間數據的可視化分析,包含了地圖文件的加載、圖層管理、地圖縮放以及地圖距離、面積及角度的測量、鷹眼地圖、地圖輸出等基本功能。可以通過這些功能區操作地圖數據,實現空間數據的可視化顯示與輸出。
湖泊水域面積提取主要結合遙感影像數據進行分析,通過SVM 支持向量機、決策樹等機器學習算法將輸入的遙感影像進行湖泊提取,再將提取得到的湖泊數據由柵格轉化為矢量數據格式,從而作為湖泊水域面積分析的數據來源。
系統數據管理與數據查詢包括湖泊矢量數據屬性信息的修改、查詢,對數據提供屬性查詢和空間查詢,提供湖泊的屬性信息從而查詢其空間位置并且顯示在視圖中。可通過屬性字段條件SQL 查詢語句對空間數據進行篩選查詢,也能通過空間定位查詢,包括點查詢、矩形查詢、圓查詢、多邊形查詢。
文中系統是基于.NET 和MapGIS Object 的桌面應用,數據采用MODIS 影像數據作為分析的數據,衛星遙感具有覆蓋范圍廣、信息量大、重復頻率高等優勢,在全球變化研究中已經成為常規觀測無法替代的重要信息源。以MapGIS 的HDF 格式的地理數據庫來對空間數據進行存儲,HDF 是一個能夠自我描述、多目標、用于科學數據存儲和分發的數據格式,它針對存儲和分發科學數據的各種要求提供解決方法。結合GDAL 數據處理庫對影像數據進行讀取和處理。MapGIS Object 提供了很多接口,用于地理數據的展示分析,也為整個系統提供了一個穩定、安全的平臺。采用關系型數據庫SQL Sever 2008 對數據進行管理,實現關系型數據庫與地理數據庫的交互與數據共享,從而為系統提供一個可靠、安全的數據管理模塊。
借用GDAL 庫提供的接口來讀取遙感數據,讀取遙感數據的目標是提取里面的湖泊信息,將遙感影像圖應用波段轉化算法,將讀取的波段數據轉化為RGB 數據,將影像轉化為位圖,顯示在WinForm 的picturebox 控件中。首先將圖像進行灰度顯示,圖像灰度化是許多數字圖像處理的初始和基礎工作[11]。在RGB 模型中,若R=G=B,則彩色表示一種灰度顏色,其中R=G=B 的值叫灰度值,因此,灰度圖像每個像素只需一個字節存放灰度值(又稱強度值、亮度值),灰度范圍為0~255。圖像灰度化是圖像增強技術中基礎且直接的空間域圖像處理方法,通過圖像的灰度化,圖像變得更加清晰、細膩且容易識別,因此圖像中的湖泊可以很清晰地呈現,為后期湖泊的提取提供便利。
利用機器學習算法并根據灰度化的影像圖進行湖泊提取,支持向量機(SVM)是一種二類分類模型,其基本模型定義為特征空間上最大的線性分類器,機器學習的策略是間隔最大化,最終轉化為一個凸二次規劃問題。通過選取圖像中的目標樣本和非目標樣本進行模型訓練,再將整個圖像作為輸入數據輸入到模型中進行提取,得到的新圖像就是模型的輸出,也就是提取結果,如圖3 所示。

圖3 SVM提取結果
為了使結果更加準確,采用ID3 算法[12-14]構造決策樹,ID3 算法起源于概念學習系統(CLS),其以信息熵[15-16]的下降速度為選取測試屬性的標準,即在每個節點選取還尚未被用來劃分的具有最高信息增益的屬性作為劃分標準,然后繼續這個過程,直到生成的決策樹能完美分類訓練樣例。將準備的樣例用于訓練決策樹模型,再將多個通過SVM 方法提取的結果進行疊加綜合分析。決策樹將置信度高的RGB值保留,去除低的值,進一步提高影像提取的精度。
湖泊提取完成后需要將柵格數據處理為矢量數據,在處理為矢量數據的過程中,計算每個湖泊的數量以及面積。這里借助于MapGIS Object類庫提供的矢量接口進行轉換,通過矢量化處理,可以智能化地計算出青藏高原的湖泊水域矢量數據,每一個湖泊的要素都包含了面積屬性。具體實現效果如圖4所示。

圖4 矢量化結果
數據查詢在GIS 項目中處于核心地位,也是基礎功能,在使用GIS 數據時,經常需要從已有的數據中查詢出部分滿足條件的數據。數據查詢分為屬性查詢和空間查詢。在空間查詢分析中,主要利用空間查詢過濾(Spatial Filter)組建進行查詢,它是一個同時包含了空間約束和屬性約束的查詢過濾,可以應用空間約束和屬性約束來從特征類中獲取一組限定的特征。對于已經提取的湖泊矢量,可以根據面積較大的湖泊進行研究,只需要設置根據面積查詢的條件便可實現過濾。由于遙感數據所提取的湖泊不具有名稱等其他屬性,而空間查詢可以根據要素的空間關系過濾出需要的結果,根據已有的矢量數據將與之相交的要素進行提取,從而實現目標湖泊的提取,以便對特定的目標進行分析。查詢結果如圖5所示。

圖5 湖泊查詢
文中實驗的數據來自美國航空航天局(NASA)網站上的MODIS 數據,是2016 年到2020 年每年同時間的影像數據,提取2016 年到2020 年每年同時間的湖泊數據,記錄每一年的湖泊總面積并存儲到數據庫,再將存儲年份的湖泊水域面積數據進行統計。在2012 年,統計的湖泊總面積超過40 000 km2,與實際的研究結果相符合,如圖6 所示。同時計算出相關年份的湖泊面積的變化率,從2016 年到2020 年,湖泊的面積一直在增長,其中2018 年的增長率最高。可以看出,從2016 年到2020 年,青藏高原的湖泊面積呈擴張趨勢,與文獻[4]研究的結果一致。冰川融水或許是高原湖泊擴張的原因之一,證明了數據提取的精度基本與實際值一致,變化規律與相關研究的結果相符合。

圖6 總體面積統計
在一些研究中,需要對某一區域的特定湖泊進行動態分析,這時必須提取目標區域的湖泊水域面積。借助于數據查詢功能,用已知數據的矢量數據進行提取,在提取某一特定的湖泊后便可以對該湖泊進行動態分析。圖7 所示為對色林錯湖泊面積提取,并進行統計分析的結果,從圖7 可以得出色林錯湖泊的變化規律,從2016 年到2020 年,其水域面積整體呈上升趨勢。該分析結果與文獻[3]中40 年西藏色林錯流域湖泊面積變化及影響因素分析的研究結果保持一致,證明了數據提取以及規律變化的正確性。

圖7 色林錯湖泊變化規律
設計的系統以青藏高原地區遙感影像為基礎數據,綜合應用支持向量機(SVM)算法以及決策樹對青藏高原地區湖泊進行智能提取,能對提取出的青藏高原地區湖泊結果的矢量圖進行一系列數據操作、屬性查詢等。對青藏高原地區的歷史遙感數據進行合理科學的處理,并高效、快捷、精確地提取湖泊。在完成湖泊的提取后,能夠對湖泊水域面積的動態進行分析,通過湖泊水域面積的動態分析了解湖泊的演變規律,可為分析湖泊動態變化的成因等相關研究提供參考。
研究的系統對影像數據模糊部分的判斷還需要進行進一步完善,以提高湖泊提取的精確程度。