陈 晟,翁卫松,温小荣,徐 达,谭 莹
(1.浙江省森林资源监测中心,杭州 310020;2.南京林业大学 森林资源与环境学院,南京 210037)
为完成国家林业局林地“一张图”项目,林地落界工作是重中之重。林地落界[1-2]是依据现有森林资源规划设计调查、公益林区划界定等成果,以DOM(数字正射影像图)为基础,通过遥感判读核实,辅以适当的现地调查,按照林地落界基本条件和精度要求,落实现有林地和依法可用林业发展的其他土地的边界和图斑。其中,无林地与有林地小班边界修正是工作内容之一。
林地落界工作中遥感判读工作量大、难度系数高、对技术人员的要求高。针对林地变化主要集中在有林地、无林地和非林地之间的相互变化最为明显,因此利用数据库技术与GIS技术将无林地与有林地提取出来,辅助遥感判读,能够大大提高工作效率,增强遥感判读的准确性与完整性,为更好的完成林地落界工作提供了强有力的保障。
研究区位于浙江省丽水市龙泉市(118°43′~119°26′E,27°42′~28°21′N),是全国南方重点林区县(市)之一,总面积304 734 hm2,有林地面积265 487 hm2,森林资源丰富,森林覆盖率82.5%,林木绿化率82.7%。龙泉地处浙南山地,属于中亚热带季风气候区,年均气温为17.7℃,年均日照时间1 740.9 h,年均降雨量1 646.9 mm,年均相对湿度79%,年均无霜期为261.2 d。境内分布众多山溪性河流和海拔1 000 m以上山头,为各种野生植物生长和动物孽生繁衍,提供了良好的自然环境。
本文采用的数据主要包括:龙泉市“十一五”期间森林资源二类调查矢量数据和属性数据库;龙泉市1∶10000分幅SPOT5卫星影像。
无林地小班快速定位开发环境使用了微软公司可视化软件Microsoft Visual Basic 6.0(VB),ArcObjects组件库进行开发。VB拥有图形用户界面和快速应用程序开发系统,可以轻易的连接数据库,轻松的创建ActiveX控件,程序员可以方便快速的建立一个应用程序。ArcObjects(简称AO)是ArcGIS的一个开发组件库,它包含了大量的可编程组件,为开发者集成了全面的GIS功能。同时,它是一个开放体系,用户可以运用COM组件扩展机制来编写自定义的ArcObjects组件,搭建各种独立的GIS应用或者嵌入式应用,实现特定要求的GIS功能[3-5]。
程序运行时需要运行在Windows操作系统下,软件环境需要安装Microsoft Visual Basic 6.0运行库,而且需要安装ESRI公司ArcGIS产品运行库,才能保证程序正确运行,程序界面如图1所示。
图1 林地小班快速定位程序界面
无林地小班快速定位算法流程如图2所示。
2.3.1 遍历无林地小班数据库
遍历无林地小班数据库主要采用了SQL语言和ADO控件实现数据的读取。具体如下。
(1)利用Foxpro数据库技术提取出无林地小班数据库文件,保存文件路径和文件名为m_AttributePath,m_AttributeFileName。
(2)读取进行修正的无林地小班。
Set m_Recordset=ExecuteSQL
(m_AttributePath,strSQL,Msgstring)
strSQL是进行数据库操作的字符串,m_Recordset是读取得到的记录条。
(3)显示当前操作小班对象。
将m_Recordset对象所保存的小班记录即为当前操作的小班,记录下小班的必要信息:村代码m_strCun;林班号m_strLinban;小班号m_strXiaoban。
图2 无林地小班快速定位流程图
2.3.2 无林地小班快速定位
针对当前操作的小班对象,程序进行地理位置的快速定位,编码如下。
(1)获取当前地理空间对象。
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+"'"选择条件具体内容。
pQueryfilter.WhereClause=strQuery。
(3)选择当前小班地理要素。
Dim pFselect As IFeatureSelection
pFselect.SelectFeatures pQueryfilter,esriSelectionResultNew,False
(4)快速定位,并且居中显示。
Dim pActivew As IActiveView定义视图对象,用于地图的居中显示。
Dim pfea As IFeature定义要素对象,用于存储小班地理要素。
Dim pSelectionset As ISelectionSet定义地理要素选择集对象。
pSelectionset.Search Nothing,False,pFeaturecursor
Set pActivew=m_pMap
Set pfea=pFeaturecursor.NextFeature
pActivew.Extent=pfea.Shape.Envelope获取小班地理范围,并且居中显示。
浙江省龙泉市林地落界项目采用了本文的方法,如图3所示。龙泉市共计43543个小班,其中无林地和非林地共计5156个。按照以往借助GIS软件人工进行,需要先进行小班选择,然后逐个人工定位,再对照遥感卫星影像进行修正,全部处理完毕需要2个月左右时间。应用本文研究成果不仅克服了步骤繁多,而且人工操作时间相对减少,只需要2周左右时间即可完成任务。目前,龙泉林地落界项目已经结束,应用本文研究成果获得一致好评,并得到全省林地落界项目的推广应用。全省86个县(市、区),全部使用了本文方法,比预算时间大大缩短,给全省林地落界汇编提供了充足的时间,工作得以循序渐进、保质保量完成。
图3 龙泉市非林地快速定位应用
本文探索基于COM技术的ArcObjects组件库二次开发,成功研发出ArcGIS环境下无林地小班的快速定位技术。目前该技术应用于浙江省林地落界项目,每个县(市、区)在遥感判读过程中都使用了该技术,取得了很好的应有效果。不仅大大节省了技术人员处理数据的时间,提高了效率,而且将复杂的人工操作步骤减少到最小,使得无林地的遥感判读变得更加简便和易用。
综上所述,利用ArcObjects组件式扩展,可灵活地把那些人工重复机械操作流程,无缝集成在ArcGIS中,既降低开发难度,提高了开发效率,又增强业务系统的灵活性和开放性[9,13]。基于COM技术的ArcObjects组件库二次开发方法将会得到各行各业的更广泛应用,发挥出更大的功效。
【参 考 文 献】
[1]中华人民共和国林业行业标准.LY/T1955-2011.林地保护利用规划林地落界技术规程[S].
[2]赵万锋,刘 南,刘仁义,等.基于ArcObjects的系统开发技术剖析[J].计算机应用研究,2004,21(3):130-132.
[3]冯克忠,姜遵锋.ArcObjects开发指南(VB篇)[M].北京:电子工业出版社,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.测绘基本术语[S].
[8]GB/T20258.1-2007.基础地理信息要素数据字典第1部分1∶500 1∶1 000 1∶2 000基础地理信息要素数据字典[S].
[9]陈南祥,董贵明,邱 林,等.基于ArcObjects的GIS系统的二次开发——以济源市水土保持决策支持系统为例[J].地域研究与开,2006,25(3):125-128.
[10]Wayne SFreeze.Visual Basic开发指南COM和COM+篇[M].北京:电子工业出版社,2000.
[11]邬 伦.地理信息系统原理方法和应用[M].北京:科学出版社,2000.
[12]汤国安.ArcGIS地理信息系统空间分析实验教程[M].北京:科学出版社,2006.
[13]黄晓全,欧阳勋志.地理信息系统在森林资源管理与监测中的应用[J].森林工程,2004,20(6):9-11.