张金龙的博客分享 http://blog.sciencenet.cn/u/zjlcas 物种适应性、分布与进化

博文

herblabel R程序包打印植物标本标签 (2017年1月9日更新)

已有 7140 次阅读 2014-12-10 11:57 |个人分类:科研笔记|系统分类:科研笔记|关键词:学者

herblabel R程序包打印植物标本标签

(2017年1月9日更新)

关于herblabel程序包的介绍, 请参考 http://www.biodiversity-science.net/CN/abstract/abstract10290.shtml


程序包下载 herblabel安装文件.zip 以及使用说明


用herblabel打印植物标本标签和鉴定标签

1 安装R软件 http://www.r-project.org/

如: Windows: http://cran.r-project.org/bin/windows/base/

2.安装Rtools, Rtools含有读取xlsx文件所需的解压缩函数. 安装时应该允许Rtools修改启动路径, 以便从CMD中能够调用Rscript以及zip等命令.

https://cran.r-project.org/bin/windows/Rtools/

3 安装devtools程序包

在R的命令行中,输入:

install.packages("devtools")

4 从 github 安装 herblabel

library(devtools)

install_github("helixcn/plantlist")

5. 安装openxlsx程序包, 用于读取内置的xlsx模板

install.packages("openxlsx")

至此, herblabel及其相关的程序包安装完成.

6. herblabel程序包的更新

Herblabel程序包会根据用户反馈的意见, 进行修改, 或者增加相应的功能, 因此每隔一段时间, 就发布发新版本.

更新该程序包, 请用如下R命令从github重新安装:

library(devtools)

install_github("helixcn/herblabel")

打印标本标签以及鉴定标签

标本标签以及鉴定标签所用的数据均保存在Excel模板中. 主要步骤如下:

1. 填写Excel模板

herblabel程序包带有Excel模板, 该模板的位置如下:

system.file("extdata", package = "herblabel")

模板分为两种:

(1) 基于Darwin Core的标本记录Excel文件, 名为 DARWIN_CORE_HERBARIUM_RECORDS.xlsx;

(2) 标本鉴定的Excel文件, ANNOTATION_TEMPLATE.xlsx

Excel模板各列如下:

GLOBAL_UNIQUE_IDENTIFIER: 条形码号

INSTITUTION_CODE:标本馆缩写

COLLECTION_CODE:标本馆号, 可能和条形码号相同

BASIS_OF_RECORD: 标本的类型, 一般为腊叶标本

PREPARATIONS: 标本的状态, 如 有花有果, 有花无果, 无花有果, 无花无果

HERBARIUM(必填): 标本馆名

TITLE:该植物所属地区, 如Plants of Yunnan

COLLECTOR(必填):采集人

ADDITIONAL_COLLECTOR:共同采集人

COLLECTOR_NUMBER(必填):采集号

DATE_COLLECTED(必填):采集日期, 建议格式 2015-8-6 表示 2015年8月6日, 标签中会自动转换为英文的年月日

LOCAL_NAME:当地名称, 这里可以填写中文名或完整的学名, 并用fill_dwc处理后自动填写上 科属种命名人等信息.

FAMILY(重要): 科名, 必须是拉丁文

FAMILYCN:中文科名

GENUS:属

SPECIES:种

AUTHOR_OF_SPECIES:种作者

INFRASPECIFIC_RANK:种下等级, 只能是 subsp., var. 或者f.中的一个.

INFRASPECIFIC_EPITHET:种下等级加词

AUTHOR_OF_INFRASPECIFIC_RANK: 种下等级作者

COUNTRY(必填):国家或者地区

STATE_PROVINCE(必填):省或者州

COUNTY(重要):县

LOCALITY(重要):小地点

LOCALITY_ORIGINAL:(地名原始信息, 如中文地名):

IMAGE_URL:标本照片的路径

RELATED_INFORMATION:与地名相关的附记

LAT_DEGREE(重要):纬度的度

LAT_MINUTE(重要):纬度的分

LAT_SECOND(重要):纬度的秒

LAT_FLAG(重要):纬度的标签, 北纬N, 南纬S

LON_DEGREE(重要):经度的度

LON_MINUTE(重要):经度的分

LON_SECOND(重要):经度的秒

LON_FLAG(重要):经度的标签, 东经E, 西经W

ELEVATION (重要):海拔

ATTRIBUTES (重要):关于形态的描述, 如树高, 花色, 果的颜色以及树皮等的描述

REMARKS (重要):关于生境以及伴生种的描述, 如 along the stream

CABINET:标本所保存的柜子.

DISPOSITION:该标本是否在馆, 是否外借等信息.

GEOREFERENCE_SOURCES:位置的数据来源, 是GPS直接读取的, 还是Google Earth或者其他来源

GEOREFERENCE_VERIFICATION_STATUS:地理位置是否经过确认

GEOREFERENCE_REMARKS:地理位置的准确度, 如50m

PROJECT:该标本的研究项目

IDENTIFIED_BY(重要):标本的鉴定人

DATE_IDENTIFIED(重要):鉴定的日期, 最好也是2015-8-6类似的格式

TYPE_STATUS:该标本是否为模式标本

PROCESSED_BY:本条记录的录入人

DATE_LASTMODIFIED:本条记录上次更改的日期

假设 DARWIN_CORE_HERBARIUM_RECORDS.xlsx 保存在 D:/herbarium/, 则输入以下命令, 即可生成rtf标签:

setwd("D:/herbarium/") ## 注意斜杠要向右

library(herblabel)

library(openxlsx)

dat <- read.xlsx("DARWIN_CORE_HERBARIUM_RECORDS.xlsx")

### 检查拼写等

herbarium_label(dat, outfile = "herbarium_labels.rtf")

### 不进行检查

herbarium_label(dat, spellcheck = FALSE, outfile = "herbarium_labels_no_checking.rtf")

默认情况下, spellcheck = TRUE, 此时herbarium_label函数将进行(1) 物种有效性的检查 , 即是否是The Plantlist 网站上的接受名 (2)属的拼写检查 (3) 科的拼写检查 (4) 科属对应关系的检查。 在Remarks这一列中, 如有列出伴生种, 则拉丁文部分会自动转换为斜体。 如果未能转换成斜体, 则需要检查其拼写。 这些信息会在生成的RTF文件中给出提示。

2. 鉴定标签的打印

herblabel程序包自带了鉴定标签的模板, 在 R中输入 system.file("extdata", package = "herblabel")

可找到 ANNOTATION_TEMPLATE.xlsx 文件, 该文件包括如下的列:

PROJECT:鉴定整理标本的有关项目

TYPE_STATUS:是何种模式标本, 如果不是可不填

TYPE_REF:如果是模式标本, 则需要写清楚发表该种的文献

FAMILY:科

LOCAL_NAME:中文名, 或者完整的学名

GENUS(重要):属

SPECIES(重要):种

AUTHOR_OF_SPECIES(重要):种作者

INFRASPECIFIC_RANK(重要):种下单位, 只能包括 subsp., var. 或者 f.

INFRASPECIFIC_EPITHET(重要):种下单位加词

AUTHOR_OF_INFRASPECIFIC_RANK(重要):种下单位作者

ABBREVIATION(重要):鉴定人的名称 如 打印标签上, 鉴定人之前要显示 Det., 则此处应该输入 Det.

IDENTIFIED_BY(重要): 鉴定人

INSTITUTION:鉴定人的机构

DATE_IDENTIFIED(重要):鉴定日期

DET_NOTE:鉴定的依据, 或者附注

SPECIMEN_NUMBER:标本条形码号

COLLECTOR:采集人

COLLECTOR_NUMBER:采集号

打印鉴定标签:

将该ANNOTATION_TEMPLATE.xlsx 拷贝到 D:/herbarium/

填好相应的鉴定信息后, 在Rgui中运行如下命令:

  setwd("D:/herbarium")

  library(herblabel)

  library(openxlsx)

  dat <- read.xlsx("ANNOTATION_TEMPLATE.xlsx")                    

  annotation_label(dat)

由herbarium_label函数和annotation_label生成的rtf文件, 可以用Microsoft Word打开, 进行进一步的调整 (如某些物种的斜体,或者间距的调整)。

3.从中文名匹配并填写学名,命名人和科属等信息

在打印标签时, 人们希望尽量输入少的数据,因为输入的内容越多,出错的几率也越大, 特别是植物的学名, 不少人对拉丁文的拼写并不熟悉, 很容易在输入时出现错误. 此外, 命名人的缩写有不同的格式, 稍有不慎, 拼写就会出问题. 此外, 将一个完整学名按照科, 属, 种加词, 命名人, 种下等级, 种下等级加词, 种下等级命名人填写, 也相当费时费力. 为此, herblabel程序包中提供了fill_dwc函数, 目的是, 依照模板中出现的中文名, 在herblabel内置的数据库内找到对应的学名, 并且查找该种对应的apgiii科, 并填写到模板中, 随后将学名按照属, 种加词, 命名人, 种下等级, 种下等级加词, 种下等级命名人等自动填写到模板中.

使用方法

在Excel模板DARWIN_CORE_HERBARIUM_RECORDS.xlsx中, 将中国植物志接受的中文名,或者plantlist给出的完整的拉丁名拷贝到对应Excel模板的 LOCAL_NAME 一列, 之后运行如下命令即可:


setwd("D:/herbarium/") ## 注意斜杠要向右

library(herblabel)

library(openxlsx)

dat <- read.xlsx("DARWIN_CORE_HERBARIUM_RECORDS.xlsx")

dwc_filled <- fill_dwc(dat) ### 检查拼写等

herbarium_label(dwc_filled, outfile = "herbarium_labels.rtf")


4.模板信息的保存与更新, 以及生成RTF文件的自动保存

如果用户不希望一次性打印Excel模板中所有的记录, 则应该用subset函数进行筛选 (参考 http://www.statmethods.net/management/subset.html). 但是更多人希望将每次打印的标本记录自动更新到一个完整的Excel记录中, 并且完整保存每次运行的Excel模板, 以及生成的RTF文件. 实际上笔者已经提供了运行herblabel程序包的R脚本 run_herblabel (https://github.com/helixcn/run_herblabel) .

使用方法如下:

1.下载 run_herblabel文件夹 (https://github.com/helixcn/run_herblabel/archive/master.zip, 并将master.zip解压缩到任意文件夹下, 如 D:/herblabel

2. run_herblabel下有两个文件夹, 分别命名为 herbarium label 和 annotation label

以herbarium_label文件夹为例, 该文件夹下有如下文件:

1. 文件夹:DARWIN_CORE_DB_SAVE, 里面有一个excel文件 darwin_core_database.xlsx , 该文件用来保存所有输入的记录.

2. 生成的标本标签文件: herbarium_labels_to_print.rtf, 可以用MS word打开并查看.

3. 标本记录模板: herbarium_specimens_label_data.xlsx, 在此Excel文件中输入数据

4. 运行herblabel的R脚本: print_label.R, 这是运行herblabel的核心程序, 如果你对R不熟悉, 请勿更改此R脚本, 该脚本用来提取当前文件夹的未知, 并且读取和保存相应的文件.

5. 标签文件的记录: RTF history, 每次运行批处理文件生成的RTF标签均保存在这里, 以时间作为文件名.

6. 用来调用print_label.R的Window批处理文件, 用来调用print_label.R来生成标签, 并保存相关文件.

7. 每一次标本标签记录的Excel文件: xlsx history


使用方法, 仅需配置好Rscript.exe的启动路径, 然后双击.bat文件即可:

设置启动路径的目的在于, 通过cmd可以直接调用Rscript.exe, Rscript.exe函数可以直接发送R脚本到R, 无须开启GUI. 如, 安装的R软件版本为3.2.3,则需要找到Rscript.exe所在的路径, 并添加到启动路径PATH中方法如下: 右键点击:

我的电脑>属性>高级>环境变量>系统变量  PATH一项,点击“编辑”,检查是否具有以下路径。通常软件在安装时已经自动配置好了启动路径。如Window7 64bit, 可在原有的路径上手工添加:

";C:Program FilesRR-3.2.4bin;C:Program FilesRR-3.2.4bini386;" (注意: 仅拷贝双引号里面的内容, 不包括双引号. 按照不同的系统, 应该以Rscript.exe的真实路径为准)到 PATH一项的最后. 首位的分号”;”必须保留.


填写好Excel模板, 双击 "Search Scientific Names and create RTF labels.bat" 文件, 即会弹出窗口, 进行标签信息的处理,直接生成标本标签, 并保存中间的所有结果.


引用herblabel程序包:

如果你使用了herblabel程序包, 请用如下方式引用

查看引用

citations("herblabel")

Jinlong Zhang (2016). herblabel: Making Labels for Herbarium

 Specimens in RTF and More. R package version 0.4.4.

 https://github.com/helixcn/herblabel

如果您对herblabel程序包有任何意见或建议, 请联系 jinlongzhang01@gmail.com 或 本人的qq 85168042






https://m.sciencenet.cn/blog-255662-849868.html

上一篇:基于贝叶斯法的线性模型参数估计
下一篇:用QGIS生成地图一副完整地图

2 肖瑞 戴小华

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-12-7 21:44

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部