APP下载

基于ArcEngine的林地二类图斑自动编号研究

2014-12-03陈晟谭莹徐军胡进刚

自然保护地 2014年3期
关键词:内业图斑小班

陈晟 谭莹 徐军 胡进刚

(1 浙江省森林资源监测中心 浙江杭州 310020;2 浙江省杭州市勘测设计研究院 310012)

森林资源规划设计调查,即二类调查,是以国有林业局(场)、自然保护区、森林公园等森林经营单位或县级行政区域为调查单位,以满足森林经营方案、总体设计、林业区划与规划设计需要而进行的森林资源调查。

通用二类调查内业流程中矢量化采集的图斑面并不具备属性信息,其属性点矢量数据记录了包含图斑号等内容的属性信息,通过将这些信息赋值到图斑面中从而形成二类图斑面成果。在数据处理中,属性点如果采取人工一一赋值的办法会严重影响工作进度。因此,利用GIS 技术,分析属性点信息的规律,自动对属性信息进行编号,能够大大减少工作步骤,技术人员只需在地图上单击即可完成一系列的图斑属性编号操作,极大的提高了数据采集的效率。

图1 程序界面 Fig.1 Program interface

1 研究区概况

研究区玉环县位于浙江省东南沿海黄金海岸线中段,东经 121°05`~121°32`,北纬28°01`~28°19`。县域总面积3419595 亩,其中陆域面积550518 亩,是浙江省第二大岛,是浙江省六个海岛县之一。根据2009年玉环县森林资源数据,全县林地面积296245 亩,占土地总面积的53.18%,森林覆盖率45.1%。

2 数据来源与研究方法

2.1 数据来源

本文采用的数据主要包括:玉环县地理国情普查图斑数据,林业公益林图斑面数据,“十一五”二类调查期间可参考的行政界线;玉环县2.5m 分辨率卫星影像(卫片上经过外业调查,已经记录小班编号)。

2.2 开发环境与技术路线

林地二类图斑自动编号程序其开发环境使用了微软公司可视化软件Microsoft Visual Basic 6.0(VB),ArcGIS Engine 组件库进行开发。VB 拥有图形用户界面和快速应用程序开发系统,可以轻易的连接数据库,轻松的创建ActiveX 控件,程序员可以方便快速的建立一个应用程序。ArcGIS Engine(版本9.1)是ArcGIS 的众多产品之一,它是用于构建定制应用的一个完整的嵌入式GIS 组件库。开发者能够利用组件库中的接口、类等独立进行封装,构建具备特定功能的应用。ArcGIS Engine具有简洁、灵活、易用、可移植性强等特点。

程序需要运行在Windows 操作系统下,软件环境需要安装Microsoft Visual Basic 6.0运行库,而且需要安装ESRI 公司ArcGIS Engine 产品运行库,才能保证程序正确运行,程序界面如图1所示。

2.3 算法流程

林地二类图斑自动编号算法流程如图2所示,具体步骤如下。

2.3.1 读取行政代码数据库

进行二类图斑自动编号之前,需要对程序进行一些设置,自动读取乡镇、村行政代码,以及该村最大小班号,便于操作人员选择。具体如下:

①读取行政村数据库,并添加到VB 控件中便于选择。

strSQL = "select * from county.dbf"

Set pRecordset = ExecuteSQL(App.path,strSQL,Msgstring)

Do While Not pRecordset.EOF

AddCundaima Trim(pRecordset(2).Value)

pRecordset.MoveNext Loop

②初始小班号自动设定。操作人员依据遥感卫片设定工作的村代码、林班号,然后程序自动读取该村的小班号作为工作的初始属性信息。

strtemp = "村代码 = '" &cundaima &"' AND " &" 林班号 = '" &linbanhao &"'"

pQueryfilter.WhereClause = strtemp 查询条件

Set pFeaturecursor = pFeatureClass.Search (pQueryfilter,False)

Set pFeature = pFeaturecursor.NextFeature

