APP下载

面向县级林业的数据集成技术研究

2018-07-05沈剑波雷渊才王功明符利勇中国林业科学研究院资源信息研究所北京0009中国科学院生物物理研究所北京000

计算机应用与软件 2018年6期
关键词:县局材积生物量

沈剑波 雷渊才 王功明 符利勇*(中国林业科学研究院资源信息研究所 北京 0009)(中国科学院生物物理研究所 北京000)

0 引 言

随着计算机技术的发展,林业因子精准估计越来越受到行业重视。树高、材积(即木材体积)以及生物量是森林调查中最重要的测树因子,也是评定林木生长状况、立地质量以及划分林层的重要依据[1]。但是,这些因子的测量耗时、调查成本高,通常是通过其他的林业因子(例如直径等)预估得到。迄今为止,关于树高曲线、材积方程和生物量模型的构建方法有很多报道,并且发展较成熟。然而如何把这些模型集成到一个系统让用户方便计算树高、材积和生物量,当前国内外研究较少。

目前,关于森林收获数据维护软件管理系统较少。如何利用现有的森林调查数据建立面向县级林业数据服务平台,实现精准预估森林生长与收获,以及如何维护与管理这些数据、准确估算森林收获及立地质量的评价具有重要的意义。针对上述实际需求,开发了面向县级林业数据服务平台,可为森林的经营管理提供重要的数据支撑。

1 需求分析

森林调查数据目的在于及时掌握森林资源的数量、质量和生长、消亡的动态规律及其与自然环境和经济、经营等条件之间的关系。目前,国家对于生态环境越来越重视,森林是地球上复杂、多物种、多功能与多效益的生态系统,是陆地生态系统的主体,对维护生态平衡起着决定性作用,其在实现社会经济可持续发展具有举足轻重地位[2-5]。目前林业部门森林资源数据多,但真正利用起来能够盘活的数据却很少,另外由于森林调查数据多,林业工作者对数据查询及管理与维护费时费力,消耗人力成本大。

为了解决目前林业生产单位数据量大与人力资源少的矛盾,根据实际生产需要,开发出操作简单、界面友好的基于县级林业数据维护与管理平台,对于精确测算森林生长与收获,提高林业生产效率具有积极的作用。

基于该平台用户可以通过原始数据中的胸径、树种以及县(局)计算出树高、材积及生物量。可以根据关键字进行查询,导出所需数据生成报表的功能。利用开发的程序计算树高、材积以及生物量,具有迅速、便捷的特点。其计算结果用于制订和调整林业经营政策,编制林业生产经营方案和鉴定森林经营效果,可以保证森林资源在国民经济建设中得到充分利用,并不断提高其潜在生产力。

2 总体设计

系统采用自顶向下的结构化设计方法[6],在设计时,首先考虑系统的任务、环境、需求和局限,然后在总体上设计出能够满足系统要求的模块化体系结构,并设计出每个子系统或子模块[7]。考虑到交互性和较快的处理速度、存取安全的需求,系统将采用C/S构架[8-9],数据库设计考虑可扩展字段,并采用组件化软件开发技术以保证系统的实用性、灵活性、可复用性、交互性以及可扩展性。

系统设计时考虑了人性化、界面友好的特点。例如,不同县(局)、不同树种的树高、材积及生物量的计算公式输入部分,由于不同树种的计算公式大同小异,很多情况下只是参数的不同,用户只需要修改参数而已。若该对话框完全设置为空,用户则必须重新输入公式,而树高、材积及生物量的计算公式一般较为复杂,用户将会消耗大量时间输入公式。本研究设计了可编辑的对话框,并把较为通用的树高、材积及生物量公式固化在编辑框中,用户根据需要可以对公式进行修改或者编辑,这样的设计可以大幅度节约用户的时间与人力成本。本系统的总体设计架构如图1所示。

图1 系统流程结构图

本系统采用Microsoft Visual Basic 6.0为开发语言,开发过程中运用了VBSCRIPT技术,以ACCESS为后台数据库,利用ADO数据库技术[10-11],实现了根据以不同的县(局)以及树种对数据库的树高、材积及生物量的数据维护。

3 功能设计

3.1 数据库设计

信息资源是系统建设的重要基础成果,是信息共享和交换的物理基础。主要包括原始数据库、成果数据库。各种数据通过统一的数据库标准,为业务应用层提供数据保障。

数据访问层是对后台数据库进行访问,并为业务处理层提供服务的组件层。数据访问组件基于C/S模式利用ADO数据库引擎对后台数据库进行访问,实现数据的增加、修改、删除、计算树高、材积生物量与材积以及按条件搜索查询等功能。

本平台根据需求设计的表,主要有县局表(T_Bureau)、树种表(T_Tree)和公式与收获表(T_Formulas)等,在字段设计过程中,需要考虑命名规范、兼容性等要求,设计好的字段内容如表1-表3所示。在实际应用过程中,某些字段和具体时间有关,如表1中的“***年县局编码”、表2中的“***年树种代码”等,对于这种情况,我们设计了与期数匹配的动态字段,从而为程序的可扩展性提供了基础。

表1 县局代码表

表2 树种代码表

表3 公式与森林收获表

此外,本系统还提供按条件添加数据的功能,即用户可以根据关键字段(如县局名称等)及树种名称添加数据,以及计算树高、材积以及生物量,并能够按照条件进行查询、修改与删除数据的功能。为了满足用户的需要,可以将结果导出为EXCEL报表,并进行对应的导入和维护。

3.2 模块设计

林业数据维护与服务平台主要实现的功能模块主要有以下6个模块,如图2所示。

图2 林业数据维护与服务平台功能模块

3.2.1 按条件(县、树种、样地号)添加数据

实现按照县局名称、树种名称对树高、材积、生物量的公式录入的功能,根据树种名称添加记录的界面如图3、图4所示。

图3 县局选择界面

图4 树种选择界面

ADO是Active Data Object的缩写,称为ActiveX数据对象。利用ADO对象,通过ODBC驱动程序或OLE DB连接字符串,可实现对任意数据库的存取和访问,访问的数据类型也更加丰富[12-14]。使用ADO技术,需要通过选择“工程”菜单中的“引用”来为 ADO 对象库添加一个引用,然后在“引用”对话框中选择“Microsoft ActiveX Data Objects 2.6 Library”。

读取数据库中的县局名称显示在图4种左边的ListBox框中。

3.2.2 修改数据的功能

实现按照县局名称、树种名称对树高、材积、生物量的公式进行添加或者修改的功能。点击保存时,则会弹出相应的对话框,提示用户是否修改原记录,若数据库里有该条记录,则提醒用户是否修改原记录,若数据库中无该条记录,则直接保存。

3.2.3 删除数据的功能

在此模块下,用户首先可以查询相关数据,若需要删除,则用户可以点击删除按钮进行删除对数据进行删除。

3.2.4 计算树高、材积及生物量功能

在此功能模块下,使用了VBScript技术[15-18],对系统进行管理,加强了界面的动态性和交互性。当用户输入胸径,相应的树高值、材积及生物量值能够实时计算出来,并显示在相应的对话框中。

该模块实现了依据所输入的胸径获取实时获取树高、材积以及生物量的功能,并具备数据检错的功能。实现根据输入胸径,按照所输入的公式计算树高、材积、生物量的功能,采用VBScript中的JS函数进行运算,需要在窗体中添加Microsoft Script Control 1.0,具体添加步骤为:需要通过选择“工程”菜单中的“组件”,勾选Microsoft Script Control 1.0即可,并拖入窗体。实现代码如下:

Function JS(ByVal Expressions As String) As String

Dim MsscAs Object

Set Mssc=CreateObject("MSScriptControl.ScriptControl")

Mssc.Language="vbscript"

On Error GoToEvalErr

JS=Mssc.Eval(Expressions)

Exit Function

EvalErr:

Exit Function

End FunctionFunctionJS(ByVal Expressions As String) As String

Dim MsscAs Object

Set Mssc=CreateObject("MSScriptControl.ScriptControl")

