盧宗軍 鄧毅暉 周 通
(柳州市林業(yè)科學(xué)研究所 柳州 545300)
杉木種子園無性系合理配置可以有效降低或避免自交,同一無性系或家系至少應(yīng)間隔20 m,小區(qū)內(nèi)種質(zhì)間要均衡分布,保證充分隨機(jī)授粉[1]。各小區(qū)內(nèi)配置無性系時(shí)要隨機(jī)排列,每個(gè)無性系要有同等機(jī)會(huì)設(shè)置在小區(qū)中任何一個(gè)位置,為了保證某一個(gè)無性系安排在哪一位置不憑主觀確定,在實(shí)踐中大多采用抽簽法(撲克牌法)或查隨機(jī)數(shù)表來配置無性系,因?yàn)閷?shí)際地形復(fù)雜及要考慮相同無性系或家系間隔距離問題,配置工作往往需要大量的人工進(jìn)行調(diào)整,人為干預(yù)影響大,且可配置的無性系個(gè)數(shù)越少配置難度越大。本文采用MapInfo+VFP的方式對(duì)種子園進(jìn)行無性系配置,快速準(zhǔn)確,可應(yīng)用于種子園隨機(jī)排列配置無性系的工作。
MapInfo Professional 7.0(以下簡(jiǎn)稱MapInfo)的數(shù)據(jù)文件中,有一個(gè)數(shù)據(jù)文件后綴為“.DAT”的屬性數(shù)據(jù)文件,該文件存放著地圖的屬性數(shù)據(jù)。它是一個(gè)二進(jìn)制文件,格式為dBase IV的文件格式,因此Microsoft Visual FoxPro(以下簡(jiǎn)稱VFP)可以對(duì)其進(jìn)行讀取和操作。利用MapInfo向?qū)傩詳?shù)據(jù)文件導(dǎo)出每個(gè)砧木的空間坐標(biāo),通過VFP對(duì)屬性數(shù)據(jù)文件分析和計(jì)算,為各砧木配置無性系。
表1 砧木圖層的表結(jié)構(gòu)
原有砧木圖層,但字段不同的,可以用修改表結(jié)構(gòu)的方式調(diào)整(見表1)。
砧木圖層中的各砧木必須有自己的空間坐標(biāo)。在使用MapInfo制作砧木圖層時(shí)可使用無人機(jī)輔助[2]、GPS定點(diǎn)等方法,使各砧木在MapInfo中能標(biāo)出它的實(shí)際位置。
用VFP建立一個(gè)名稱為“無性系表.dbf”的數(shù)據(jù)表,用作存儲(chǔ)可配置的無性系,該表僅一個(gè)字段,字段名:無性系,數(shù)據(jù)類型:字符型(10),數(shù)據(jù)表建立后將需配置的各無性系輸入其中。
用MapInfo打開砧木圖層,用更新列的方式為每個(gè)砧木導(dǎo)入經(jīng)度和緯度。打開MapInfo菜單“表”,選擇“更新列”,此時(shí)會(huì)彈出更新列對(duì)話框,“要更新的表”下拉框選擇砧木圖,“要更新的列”下拉框選擇“經(jīng)度”,“從中獲得值的表”下拉框也選擇砧木圖,“值”輸入“CentroidX(obj)”,完成后點(diǎn)更新列對(duì)話框的“確定”,就可以完成各砧木的經(jīng)度更新了。緯度的更新也是一樣的,區(qū)別是“要更新的列”選擇為“緯度”,值則輸入“CentroidY(obj)”。
兩砧木間的距離可利用它們的經(jīng)緯度求算。
公式中,S為兩點(diǎn)之間距離,單位公里;A點(diǎn)經(jīng)緯度為(a1,b1),B點(diǎn)經(jīng)緯度為(a2,b2);6 371為地球半徑[3]。
使用VFP語言做成自定義函數(shù)。
FUNCTION JWTOJL(x1,y1,x2,y2)&&知道兩點(diǎn)經(jīng)緯度計(jì)算距離
S=6 371×ACOS(SIN(y1×(PI()/180))×SIN(y2×(PI()/180))+COS(y1×(PI()/180))×COS(y2×(PI()/180))×COS((x1-x2)×(PI()/180)))×1000
S為距離,單位米;x1,y1分別為砧木A的經(jīng)度、緯度;x2,y2分別為砧木B的經(jīng)度、緯度。
RETURNS
ENDFUNC
VFP的隨機(jī)數(shù)為偽隨機(jī)數(shù),每次開始調(diào)用VFP隨機(jī)數(shù),所產(chǎn)生的隨機(jī)數(shù)序列都是固定不變的,因此在程序調(diào)入時(shí)需要先執(zhí)行RAND(-1)語句,用系統(tǒng)時(shí)間秒來作為隨機(jī)種子值,同時(shí)因?yàn)樯傻碾S機(jī)數(shù)最小值和最大值出現(xiàn)的幾率是少于其它值的,可以采用兩頭增加5個(gè)空值的方式避免。
程序開始后,先生成一個(gè)臨時(shí)數(shù)據(jù)表“wxx2.dbf”,將“無性系表.dbf”的內(nèi)容復(fù)制至“wxx2.dbf”中,然后以隨機(jī)的方式將“wxx2.dbf”中的無性系按砧木順序配置,每配置一個(gè)無性系,先在砧木的屬性數(shù)據(jù)文件中查找相同無性系或家系的各個(gè)分株,計(jì)算各分株與當(dāng)前分株的相互間隔,只要有相同無性系小于規(guī)定間距(20 m)的,則再重新隨機(jī)配置一個(gè)無性系,直至配置合適的無性系后,再從臨時(shí)數(shù)據(jù)表中刪除當(dāng)前配置的無性系。當(dāng)臨時(shí)表的記錄數(shù)為0時(shí),就完成了的無性系配置的一個(gè)循環(huán),以此類推。當(dāng)同一砧木分配無性系50次皆不能達(dá)到要求,則該分組重新分配。當(dāng)該分組重新分配30次后仍無法配置完成,則退出程序,重新調(diào)試后再運(yùn)行,直到程序配置完成。
圖1無性系配置VFP程序流程圖
圖2 使用VFP為杉木種子園配置無性系
程序運(yùn)行后,完成無性系配置工作。
從結(jié)果可以看出,無性系的配置分布隨機(jī),相同無系性各分株間隔距離足夠,達(dá)到了設(shè)計(jì)要求。
利用MapInfo+VFP的方式對(duì)種子園進(jìn)行無性系配置是可行的,該方法快速準(zhǔn)確,能夠達(dá)到設(shè)計(jì)要求,且效率更高。
該方法相比人工抽簽法(撲克牌法)或查隨機(jī)數(shù)表法具有更少人工干預(yù),更符合設(shè)計(jì)要求,且該方法在地形較復(fù)雜的種子園進(jìn)行無性系配置時(shí)優(yōu)勢(shì)更明顯。