生态学α多样性指数计算的Python程序设计

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:lixiangzone119
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:生物多样性是群落生态学中的重要概念,α多样性指数普遍应用于生态学科学研究中。α多样性指数的计算与相关图像绘制,在数据处理与分析阶段是非常必要的。为获取α多样性指数相关数据信息,从规范的“物种-样地”二维矩阵初始数据格式出发,运用Python编程语言开发程序并通过测试,实现较高整合程度与较快计算速度,协助后续研究过程。
  关键词:植物群落;α多样性;多样性指数;Python语言;程序设计
  Abstract: Biodiversity is an important concept in community ecology, and α diversity index is widely used in the scientific research of ecology. It is necessary to calculate α diversity index and render its related image in the stage of data processing and analysis. In order to obtain the data information related to α diversity index, a program is developed in Python code and passes the tests on the basis of the standard initial data format of “species-sample” which is a two-dimensional matrix. It increases the integration and computing speed, and assist in the follow-up research process.
  Key words: plant community; α diversity; diversity index; Python; program design
  1 背景
  生物多样性能够揭示生物种的多样化程度、变异状况以及物种生境的生态复杂性[1]。作为人类生存与发展的必要条件,生物多样性的研究在植物学、生态学、农业科学等领域得到广泛应用与发掘,并面向共同维系全球生态平衡的森林、草地、湿地、海洋各类型生态系統,不断产生出新的研究热点与重点。在2015-2021六年间,关于生物多样性的论文在爱斯唯尔Scopus数据库中数量达到67469篇[2]。生物多样性指数计算的结果可用于表征物种的丰富度和均匀度,反映生境中物种的数量和分配状况,实现生物多样性测度的定量化[3]。其中,α生物多样性指数的计算应用最为普遍,可应用于优势植物判别、群落特征描述与群落分类确定等具体研究方面[4]。在以往的研究中,从研究样地获得初始数据后,包括生物多样性指数计算的数据处理与分析步骤,依赖于Microsoft Excel、SPSS Statistics、Canoco等软件,需要人工手动输入和接续操作,精度较高,但时间花费较长。近年来,随着计算机技术的发展,出现了R语言中的外在软件包“Vegan”用于生物多样性指数计算和分析,运行效率高,精度也进一步提高。相比于更专精于统计学数据处理的R语言,面向对象的开源编程语言Python,运行速度更快,具有强大的“胶水语言”功能。因此,以α多样性指数计算的数学公式为基础,借助Python语言及Numpy、Matplotlib等第三方库,以命令行方式编写了α多样性指数计算处理程序,实现了α多样性相关指数的计算与绘图,其运行结果与传统软件及R语言相比无明显区别,集成化等级高,输入固定格式的二维数据矩阵即可得到计算结果与图像,操作简单、上手容易,适合于在生物多样性科学研究的数据处理与分析过程中使用。
  2 α多样性计算原理
  α多样性是关注局域生境(如栖息地或群落)物种多样性的测度指标,其测度包括物种丰富度指数、物种相对多度模型、物种多样性指数、物种均匀度指数四个方面,可以应用于微生物测序分析与植物群落研究中[5]。选取了具有代表性的数量丰度、物种密度、Chao1指数、ACE指数、Simpson多样性指数、Shannon多样性指数六个数量指数与物种稀释曲线、秩-多度曲线两个曲线图像,通过Python语言编程实现指数计算与图像绘制。
  α多样性的计算依赖于野外实验或模型推演中获得的数据。野外实验中,在设定的样方内逐物种识别并记录,综合统计得到初始数据;模型推演中,依靠固定的数学模型自动或手动推算产生初始数据。初始数据通常储存为“物种-样方”的二维矩阵形式,将物种名(即属性)放在行名中,样地名(即样方名、地点)放在列名中,某个样地某个物种的个体数量以自然数(大于等于0的整数)的格式存储在某行某列的单个元素中。
  得到数据完整的二维矩阵后,对每列(即每个样地)进行数据处理与分析。假设样地编号为i1,i2,i3, ……,ir,所有样地内物种编号依次为j1,j2,j3,……,js(允许被编号的物种仅在某个或某几个样地中出现),某个样地某个物种的个体数量编号为k11,k12, ……,k21, ……,krs,则初始数据的数据结构如表1所示。
  Simpson多样性指数与Shannon多样性指数是反映群落个体属于何种物种的不确定性的两种物种多样性指数,这两个指数都可以由物种度和均匀度两个侧面来反映α多样性。
  Simpson多样性指数以随机取样的概率学问题出发,可表述为在群落或样地中随机选择两个个体,其属于同一个物种的概率。其中,pi为某个编号为i的物种在整个样地中出现的概率,S为数量丰度。
  3 α多样性程序设计方法
  获取初始数据后,确定数据结构,即得到完整的数据信息。基于Windows10系统下Python语言3.7.6版本的支持,通过Python语言程序设计方法,进行数据处理与分析。程序设计中主要借助于拥有多种针对数组进行数据综合处理模块的NumPy库与math库,进行α多样性相关指数的计算与汇总;使用Matplotlib库实现α多样性相关科学计算图像绘制;使用Pandas库实现基于二维矩阵Dataframe格式的“物种-样地”数据结构进行数据处理,将数据从Excel软件的.csv格式读取和输出;同时使用SciPy、Random等库,进行随机数生成和数据最优化选择等功能。程序依托于Python3.7.6与Jupyter Notebook软件运行,运行前需先安装这两个软件,并将扩展名为.ipynb的程序文件在Jupyter Notebook软件中上传后运行。   3.1 数据读入
  使用者启动程序文件后,直接按照Jupyter Notebook软件的操作要求即可运行程序,工作目录在程序运行中手动输入设置。用户的初始数据文件必须符合如表1所示的数据结构,且保存为扩展名为.csv,字符编码为utf-8的文件。程序首先调用panda.read_csv函数,读取工作目录下的“物种-样地”表格(即初始数据文件),在内存中创建Dataframe格式的二维矩阵数据表,这样数据全部读入到程序中,调用Numpy库与math库中的函数,即可进行下一步的数据统计与计算。
  3.2 α多样性指数计算
  α多样性相关指数的计算原理如前公式(1)~(9)所示。对于每个样地的各项指数计算,均采取按样地分解、循环计算,也即对每列使用for循环遍历,以数组的数据结构计算的代码形式,并用if判断语句去除记录物种名称的首列[9]。所有指数的计算方法与公式(1)~(9)相同,数学运算符号更改为适合于Python语言的格式,并在计算前设置空数组存储每列的计算结果。对于需要加和的各项指数,设定初始值为0,然后累加;对于需要判断个体数(如Chao1指数下的S1指数需要判断个体数为1的物种)的情况,则额外添加一个或多个嵌套的for循环,使用if-else判断语句进行判别。
  3.3 α多样性图像绘制
  α多样性的图像绘制包括物种稀释曲线与秩-多度曲线。物种稀释曲线是反映物种观测量合理性与间接反映样品中物种丰富程度的曲线。构建物种稀释曲线首先利用Random库与NumPy库通过随机抽样确定数个物种数与个体数的关系数对,然后利用这些数对用幂函数
