陳 晟,翁衛(wèi)松,溫小榮,徐 達(dá),譚 瑩
(1.浙江省森林資源監(jiān)測中心,杭州 310020;2.南京林業(yè)大學(xué) 森林資源與環(huán)境學(xué)院,南京 210037)
為完成國家林業(yè)局林地“一張圖”項目,林地落界工作是重中之重。林地落界[1-2]是依據(jù)現(xiàn)有森林資源規(guī)劃設(shè)計調(diào)查、公益林區(qū)劃界定等成果,以DOM(數(shù)字正射影像圖)為基礎(chǔ),通過遙感判讀核實(shí),輔以適當(dāng)?shù)默F(xiàn)地調(diào)查,按照林地落界基本條件和精度要求,落實(shí)現(xiàn)有林地和依法可用林業(yè)發(fā)展的其他土地的邊界和圖斑。其中,無林地與有林地小班邊界修正是工作內(nèi)容之一。
林地落界工作中遙感判讀工作量大、難度系數(shù)高、對技術(shù)人員的要求高。針對林地變化主要集中在有林地、無林地和非林地之間的相互變化最為明顯,因此利用數(shù)據(jù)庫技術(shù)與GIS技術(shù)將無林地與有林地提取出來,輔助遙感判讀,能夠大大提高工作效率,增強(qiáng)遙感判讀的準(zhǔn)確性與完整性,為更好的完成林地落界工作提供了強(qiáng)有力的保障。
研究區(qū)位于浙江省麗水市龍泉市(118°43′~119°26′E,27°42′~28°21′N),是全國南方重點(diǎn)林區(qū)縣(市)之一,總面積304 734 hm2,有林地面積265 487 hm2,森林資源豐富,森林覆蓋率82.5%,林木綠化率82.7%。龍泉地處浙南山地,屬于中亞熱帶季風(fēng)氣候區(qū),年均氣溫為17.7℃,年均日照時間1 740.9 h,年均降雨量1 646.9 mm,年均相對濕度79%,年均無霜期為261.2 d。境內(nèi)分布眾多山溪性河流和海拔1 000 m以上山頭,為各種野生植物生長和動物孽生繁衍,提供了良好的自然環(huán)境。
本文采用的數(shù)據(jù)主要包括:龍泉市“十一五”期間森林資源二類調(diào)查矢量數(shù)據(jù)和屬性數(shù)據(jù)庫;龍泉市1∶10000分幅SPOT5衛(wèi)星影像。
無林地小班快速定位開發(fā)環(huán)境使用了微軟公司可視化軟件Microsoft Visual Basic 6.0(VB),ArcObjects組件庫進(jìn)行開發(fā)。VB擁有圖形用戶界面和快速應(yīng)用程序開發(fā)系統(tǒng),可以輕易的連接數(shù)據(jù)庫,輕松的創(chuàng)建ActiveX控件,程序員可以方便快速的建立一個應(yīng)用程序。ArcObjects(簡稱AO)是ArcGIS的一個開發(fā)組件庫,它包含了大量的可編程組件,為開發(fā)者集成了全面的GIS功能。同時,它是一個開放體系,用戶可以運(yùn)用COM組件擴(kuò)展機(jī)制來編寫自定義的ArcObjects組件,搭建各種獨(dú)立的GIS應(yīng)用或者嵌入式應(yīng)用,實(shí)現(xiàn)特定要求的GIS功能[3-5]。
程序運(yùn)行時需要運(yùn)行在Windows操作系統(tǒng)下,軟件環(huán)境需要安裝Microsoft Visual Basic 6.0運(yùn)行庫,而且需要安裝ESRI公司ArcGIS產(chǎn)品運(yùn)行庫,才能保證程序正確運(yùn)行,程序界面如圖1所示。
圖1 林地小班快速定位程序界面
無林地小班快速定位算法流程如圖2所示。
2.3.1 遍歷無林地小班數(shù)據(jù)庫
遍歷無林地小班數(shù)據(jù)庫主要采用了SQL語言和ADO控件實(shí)現(xiàn)數(shù)據(jù)的讀取。具體如下。
(1)利用Foxpro數(shù)據(jù)庫技術(shù)提取出無林地小班數(shù)據(jù)庫文件,保存文件路徑和文件名為m_AttributePath,m_AttributeFileName。
(2)讀取進(jìn)行修正的無林地小班。
Set m_Recordset=ExecuteSQL
(m_AttributePath,strSQL,Msgstring)
strSQL是進(jìn)行數(shù)據(jù)庫操作的字符串,m_Recordset是讀取得到的記錄條。
(3)顯示當(dāng)前操作小班對象。
將m_Recordset對象所保存的小班記錄即為當(dāng)前操作的小班,記錄下小班的必要信息:村代碼m_strCun;林班號m_strLinban;小班號m_strXiaoban。
圖2 無林地小班快速定位流程圖
2.3.2 無林地小班快速定位
針對當(dāng)前操作的小班對象,程序進(jìn)行地理位置的快速定位,編碼如下。
(1)獲取當(dāng)前地理空間對象。
Set m_pMap=
m_pMxDoc.ActiveView.FocusMap
Set pFlayer = m_pMap.Layer(0)
(2)建立選擇條件。
Dim pFeaturecursor As IfeatureCursor定義要素記錄指針。
Dim pQueryfilter As IQueryFilter定義選擇條件對象。
strQuery="村代碼='"+m_strCun+"'and"+"林班號='"+m_strLinban+"'and"+"小班號='"+m_strXiaoban+"'"選擇條件具體內(nèi)容。
pQueryfilter.WhereClause=strQuery。
(3)選擇當(dāng)前小班地理要素。
Dim pFselect As IFeatureSelection
pFselect.SelectFeatures pQueryfilter,esriSelectionResultNew,F(xiàn)alse
(4)快速定位,并且居中顯示。
Dim pActivew As IActiveView定義視圖對象,用于地圖的居中顯示。
Dim pfea As IFeature定義要素對象,用于存儲小班地理要素。
Dim pSelectionset As ISelectionSet定義地理要素選擇集對象。
pSelectionset.Search Nothing,F(xiàn)alse,pFeaturecursor
Set pActivew=m_pMap
Set pfea=pFeaturecursor.NextFeature
pActivew.Extent=pfea.Shape.Envelope獲取小班地理范圍,并且居中顯示。
浙江省龍泉市林地落界項目采用了本文的方法,如圖3所示。龍泉市共計43543個小班,其中無林地和非林地共計5156個。按照以往借助GIS軟件人工進(jìn)行,需要先進(jìn)行小班選擇,然后逐個人工定位,再對照遙感衛(wèi)星影像進(jìn)行修正,全部處理完畢需要2個月左右時間。應(yīng)用本文研究成果不僅克服了步驟繁多,而且人工操作時間相對減少,只需要2周左右時間即可完成任務(wù)。目前,龍泉林地落界項目已經(jīng)結(jié)束,應(yīng)用本文研究成果獲得一致好評,并得到全省林地落界項目的推廣應(yīng)用。全省86個縣(市、區(qū)),全部使用了本文方法,比預(yù)算時間大大縮短,給全省林地落界匯編提供了充足的時間,工作得以循序漸進(jìn)、保質(zhì)保量完成。
圖3 龍泉市非林地快速定位應(yīng)用
本文探索基于COM技術(shù)的ArcObjects組件庫二次開發(fā),成功研發(fā)出ArcGIS環(huán)境下無林地小班的快速定位技術(shù)。目前該技術(shù)應(yīng)用于浙江省林地落界項目,每個縣(市、區(qū))在遙感判讀過程中都使用了該技術(shù),取得了很好的應(yīng)有效果。不僅大大節(jié)省了技術(shù)人員處理數(shù)據(jù)的時間,提高了效率,而且將復(fù)雜的人工操作步驟減少到最小,使得無林地的遙感判讀變得更加簡便和易用。
綜上所述,利用ArcObjects組件式擴(kuò)展,可靈活地把那些人工重復(fù)機(jī)械操作流程,無縫集成在ArcGIS中,既降低開發(fā)難度,提高了開發(fā)效率,又增強(qiáng)業(yè)務(wù)系統(tǒng)的靈活性和開放性[9,13]。基于COM技術(shù)的ArcObjects組件庫二次開發(fā)方法將會得到各行各業(yè)的更廣泛應(yīng)用,發(fā)揮出更大的功效。
【參 考 文 獻(xiàn)】
[1]中華人民共和國林業(yè)行業(yè)標(biāo)準(zhǔn).LY/T1955-2011.林地保護(hù)利用規(guī)劃林地落界技術(shù)規(guī)程[S].
[2]趙萬鋒,劉 南,劉仁義,等.基于ArcObjects的系統(tǒng)開發(fā)技術(shù)剖析[J].計算機(jī)應(yīng)用研究,2004,21(3):130-132.
[3]馮克忠,姜遵鋒.ArcObjects開發(fā)指南(VB篇)[M].北京:電子工業(yè)出版社,2007.
[4]Razavi A H.ArcGIS Developer’s Guide for VBA[M].New York:OnWord Press,2002.
[5]ZeilerM.Exploring ArcObjects[M].California:Esri Press,2001.
[6]Chang K T.Programming ArcObjects with VBA:A Task-Oriented Approach[M].London:Taylor & Francis,2004.
[7]GB/T14911-2008.測繪基本術(shù)語[S].
[8]GB/T20258.1-2007.基礎(chǔ)地理信息要素數(shù)據(jù)字典第1部分1∶500 1∶1 000 1∶2 000基礎(chǔ)地理信息要素數(shù)據(jù)字典[S].
[9]陳南祥,董貴明,邱 林,等.基于ArcObjects的GIS系統(tǒng)的二次開發(fā)——以濟(jì)源市水土保持決策支持系統(tǒng)為例[J].地域研究與開,2006,25(3):125-128.
[10]Wayne SFreeze.Visual Basic開發(fā)指南COM和COM+篇[M].北京:電子工業(yè)出版社,2000.
[11]鄔 倫.地理信息系統(tǒng)原理方法和應(yīng)用[M].北京:科學(xué)出版社,2000.
[12]湯國安.ArcGIS地理信息系統(tǒng)空間分析實(shí)驗教程[M].北京:科學(xué)出版社,2006.
[13]黃曉全,歐陽勛志.地理信息系統(tǒng)在森林資源管理與監(jiān)測中的應(yīng)用[J].森林工程,2004,20(6):9-11.