If (pFeature.Value(pFeature.Fields.FindField("

小班号")) <901 And pFeature.Value (pFeature.Fields.FindField ("小班号") >FindXiaobanhao MAX ThenFindXiaobanhaoMAX = pFeature.Value (pFeature.Fields.FindField("小班号"))获取该村该林班内最大的小班编号信息,并记录到窗口控件内。

2.3.2 图斑自动编号

经过初始设定后,即可在卫片上进行单击,后台自动存储属性信息,然后自动计算下一个图斑的编号。

① 编号计算。自动读取属性点信息数据,并计算号码为:最大小班号+1(即为下一个编入的小班号码)

ReturnXiaobanhao(Str(FindXiaobanhaoMA X(ReturnCundaima(Trim(m_frmAttributeInput.c boCundaima.Text)),ReturnXiaobanhao(m_frmAttributeInput.txtLinB anhao.Text)) + 1))

② 编号保存到矢量数据中。

Set ppoint = New Point;ppoint.PutCoords mapx,mapy 记录鼠标坐标点

Set pFeature.Shape = ppoint 设属性点图层

i = pFeature.Fields.FindField("村代码")

pFeature.Value(i) = ReturnCundaima(Trim(m_frmAttributeInput.cbo Cundaima.Text))保存属性点村代码

j = pFeature.Fields.FindField("小班号")

pFeature.Value(j) = ReturnXiaobanhao(Trim(m_frmAttributeInput.tx tXiaobanhao.Text))保存属性点小班号

k = pFeature.Fields.FindField("林班号")

pFeature.Value(k) = Trim(m_frmAttributeInput.txtLinBanhao.Text)

保存属性点林班号信息

其中,pFeature 即为新增的属性点矢量数据,记录了该点所在的图斑的属性信息。

3 结果与分析

作者以玉环县坎门镇为试点,由于采用了本文的方法,加快了二类图斑面的内业处理作业,节省了人工,分析结果见表1。

表1 进度分析表

按照以往借助GIS 软件人工进行图斑面的勾绘即人工编号的方法,然后对村代码、林班号、图斑号几个属性字段逐一赋值的步骤,会产生大量的电脑操作,内业工作量不仅大而且费时,操作人员不停的重复操作,容易造成重码、漏码等错误。然而,由表1中可以看出,应用本文研究成果不仅克服了步骤繁多,而且提升了图斑面勾绘工艺步骤,效率是人工编号的一倍以上。并且,图斑属性信息只需鼠标点击即可完成后台存储,大大减轻了作业人员的工作量,加快了内业处理进度。。本文的研究成果应用到了玉环二类森林调查内业工作中,各个工作组都得到了很好的应用,并有一致好评。

图2 林地图斑自动编号流程图 Fig.2 Subcompartment numbering automatically flow chart

4 结束语

本文探索基于COM 技术的ArcEngine 组件库二次开发,成功研发出ArcGIS 环境下林地图自动编码程序。本文该技术应用于浙江省“十一五”二类调查内业处理,目前经过程序升级,应用于玉环县新一轮二类森林资源调查工作,如图3。不仅大大节省了技术人员操作步骤,提高了效率,而且将复杂的人工操作步骤减少到最小,使得二类图斑面的勾绘变得更加简便、易用。

图3 玉环县小班编号应用 Fig.3 Yu Huan sumcompartment numbering automatically

综上,利用ArcEngine 组件式扩展,可灵活 地把那些人工重复机械操作流程,无缝集成在ArcGIS 中,既降低开发难度,提高了开发效率,又增强业务系统的灵活性和开放性。基于COM 技术的ArcEngine 组件库二次开发方法将会得到各行各业的更广泛应用,发挥出更大的功效。

[1] 浙江省林业厅.浙江省森林资源规划设计调查技术操作细则[S].2004,6.

[2] 冯克忠,姜遵锋,徐杨,等.ArcObjects 开发指南(VB 篇)[M].北京:电子工业出版社,2007,1.

[3] 赵万锋,刘南,刘仁义,等.基于ArcObjects的系统开发技术剖析[J].计算机应用研究,2004,21(3):130-132.

[4] GB/T14911-2008.测绘基本术语[S].

[5] GB/T20258.1-2007.基础地理信息要素数据字典第1 部分1:500 1:1 000 1:2 000 基础地理信息要素数据字典[S].

[6] 邬伦.地理信息系统原理方法和应用.北京:科学出版社,第八章空间分析:151.

[7] 汤国安.ArcGIS地理信息系统空间分析实验教程.北京:科学出版社,第七章矢量数据的空间分布:196.

[8] ESRI ArcGIS Object Model Diagrams 9.1.

[9] Razavi A H.ArcGIS Developer's Guide for VBA [M].New York:OnWord Press,2002.

[10] ZeilerM.Exploring ArcObjects[M].California:Esri Press,2001.

[11] Chang K T.Programming ArcObjects with VBA:A Task-Oriented Approach [M].London:Taylor &Francis,2004.

猜你喜欢

内业图斑小班
地理国情监测中异形图斑的处理方法
公路施工项目内业资料管理探讨
新安县有序开展卫星遥感监测图斑核查工作
基于C#编程的按位置及属性值自动合并图斑方法探究
小班教学 有效交流
小班定向式军事游戏的开展
如何在幼儿园小班开展区域活动
土地利用图斑自动检测算法研究
公路工程内业资料管理的不足及处理措施
高速公路机电系统内业资料管理思考