Python技术在《中国植物志》数据筛查中的应用研究

known 发布于 2025-08-25 阅读(332)

摘" 要:《中国植物志》收录了4万余种维管植物,是植物学工作者经常查找资料的工具书。文章主要研究Python在《中国植物志》网站数据处理中的应用。首先,分析了根据植物特性进行植物分类整理工作的烦琐、重复性高、易程序化等问题;其次,研究了Python的数据处理功能;最后,借助信息技术手段对所需查找的学术数据进行输入、读取、筛选、显示,并阐述了Python程序对上海植物名录中树木进行数据处理的实际应用。通过爬虫技术进行信息筛选,为植物资料查找提供了一个准确而快速的方法。

关键词:中国植物志;Python;植物特性;数据处理

中图分类号:TP39" 文献标识码:A" 文章编号:2096-4706(2024)24-0136-05

Research on the Application of Python Technology in Data Filtering of Flora of China

YANG Shuping1, ZHANG Deshun2

(1.Shanghai Technical Institute of Electronics and Information, Shanghai" 201411, China;

2.College of Architecture and Urban Planning Tongji University, Shanghai" 200092, China)

Abstract: The Flora of China includes over 40 000 taxa of vascular plants and serves as a reference tool frequently used by botany workers. This paper primarily investigates the application of Python in data processing on the Flora of China website. Firstly, this paper analyzes the problems that the plant classification and sorting work according to their characteristics is cumbersome, highly repetitive and easy to be programmed. Then, it investigates the data processing function of Python. Finally, it uses information technology means to input, read, screen and display the academic data that needs to be searched, and elaborates on the practical application of Python program in data processing from the catalog of trees in Shanghai. An accurate and fast method for plant data search which screens information by crawler technology is provided.

Keywords: Flora of China; Python; plant trait; data processing

0" 引" 言

中国是世界植物种类最丰富的国家之一。《中国植物志》记载了我国已知的全部植物种类,是我国植物学各个分支学科的基础,是植物分类学专著[1],也是当今世界种类最多的一部植物志书籍,全书收录了4万多种维管植物[2]。《中国植物志》记载了植物的科学名称、形态特征、生态环境、地理分布、经济用途和物候期等内容[3],为我国维管植物的分类、植物资源开发利用等方面提供重要参考资料。是植物工作者、植物爱好者查找资料的工具书。

《中国植物志》在线版(http://www.iplant.cn/info/)是开源免费在线查询系统,输入植物名称便可查到该植物的名称(中文、汉语拼音、拉丁文等)、形态特征等相关信息,对于植物的信息查询十分便捷。但对从事植物学研究园林工作者或植物种植养护管理的工作人员来说,有时需要在指定的植物名录列表中,筛选出具有一定特性的植物,即将植物名录中的植物逐一输入《中国植物志》中查找是否有指定特性的关键词。通常的步骤是:首先,将植物名称输入《中国植物志》在线链接中,找到该种植物的相关信息,然后在这种植物信息界面中查找指定特性的关键词。指定的植物名录中有多少种植物就要重复以上操作多少次,直到最后一种植物查找完成,查询工作才算结束,最后将具有特性关键词的植物整理在一起,形成具有该特性的植物名录,最终完成整个筛选工作。一般的植物名录都有几百种,甚至近千种植物,这将导致查找工作量变得相当巨大。如何在种类繁多、资料信息庞大的《中国植物志》中快速筛选出指定关键词的植物名单呢?查找、筛选类工作具有重复性、程序化等问题,借助数字化编程技术是解决这类问题的好途径。

信息技术飞速发展,计算机编程越来越多地应用于人们的日常工作之中[4]。为提高工作效率,一些传统学科的工作人员也开始学习软件编程技术,多学科、多专业之间的跨界学习已成为一种趋势[5]。Python编程语言具有简洁、高效开发以及可扩展性强等特点[6],很多视觉库、科学计算软件、应用软件都提供了Python的调用接口,通过Python编程可调用OpenCV计算机视觉库,MATLAB科学计算和数值分析软件,AutoCAD、Photoshop应用软件进行自动化操作;Python自己也提供了像NumPy、SciPy和matplotlib等众多的专用科学计算扩展库及Selenium、Request和Beautiful Soup网络数据提取扩展库[7-9],通过这些科学计算扩展库为Python的快速数据处理、数值运算以及绘图等功能提供了强大支持[10],通过数据提取扩展库从网络自动获取所需要的数据,本文使用Python语言,通过Selenium扩展库进行数据提取,完成资料查找及筛选工作。

1" 研究方法

1.1" 植物筛选体系构建

1.1.1" 查询植物志的筛选模式

文件查询模式。对整个植物名录进行筛选是文件查询模式。该名录不限植物数量、种类,应一次性将全部植物输入系统,并进行查询。筛选出的植物应该是以关键词为主题的新的植物名录。

单个植物模式。对目标植物特性进行筛选是一种植物查询模式。将植物名称和描述特性的关键词输入后,系统显示该种植物是否具有这些特性。

1.1.2" 分析程序

参考网络爬虫技术[11],结合《中国植物志》记载的植物形态特征、生态环境、地理分布等内容,以及工作中需要解决的查询方式,按照数据输入、数据读取、植物查询、结果显示这样4个阶段来实现植物自动查询操作流程如图1所示。

1.1.3" 程序执行过程

1)数据输入。将《中国植物志》网址、需要筛选的植物特性分别输入到指定的文本框。文件查询模式和单个植物查询模式采用了不同的文本输入框。

2)数据读取。使用文件查询模式时,首先将这些植物放在一个Excel 表格里,组成植物名录,然后通过界面上的文件选择按钮,打开对话框选择文件,软件将对选择的文件内容进行读取。单个植物查询模式只需在指定的文本框内容直接输入植物名称即可。