其他文献
摘要:现代社会信息化发展速度日益加快,为了满足不断提升的服务需求,涌现了多种软件架构模式。然而,软件架构模式之间存在着相互交叉的情况,造成了模式之间的关系含糊。该文定义了软件架构层级,通过架构层级的划分,梳理常见的软件架构模式之间的关系,并通过分析这些架构模式的产生动机,进一步解释层级划分,帮助软件开发人员更好地识别和选择软件架构模式。  关键词:架构模式;架构层级;分层架构;六边形架构;SOA;
摘要:该文针对当前高校班主任工作管理系统缺失,工作过程冗杂、低效的问题,基于微信云开发“severless”架构,使用WXML、WXSS和JavaScript语言,运用结构化生命周期法,设计了一款“方便、高效”的高校班主任日常工作管理系统。小程序具有考勤签到、请假管理、心理健康管理和预警提示等主要功能,将班主任最常用的功能结合在一起,精准定位和处理学生存在的问题。结合微信推送和微信内一键拨打电话功
摘要:在社会高速发展的今天,人们对网络的依赖性已经达到了前所未有的高度,互联网已经成为社会经济发展的保障,对各行各业都有着重要的影响,也是人们生活娱乐的重要媒介,但是随着互联网普及到社会的各个行业,计算机通信的安全问题也逐步进入到人们的视野当中,计算机通信网络安全涉及多个领域,对社会安全以及人身权益造成严重威胁,为了实现计算机通信网络安全运行,该对计算机网络通信安全进行简单阐述,对如今计算机网络通
摘要:大数据时代背景下,计算机网络中的不确定因素进一步增多,这给计算机网络安全工作带来了一定的困难,需要对安全工作进一步研究。基于此,本文对此进行了探讨,通过分析当前计算机网络安全问题,提出了相应的安全技术和管理策略,以期为计算机网络安全方面提供解决对策。  关键词:大数据;计算机网络;网络安全;解决对策  Abstract: Under the background of the era of
摘要:高校基层党建工作需向信息化、数字化、智能化方向发展以适应新时代的要求。通过构建智慧党建平台,扩大组织覆盖面、规范党员活动,提高工作效能,提升党建工作的标准化、专业化水平。根据高校党建的党建宣传、在线教育、互动服务、党务管理、党员评价、决策分析六方面服务需求,提出平台的建设框架以及技术路线,并设计相关功能模块。平台对各项党建信息数据进行了整合分析,形成了数字化、智能化的党建工作运行全图。  关
摘要:為了增加跑步健身运动中计步数值的精确性以及跑步的趣味性,设计了基于红外光电传感器、OLED显示屏、MP3模块以及STM8L嵌入式微处理器的健身跑步计步器系统,并实现了硬件电路和软件程序的功能。该系统通过红外光电传感器的发射端通电连续发射红外光,接收端接收红外红外线并转换成电信号,由单片机采集电信号并计数,结果在显示屏上显示。此外,加入MP3模块实现播放音乐和语音提示功能,增加了系统的娱乐性质
基于微信公众号的智慧校园访客系统从物理架构、逻辑架构、功能模块三个角度进行分析研究,将微信公众号、智慧门禁系统、访客系统、短信平台有效结合在一起,实现跨平台无纸化办公。系统开发借助微信OpenID、H5、SQL数据库技术搭建B/S架构,达到访客线上提前申请,线下入校自主验证出行的目的,改善了传统的线下访客人工记录信息流程烦琐的现状,提高了访客出入校园的工作效率,值得广泛推广使用。
摘要:现阶段计算机应用软件在开发环节,往往需要软件设计人员综合考虑,结合软件工程相关知识点,从而提升当前软件开发工作质量。该文主要介绍了当前常用的软件开发语言,并且对软件开发环节编程语言对于当前计算机应用的影响分析,详细提出了三点选择合适的编程语言方法,以供相关工作人员借鉴分析。  关键词:计算机软件;编程语言;开发平台;综合能力  中图分类号:TP311 文献标识码:A  文章编号:1009