Mssc.Language="vbscript"

On Error GoToEvalErr

JS=Mssc.Eval(Expressions)

Exit Function

EvalErr:

Exit Function

当输入相应的胸径后,实时计算出相应的树高、材积及生物量,并显示在相应的对话框中。具体实现代码如下所示:

Private Sub TextDm_Change()

Dim d As Double

Dim h As Double

Dim s As String

Dim t As String

Dim u As String

ScriptControl1.Language="vbscript"

If Len(TextDm.Text) > 0 Then

d=TextDm.Text

Else

d=0

End If

s=LCase(TextHformulas.Text)

s=Replace(s, "d", d)

TextH.Text=JS(s)‘树高计算

h=TextH.Text

t=LCase(TextVformulas.Text)

t=Replace(t, "d", d)

t=Replace(t, "h", h)

TextV.Text=JS(t)’材积计算

u=LCase(TextBformulas.Text)

u=Replace(u, "d", d)

u=Replace(u, "h", h)

TextB.Text=JS(u)’生物量计算

End Sub

计算模块的流程图如图5所示。

图5 计算模块流程图

3.2.5 按条件进行搜索与查询的功能

该系统实现了根据条件查询记录的功能,以往的森林调查数据是一些EXCEL表格,用户查询想获取的数据往往耗费过高的人力成本与时间成本。为了满足用户根据需要查询所需要的数据,设定相关的关键字,供用户搜索查询。用户只要选择相应的关键字,对应的数据记录即可显示在界面中的DataGridview控件中。

系统设计了用户常用的几个字段,例如树种代码、树种名称、县局名称等,用户只需搜索关键字设置为县局代码、者县局名称以及树种名称或者这几个字段的组合,就可以搜索到符合搜索条件的所有记录。例如按照树种进行查询记录,实现的核心代码如下所示:

Dim strSql As String

Dim conn As New ADODB.Connection

Dim rs As New ADODB.Recordset

conn.Provider="Microsoft.Jet.OleDB.4.0"

conn.OpenApp.Path& "DataBaseProcDB.mdb"

conn.CursorLocation=adUseClient

strSql="select * from T_Formulas where 树种名称='" + cbxSpecies.Text + "' order by 编号 DESC"

Set rs=conn.Execute(strSql)

Set DataGrid1.DataSource=rs

3.2.6 生成报表及数据导入导出功能

对林分的林分因子可以按照不同字段,如县局名称、树种名称等进行查询,并对检索数据结果可以进行导出报表,用户也可以根据需要对外部数据进行导入的操作。

4 系统开发

根据上述设计原则,我们在Windows平台下,借助VB6.0+VBScript语言、Access数据库,开发了基于林业的数据服务平台,具有精确计算树高、材积以及生物量等指标,具备常规数据库基本操作,包括增删改和条件(模糊)搜索等。

在公式设置、计算及导入数据库模块中,用户根据界面提示,可输入相关公式。考虑到公式输入的繁琐,且由于不同县局及树种公式的变化多数只需要修改相关公式的参数即可,故林业数据将公式固化在Text编辑框中,用户只需根据需要对公式进行修改。这样将会大大节省用户操作时间,提高界面的友好性。当用户输入胸径时,相应的树高、材积以及生物量会实时依据用户所输入的树高公式、材积公式,以及生物量公式精准地计算并显示在相应的Text对话框中。这些数据为森林经营及管理者及时了解森林生长收获情况提供数据支撑。如图6所示。

图6 基于任意输入公式的计算

在条件搜索模块中,该模块则提供了根据县局代码、县局名称及树种名称进行搜索查询的功能,用户根据需要将查询的数据进行导出或打印,并可以将外部数据导入数据库的功能。这些功能的开发提供了更精准数据服务给森林经营管理者,有助于更及时准确了解每个县(局)的森林生长与收获情况。如图7所示。

图7 条件搜索及导入导出

5 结 语