文件查询模式,即多种植物查询具体运行模式如下:

通过文件选择按钮打开文件查询模式对话框:

filename = QtWidgets.QFileDialog.getOpenFileName(None, \"选择文件\", \"\", \"*.xlsx\")[0]

获取存储植物名录的文件路径及名称:

Local_file_path = os.path.dirname(os.path.abspath(file_path))

file_name=os.path.basename(file_path)

base_path = os.path.join(Local_file_path, file_name)

读取植物名录,存储相关内容并等待下一步程序处理:

book = xlrd3.open_workbook(base_path)

sheet_names = book.sheet_names()

sheet1 = book.sheet_by_name(sheet_names[0])

for r in range(sheet1.nrows - 1):

Plant_name_list.append(sheet1.cell(r + 1, 1).value)

3) 植物查询。在输入植物特性,读取植物名称文件或单个植物名称后,可以点击查询按钮,软件将自动访问《中国植物志》网址,根据植物名称、植物特性进行查询, 对于符合特性的植物名称,将其存储到指定的Excel 文件内,并将该植物的特性描述文字也一并存入,便于使用者查看及复核。

启动程序打开浏览器:

option = webdriver.ChromeOptions()

option.headless=True," " " " " "driver_path=C:\\Users\\ch\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe

option.add_argument(--no-sandbox)

option.add_argument(--disable-dev-shm-usage)

option.add_argument(--headless)

driver=webdriver.Chrome(executable_path=driver_path,options=option)

在《中国植物志》网站获取含有筛选描述植物关键词的文字源代码:

time.sleep(100)

Require_content = \"?t=z\"

driver.get(Web_root + Plant_name + Require_content)

html = driver.page_source

driver.quit()

在源代码中筛选出描述植物关键词的文字

pattern = re.compile(rlt;[^gt;]+gt;, re.S)

result = pattern.sub(, String_Description)

result = result[-(len(result) - result.find(Plant_name)):]

result = result[:(len(result) - 9)]

查找

str_test=Str_first_keyword+Str_logic1_orand_bearcheckBox+Str_logic2_orand_bearcheckBox+Str_logic3_orand_bearcheckBox+Str_logic4_orand_bearcheckBox+Str_logic5_orand_bearcheckBox+Str_logic6_orand_bearcheckBox+Str_logic7_orand_bearcheckBox

str_test=str_test+f\"\"\"):

result = 1

else:

result = 0

\"\"\"

try:

exec(str_test,globals(), local_vars)

result = local_vars[result]

except Exception as e:

return

4 )结果显示。将符合查询条件的植物统一存储在一个Excel 文件中:

xls.save(exce_file_name)

