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