没有合适的资源?快使用搜索试试~ 我知道了~
≥软件X 18(2022)100925原始软件出版物SiTree:一个实现单树模拟器的框架ClaraAntón-Fernández,Rasmus Astrup挪威生物经济研究所森林和森林资源司,Høgskoleveien 8,1433 s,Norwayar t i cl e i nf o文章历史记录:接收4八月2021收到修订版2021年11月23日接受2021年11月25日保留字:森林模拟器单木森林生长模型R包森林生长和产量a b st ra ctSiTree是一个灵活的,跨平台的,开源的单树模拟器框架,旨在促进准确和灵活的森林生长和产量分析,或更一般的森林动态模拟。SiTree提供了通用功能,使用额外的用户编写的代码来构建定制的单个树模拟器。在林业文献中,有各种各样的个别模型描述森林生长和动态的不同部分,新的模型不断开发和出版。SiTree的目的是为林业内的R用户提供一个易于适应的个体树模拟器框架和一个易于访问的工具,用于测试和组合描述森林生长动态部分的新模型和现有版权所有2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本0.1-12用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00145Code Ocean computecapsulehttps://codeocean.com/capsule/3789289/tree法律代码许可证GPL-3使用git的代码版本控制系统软件代码语言、工具和服务使用R编译要求、操作环境依赖性R(3 .第三章。5),data.table,ggplot2如果可用,链接到开发人员文档/手册https://cran.r-project.org/web/packages/sitree/sitree.pdf问题支持电子邮件caf@nibio.no软件元数据当前软件版本0.1-12此版本可执行文件的永久链接https://github.com/cantonfe/SiTree法律软件许可证GPL-3计算平台/操作系统任何支持R的安装要求R(≥ 3. 5),data.table,ggplot2如果可用,请链接到用户手册-如果正式发布,请在参考列表中包括对https://github.com/cantonfe/SiTree的引用问题支持电子邮件caf@nibio.no1. 动机和意义森林生长模拟器(FGS)是在不同的空间和时间尺度上为森林管理决策提供信息的基本工具。FGS已经使用了50多年*通讯作者。电子邮件地址:caf@nibio.no(Clara Antón-Fernández).https://doi.org/10.1016/j.softx.2021.100925研究不同处理方案的影响,并帮助确定实际森林规划中的最佳管理解决方案。根据Hasenauer [1]的定义,FGS是将森林生长模型(FGM)实现为用于预测和情景分析的软件。FGM是生长过程的生物统计学和数学表示[1]。女性生殖器切割至少应该通过以下方式代表生长和死亡率[2]:2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxClara Antón-Fernández和Rasmus Astrup软件X 18(2022)1009252图1.一、F G S 两个组件之间相互作用的简化描述。箭头指示相互作用的方向。森林生长子模型以蓝色表示,因变量以绿色表示。(For对本图图例中所指颜色的解释,读者可参考本文的网络版增长子模型和死亡率子模型。这些子模型估计树木或林分在一定时期(例如5年)的生长和死亡率。通常,这些子模型取决于诸如树的大小或竞争(例如,密度)等变量。树木大小和竞争变量同时影响生长和死亡率子模型(图1)。例如,生长影响树的大小,这反过来又影响树对周围树木的竞争以及下一时期树的生长。变量和子模型之间的这些复杂的相互作用使得不可能在第一时期之后独立地为了估计较长时期的林分状态,FGM被反复应用,也就是说,它被连续地应用以计算林分的时间发展一致地应用FGM,同时以稳健的方式在完整模拟期间跟踪所有变量,可能是一项艰巨且容易出错的任务。已经开发了FGS来帮助完成这项任务。FGM和森林动态建模在林业中有着悠久的传统[2]。个体树模拟器(ITS)实现个体树FGM模型,跟踪模拟中所有树木随时间的发展ITS通过长达几个世纪的模拟来跟踪数千到数百万的活树、死树和收获树这是这是一项在计算机资源和时间方面可能是繁重的繁重任务。这就是为什么大多数ITS都是用Fortran、C、C++或Java等语言的组合编写的[例如,见3,4]。这使得模拟速度更快,但代价是透明度和灵活性。对代码的操作更难,因为它需要一种或几种编程语言的特定知识,并且通常只有一个研究小组中的少数指定程序员可以对代码进行更改或添加/测试新模型。当一个新的FGM子模型描述一个单一的过程(例如,死亡率)已经开发,子模型通常必须与现有的子模型进行评估,以了解新的子模型的性能和对预测的森林动态的影响。因此,开发和测试新的子模型需要访问和重新编程的能力,模拟器林业研究人员经常使用R [5]进行统计数据分析,并开发新的FGM子模型[例如,见6,7]。有了SiTree,研究人员可以很容易地将他们的新子模型与FGS中的现有模型结合起来。然后,研究人员可以调查这些模型对森林生长和动态的影响,而无需学习新的编程语言或依赖程序员将其子模型翻译成不同的编程语言。此外,sitree软件包旨在成为一项合作努力,使新的模式和功能很容易为林业提供社区虽然sitree包将继续作为框架的核心,但我们已经创建了姐妹包sitreeE[8],SiTree扩展,旨在共享新的模型和功能(例如,生长子模型、生物量函数、竞争指数)。我们还鼓励在R中开发FGM功能的研究人员在SiTreeE中分享他们的工作,以便社区的其他人可以直接使用,测试和验证新功能。SiTree是一个框架,它提供了实现单树模拟器的功能,可用于测试新的子模型,这些子模型以后可能会在专门的FGS中实现,或者它也可以用于为研究特定项目(如博士或博士后研究)构建单树模拟器SiTree还可以用于实现完整的森林生长和产量模拟器,例如[9],包括,例如,ad-hoc人工选择,气候引起的生产力变化和/或干扰效应。作为例子,挪威的主要子模型的条件下建立的功能这些子模型并不打算用作有效的挪威FGS,而是作为SiTree功能的展示。使用SiTree生成的模拟目前正积极用于为政策决策提供信息[例如,见10],以及用于研究[例如,见9,11]。下一节介绍我们开发的软件,而下面的部分(第3节)提供了如何使用SiTree的示例。2. 软件描述SiTree 完 全 用 R 语 言 编 写 , 其 最 新 版 本 ( 0.1-12 ) 可 从Comprehensive R Archive network ( CRAN ) 下 载, 网址 为https://cran.r-project.org/package=sitree。SiTree需要树级数据和地块/林分级数据来运行模拟。在SiTree中,树必须由三个变量的最小值来定义,两个变量是时间相关的,例如直径和高度,一个变量是时间无关的,例如树种,但是可以添加额外的树特征,例如冠比或活力样地/林分水平数据包含样地和林分水平的信息,如样地大小、海拔、气候变量或纬度。虽然SiTree 中包含的数据示例使用以 mm为单位的胸高直径(dbh)和以dm为单位的树高,但与时间有关的变量可以是任何其他单位(例如英寸)或任何其他异速生长变量,例如树冠比、叶面积指数或地上生物量。模拟从t0开始,t0对应于清查时树木的状态(提供的树木数据),预测时段具有连续的名称,即t1、t2等。周期的长度在sitree()函数的period.length中定义,但它在整个模拟过程中的长度相同,也就是说,所有周期的长度都相同。 SiTree返回所有树木和地块数据(plot.data),包括所有时期和所有树木( 死 亡 、 存 活 和 收 获 ) 的直径和高度以 及 树 种 。 通 过plot.datasitree()还返回随时间变化的情节级模拟结果,例如管理(如果已经定义了管理)。驱动树木和林分发展的过程,如干扰,资源可用性或现场生产力也可以包括在SiTree中。例如,由施肥或气候变化驱动的立地生产力变化可以作为修正函数计算,并在plot.data中作为随时间变化的变量进行跟踪。影响树木生存的干扰,如树皮甲虫的攻击,可以包括在死亡率子模型与竞争引起的死亡率相结合可以在管理功能(fn.management)中计算种子存活率和幼苗存活率,并在plot.data中进行跟踪,直到它们被视为树木并添加到树木列表中虽然SiTree完全用R编写,但用户定义的函数可以包括用C,C++,.Net,Python或FORTRAN语言编写的过程,这要归功于R集成这些语言的能力Clara Antón-Fernández和Rasmus Astrup软件X 18(2022)1009253库(sitree)我的天啊。sitree<-sitree(tree. df =stand.我们是T。tr,stand. Df=stand.我们是T。st,functions=list(fn. growth=' g r o w.fn. 摩尔特、fn.recr=' m or t.B2007=' re c r.BBG2008fn.management=NULL,fn. 是的。removal=NULL,fn.模if=NULL,fn. prep。common.vars=prep。common. varrs.富恩),n.periods=12,period.length=5,mng.options=NA,print.comments=FALSE,)SiTree将数据存储在R“reference class”对象中。 引用类对象是可变的,因此R对象的典型行为“在修改时复制”并不适用。这可以避免内存使用,允许以内存有效的方式更新和操作潜在的大型树数据集,并使其能够使用大型数据集运行长时间模拟。 SiTree中有两种类型的引用类对象:用于活树的trList和trListDead用于移除和死亡的树。在SiTree中,最大的灵活性是主要目标之一,IM-没有一个主要功能是硬编码的,并且所有功能都可以由用户选择、添加或修改为了使添加和编写最常用的函数(生长、死亡率、招募和管理)的任务更容易,我们提供了解释SiTree主要功能的所有子模型和插图的示例。2.1. 软件构架sitree()中执行流程的概要如图所示。二、sitree()首先对输入数据进行一些基本的检查。然后创建树列表(类trList 的 对 象 ) , 然 后 进 入 主 模 拟 的 循 环 循 环 从 0 到(n.periods-1)周期运行。 循环开始时计算外部修饰符(如果提供的话)。然后它计算共同的模拟所需的变量。下一步是来定义管理。管理通常包括砍伐树木(例如间伐、皆伐、采伐防护林)。影响地块/林分水平特征的其他类型的管理,如施肥,应在fn. f函数中计算。一旦计算了外部修饰符、常见变量、管理、生长、死亡率和补充(可能包括自然和人工再生),sitree()应用这些更改。首先,直径和高度的增长应用于活树,然后将未计划收获的死树移动到死树列表,然后移除的树被移动到removed.trees列表中,最后来自向内生长的新树被添加到存活树的TR列表。死亡/收获树木的生长它们是活着的,它们的收获/死亡是用死亡的树的生长函数计算默认情况下,树的收获/死亡之前的生长被假设为整个时期生长的一半,但dead.trees.growth函数可以修改。sitree()函数返回一个包含四个元素的列表:live、dead、removed和plot.data。live包含所有树在模拟中存活时的所有测量。对于树木没有存活的测量,直径和高度的值死亡和移除的元素包含死亡/移除的树木在存活时的以及它们在收获/死亡时的估计胸径和高度。3. 说明性实例在本节中,我们提供了一个SiTree模拟的示例。更多的例子可以在软件包的小插图中找到3.0.1. 整个林分的我们使用SiTree中提供的stand.west.tr和stand.west.st数据集预测了挪威西海岸未来60年的发展。由于林分约为1000 m2,我们使用的所有功能都是为250 m2地块开发的,因此林分被分为4个约250 m2的地块。对于这个例子,我们选择没有管理和没有外部修改器函数。我们进行模拟如下所示图二. 流程图显示SiTree中的工作流程。输入用黄色表示,过程和条件操作(决策)用蓝色表示,修改活树、死树和已删除树的树列表的过程用深绿色表示,输出用浅绿色表示。 (For对本图图例中所指颜色的解释,读者可参考本文的网络版我们可以看看一些基本的图表(图)。 3):断面积、树干数 、 新 死 树 数 和 10 棵 最 高 树 的 高 度 的 发 展 , 使 用sitree.summary函数(代码见附录A)。sitree.summary函数假定dbh以mm为单位,高度以dm为单位,并且绘图数据包括名为plot.size.m2的变量,该变量包含Clara Antón-Fernández和Rasmus Astrup软件X 18(2022)1009254图三. 总结图包括10棵最高树木的平均高度(左上),每公顷死亡树木的数量(右上),林分断面积(左下),每公顷的树木数量(右下角)。在y轴中显示的变量在每个面板的标题中描述。x轴是所有面板的模拟周期。为例如,t0对应于初始数据,库存数据,t1对应于模拟的第一个周期。这些图是使用sitree.summary()函数生成的。见图4。 未来60年林分蓄积量的发展(12期)5年)。以平方米为单位的地块大小,用于计算每公顷的变量,例如,每公顷的茎数sitree.summary()传递的图可以使用ggplot2包功能进一步修改。 我们还可以使用SiTreeE中的一些功能来计算,例如,4个图中每个图的立木体积,见图。 四、4. 影响SiTree为研究人员提供了一个框架,可以完全使用R语言(森林生长建模者中它还允许轻松地交换森林生长子模型,允许在模拟器中轻松测试新的或替代的子模型。许多现有的FGS都是闭源的[例如,见3],其中大多数都是用林业领域大多数研究人员不熟悉的语言编写的(例如,SILVA[12],它使用C++)。虽然有一些FGS实现为R包(例如,r3 PG[13]),或者具有R包装器(例如,rFVShttps://sourceforge.net/p/open-fvs/wiki/rFVS),但据我们所知,只有两个其他FGS框架存在:Capsis [14],它是用Java编写的,SIMO [15],由外部XML文件驱动。由于SiTree完全用R语言编写,它减少了森林生长建模人员在现有FGS中测试新子模型的负担,也减少了构建新模拟器的学习曲线,该模拟器具有强大,快速,灵活和内存效率。5. 结论SiTree是一个灵活的,跨平台的,开源的单树模拟器框架,旨在促进准确和灵活的森林生长和产量分析。我们希望它将提供一个有用的模拟框架,以大型R为基础的森林生长和产量的社区,该框架将扩展许多新的功能。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作Clara Antón-Fernández和Rasmus Astrup软件X 18(2022)1009255附录A. 补充数据与本文相关的补充材料可以在https://doi.org/10.1016/j.softx.2021.100925上找到。引用[1] Hasenauer H , 编 辑 。 可 持 续 森 林 管 理 : 欧 洲 的 增 长 模 式 。 BerlinHeidelberg:Springer-Verlag.[2] Weiskittel AR,Hann DW,Kershaw Jr.是的,范克莱。森林生长和产量建模。John Wiley Sons; 2011.[3] Burkhart HE,Amateis RL,Westfall JA,Daniels RF. PTAEDA4.0:火炬松人工林单木生长、林分发育模拟及经济评价弗吉尼亚州布莱克斯堡:弗吉尼亚理工大学;2008年,第27页,https://fmrc.frec.vt.edu/content/dam/fmrc_frec_vt_edu/documents/ptaeda4.0manual.pdf。[4] Nagel J. TreeGrOSS:树木生长开源软件-树木生长模型组件。Göttingen,Germany : Niedersächsischen Forstlichen Versuchsanstalt , , AbteilungWaldwachstum; 2003,URL http://treegross. sourceforge.net/treegross.pdf网站。[5] RC团队。R:统计计算的语言和环境。奥地利维也纳:R Foundation forStatistical Computing; 2020,URLproject.org/。https://www.R-[6] Hall KB,Stape J,Bullock BP,Frederick D,Wright J,Scolforo HF,et al.A growth and yield model for eucalyptus benthamii in the SoutheasternUnitedStates.Sci2020;66(1):25-37。http://dx.doi.org/10.1093/forsci/fxz061.[7] Robinson AP,Hamann JD.森林分析与R。New York,NY:SpringerNewYork;2011.[8]安 东 · 费 尔 南 德 斯 SiTreeE : SiTree 扩 展 。 2021 , R 包 版 本 0.0-7 ,URLhttps://CRAN.R-project.org/package=sitreeE。[9]Bright RM , Allen M , Antón-Fernández C , Belbo H , Dalsgaard L ,Reynner S,et al. Evaluating the terrestrial carbon dioxide removal potentialof improved forest management and accelerated forest conversion inNorway.全球变化生物学2020;26(9):5087-105。http://dx.doi.org/10.1111/gcb.15228网站。[10]Søgaard G,Alfredsen G,Antón-Fernández C,Astrup RA,Blom HH,Clarke N , Eriksen R , et al.直 到 skog 。 2020 , NIBIO Rapport ,URLhttp://hdl.handle.net/11250/2639345,出版商:NIBIO.[11]Majasalmi T,Allen M,Antón-Fernández C,Astrup R,Bright RM.一个简单的网格为基础的框架,用于模拟森林结构的轨迹与芬诺斯坎迪亚瞬时森林管理 方案 。 Clim Change 2020. http://dx.doi.org/10.1007/s10584-020-02742-1 网站。[12]Pretzsch H,Biber P,Jururskirt J.基于单树的林分模拟器SILVA:构建,应用和评估。于:林业部门的国家和区域气候变化影响评估,森林生态管理,载于:林业部门的国家和区域气候变化影响评估,2002;162(1):3-21.http://dx.doi.org/10.1016/S0378-1127(02)00047-6,[13] Trotsiuk V,Hartig F,Forrester DI. r3 PG-一个使用基于3-PG过程的模型模 拟 森 林 生 长 的 r 包 。 方 法 Ecol Evol 2020;11 ( 11 ) : 1470-5 。http://dx.doi.org/10.1111/2041-210X.13474网站。[14] 杜福-科瓦尔斯基S,Courbaud B,Dreyfus P,Meredieu C,de Coligny F.Capsis : 森 林 生 长 建 模 的 开 放 软 件 框 架 和 社 区 。 Ann For Sci 2012;69(2):221-33. http://dx.doi.org/10.1007/s13595-011-0140-9.[15]Rasinmäki J,Mäkinen A,Kalliovirta J. SIMO:多尺度森林资源数据的适应性 模 拟 框 架 。 ComputElectronAgric2009;66 ( 1 ) : 76-84.http://dx.doi.org/10.1016/j.compag.2008.12.007网站。
下载后可阅读完整内容,剩余1页未读,立即下载
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功