label_savefile_namepathlabel.setText(f\"结果文件信息: {exce_file_name}\")

在筛选出最终结果的Excel文件中查询关键字,并进行颜色及字体标注:" " " " " " " " str_position_end=str_position_start+len(keywords[n])

ws.range(m,2).characters[str_position_start:str_position_end].font.size = 16

ws.range(m,2).characters[str_position_start:str_position_end].font.bold = True

ws.range(m,2).characters[str_position_start:str_position_end].font.color =0x0000FF

1.1.4" 人机交互

人机界面分成文件查询模式和单个植物查询模式。文件查询模式流程是:植物特性输入文本框,点击文件读入按钮,点击查询按钮,显示查询进度提示,查询结束后,显示查询结果文件在计算机中的位置;单个植物查询模式流程为:植物特性输入文本框,植物名称输入文本框,点击查询按钮,查询结果显示在文本框内。

1.1.5" 软件界面设计原则

程序界面是使用者直接接触的窗口,是人机交互从文件开始查找到最终筛选结果产生的全过程界面。该界面设计应简洁、直观、易操作,界面的文字指示应清晰、易懂,查询按钮应突出易发现,操作时,尽量减少使用者的数据输入,方便专业或非专业人员使用。

1.2" 植物自动查询系统功能检测

1.2.1" 植物名录选择

上海位于长江河口的冲积平原上,地带性植被较缺乏,主要以栽培植物为主。在上海现存的木本植物中,国外引种占比较高。加之城市化进程、海水倒灌、城市内涝等事件频发,导致本就缺乏乡土树种的上海园林植物显得更加脆弱。因此,在植物种植前,应了解植物生物学特性及生态习性,再结合土壤情况、气候变化趋势等外部因素来选择植物。植物种植后,在适宜的环境中才能健康生长,易于形成可持续的城市生态环境。

以上海植物名录作为本次检查对象,组成植物检测名录,上海植物名录中共有1 263种植物,以木本植物为主,具体内容如表1所示。

1.2.2" 界面设计

因需要输入的查询信息较少,故将文件查询模式、单种植物查询模式放在同一界面中,方便随时切换查询模式。软件界面如图2所示。

1.2.3" 植物特性筛选

对这1 263种植物进行耐盐特性的筛选,将关键词设定为:盐。

文本查询,将“盐”输入文本框中,然后点击“选择文件”按钮,弹出路径选择对话框,选取需要筛选的文件,并点击“查询”按钮,系统对所选文件中的1 263种植物进行查询如图3所示,筛查完成后,界面显示查询路径及结果如图4所示。

单个植物查询,选择枸杞作为查询对象,对枸杞进行耐盐碱特性进行查询。

2" 结果与分析

2.1" 多种植物筛选名录

1 263种乔木完成筛选后,界面显示查询到11种含有关键字的植物,并提供了文件存储路径及文件名称,在“内容栏”里的关键词则显示字体变大、且标红,以便与其他文字进行区别。

2.2" 单种植物筛选结果

枸杞的“盐碱”特性查询。将枸杞,及关键词“盐碱”输入文本框中,点击“查询”按钮,如果该种植物有这种特性,“搜索结果”则显示出字体变大、标红的关键词如图5所示。

枸杞的“酸”特性查询。将枸杞,及关键词“酸”输入文本框中,点击“查询”按钮,如果该种植物没有这种特性,“搜索结果”则显示出没有“酸”特性。

2.3" 结果分析

在对植物信息查询时,该程序对具有查询特性的植物不仅列出了植物名称,还将植物在《中国植物志》中的其他信息一并提供,易于校对,同时方便查看植物的其他相关信息。并将筛查的关键词变大,颜

色变红,以方便识别。这些文字容易拷贝粘贴,针对使用要求,可以更换到不同的文件中,也可以对筛查结果的文本直接进行保存,还可以仅存储带植物名称的文件。

3" 结" 论

本文使用Python语言,通过Selenium扩展库在

植物种类繁多,资料翔实的《中国植物志》网站上自动完成数据获取,并将数据进行快速筛选、过滤,并准确地将结果数据进行输出。该程序提高了查找工作效率,为科研人员节省了大量时间。

本研究还存在不足之处:本程序采用固定网址。界面设定仅链接到《中国植物志》网址上,只能对《中国植物志》中的植物及相关信息进行查询、筛选。该程序不能链接到《中国药用植物志》《中国植被志》等其他植物志,或者其他数据库中,这是今后需要进一步完善的内容。本程序使用固定浏览器:目前仅能在Google浏览器上使用,其他浏览器还不能使用,今后有待进一步优化。

参考文献:

[1] 李波.新一代植物志的起点——读《中国维管植物科属词典》《中国维管植物科属志》的几点思考 [J].生物多样性,2023,31(1):239-242.

[2] 邵丽鸳,李雪,张光富.关于《中国植物志》中鹿药(百合科)花特征的纠正 [J].植物研究,2021,41(4):488-490.

[3] 王媛.海棠原来是木瓜:检索《中国植物志》的发现 [J].图书馆建设,2021(1):167-169.

[4] 杨多海.超大规模数据处理中并行计算技术的应用研究 [J].科技创新与应用,2024,14(17):181-184.

[5] 杨鹏飞,田水承.煤矿瓦斯爆炸高概率险兆事件致因因素重要度研究 [J].安全与环境学报,2023,23(8):2794-2801.

[6] 陈华.Python在数据分析中的应用 [J].上海轻工业,2024(3):108-110.

[7] 马小平.关联CAD-SAP2000-ANSYS的管桁架自动化建模分析技术体系与程序实现[J/OL].铁道标准设计,2024:1-14[2024-06-19].https://doi.org/10.13238/j.issn.1004-2954.202312040003.

[8] 罗震.Python在光收发模块测试脚本中的实现 [J].物联网技术,2024,14(6):139-141+144.

[9] 牛柯,彭斌.基于Python-OpenCV的管柱图像快速识别与管径分类研究及优化[J/OL].科技通报,2024:1-7[2024-06-19].http://kns.cnki.net/kcms/detail/33.1079.N.20240616.1228.002.html.

[10] 薛华杰,张宁,傅怡宁,等.基于网络爬虫技术对电子商务多肉物种资源数据的研究 [J].生物安全学报,2017,26(4):311-315.

[11] 崔梦银,邓茵,刘满意.Python爬虫技术在学术聚合系统中的应用 [J].现代信息科技,2024,8(10):68-74.

作者简介:杨淑平(1977.11—),女,汉族,黑龙江哈尔滨人,高级工程师,讲师,专任教师,硕士,研究方向:城市生态及数字技术应用;通信作者:张德顺(1964.12—),男,汉族,山东人,教授,博士生导师,IUCN/SSC委员,中国植物学会理事,博士,研究方向:园林植物生态与应用。

标签:  植物 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor