APP下载

基于Android 平台的林业调查辅助APP 的设计研发

2022-12-01李秀峰

南方林业科学 2022年5期
关键词:输入框斜距材积

李秀峰

(新罗区大池镇人民政府,福建新罗364000)

国家林业局在《中国智慧林业发展指导意见》中指出,智慧林业是智慧地球的重要组成部分,是未来林业创新发展的必由之路,是统领未来林业工作、拓展林业技术应用、提升林业管理水平、增强林业发展质量、促进林业可持续发展的重要支撑和保障[1]。智慧林业是发展生态林业民生林业的重要支撑[2-3]。传统的林业生产和森林资源调查是一项综合性、专业性很强的复杂工作,涉及林学、测绘学、遥感学、统计学等学科,需要先借助罗盘仪、全站仪、测绳、GPS、图纸等工具进行外业勘测,然后对勘测的数据进行内业统计整理[4],工作强度大、工作效率较低、人力投入量大,野外调查还存在一定的危险性[5-6]。传统林业生产经营及调查时,原木材积、立木材积都要查询相关的材积计算表,样地测量时罗盘仪换算和平均树高胸径计算需要用计算器,在野外调查较为不便。

目前,我国基于Android 平台的林业调查APP 相关课题研究较多,且取得了一些优秀的研究成果,其中功能较全面的系统有蒋君志伟的掌上超站仪一体化系统、曾毅的二类调查一体化系统;蒋君志伟以测树学、森林经理学、摄影测量、图像识别技术和传感器技术等原理为手段,在Android Studio 开发环境下构建系统,研究开发了一种基于掌上超站仪的森林观测内外一体化系统[7];曾毅采用Android 开发技术与UCMap 二次开发平台实现外业调查,并采用C#开发语言结合ArcGIS Engine 组件开发技术实现内业数据分析处理,研发一套森林资源二类调查一体化的系统[8]。另有功能单一的Android 辅助APP,如张晓艺[9]结合测树学、摄影测量学、图像处理技术应用Android软件开发技术完成了对智能手机/平板森林计测方法的研究及软件实现;彭染姝等[10]设计与实现样地每木检尺结构化数据语音输入APP;刘翔等[11]设计与实现木材材积计算器APP;周克瑜等[12]研究实现测树系统APP;魏斌[13]实现根径或地径计算立木材积APP;金煜现等[14]设计实现森林抚育检查验收辅助APP。但是林业基层单位因受到技术、方法、区域规程、资金及环境等因素影响,一些APP 无法广泛普及。针对福建区域设计一款基于Android 系统的多功能林业调查APP,便于原木材积、二元立木材积、平均树高胸径等计算,以及罗盘仪水平距、斜距换算和经纬度坐标3度带、6 度带转换,对当地林业生产和森林资源调查有一定辅助作用。

1 开发环境

目前市场上手机开发APP 以安卓系统(Android)和苹果系统(IOS)为主。之所以选择Android 系统,一是因为其市场占用率高、普及面广,根据美国网站通讯流量监测机构StatCounter 提供的数据,2022 年2月Android 操作系统在移动操作系统市场份额占比,全球为70.94%[15],中国为78.86%[16],都以极大的优势在国内外市场占主导地位,因此开发基于Android 系统的APP 更有利于普及;二是开发环境Android Studio 基于Java 语言,操作便携、兼容性好,Android Studio 是谷歌公司推出的一个Android 集成开发工具,基于IntelliJ IDEA 提供了集成的Android 开发工具用于开发和调试,易学易懂。此外,目前除了一些微信、支付宝小程序支持跨平台运行,还没有一款成熟的APP 开发软件可以同时适用开发Android、IOS系统或其他系统。

开发环境:Window10 x64 操作系统,JDK 14,Android Studio 4.1.1,Android SDK。编程语言:Java。运行环境:Android 操作系统。

2 林业调查APP 的界面设计