开发了面向县级林业数据服务平台,对于森林资源数据库的管理及维护,以及根据所在区域及树种名称进行树高、材积以及生物量的计算等提供信息服务和专业分析,对基层林业工作者实时掌握该地区的森林蓄积、生物量等定量指标具有重要积极促进作用。

以VB6.0为开发语言,采用VBScript技术,ADO数据库技术库等,着眼于现有林业调查数据,建设一个安全、可靠、实用、可扩展的面向县级林业数据服务平台,尽可能减少财力投入,最大限度地满足林业生产及科研的实际需要。同时,平台的设计注重简洁,功能齐全、使用方便、灵活,用户界面友好,以便于用户的管理和使用。

该平台的推广与使用有助于提高基层林业工作人员的数据维护效率,降低数据维护成本,实现精准林业提高森林经营水平辅助经营决策具有积极的促进作用。

[1] 孟宪宇.测树学[M].3版.北京:中国林业出版社,2006.

[2] 张永利. 中国森林生态系统服务功能研究[M]. 北京:科学出版社,2010.

[3] Miah M D, Man Y S, Koike M. Forests to Climate Change Mitigation[M]. Springer Berlin Heidelberg, 2011.

[4] Peterson D L, Vose J M, Patel-Weynand T. Climate Change and United States Forests[M]. Springer Netherlands, 2014.

[5] Malik A, Mertz O, Fensholt R. Mangrove forest decline: consequences for livelihoods and environment in South Sulawesi[J]. Regional Environmental Change, 2017, 17(1):1- 13.

[6] 幸乐. 基于J2EE的物流管理系统的设计与实现[D]. 电子科技大学, 2015.

[7] 高东静,林云,彭鑫,等.面向设计层次优化的软件自动化重构[J].计算机应用与软件,2017,34(10):8- 13.

[8] 姜吉婷,韩勇,张小垒,等.基于B/S与C/S协同服务的高校资产与实验室综合管理平台的设计实现[J].计算机应用与软件,2014,31(3):47- 50,63.

[9] 张书强. 基于C/S结构的光缆生产管理系统的设计与实现[D]. 南开大学, 2016.

[10] 沈剑波, 雷相东, 舒清态,等. 森林健康评价系统设计与实现[J]. 计算机技术与发展, 2014,24(8):206- 209.

[11] 刘红梅,安道星.Visual Basic程序设计案例教程[M].北京:人民邮电出版社,2014.

[12] 陈静, 范乃吉, 袁晓东,等. Matlab环境下的Oracle数据库访问技术[J]. 计算机应用, 2015(S1):78- 82.

[13] 彭志敏. 基于ADO数据库访问技术的财务智能管理系统的设计[J]. 自动化与仪器仪表, 2016(11):105- 106.

[14] 徐枫, 马国之, 刘良旭. 基于ADO技术的数据库访问研究与实现[J]. 计算机工程与设计, 2004, 25(1):107- 110.

[15] 王棋, 王帅, 赵海洋. 基于EPS中VBScript二次开发在地籍处理中的应用[J]. 测绘与空间地理信息, 2011, 34(6):191- 193.

[16] Fu X, He X, Lau K S. Spectrality of Self-Similar Tiles[J]. Constructive Approximation, 2015, 42(3):519- 541.

[17] 卢玉申. ASP企业仓库管理系统的设计与实现[D].吉林大学, 2015.

[18] Yalamanchili S, Kumari K S. Comparison of manual and automatic testing using genetic algorithm for information handling system[C]//International Conference on Signal Processing, Communication, Power and Embedded System. IEEE, 2017:1795- 1799.

猜你喜欢

县局材积生物量
基于高分遥感影像的路域植被生物量计算
福建将乐杉木生物量相容性模型分析
轮牧能有效促进高寒草地生物量和稳定性
不同NPK组合对芳樟油料林生物量的影响及聚类分析
浅谈新常态下县级局工会工作
华北落叶松人工林生长规律研究
木材材积计算方法探讨
对提高县局配网供电可靠性措施及方法的探讨
对提高县局配网供电可靠性措施及方法的探讨
辽西地区杨树沙棘混交林内杨树树高、材积与胸径数量化关系的探讨