舒德遠(yuǎn),何光輝,張潔,楊林 ,桂加英,張耀榮,陳松
(貴州省林業(yè)科學(xué)研究院,貴州 貴陽 550005)
樣地調(diào)查在森林規(guī)劃調(diào)查、森林采伐設(shè)計(jì)、森林資產(chǎn)評估、征占用林地設(shè)計(jì)中是最常用的方法[1],其外業(yè)調(diào)查工作量大,內(nèi)業(yè)數(shù)據(jù)計(jì)算繁重,尤其是在生物多樣性豐富度位居全國前列的貴州地區(qū)[2],樹種結(jié)構(gòu)復(fù)雜,需要查用大量的森林資源常用數(shù)表,手工計(jì)算費(fèi)時(shí)費(fèi)力[3]。傳統(tǒng)的手工計(jì)算和查表方法工作效率低,且容易出現(xiàn)錯(cuò)誤,通過語言設(shè)計(jì)的軟件需另行安裝,且不利于林業(yè)工作者直觀理解[4]。EXCEL軟件具有強(qiáng)大的數(shù)據(jù)計(jì)算與統(tǒng)計(jì)分析功能,可進(jìn)行公式編輯和插入函數(shù),具有連環(huán)鏈鎖計(jì)算能力[5],且EXCEL是應(yīng)用最廣泛的數(shù)據(jù)處理和分析軟件[6]。因此,基于EXCEL的數(shù)據(jù)處理功能和界面友好性,探索其在森林樣地調(diào)查計(jì)算中的應(yīng)用,解決林業(yè)生產(chǎn)工作中遇到的統(tǒng)計(jì)問題,對提高林業(yè)調(diào)查工作效率和質(zhì)量具有顯著作用。
森林樣地調(diào)查的基本內(nèi)容,可分為外業(yè)數(shù)據(jù)采集和內(nèi)業(yè)數(shù)據(jù)計(jì)算兩大部分。外業(yè)數(shù)據(jù)采集需利用復(fù)雜的工具和儀器[8],開展樣地選擇、定周界、每木調(diào)查、地形因子測量、林分因子(胸徑、樹高、冠幅、密度等)調(diào)查等工作;內(nèi)業(yè)數(shù)據(jù)計(jì)算則主要包括各徑階的平均胸徑、平均樹高計(jì)算,樹高曲線擬合,蓄積量的計(jì)算等步驟,并根據(jù)樣地蓄積量推算整個(gè)林分蓄積量[9]。在樣地調(diào)查中,調(diào)查樣地活立木蓄積最為重要,需要在外業(yè)調(diào)查過程中計(jì)算出平均胸徑(平方平均數(shù)),通過平均胸徑確定測高樹分布并測量樹高,再根據(jù)胸徑、樹高和株數(shù)利用二元材積表或材積模型進(jìn)行樣地蓄積計(jì)算[10]。
本文基于EXCEL軟件,通過3個(gè)不同工作表分別實(shí)現(xiàn)森林樣地調(diào)查的數(shù)據(jù)采集、數(shù)據(jù)計(jì)算和成果展示。在數(shù)據(jù)采集工作表中按檢尺順序據(jù)實(shí)輸入對應(yīng)樣木編號的樹種名稱、胸徑和備注,通過函數(shù)生成各樹種按胸徑由小到大的排序表和對應(yīng)樣木編號,并計(jì)算出各樹種各徑階平均胸徑和對應(yīng)株數(shù),參考生成和計(jì)算結(jié)果,選擇需要測量樹高的樣木測量樹高;在數(shù)據(jù)計(jì)算工作表中分樹種按徑階計(jì)算平均樹高和蓄積等,并根據(jù)計(jì)算結(jié)果進(jìn)一步計(jì)算出優(yōu)勢樹種、樹種組成和樣地指標(biāo)、小班指標(biāo);在數(shù)據(jù)展示工作表中展示出簡潔、明了并包含必要信息的調(diào)查計(jì)算成果。
各項(xiàng)功能的實(shí)現(xiàn)和函數(shù)目的詳見圖1。
圖1 功能實(shí)現(xiàn)流程圖
數(shù)據(jù)采集工作表主要是在樣地外業(yè)調(diào)查時(shí)使用,將制作好的表格文件拷貝到平板電腦或手機(jī)等裝有EXCEL軟件的移動終端即可使用。外業(yè)調(diào)查時(shí)輸入樹種名稱、胸徑和備注,參考生成和計(jì)算結(jié)果,選擇需要測量樹高的樣木測量樹高并輸入表格中。
3.1.1 樣木編號、樹種、胸徑等輸入
樣木編號在外業(yè)調(diào)查前輸入數(shù)據(jù)采集工作表,在檢尺過程中,按檢尺順序據(jù)實(shí)輸入對應(yīng)樣木編號的樹種名稱、胸徑和備注,備注內(nèi)容包括如斷梢、病蟲害、瀕死木等。
輸入正確的樹種名稱,是后期確定各樹種各徑階平均木、選擇正確的蓄積計(jì)算模型和計(jì)算樹種組成等過程的基礎(chǔ)??紤]到各地區(qū)生物多樣性不一,樣地內(nèi)樹種結(jié)構(gòu)復(fù)雜程度各異,本文設(shè)計(jì)的方法需據(jù)實(shí)按檢尺順序輸入規(guī)范的樹種名稱。在樹種結(jié)構(gòu)單一的地區(qū),也可通過下拉菜單形式選擇輸入樹種名稱。
3.1.2 樹高輸入
因外業(yè)工作環(huán)境差,工作量大[11],不宜對樣地內(nèi)所有樣木進(jìn)行樹高測量,實(shí)際調(diào)查中多采用分樹種按徑階選擇1至3株平均木實(shí)測樹高,再用加權(quán)平均法計(jì)算樣地平均高。故在樹種、胸徑等數(shù)據(jù)采集完成后,需分樹種按徑階統(tǒng)計(jì)出平均胸徑、株數(shù),參考統(tǒng)計(jì)結(jié)果選擇出需要測量樹高的樣木編號并測出樹高。該步驟的統(tǒng)計(jì)過程在數(shù)據(jù)計(jì)算工作表中實(shí)現(xiàn),統(tǒng)計(jì)結(jié)果需在數(shù)據(jù)采集工作表中展示,以便作為選擇測量樹高樣木的參考。
按胸徑確定徑階,作為后面統(tǒng)計(jì)的依據(jù)。采用IF條件函數(shù),以上限排外法確定每株樣木的徑階,如“IF(AND(胸徑值>=5,胸徑值<7),″6″,IF(AND(胸徑值>=7,胸徑值<9),″8″,”,意為胸徑大于等于5并小于7徑階返回為6,胸徑大于等于7并小于9徑階返回為8,以此類推。
生成樹種名稱的漢字編碼,確保每一個(gè)樹種編碼的唯一性。采用CODE結(jié)合RIGHT和LEFT函數(shù)生成每株樣木的樹種名稱漢字編碼,如“CODE(LEFT(樹種名稱,1))&CODE(RIGHT(LEFT(樹種名稱,2),1))&CODE(RIGHT(LEFT(樹種名稱,3),1))”,意為分別生成樹種名稱第一位、第二位、第三位漢字的漢字編碼,并用“&”將三位漢字的漢字編碼組合成一個(gè)數(shù)值。如樹種名稱較長,則以此類推。
生成所有樣木的“樹種+徑階+胸徑”(TRJX)值,形成TRJX值區(qū)域,作為后面TRJX排序的過程數(shù)據(jù)。采用CONCATENATE函數(shù)將樹種名稱、徑階和胸徑組合成一個(gè)字符串,并利用“-”將內(nèi)容隔開。如“CONCATENATE(樹種名稱,″-″,徑階,″-″,胸徑)”,意為生成一個(gè)“樹種名稱-徑階-胸徑”字符串。將所有樣木逐一計(jì)算,生成TRJX值區(qū)域。
生成所有樣木的TRJX編碼,形成TRJX編碼區(qū)域,并進(jìn)一步排序生成TRJX編碼排序表,作為后面TRJX排序的過程數(shù)據(jù)。首先利用“&”將以上過程生成的樹種名稱漢字編碼、徑階和據(jù)實(shí)輸入的胸徑組合成一個(gè)數(shù)值,即TRJX編碼。如“樹種名稱漢字編碼&徑階&胸徑”,意為將樹種名稱漢字編碼與對應(yīng)樣木的徑階和胸徑組合成一個(gè)數(shù)值。將所有樣木逐一計(jì)算,生成TRJX編碼區(qū)域。然后通過SMALL函數(shù)將TRJX編碼區(qū)域進(jìn)行排序以生成TRJX編碼排序表,如:“SMALL(TRJX編碼區(qū)域,1)”,意為返回TRJX編碼區(qū)域中的最小值;“SMALL(TRJX編碼區(qū)域,2)”,意為返回TRJX編碼區(qū)域中的第二小值,以此類推逐一計(jì)算,生成TRJX編碼排序表。
生成TRJX值排序表和對應(yīng)樣木編號,以方便選擇需要測量樹高的樣木。首先采用INDEX結(jié)合MATCH函數(shù)將TRJX值區(qū)域中的所有TRJX值按升序排序,生成TRJX值排序表,如“INDEX(TRJX值區(qū)域,MATCH(TRJX編碼排序表中某一編碼值,TRJX編碼區(qū)域,0),1)”,意為返回與TRJX編碼排序表中某一編碼值對應(yīng)的TRJX值,將所有樣木逐一計(jì)算,生成TRJX值排序表。然后再次采用INDEX結(jié)合MATCH函數(shù)將對應(yīng)樣木編號計(jì)算出來,如“INDEX(樣木編號區(qū)域,MATCH(TRJX值排序表中某一值,TRJX值區(qū)域,0),1)”,意為返回與TRJX值排序表中某一TRJX值對應(yīng)的樣木編號,將所有樣木逐一計(jì)算,生成與TRJX值排序表中所有TRJX值對應(yīng)的所有樣木編號。
按樹種計(jì)算各徑階的平均胸徑和株數(shù)。這一計(jì)算過程在數(shù)據(jù)計(jì)算工作表中運(yùn)用時(shí),需要用到計(jì)算結(jié)果,作為參考以方便選擇需要測量樹高的樣木。
選擇需要測量樹高的樣木編號并測量樹高后輸入。結(jié)合實(shí)際情況,某一樹種某一徑階的株數(shù)越多,需要測量樹高的樣木株數(shù)就越多,一般選擇3株以上,反之則越少(某一樹種某一徑階均不得少于1株)。在實(shí)際調(diào)查過程中,根據(jù)各樹種各徑階的平均胸徑和株數(shù),在TRJX值排序表中逐一選擇與某一樹種某一徑階平均胸徑最靠近的樣木(不得選擇備注欄中存在特殊情況的樣木),根據(jù)對應(yīng)的樣木編號,找到樣地中對應(yīng)樣木編號的樣木測量樹高并輸入,逐一樹種逐一徑階測量樹高并輸入完成即可。
數(shù)據(jù)計(jì)算工作表是一個(gè)中間過程,主要是在內(nèi)業(yè)處理階段使用,將外業(yè)調(diào)查移動終端內(nèi)記錄的表格文件拷貝到裝有EXCEL軟件的電腦桌面端上即可使用。
3.2.1 分樹種按徑階計(jì)算平均胸徑和株數(shù)
生成“樹種-徑階”(TRJ)值,作為后面統(tǒng)計(jì)的過程數(shù)據(jù)。利用CONCATENATE函數(shù)將數(shù)據(jù)采集工作表中據(jù)實(shí)輸入的樹種名稱和對應(yīng)按胸徑確定的徑階合并為TRJ值。如“CONCATENATE(樹種名稱,″-″,對應(yīng)徑階)”,意為將樹種名稱與對應(yīng)徑階組合成一個(gè)文本字符串。將所有樣木逐一計(jì)算,生成TRJ值區(qū)域。
生成所有且不重復(fù)的TRJ值區(qū)域,作為后面分樹種按徑階計(jì)算相關(guān)因子的依據(jù)。利用INDEX結(jié)合MATCH和COUNTIF函數(shù)生成所有且不重復(fù)的TRJ值,如“INDEX(TRJ值區(qū)域,MATCH(0,INDEX(COUNTIF(已生成區(qū)域,TRJ值區(qū)域),0,0),0))”,意為返回與已生成區(qū)域不重復(fù)的下一個(gè)TRJ值。逐一計(jì)算,得到所有且不重復(fù)的TRJ值區(qū)域。
分樹種按徑階計(jì)算平均胸徑。采用SQRT結(jié)合AVERAGEIF函數(shù)計(jì)算滿足條件的平均胸徑,如“SQRT(AVERAGEIF(TRJ值區(qū)域,″=″& 某一TRJ值,胸徑平方區(qū)域))”,意為將與某一TRJ值相等的TRJ值區(qū)域中對應(yīng)的所有胸徑平方求平均值后開平方,即得到某一TRJ值對應(yīng)的平均胸徑。逐一計(jì)算,得到所有與不重復(fù)的TRJ值對應(yīng)的平均胸徑。
分樹種按徑階計(jì)算株數(shù)。采用COUNTIF函數(shù)計(jì)算滿足條件的株數(shù),如“COUNTIF(TRJ值區(qū)域,″=″& 某一TRJ值)”,意為返回與某一TRJ值相等的TRJ值區(qū)域中的所有個(gè)數(shù),即得到與某一TRJ值相對應(yīng)的株數(shù)。逐一計(jì)算,得到所有與不重復(fù)的TRJ值對應(yīng)的株數(shù)。
3.2.2 分樹種按徑階計(jì)算平均樹高
采用AVERAGEIFS函數(shù)計(jì)算滿足多重條件的所有單元格平均值,如“AVERAGEIFS(樹高值區(qū)域,TRJ值區(qū)域,某一TRJ值,樹高值區(qū)域,″>0″)”,意為將所有與某一TRJ值對應(yīng)的樹高求平均值,即得到與某一TRJ值相對應(yīng)的平均樹高。逐一計(jì)算,得到所有與不重復(fù)的TRJ值對應(yīng)的平均樹高。
3.2.3 分樹種按徑階計(jì)算蓄積
以貴州省現(xiàn)有地方標(biāo)準(zhǔn)為例,杉木、馬尾松、華山松、云南松、柏木、軟闊、硬闊等相關(guān)樹種(類)已有二元立木材積模型,均是以胸徑、樹高兩個(gè)因子與立木材積的關(guān)系編制得出,且馬尾松、杉木等存在中心產(chǎn)區(qū)和一般產(chǎn)區(qū)二元立木材積模型的不同,需對樹種分類。
樹種分類。在數(shù)據(jù)計(jì)算工作表中,結(jié)合數(shù)據(jù)采集工作表中據(jù)實(shí)輸入的樹種名稱手動對樹種進(jìn)行分類,也可通過IF條件函數(shù)自動計(jì)算樹種分類或下拉菜單形式點(diǎn)選輸入樹種分類。
按TRJ計(jì)算蓄積。根據(jù)以上步驟得到的與所有且不重復(fù)TRJ值相對應(yīng)的平均胸徑、平均樹高和株數(shù),結(jié)合樹種分類,采用IF條件函數(shù)計(jì)算與每一個(gè)TRJ值對應(yīng)的蓄積,如“IF(樹種分類=″軟闊″,軟闊二元立木材積模型計(jì)算式*株數(shù))”,意為按照軟闊二元立木材積模型計(jì)算式,計(jì)算樹種分類為軟闊的TRJ值對應(yīng)蓄積。其他樹種分類以此類推,生成TRJ蓄積區(qū)域,同時(shí),還可以增加多重條件控制起源、產(chǎn)區(qū)等選擇不同的二元立木材積模型。
3.2.4 計(jì)算樣地優(yōu)勢樹種及樹種組成
計(jì)算各樹種蓄積和樣地總蓄積。首先采用SUMIF函數(shù)計(jì)算各樹種蓄積,如SUMIF(樹種名稱區(qū)域,″=″&某一樹種名稱,TRJ對應(yīng)蓄積區(qū)域),意為對樹種名稱區(qū)域中對應(yīng)于某一樹種名稱的TRJ對應(yīng)蓄積求和,返回結(jié)果即為該樹種的蓄積和。其他樹種以此類推,然后采用SUM函數(shù)對各樹種蓄積求和,即為樣地總蓄積。
計(jì)算各樹種組成成數(shù)并排序,作為后面確定樣地優(yōu)勢樹種及樹種組成的過程數(shù)據(jù)。首先利用計(jì)算公式“ROUND(某一樹種蓄積*10/樣地總蓄積,0)”即可得到某一樹種的組成成數(shù)(十分法表示),其他樹種組成成數(shù)以此類推,生成樹種組成成數(shù)區(qū)域。然后采用LARGE函數(shù)對各樹種組成成數(shù)排序,如“LARGE(樹種組成成數(shù)區(qū)域,1)”,意為返回第1個(gè)最大值,其他樹種以此類推。
確定樣地優(yōu)勢樹種及樹種組成。以上樹種組成成數(shù)的最大值對應(yīng)樹種即為樣地優(yōu)勢樹種。采用CONCATENATE函數(shù)將各樹種的組成成數(shù)值與樹種名稱按由大到小的順序組合成一個(gè)文本字符串,即為樹種組成。
以上方式是按照蓄積確定樹種組成成數(shù)的計(jì)算方法,對于竹林、胸徑小于5厘米的幼齡林等特殊情況,也可采用COUNTIF函數(shù)計(jì)算各樹種的株數(shù),按株數(shù)比例確定樹種組成成數(shù),本文不進(jìn)行詳細(xì)敘述。
3.2.5計(jì)算樣地平均胸徑、平均樹高、公頃株數(shù)、公頃蓄積
計(jì)算樣地平均胸徑。以上3.2.1已計(jì)算出各樹種各徑階的平均胸徑,同理,采用SQRT結(jié)合AVERAGE函數(shù)計(jì)算樣地的平均胸徑,如“SQRT(AVERAGE(胸徑平方區(qū)域))”,意為將所有的胸徑平方求平均值后開平方,即得到所有樣木的平均胸徑(平方平均數(shù))。
計(jì)算樣地平均樹高。以上3.2.2計(jì)算出各樹種各徑階的平均樹高后,利用公式“株數(shù)*平均樹高”計(jì)算出某一TRJ值對應(yīng)的樹高株數(shù)加權(quán)值(TRGT),逐一計(jì)算得到TRGT區(qū)域,然后利用公式“SUM(TRGT區(qū)域)/樣地總株數(shù)”即可計(jì)算出樣地平均樹高。
計(jì)算公頃株數(shù)、公頃蓄積。以上3.2.1已計(jì)算出樣地中各樹種各徑階的株數(shù),采用SUM函數(shù)計(jì)算出樣地總株數(shù),3.2.4已計(jì)算出樣地總蓄積。結(jié)合樣地面積與公頃的單位轉(zhuǎn)換關(guān)系計(jì)算出公頃株數(shù)、公頃蓄積,如每畝量乘以15換算成每公頃量。
3.2.6 計(jì)算小班指標(biāo)
根據(jù)小班面積和已計(jì)算得到的樣地平均胸徑、平均樹高、株數(shù)、蓄積等數(shù)據(jù)可計(jì)算小班的相關(guān)指標(biāo)。
數(shù)據(jù)展示工作表主要是展示調(diào)查計(jì)算成果。通常情況下,森林樣地調(diào)查和計(jì)算成果需要整理打印后備查或存檔。需精簡上述步驟中的計(jì)算過程,輸出簡潔、明了并包含必要信息的調(diào)查計(jì)算成果。本文采用單獨(dú)的數(shù)據(jù)展示工作表,主要采用單元格引用方式,將采集和計(jì)算成果運(yùn)用到數(shù)據(jù)展示工作表即可。
在外業(yè)調(diào)查過程中,必須在數(shù)據(jù)采集工作表中據(jù)實(shí)準(zhǔn)確輸入對應(yīng)樣木編號的樹種名稱、胸徑和備注,并確保一一對應(yīng)。樣木數(shù)量不限,但樹種名稱和胸徑不能為空,樹高和備注均可根據(jù)實(shí)際情況輸入。
在內(nèi)業(yè)數(shù)據(jù)計(jì)算階段,必須準(zhǔn)確確定樹種分類。以貴州省現(xiàn)有地方標(biāo)準(zhǔn)為例,杉木、馬尾松、華山松、云南松、柏木等樹種分類均為對應(yīng)的樹種名稱,但軟闊、硬闊包含的種類較多,需結(jié)合樹種特性和相關(guān)規(guī)范性文件據(jù)實(shí)確定樹種分類。
簡化工作量。通過本方法開展森林樣地調(diào)查計(jì)算工作,外業(yè)只需在數(shù)據(jù)采集工作表中據(jù)實(shí)輸入對應(yīng)樣木編號的樹種名稱、胸徑和備注,并根據(jù)計(jì)算結(jié)果選擇需要測量樹高的樣木進(jìn)行測量,無需每木測量,內(nèi)業(yè)只需進(jìn)行樹種分類。與鄧玉明[4]研究成果中“徑階等數(shù)據(jù)需要手動錄入”相比,本方法可極大簡化工作量。
實(shí)現(xiàn)一次性計(jì)算出各樹種蓄積和樹種組成。本方法通過分樹種按徑階計(jì)算平均胸徑、平均樹高、株數(shù)和蓄積等,進(jìn)一步計(jì)算出各樹種蓄積和樹種組成,與王雍樹[3]、蘇振海等[10]研究成果相比,計(jì)算指標(biāo)更豐富,應(yīng)用深度更徹底。
應(yīng)用面廣。本方法不受樣地形狀和面積的限制,只需結(jié)合樣地實(shí)際面積與公頃或小班面積的關(guān)系轉(zhuǎn)換計(jì)算即可,與馮家祥[1]研究成果中“系數(shù)、胸徑常數(shù)、樹高常數(shù)等均為寫入已有各樹種蓄積量計(jì)算系數(shù)和常數(shù)”相比,本方法應(yīng)用面更廣。
可視、直觀、易于理解。EXCEL軟件界面友好[5],是應(yīng)用最廣泛的數(shù)據(jù)處理和分析軟件[6],廣大林業(yè)工作者能熟練使用,具有可視、直觀、易于理解的效果。
本方法中采用CODE函數(shù)生成樹種名稱的漢字編碼,該函數(shù)返回的代碼對應(yīng)于終端中當(dāng)前使用的字符集,不同的終端可能采用不同的編碼方案,不同的編碼方案返回的數(shù)值不一樣,其排序即不一樣。因此,在不同終端使用時(shí),需注意編碼方案是否相同,若不相同,需調(diào)整生成樹種名稱漢字編碼的函數(shù)。
本方法采用十分法計(jì)算樹種組成成數(shù)并確定樹種組成,因四舍五入可能會導(dǎo)致樹種組成成數(shù)之和不等于10的情況,若出現(xiàn)該情況需人為主觀判斷并修正樹種組成成數(shù)。
本方法以貴州省現(xiàn)有地方標(biāo)準(zhǔn)中已有的二元立木材積模型為例計(jì)算蓄積,若相關(guān)模型有更新或出現(xiàn)新的材積模型,需手動更新計(jì)算模型。
本文基于EXCEL軟件的友好界面和強(qiáng)大功能,主要采用IF、INDEX、MATCH、CONCATENATE、SQRT、LARGE等函數(shù),基本思路是:(1)外業(yè)調(diào)查數(shù)據(jù)一次性輸入;(2)分樹種按徑階計(jì)算平均胸徑、平均樹高、株數(shù)和蓄積等,并根據(jù)計(jì)算結(jié)果計(jì)算出優(yōu)勢樹種、樹種組成和樣地指標(biāo)、小班指標(biāo)等;(3)所需結(jié)果一次性全部計(jì)算完成并展示在數(shù)據(jù)展示工作表中。使用過程中無需查找任何調(diào)查數(shù)表,相關(guān)計(jì)算自動完成,計(jì)算精度高,大大提高了工作效率,具有較高的可操作性和實(shí)用性。可在國家儲備林、征占用林地、森林采伐設(shè)計(jì)等工作中充分使用,是比較成熟的應(yīng)用,效果明顯。