林业调查APP 界面风格简约,目前按功能分5个模块(如图1)分布显示在主页,分别是原木材积计算、二元立木材积计算、罗盘仪换算、平均树高胸径计算、坐标定位转换。主页及每个功能界面的最上方设置工具栏(ToolBar),工具栏左右两侧设置了不同的菜单(Menu),左侧利用侧滑菜单栏(DrawerLayout)设置了Home、Email、关于我们、退出等索引;右侧设计了5 个功能导航栏,方便各功能模块之间快速切换。APP 页面布局大多使用线线布局(LinearLayout),少数使用相对布局(RelativeLayout)。

图1 主页Fig. 1 Home page

3 各功能的设计和实现

3.1 原木材积计算

根据中华人民共和国国家标准《原木材积表(GB/T 4814—2013)》[17]:

1)检尺径为8~120 cm,检尺长0.5~1.9 m 原木材积计算公式:

2)检尺径为4~13 cm,检尺长2.0~10.0 m 原木材积计算公式:

3)检尺径为14~120 cm,检尺长2.0~10.0 m 原木材积计算公式:

4)检尺径为14~120 cm,检尺长大于10.2 m 以上的超长原木材积计算公式:

式(1)~式(4)中:V为材积(m3),L为检尺长(m),D为检尺径(cm)。原木的检尺长、检尺径按GB/T 144-2013 的规定检量。检尺径4~7 cm 的原木材积数字保留4 位小数,检尺径8 cm 以上的原木材积数字,保留3 位小数。

将以上公式编入程序中,通过条件判断将所输入检尺长度、检尺径的原木数据选择对应的公式计算。在布局界面中,分别设置了长度、尺径、根数等输入框(EditText)和材积框(TextView),在相应的输入框输入长度、尺径、根数程序就会自动计算并将结果显示。对输入框设置文本监听功能(TextWatcher),改变其中的数字,程序也会自动计算并将结果显示在材积框(如图2)。为了便于输入和避免计算时非数字字符的干扰,长度输入类型设置为小数(inputType="numberDecimal"),尺径和根数输入类型设置为整数(inputType="number"),同时程序中通过条件判断排除非数字字符(如“.”“0.”)造成公式无法计算的影响,二元立木材积计算、罗盘仪换算、平均树高胸径计算都执行类似设置。清除按键可以将所有输入的内容都清空并将结果归零。

图2 原木材积计算界面Fig. 2 Interface of logvolume calculation

3.2 二元立木材积计算

本APP 设计的二元立木材积计算参考1978 年农林部颁发的《全国立木材积表》中适用于福建省地区的材积表[18],暂时只设计杉木(Cunninghamia lanceolata)、马尾松(Pinus massoniana)、阔叶树、木麻黄(Casuarina equisetifolia)、桉树(Eucalyptus robusta)等树类,所以本APP 二元立木材积暂时仅适用于福建省地区。在树种下拉框中设置了7 个别类:杉木、马尾松、阔叶树、杉木(人工)、马尾松(人工)、木麻黄(人工)、桉树(人工)。

各类树种材积计算公式如下:

式(5)~式(11)中:V为材积(m3),H为高度(m),D为胸径(cm)。

界面设置类似原木材积计算,分别设置高度、胸径、株数3 个输入框;树种选择设置了下拉框(Spinner),将以上7 类树预先列入其中。选择树类后,在界面中相应的输入框输入高度、胸径、根数,程序通过条件判断选择相应树种的计算公式计算,并将结果显示(如图3)。同样设置了文本监听,改变其中的数字,计算结果也随之改变。

图3 二元立木材积计算界面Fig. 3 Interface of binary standing volume calculation

3.3 罗盘仪换算

