朱先鴻,王星捷,袁偉強(qiáng)
(1.成都理工大學(xué) 工程技術(shù)學(xué)院,四川樂(lè)山 614007;2.四川經(jīng)準(zhǔn)檢驗(yàn)檢測(cè)集團(tuán)股份有限公司,四川廣安 638500)
青藏高原是中國(guó)最大、世界海拔最高的高原,被稱為“世界屋脊”,青藏高原所擁有的湖泊數(shù)量是全國(guó)湖泊數(shù)量的39.2%,而湖泊作為陸地水環(huán)境的重要組成部分,參與大自然的水循環(huán),對(duì)氣候的變化有著敏感反應(yīng),相當(dāng)于氣候變化的指示器[1],青藏高原的湖泊群是研究青藏高原氣候環(huán)境變化的重要組成部分。為研究青藏高原湖泊面積的時(shí)空變化規(guī)律,利用遙感監(jiān)測(cè)是非常便捷、高效、可行的方法。在遙感數(shù)據(jù)處理和分析上,目前的方法大多采用ENVI 軟件結(jié)合ArcGIS 進(jìn)行處理和分析。楊珂含等[2]在研究青藏高原湖泊面積動(dòng)態(tài)監(jiān)測(cè)時(shí)根據(jù)NDWI 和HRWI值,進(jìn)而通過(guò)閾值進(jìn)行提取,再進(jìn)行一系列處理,從而得到提取結(jié)果,并且對(duì)湖泊的時(shí)序變化進(jìn)行了統(tǒng)計(jì)。德吉央宗等[3]對(duì)近40 年西藏色林錯(cuò)流域湖泊面積變化及影響因素進(jìn)行了分析,董斯揚(yáng)等[4]對(duì)近40年青藏高原湖泊面積變化進(jìn)行了遙感分析,他們同樣也是采用歸一化差異水體指數(shù)(NDWI)并結(jié)合目視解釋來(lái)進(jìn)行人機(jī)交互的水體提取。
利用波段信息計(jì)算相關(guān)水體指數(shù)來(lái)對(duì)水體進(jìn)行提取,能夠有效地對(duì)湖泊水域進(jìn)行提取,但是對(duì)相關(guān)軟件的依賴性較強(qiáng),過(guò)程較為繁瑣,智能提取化程度不高。
結(jié)合地理信息系統(tǒng)(GIS)和遙感(RS)技術(shù),引入機(jī)器學(xué)習(xí)算法對(duì)遙感影像水體進(jìn)行智能提取,可以簡(jiǎn)化湖泊水體的提取過(guò)程。因此,設(shè)計(jì)青藏高原湖泊智能提取系統(tǒng)對(duì)研究青藏高原湖泊動(dòng)態(tài)的監(jiān)測(cè)與分析具有重要意義。
目前在地理信息技術(shù)上有很多知名的GIS 平臺(tái)提供二次開發(fā)接口,如ArcGIS、MapGIS、SurperMap等,其在GIS 服務(wù)、二次開發(fā)方面都很出色,能為用戶提供一系列展示、分析等服務(wù)。
文中所設(shè)計(jì)的系統(tǒng)采用.NET 開發(fā)環(huán)境,基于MapGIS 的二次開發(fā),結(jié)合地理遙感數(shù)據(jù)處理庫(kù)(GDAL)和機(jī)器學(xué)習(xí)算法支持向量機(jī)(Support Vector Machines,SVM)[5-6]、決策樹[7-8]進(jìn)行系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。
MapGIS 是中國(guó)地質(zhì)大學(xué)開發(fā)的通用工具型地理信息系統(tǒng)軟件,它提供了一套完整且功能齊全的組件、控件及插件,用戶只需要靈活地應(yīng)用它們便可以非常方便簡(jiǎn)潔地開發(fā)各自行業(yè)領(lǐng)域內(nèi)的GIS 平臺(tái)及應(yīng)用系統(tǒng)[9]。在面向桌面端的應(yīng)用開發(fā)上,MapGIS 提供了基于MapGIS 基礎(chǔ)二次開發(fā)庫(kù),在.NET Framework 框架上,即Objects 開發(fā)。文中系統(tǒng)結(jié)合使用Objects 開發(fā)模式,具體的系統(tǒng)框架如圖1 所示。
圖1 系統(tǒng)框架
GDAL 是一個(gè)操作各種柵格地理數(shù)據(jù)格式的庫(kù),包括讀取、寫入、轉(zhuǎn)換、處理各種柵格數(shù)據(jù)格式(有些特定的格式對(duì)一些操作如寫入等不支持)。GDAL 使用了一個(gè)單一的抽象數(shù)據(jù)模型,支持大多數(shù)的柵格數(shù)據(jù)。GDAL 支持幾乎所有在遙感領(lǐng)域中用到的柵格影像格式數(shù)據(jù)和矢量格式數(shù)據(jù)文件[10]。除了柵格操作,這個(gè)庫(kù)還包括操作矢量數(shù)據(jù)的另一個(gè)庫(kù)——OGR,因此這個(gè)庫(kù)同時(shí)具備操作柵格和矢量數(shù)據(jù)的能力,并且支持跨平臺(tái)。目前幾乎所有主流GIS 軟件都結(jié)合了GDAL 庫(kù)的功能。
系統(tǒng)是采用C/S 架構(gòu)的桌面應(yīng)用,實(shí)現(xiàn)了數(shù)據(jù)的可視化、管理與分析,實(shí)現(xiàn)了GIS 系統(tǒng)所擁有的基礎(chǔ)功能,能夠?qū)τ跋駭?shù)據(jù)進(jìn)行讀取、處理、分析和存儲(chǔ),可以實(shí)現(xiàn)柵格數(shù)據(jù)向矢量數(shù)據(jù)的轉(zhuǎn)換、空間數(shù)據(jù)的查詢功能,提取影像數(shù)據(jù)中的湖泊水體面積是系統(tǒng)的核心功能。具體功能設(shè)計(jì)如圖2 所示。
圖2 系統(tǒng)功能
系統(tǒng)的基本功能主要是基于MapGIS Object 二次開發(fā),用于圖層的展示、空間數(shù)據(jù)的可視化分析,包含了地圖文件的加載、圖層管理、地圖縮放以及地圖距離、面積及角度的測(cè)量、鷹眼地圖、地圖輸出等基本功能??梢酝ㄟ^(guò)這些功能區(qū)操作地圖數(shù)據(jù),實(shí)現(xiàn)空間數(shù)據(jù)的可視化顯示與輸出。
湖泊水域面積提取主要結(jié)合遙感影像數(shù)據(jù)進(jìn)行分析,通過(guò)SVM 支持向量機(jī)、決策樹等機(jī)器學(xué)習(xí)算法將輸入的遙感影像進(jìn)行湖泊提取,再將提取得到的湖泊數(shù)據(jù)由柵格轉(zhuǎn)化為矢量數(shù)據(jù)格式,從而作為湖泊水域面積分析的數(shù)據(jù)來(lái)源。
系統(tǒng)數(shù)據(jù)管理與數(shù)據(jù)查詢包括湖泊矢量數(shù)據(jù)屬性信息的修改、查詢,對(duì)數(shù)據(jù)提供屬性查詢和空間查詢,提供湖泊的屬性信息從而查詢其空間位置并且顯示在視圖中??赏ㄟ^(guò)屬性字段條件SQL 查詢語(yǔ)句對(duì)空間數(shù)據(jù)進(jìn)行篩選查詢,也能通過(guò)空間定位查詢,包括點(diǎn)查詢、矩形查詢、圓查詢、多邊形查詢。
文中系統(tǒng)是基于.NET 和MapGIS Object 的桌面應(yīng)用,數(shù)據(jù)采用MODIS 影像數(shù)據(jù)作為分析的數(shù)據(jù),衛(wèi)星遙感具有覆蓋范圍廣、信息量大、重復(fù)頻率高等優(yōu)勢(shì),在全球變化研究中已經(jīng)成為常規(guī)觀測(cè)無(wú)法替代的重要信息源。以MapGIS 的HDF 格式的地理數(shù)據(jù)庫(kù)來(lái)對(duì)空間數(shù)據(jù)進(jìn)行存儲(chǔ),HDF 是一個(gè)能夠自我描述、多目標(biāo)、用于科學(xué)數(shù)據(jù)存儲(chǔ)和分發(fā)的數(shù)據(jù)格式,它針對(duì)存儲(chǔ)和分發(fā)科學(xué)數(shù)據(jù)的各種要求提供解決方法。結(jié)合GDAL 數(shù)據(jù)處理庫(kù)對(duì)影像數(shù)據(jù)進(jìn)行讀取和處理。MapGIS Object 提供了很多接口,用于地理數(shù)據(jù)的展示分析,也為整個(gè)系統(tǒng)提供了一個(gè)穩(wěn)定、安全的平臺(tái)。采用關(guān)系型數(shù)據(jù)庫(kù)SQL Sever 2008 對(duì)數(shù)據(jù)進(jìn)行管理,實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫(kù)與地理數(shù)據(jù)庫(kù)的交互與數(shù)據(jù)共享,從而為系統(tǒng)提供一個(gè)可靠、安全的數(shù)據(jù)管理模塊。
借用GDAL 庫(kù)提供的接口來(lái)讀取遙感數(shù)據(jù),讀取遙感數(shù)據(jù)的目標(biāo)是提取里面的湖泊信息,將遙感影像圖應(yīng)用波段轉(zhuǎn)化算法,將讀取的波段數(shù)據(jù)轉(zhuǎn)化為RGB 數(shù)據(jù),將影像轉(zhuǎn)化為位圖,顯示在WinForm 的picturebox 控件中。首先將圖像進(jìn)行灰度顯示,圖像灰度化是許多數(shù)字圖像處理的初始和基礎(chǔ)工作[11]。在RGB 模型中,若R=G=B,則彩色表示一種灰度顏色,其中R=G=B 的值叫灰度值,因此,灰度圖像每個(gè)像素只需一個(gè)字節(jié)存放灰度值(又稱強(qiáng)度值、亮度值),灰度范圍為0~255。圖像灰度化是圖像增強(qiáng)技術(shù)中基礎(chǔ)且直接的空間域圖像處理方法,通過(guò)圖像的灰度化,圖像變得更加清晰、細(xì)膩且容易識(shí)別,因此圖像中的湖泊可以很清晰地呈現(xiàn),為后期湖泊的提取提供便利。
利用機(jī)器學(xué)習(xí)算法并根據(jù)灰度化的影像圖進(jìn)行湖泊提取,支持向量機(jī)(SVM)是一種二類分類模型,其基本模型定義為特征空間上最大的線性分類器,機(jī)器學(xué)習(xí)的策略是間隔最大化,最終轉(zhuǎn)化為一個(gè)凸二次規(guī)劃問(wèn)題。通過(guò)選取圖像中的目標(biāo)樣本和非目標(biāo)樣本進(jìn)行模型訓(xùn)練,再將整個(gè)圖像作為輸入數(shù)據(jù)輸入到模型中進(jìn)行提取,得到的新圖像就是模型的輸出,也就是提取結(jié)果,如圖3 所示。
圖3 SVM提取結(jié)果
為了使結(jié)果更加準(zhǔn)確,采用ID3 算法[12-14]構(gòu)造決策樹,ID3 算法起源于概念學(xué)習(xí)系統(tǒng)(CLS),其以信息熵[15-16]的下降速度為選取測(cè)試屬性的標(biāo)準(zhǔn),即在每個(gè)節(jié)點(diǎn)選取還尚未被用來(lái)劃分的具有最高信息增益的屬性作為劃分標(biāo)準(zhǔn),然后繼續(xù)這個(gè)過(guò)程,直到生成的決策樹能完美分類訓(xùn)練樣例。將準(zhǔn)備的樣例用于訓(xùn)練決策樹模型,再將多個(gè)通過(guò)SVM 方法提取的結(jié)果進(jìn)行疊加綜合分析。決策樹將置信度高的RGB值保留,去除低的值,進(jìn)一步提高影像提取的精度。
湖泊提取完成后需要將柵格數(shù)據(jù)處理為矢量數(shù)據(jù),在處理為矢量數(shù)據(jù)的過(guò)程中,計(jì)算每個(gè)湖泊的數(shù)量以及面積。這里借助于MapGIS Object類庫(kù)提供的矢量接口進(jìn)行轉(zhuǎn)換,通過(guò)矢量化處理,可以智能化地計(jì)算出青藏高原的湖泊水域矢量數(shù)據(jù),每一個(gè)湖泊的要素都包含了面積屬性。具體實(shí)現(xiàn)效果如圖4所示。
圖4 矢量化結(jié)果
數(shù)據(jù)查詢?cè)贕IS 項(xiàng)目中處于核心地位,也是基礎(chǔ)功能,在使用GIS 數(shù)據(jù)時(shí),經(jīng)常需要從已有的數(shù)據(jù)中查詢出部分滿足條件的數(shù)據(jù)。數(shù)據(jù)查詢分為屬性查詢和空間查詢。在空間查詢分析中,主要利用空間查詢過(guò)濾(Spatial Filter)組建進(jìn)行查詢,它是一個(gè)同時(shí)包含了空間約束和屬性約束的查詢過(guò)濾,可以應(yīng)用空間約束和屬性約束來(lái)從特征類中獲取一組限定的特征。對(duì)于已經(jīng)提取的湖泊矢量,可以根據(jù)面積較大的湖泊進(jìn)行研究,只需要設(shè)置根據(jù)面積查詢的條件便可實(shí)現(xiàn)過(guò)濾。由于遙感數(shù)據(jù)所提取的湖泊不具有名稱等其他屬性,而空間查詢可以根據(jù)要素的空間關(guān)系過(guò)濾出需要的結(jié)果,根據(jù)已有的矢量數(shù)據(jù)將與之相交的要素進(jìn)行提取,從而實(shí)現(xiàn)目標(biāo)湖泊的提取,以便對(duì)特定的目標(biāo)進(jìn)行分析。查詢結(jié)果如圖5所示。
圖5 湖泊查詢
文中實(shí)驗(yàn)的數(shù)據(jù)來(lái)自美國(guó)航空航天局(NASA)網(wǎng)站上的MODIS 數(shù)據(jù),是2016 年到2020 年每年同時(shí)間的影像數(shù)據(jù),提取2016 年到2020 年每年同時(shí)間的湖泊數(shù)據(jù),記錄每一年的湖泊總面積并存儲(chǔ)到數(shù)據(jù)庫(kù),再將存儲(chǔ)年份的湖泊水域面積數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。在2012 年,統(tǒng)計(jì)的湖泊總面積超過(guò)40 000 km2,與實(shí)際的研究結(jié)果相符合,如圖6 所示。同時(shí)計(jì)算出相關(guān)年份的湖泊面積的變化率,從2016 年到2020 年,湖泊的面積一直在增長(zhǎng),其中2018 年的增長(zhǎng)率最高。可以看出,從2016 年到2020 年,青藏高原的湖泊面積呈擴(kuò)張趨勢(shì),與文獻(xiàn)[4]研究的結(jié)果一致。冰川融水或許是高原湖泊擴(kuò)張的原因之一,證明了數(shù)據(jù)提取的精度基本與實(shí)際值一致,變化規(guī)律與相關(guān)研究的結(jié)果相符合。
圖6 總體面積統(tǒng)計(jì)
在一些研究中,需要對(duì)某一區(qū)域的特定湖泊進(jìn)行動(dòng)態(tài)分析,這時(shí)必須提取目標(biāo)區(qū)域的湖泊水域面積。借助于數(shù)據(jù)查詢功能,用已知數(shù)據(jù)的矢量數(shù)據(jù)進(jìn)行提取,在提取某一特定的湖泊后便可以對(duì)該湖泊進(jìn)行動(dòng)態(tài)分析。圖7 所示為對(duì)色林錯(cuò)湖泊面積提取,并進(jìn)行統(tǒng)計(jì)分析的結(jié)果,從圖7 可以得出色林錯(cuò)湖泊的變化規(guī)律,從2016 年到2020 年,其水域面積整體呈上升趨勢(shì)。該分析結(jié)果與文獻(xiàn)[3]中40 年西藏色林錯(cuò)流域湖泊面積變化及影響因素分析的研究結(jié)果保持一致,證明了數(shù)據(jù)提取以及規(guī)律變化的正確性。
圖7 色林錯(cuò)湖泊變化規(guī)律
設(shè)計(jì)的系統(tǒng)以青藏高原地區(qū)遙感影像為基礎(chǔ)數(shù)據(jù),綜合應(yīng)用支持向量機(jī)(SVM)算法以及決策樹對(duì)青藏高原地區(qū)湖泊進(jìn)行智能提取,能對(duì)提取出的青藏高原地區(qū)湖泊結(jié)果的矢量圖進(jìn)行一系列數(shù)據(jù)操作、屬性查詢等。對(duì)青藏高原地區(qū)的歷史遙感數(shù)據(jù)進(jìn)行合理科學(xué)的處理,并高效、快捷、精確地提取湖泊。在完成湖泊的提取后,能夠?qū)此蛎娣e的動(dòng)態(tài)進(jìn)行分析,通過(guò)湖泊水域面積的動(dòng)態(tài)分析了解湖泊的演變規(guī)律,可為分析湖泊動(dòng)態(tài)變化的成因等相關(guān)研究提供參考。
研究的系統(tǒng)對(duì)影像數(shù)據(jù)模糊部分的判斷還需要進(jìn)行進(jìn)一步完善,以提高湖泊提取的精確程度。