舒德远,何光辉,张洁,杨林 ,桂加英,张耀荣,陈松
(贵州省林业科学研究院,贵州 贵阳 550005)
样地调查在森林规划调查、森林采伐设计、森林资产评估、征占用林地设计中是最常用的方法[1],其外业调查工作量大,内业数据计算繁重,尤其是在生物多样性丰富度位居全国前列的贵州地区[2],树种结构复杂,需要查用大量的森林资源常用数表,手工计算费时费力[3]。传统的手工计算和查表方法工作效率低,且容易出现错误,通过语言设计的软件需另行安装,且不利于林业工作者直观理解[4]。EXCEL软件具有强大的数据计算与统计分析功能,可进行公式编辑和插入函数,具有连环链锁计算能力[5],且EXCEL是应用最广泛的数据处理和分析软件[6]。因此,基于EXCEL的数据处理功能和界面友好性,探索其在森林样地调查计算中的应用,解决林业生产工作中遇到的统计问题,对提高林业调查工作效率和质量具有显著作用。
森林样地调查的基本内容,可分为外业数据采集和内业数据计算两大部分。外业数据采集需利用复杂的工具和仪器[8],开展样地选择、定周界、每木调查、地形因子测量、林分因子(胸径、树高、冠幅、密度等)调查等工作;内业数据计算则主要包括各径阶的平均胸径、平均树高计算,树高曲线拟合,蓄积量的计算等步骤,并根据样地蓄积量推算整个林分蓄积量[9]。在样地调查中,调查样地活立木蓄积最为重要,需要在外业调查过程中计算出平均胸径(平方平均数),通过平均胸径确定测高树分布并测量树高,再根据胸径、树高和株数利用二元材积表或材积模型进行样地蓄积计算[10]。
本文基于EXCEL软件,通过3个不同工作表分别实现森林样地调查的数据采集、数据计算和成果展示。在数据采集工作表中按检尺顺序据实输入对应样木编号的树种名称、胸径和备注,通过函数生成各树种按胸径由小到大的排序表和对应样木编号,并计算出各树种各径阶平均胸径和对应株数,参考生成和计算结果,选择需要测量树高的样木测量树高;在数据计算工作表中分树种按径阶计算平均树高和蓄积等,并根据计算结果进一步计算出优势树种、树种组成和样地指标、小班指标;在数据展示工作表中展示出简洁、明了并包含必要信息的调查计算成果。
各项功能的实现和函数目的详见图1。
图1 功能实现流程图
数据采集工作表主要是在样地外业调查时使用,将制作好的表格文件拷贝到平板电脑或手机等装有EXCEL软件的移动终端即可使用。外业调查时输入树种名称、胸径和备注,参考生成和计算结果,选择需要测量树高的样木测量树高并输入表格中。
3.1.1 样木编号、树种、胸径等输入
样木编号在外业调查前输入数据采集工作表,在检尺过程中,按检尺顺序据实输入对应样木编号的树种名称、胸径和备注,备注内容包括如断梢、病虫害、濒死木等。
输入正确的树种名称,是后期确定各树种各径阶平均木、选择正确的蓄积计算模型和计算树种组成等过程的基础。考虑到各地区生物多样性不一,样地内树种结构复杂程度各异,本文设计的方法需据实按检尺顺序输入规范的树种名称。在树种结构单一的地区,也可通过下拉菜单形式选择输入树种名称。
3.1.2 树高输入
因外业工作环境差,工作量大[11],不宜对样地内所有样木进行树高测量,实际调查中多采用分树种按径阶选择1至3株平均木实测树高,再用加权平均法计算样地平均高。故在树种、胸径等数据采集完成后,需分树种按径阶统计出平均胸径、株数,参考统计结果选择出需要测量树高的样木编号并测出树高。该步骤的统计过程在数据计算工作表中实现,统计结果需在数据采集工作表中展示,以便作为选择测量树高样木的参考。
按胸径确定径阶,作为后面统计的依据。采用IF条件函数,以上限排外法确定每株样木的径阶,如“IF(AND(胸径值>=5,胸径值<7),″6″,IF(AND(胸径值>=7,胸径值<9),″8″,”,意为胸径大于等于5并小于7径阶返回为6,胸径大于等于7并小于9径阶返回为8,以此类推。
生成树种名称的汉字编码,确保每一个树种编码的唯一性。采用CODE结合RIGHT和LEFT函数生成每株样木的树种名称汉字编码,如“CODE(LEFT(树种名称,1))&CODE(RIGHT(LEFT(树种名称,2),1))&CODE(RIGHT(LEFT(树种名称,3),1))”,意为分别生成树种名称第一位、第二位、第三位汉字的汉字编码,并用“&”将三位汉字的汉字编码组合成一个数值。如树种名称较长,则以此类推。
生成所有样木的“树种+径阶+胸径”(TRJX)值,形成TRJX值区域,作为后面TRJX排序的过程数据。采用CONCATENATE函数将树种名称、径阶和胸径组合成一个字符串,并利用“-”将内容隔开。如“CONCATENATE(树种名称,″-″,径阶,″-″,胸径)”,意为生成一个“树种名称-径阶-胸径”字符串。将所有样木逐一计算,生成TRJX值区域。
生成所有样木的TRJX编码,形成TRJX编码区域,并进一步排序生成TRJX编码排序表,作为后面TRJX排序的过程数据。首先利用“&”将以上过程生成的树种名称汉字编码、径阶和据实输入的胸径组合成一个数值,即TRJX编码。如“树种名称汉字编码&径阶&胸径”,意为将树种名称汉字编码与对应样木的径阶和胸径组合成一个数值。将所有样木逐一计算,生成TRJX编码区域。然后通过SMALL函数将TRJX编码区域进行排序以生成TRJX编码排序表,如:“SMALL(TRJX编码区域,1)”,意为返回TRJX编码区域中的最小值;“SMALL(TRJX编码区域,2)”,意为返回TRJX编码区域中的第二小值,以此类推逐一计算,生成TRJX编码排序表。
生成TRJX值排序表和对应样木编号,以方便选择需要测量树高的样木。首先采用INDEX结合MATCH函数将TRJX值区域中的所有TRJX值按升序排序,生成TRJX值排序表,如“INDEX(TRJX值区域,MATCH(TRJX编码排序表中某一编码值,TRJX编码区域,0),1)”,意为返回与TRJX编码排序表中某一编码值对应的TRJX值,将所有样木逐一计算,生成TRJX值排序表。然后再次采用INDEX结合MATCH函数将对应样木编号计算出来,如“INDEX(样木编号区域,MATCH(TRJX值排序表中某一值,TRJX值区域,0),1)”,意为返回与TRJX值排序表中某一TRJX值对应的样木编号,将所有样木逐一计算,生成与TRJX值排序表中所有TRJX值对应的所有样木编号。
按树种计算各径阶的平均胸径和株数。这一计算过程在数据计算工作表中运用时,需要用到计算结果,作为参考以方便选择需要测量树高的样木。
选择需要测量树高的样木编号并测量树高后输入。结合实际情况,某一树种某一径阶的株数越多,需要测量树高的样木株数就越多,一般选择3株以上,反之则越少(某一树种某一径阶均不得少于1株)。在实际调查过程中,根据各树种各径阶的平均胸径和株数,在TRJX值排序表中逐一选择与某一树种某一径阶平均胸径最靠近的样木(不得选择备注栏中存在特殊情况的样木),根据对应的样木编号,找到样地中对应样木编号的样木测量树高并输入,逐一树种逐一径阶测量树高并输入完成即可。
数据计算工作表是一个中间过程,主要是在内业处理阶段使用,将外业调查移动终端内记录的表格文件拷贝到装有EXCEL软件的电脑桌面端上即可使用。
3.2.1 分树种按径阶计算平均胸径和株数
生成“树种-径阶”(TRJ)值,作为后面统计的过程数据。利用CONCATENATE函数将数据采集工作表中据实输入的树种名称和对应按胸径确定的径阶合并为TRJ值。如“CONCATENATE(树种名称,″-″,对应径阶)”,意为将树种名称与对应径阶组合成一个文本字符串。将所有样木逐一计算,生成TRJ值区域。
生成所有且不重复的TRJ值区域,作为后面分树种按径阶计算相关因子的依据。利用INDEX结合MATCH和COUNTIF函数生成所有且不重复的TRJ值,如“INDEX(TRJ值区域,MATCH(0,INDEX(COUNTIF(已生成区域,TRJ值区域),0,0),0))”,意为返回与已生成区域不重复的下一个TRJ值。逐一计算,得到所有且不重复的TRJ值区域。
分树种按径阶计算平均胸径。采用SQRT结合AVERAGEIF函数计算满足条件的平均胸径,如“SQRT(AVERAGEIF(TRJ值区域,″=″& 某一TRJ值,胸径平方区域))”,意为将与某一TRJ值相等的TRJ值区域中对应的所有胸径平方求平均值后开平方,即得到某一TRJ值对应的平均胸径。逐一计算,得到所有与不重复的TRJ值对应的平均胸径。
分树种按径阶计算株数。采用COUNTIF函数计算满足条件的株数,如“COUNTIF(TRJ值区域,″=″& 某一TRJ值)”,意为返回与某一TRJ值相等的TRJ值区域中的所有个数,即得到与某一TRJ值相对应的株数。逐一计算,得到所有与不重复的TRJ值对应的株数。
3.2.2 分树种按径阶计算平均树高
采用AVERAGEIFS函数计算满足多重条件的所有单元格平均值,如“AVERAGEIFS(树高值区域,TRJ值区域,某一TRJ值,树高值区域,″>0″)”,意为将所有与某一TRJ值对应的树高求平均值,即得到与某一TRJ值相对应的平均树高。逐一计算,得到所有与不重复的TRJ值对应的平均树高。
3.2.3 分树种按径阶计算蓄积
以贵州省现有地方标准为例,杉木、马尾松、华山松、云南松、柏木、软阔、硬阔等相关树种(类)已有二元立木材积模型,均是以胸径、树高两个因子与立木材积的关系编制得出,且马尾松、杉木等存在中心产区和一般产区二元立木材积模型的不同,需对树种分类。
树种分类。在数据计算工作表中,结合数据采集工作表中据实输入的树种名称手动对树种进行分类,也可通过IF条件函数自动计算树种分类或下拉菜单形式点选输入树种分类。
按TRJ计算蓄积。根据以上步骤得到的与所有且不重复TRJ值相对应的平均胸径、平均树高和株数,结合树种分类,采用IF条件函数计算与每一个TRJ值对应的蓄积,如“IF(树种分类=″软阔″,软阔二元立木材积模型计算式*株数)”,意为按照软阔二元立木材积模型计算式,计算树种分类为软阔的TRJ值对应蓄积。其他树种分类以此类推,生成TRJ蓄积区域,同时,还可以增加多重条件控制起源、产区等选择不同的二元立木材积模型。
3.2.4 计算样地优势树种及树种组成
计算各树种蓄积和样地总蓄积。首先采用SUMIF函数计算各树种蓄积,如SUMIF(树种名称区域,″=″&某一树种名称,TRJ对应蓄积区域),意为对树种名称区域中对应于某一树种名称的TRJ对应蓄积求和,返回结果即为该树种的蓄积和。其他树种以此类推,然后采用SUM函数对各树种蓄积求和,即为样地总蓄积。
计算各树种组成成数并排序,作为后面确定样地优势树种及树种组成的过程数据。首先利用计算公式“ROUND(某一树种蓄积*10/样地总蓄积,0)”即可得到某一树种的组成成数(十分法表示),其他树种组成成数以此类推,生成树种组成成数区域。然后采用LARGE函数对各树种组成成数排序,如“LARGE(树种组成成数区域,1)”,意为返回第1个最大值,其他树种以此类推。
确定样地优势树种及树种组成。以上树种组成成数的最大值对应树种即为样地优势树种。采用CONCATENATE函数将各树种的组成成数值与树种名称按由大到小的顺序组合成一个文本字符串,即为树种组成。
以上方式是按照蓄积确定树种组成成数的计算方法,对于竹林、胸径小于5厘米的幼龄林等特殊情况,也可采用COUNTIF函数计算各树种的株数,按株数比例确定树种组成成数,本文不进行详细叙述。
3.2.5计算样地平均胸径、平均树高、公顷株数、公顷蓄积
计算样地平均胸径。以上3.2.1已计算出各树种各径阶的平均胸径,同理,采用SQRT结合AVERAGE函数计算样地的平均胸径,如“SQRT(AVERAGE(胸径平方区域))”,意为将所有的胸径平方求平均值后开平方,即得到所有样木的平均胸径(平方平均数)。
计算样地平均树高。以上3.2.2计算出各树种各径阶的平均树高后,利用公式“株数*平均树高”计算出某一TRJ值对应的树高株数加权值(TRGT),逐一计算得到TRGT区域,然后利用公式“SUM(TRGT区域)/样地总株数”即可计算出样地平均树高。
计算公顷株数、公顷蓄积。以上3.2.1已计算出样地中各树种各径阶的株数,采用SUM函数计算出样地总株数,3.2.4已计算出样地总蓄积。结合样地面积与公顷的单位转换关系计算出公顷株数、公顷蓄积,如每亩量乘以15换算成每公顷量。
3.2.6 计算小班指标
根据小班面积和已计算得到的样地平均胸径、平均树高、株数、蓄积等数据可计算小班的相关指标。
数据展示工作表主要是展示调查计算成果。通常情况下,森林样地调查和计算成果需要整理打印后备查或存档。需精简上述步骤中的计算过程,输出简洁、明了并包含必要信息的调查计算成果。本文采用单独的数据展示工作表,主要采用单元格引用方式,将采集和计算成果运用到数据展示工作表即可。
在外业调查过程中,必须在数据采集工作表中据实准确输入对应样木编号的树种名称、胸径和备注,并确保一一对应。样木数量不限,但树种名称和胸径不能为空,树高和备注均可根据实际情况输入。
在内业数据计算阶段,必须准确确定树种分类。以贵州省现有地方标准为例,杉木、马尾松、华山松、云南松、柏木等树种分类均为对应的树种名称,但软阔、硬阔包含的种类较多,需结合树种特性和相关规范性文件据实确定树种分类。
简化工作量。通过本方法开展森林样地调查计算工作,外业只需在数据采集工作表中据实输入对应样木编号的树种名称、胸径和备注,并根据计算结果选择需要测量树高的样木进行测量,无需每木测量,内业只需进行树种分类。与邓玉明[4]研究成果中“径阶等数据需要手动录入”相比,本方法可极大简化工作量。
实现一次性计算出各树种蓄积和树种组成。本方法通过分树种按径阶计算平均胸径、平均树高、株数和蓄积等,进一步计算出各树种蓄积和树种组成,与王雍树[3]、苏振海等[10]研究成果相比,计算指标更丰富,应用深度更彻底。
应用面广。本方法不受样地形状和面积的限制,只需结合样地实际面积与公顷或小班面积的关系转换计算即可,与冯家祥[1]研究成果中“系数、胸径常数、树高常数等均为写入已有各树种蓄积量计算系数和常数”相比,本方法应用面更广。
可视、直观、易于理解。EXCEL软件界面友好[5],是应用最广泛的数据处理和分析软件[6],广大林业工作者能熟练使用,具有可视、直观、易于理解的效果。
本方法中采用CODE函数生成树种名称的汉字编码,该函数返回的代码对应于终端中当前使用的字符集,不同的终端可能采用不同的编码方案,不同的编码方案返回的数值不一样,其排序即不一样。因此,在不同终端使用时,需注意编码方案是否相同,若不相同,需调整生成树种名称汉字编码的函数。
本方法采用十分法计算树种组成成数并确定树种组成,因四舍五入可能会导致树种组成成数之和不等于10的情况,若出现该情况需人为主观判断并修正树种组成成数。
本方法以贵州省现有地方标准中已有的二元立木材积模型为例计算蓄积,若相关模型有更新或出现新的材积模型,需手动更新计算模型。
本文基于EXCEL软件的友好界面和强大功能,主要采用IF、INDEX、MATCH、CONCATENATE、SQRT、LARGE等函数,基本思路是:(1)外业调查数据一次性输入;(2)分树种按径阶计算平均胸径、平均树高、株数和蓄积等,并根据计算结果计算出优势树种、树种组成和样地指标、小班指标等;(3)所需结果一次性全部计算完成并展示在数据展示工作表中。使用过程中无需查找任何调查数表,相关计算自动完成,计算精度高,大大提高了工作效率,具有较高的可操作性和实用性。可在国家储备林、征占用林地、森林采伐设计等工作中充分使用,是比较成熟的应用,效果明显。