正方形标准样地调查精度较高,是森林资源调查常用的方法[20-21]。根据《国家林业资源连续清查技术规定(2014)》,方形固定样地面积为667 m2,周界边长为25.82 m[22]。森林资源调查667 m2大小的正方形标准地边界测量时,采用罗盘仪测倾斜角α,皮尺测距,根据公式,斜距=,用计算器换算出斜距或水平距。一般如果地势好无障碍遮挡,一站就能测到底,根据罗盘仪测量出倾斜角α,用计算器能较快速计算出斜距。如果地势不好或有障碍遮挡,就需要测量两到三站,根据公式换算水平距或斜距,较费时费力。本APP 设计了一站、二站、三站3 种情况,在计算一站斜距时,输入水平距和罗盘仪测得的倾斜角α,斜距就会自动计算;计算二或三站时,分别输入测量出的相应倾斜角α 和斜距,就可以快速计算出对应的水平距或斜距,并显示计算结果(如图4)。

图4 罗盘仪换算界面Fig. 4 Interface of compass conversion

3.4 平均树高胸径计算

平均树高和平均胸径都是森林调查中重要的测树因子,平均树高是反映林木高度平均水平的测树指标,平均胸径是反映林木粗度的基本指标[23]。本APP采用算术平均数计算得到平均树高(),其计算公式为;平方平均胸径是长期以来认为最合理的平均胸径()[24],其计算公式为。在野外森林调查中,要用计算器快速计算较多样本的平均树高和平均胸径,较为困难,输入过程中一旦有错误,不易检查和纠正。本功能界面思路很清晰,建立类似Excel 的两列表格,将树高和胸径分两列输入框。为了实现表格下滑功能,布局中锲入了RecyclerView,输入框(EditText)的输入内容通过SparseArray 存储调用。同样对输入框设置监听,每输入或更改输入框数字,结果就会自动计算并显示(如图5)。

图5 平均树高胸径界面Fig. 5 Interface of average tree height and DBH calculation

3.5 坐标定位转换

本APP 使用Android 自带的原生定位获取经纬度。GPS-PROVIDER:通过手机内置的GPS 芯片,利用卫星获取定位信息。在AndroidManifest.xml 文件里配置手机定位权限。经纬度格式分为3 种:度、度-分、度-分-秒。这里使用的是度-分-秒格式,因为直接获取的经纬度是度格式,需要将十进制转换为六十进制。再通过一系列公式将经纬度转换为3 度带和6度带投影平面直角坐标[25]。对地理位置变化设置了监听,一是设置每3 000 ms(即3 s)更新,二是当坐标改变时触发onLocationChanged 函数,如果传进相同的坐标,它就不会被触发。另外,APP 通过location.getAltitude()函数获取相应的海拔。在主页点击坐标定位转换,如果手机定位功能未开启,会提示“访问我的位置信息”,确定后将自动获取数据换算并显示(如图6)。

图6 显示经纬度界面Fig. 6 Interface of display longitude and latitude

4 结语

智慧林业是现代林业发展趋势,是当前林业发展最前沿、最亟待发展和完善的内容[26]。随着人工智能技术的不断发展,越来越多的新技术将会应用于林业生产经营,从而解放生产力,提高生产效率。本APP在原木材积计算、二元立木材积计算、罗盘仪换算、平均树高胸径计算和坐标定位转换等功能在Android系统上做了研究探索。目前APP 安装后仅3.8 MB,占用空间很小,操作简单明了,对林业生产和森林资源调查起到一定的帮助。但是还有不足之处,比如对输入的数据和计算结果没有统计、保存和传输功能,下一步将继续完善数据统计、保存和传输相应功能,减少人工记录和重复数据录入,提升调查内业整理效率。

猜你喜欢

输入框斜距材积
中间法短视距精密三角高程在高层平台沉降监测中的应用
拍一拍,图片识文字
基于雷达测距与角位置辅助的SINS空中对准方法
输入框设计中需注意的9个细节
斜距归算成水平距离误差定量分析
5龄热垦628材积量季节生长节律与气象因子关联度初步研究
自编翻译程序
福建省阔叶树二元材积方程修订
机载毫米波高分辨大斜视合成孔径雷达成像
残差和为零的非线性回归在材积建模中的应用