《一、前言 》

一、前言

近年来,随着社会经济的发展和人民生活水 平的提高,公众对于农产品的质量安全提出了更高 的要求,人们在消费各种粮食、蔬菜、肉类等农产 品的同时,希望了解其来源、种植或饲养等相关的 过程和使用的肥料、农药和饲料的类型与用量。这 一需求一方面来源于消费者对现阶段食品安全的担 忧,另一方面来源于消费者对农作物营养价值认知 需求的提高。农产品质量安全追溯体系的建设不仅 仅有助于提高生产企业诚信意识和生产管理水平, 而且可以构建农产品质量安全管理长效机制,也是 落实责任管理的重要保障。国际上很多国家和地区 均已经开展相关的农产品追溯的相关研究与应用, 例如欧盟以《第 178/2002 号法案》为核心形成了 较为完善的的农产品 / 食品质量安全追溯法律体系, 美国出台的《食品安全跟踪条例》[1],日本推行的 《食品可追溯制度》[2],加拿大的《食品与农产品 的国家品牌战略》[3] 等,均在农产品质量和安全 追溯的研究与应用方面取得了成效。

美国学者提出,食品可追溯体系包括三个维 度: 宽 度(Breadth)、 深 度(Depth)和精确度 (Precision)[4]。其中,宽度是指可追溯的信息量, 深度是指农产品生产过程中追溯的流程区段,精确 度是指农作物可追溯信息的精确程度。目前已有的 农产品质量安全追溯系统中,大多数的系统充分考 虑了农产品的宽度和深度,但是对精确度的考量较 少。这主要是由于目前的系统往往是为规模、设备、 农作方式不同的企业或者地区进行系统设计,宽度 和深度很容易从生产者和消费者的需求中抽象并量 化,但是企业或者地区可大可小,设备以及工作方 式多种多样,难以对农产品追溯的精确度进行界定。 与计算机技术中的网格化技术不同,在地理信息技 术中空间数据的网格化是按照所需要的研究尺度将 研究区域的空间划分为大小相同的网格,方便进行 空间分析与处理 [5,6],是地理信息技术与空间分析 重要的研究手段。在农作物的生产过程中,灌溉、 施肥、采摘、收耕等往往是逐区域进行的,因此可 以将空间数据的网格化理论应用在作物的可追溯体 系中,将农产品生产场地进行分区,其分区的大小 即为可追溯体系的尺度,可以有效地解决农作物追 溯的精确度的问题。

我国从 2002 年开始农产品质量安全追溯体系 建设,这对于促进我国现代化农业产业体系发展具 有重大影响,对于提升我国农产品国际竞争力具有 可预见的现实意义。很多学者利用计算机技术、物 联网技术等开展了农产品追溯系统的研发,例如杨 信廷等研发的蔬菜安全生产管理及质量安全追溯系 统 [7]、张强等在苏州市推行的蔬菜质量安全追溯 系统 [8]、董玉德等研发的基于农产品供应链质量 安全可追溯系统 [9] 等,通过互联网技术、追溯码 技术等实现了在 Web 端、桌面端、移动端等多平台 的农产品质量安全追溯功能,可有效地规范企业生 产管理,提高产品附加值,取得了良好的经济效益 和社会效益。在此基础上,结合最新的移动互联网 技术,并应用空间数据的网格化理论可以继续提高 数据采集的便捷化与智能化,提高农产品质量安全 追溯系统的深度与精准度,并且使其追溯单元具有 弹性。

本研究利用互联网技术、物联网技术和地理信 息技术,融合资源卫星、地面传感器、人工采集等 多源数据,结合空间数据网格化方法,以中宁县枸 杞生产销售为例,研发了一套从生产、收获、分拣、 包装到销售全流程的农产品质量安全追溯系统。

《二、总体框架设计 》

二、总体框架设计

本研究以枸杞为例,针对农产品质量安全追溯 过程进行业务逻辑抽象,提炼核心业务需求,最终 将用户群划分成管理者、生产者和消费者三种角色, 将业务流程划分为生产、收获、分拣、包装、销售 五个主要部分。

系统主要包括客户端和云端两个部分,其中客 户端分为管理者端、生产者端、消费者端三个部分, 其中,管理者端主要为田间管理部门提供预警阈值 设置、监测信息管理等功能,生产者端主要为技术 员、种植工人等田间工作人员提供预警信息推送、 数据采集等功能,消费者端主要为购买农产品的消 费者等提供二维码追溯信息浏览等功能。其各部分 主要架构与功能如下:

(1)系统的云端服务功能搭建在阿里云的弹 性计算服务(ECS)上,其主要的业务逻辑代码是 在 .Net Framework 框架下利用 C# 语言编写的,采 用 SQL Server 数据库实现数据的持久化功能。云端与客户端的交互主要由两种方式实现:①客户端的 用户认证、数据采集 / 接收、新闻信息等主要功能 利用 Web 应用服务器 IIS(Internet Information Services)提供符合 REST 规范的 HTTP/HTTPS 服务与 客户端交互;②传感器、资源遥感等预警信息的消 息推送功能采用 MPush 实时消息推送模块实现。

(2)管理者端主要对农作物的生长环境、作物 历等进行基本控制,需要从整体上对农产品的质量 进行监控,例如对传感器、天气、长势等预警信息 的掌控,对其预警的阈值进行调整等。鉴于管理者 在室内工作更为方便,因此管理者端设计为运行在 PC 机的 Windows 操作系统下基于 .Net Framework 框架的应用程序,可以对预警信息推送等功能进行 配置,其主要的功能包括插值服务配置、二维码服 务配置、IoT 预警服务配置、天气预警服务配置、 资源遥感预警服务配置、农作物长势统计分析等。

(3)生产者端是可以安装在 Android 和 iOS 系 统上的一套移动应用程序,是用于管理者、技术员、 工人使用的轻量级用户接口,不仅包含了对农作物 农情的实时监控功能,还包括了农作物的生长环境、 生长信息、摘采分拣等数据采集功能。生产者主要 包括技术员、工人等,其工作流程较为复杂,需要 长时间在野外进行工作。在野外工作时,采用安装 在手机上的应用软件可以提高工作便利性,方便数 据的采集 [10],因此生产者端分别设计了 Android 端应用程序和 iOS 端应用程序两个部分。Android 端应用程序是在 Android Studio 集成开发环境下 利用 Java 语言编程实现的,采用 SQLite 轻量级数 据库与 GreenDao 进行对象关系映射。iOS 端应用 程序是在 Xcode 集成开发环境下利用 Objective-C 语言编程实现的,采用 SQLite 轻量级数据库与 CoreData 进行对象关系映射。生产者端的主要功能 包括园区管理、本地环境数据采集、田间作业数据 采集、产品分选数据采集、产品评级数据采集、产 品包装数据采集等功能。

(4)消费者端的用户界面是建立在微信公众平 台上,利用微信的扫一扫功能对贴在产品包装上的 二维码进行识别可对其产品的生产历史进行查询。 消费者端的查询页面设计为 HTML 页面,利用 HTTP 的 Post 参数存储二维码信息向服务器提交查 询请求,其查询结果包括了农产品的产地信息、生 长环境信息、生长照片、分级信息、分选信息和包 装信息等。

基于网格化管理的农产品质量安全追溯系统的 总体框架设计,如图 1 所示。

《图 1》

图 1 农产品追溯系统总体框架设计

 

《三、功能模块设计 》

三、功能模块设计

基于网格化管理的农产品质量安全追溯系统主 要包括园区规划与设计、信息采集功能、监控与预 警功能、农产品追溯功能等,其功能模块设计,如 图 2 所示。

《图 2》

图 2 农产品质量安全追溯系统功能模块设计

 

《(一)园区规划与设计功能》

(一)园区规划与设计功能

园区的规划与设计功能主要是利用网格化的方 法对园区发展规划和功能布局进行空间分布设计, 这需要结合实际情况,例如灌溉设备等部署,将园 区分成大小一致的网格。首先,需要利用生产者端 软件输入园区的基本情况,例如园区名称、负责人、 园区类型等信息,然后在电子地图上绘制园区的范 围,然后选择需要划分的格网的大小,系统会将园 区自动划分为若干个网格,如图 3(a) 所示。网格化 的园区信息会保存在云端数据库中。系统的预警功 能、产品追溯功能等都将园区的网格作为管理的基 本单元。

《图 3》

图 3 农产品质量安全追溯系统的主要界面

 

《(二)信息采集功能》

(二)信息采集功能

信息采集功能主要是指生产者端对农产品生成全 流程的数据进行采集,其采集的每一项信息将与园区 的网格相关联,如图 3(b) 所示。在系统设计过程中, 生产者需要实现对农产品的“三控”信息(即生产环 境控制、生产过程控制、产品质量控制等三类信息) 的统一管理。系统将“三控”信息融入农产品生产的 全流程,如图 4 所示。其中,新建园区信息管理和录 入本底环境部分实现了生产环境控制功能,病虫害信 息、种苗信息、施肥施水信息、物候信息的录入部分 实现了生产过程控制功能,产品分选、产品评级、产 品包装录入部分实现了产品质量控制功能。

《图 4》

图 4 农产品追溯系统生产者端的“三控”信息管理

 

《(三)监控与预警功能》

(三)监控与预警功能

监控与预警功能需要利用资源卫星遥感数据、 气象数据与田间地面传感器等多源数据,对农作物 的生长环境与长势进行监控,当某些指标超标时, 通过系统的推送功能推送到管理者与生产者的系统终端上,以达到预警功能。

资源遥感监控与预警功能主要利用资源遥感卫 星(例如 Terra 卫星、Aqua 卫星、Landsat 系列卫星等) 数据反演的植被净初级生产力(NPP)、归一化植 被指数(NDVI)、增强型植被指数(EVI)等遥感 指标对植被进行监控。系统可以利用这些指标判断 植被的长势和病虫害事件,应用时序同比、环比或 者其他作物诊断模型方法,当 NPP 或者 NDVI 超 出某一阈值时,则系统判断农作物长势较差,将该 信息推送给管理者端和生产者端,以便决策者进一 步处理。

气象信息监控与预警功能主要利用气象部门实 时发布的气温、降水等数据,结合农作物的生长情 况,适时推送气象预警信息。当系统监测到当前或 者未来的气温、降水高于或者低于某一阈值,则向 管理者端和生产者端推送高温、低温、水灾、干旱 等预警信息。

传感器监控与预警功能主要利用田间传感器 获取的土壤温湿度、风力、风向、二氧化碳浓度 等的数据进行插值处理,形成园区的网格数据, 如图 3(c) 所示,当某些地区的数据发生异常(高于 或低于阈值)时,则向管理者端和生产者端推送相 关警告。

《(四)农产品追溯功能》

(四)农产品追溯功能

农产品追溯功能是以二维码为载体,利用产品 识别码帮助消费者获取该商品的生长、评级、包装 等历史信息。农产品追溯功能主要包括产品识别码 分发与二维码生成、二维码扫描与产品追溯两个子 模块。

产品识别码分发与二维码生成子模块可按照一 定的编码规则生成识别码,将识别码与农作物的生长信息等相关联。这个识别码是在农产品收获和分 拣的时候生成的,与收获时网格化的地块编码以及 分拣信息相关联,农产品在随后的评级和包装中均 带有这个识别码信息。因此,当消费者购买农产品 时,其带有识别码信息的二维码即与该产品的整个 生产过程的信息相关联。

二维码扫描与产品追溯子模块可以根据二维码 信息获取产品的整个生产过程的信息:农产品的收 获、分拣、评级和包装信息直接和二维码中的识别 码相关联。而产品的生长信息是与园区网格化的地 块相关的,首先利用二维码中的识别码查询该产品 所对应园区网格化的地块(即产品来源),然后利 用这个地块可以查询到该产品的种苗、物候、施肥、 施水、病虫害等信息,如图 3(d) 所示。

《四、系统开发与实现》

四、系统开发与实现

《(一)运行环境 》

(一)运行环境

系统云端、管理者端、生产者端和消费者端的 运行环境分述如下:

(1)系统云端环境。云端硬件最低配置为 2 GB 运行内存,带宽 2 M。云端需要使用 Windows 操作系统,需要 SQL Server 2008 数据库服务器、 IIS Web 服务器支持。

(2)管理者端环境。管理者端硬件最低配置 为 1 GB 运行内存,以及 500 MB 以上的可用硬盘 空间。管理者需使用 Windows 操作系统,需要 .Net Framework 4.5 支持。

(3)生产者端环境。Android 端需要运行 4.0 及其以上版本 Android 操作系统,且具有 GPS 与拍 照功能的手机或者平板电脑,最低 512 MB 运行内 存以及必要的可用存储空间。iOS 端需要运行 iOS 8.0 及其以上版本操作系统的 iPhone 或者 iPad 设备, 以及必要的可用存储空间。

(4)消费者端环境。消费者端需要具有摄像头 拍照功能、能够链接互联网的智能手机或者平板电 脑,同时安装有微信、QQ、支付宝等具有二维码 扫描和识别功能的 APP。

《(二)关键技术实现》

(二)关键技术实现

1. 定位与地图显示

系统所采用的定位功能是建立在移动终端的 GPS模块基础上,接收GPS和GLONASS卫星信号, 并结合网络基站信息进行定位的 A-GPS 定位功能。 在 Android 和 iOS 系统中,移动终端均可以通过 A-GPS 定位技术获得 WGS-84 地理坐标系下的地理 坐标。Openlayers 是开源地图框架构建的数字地图, 可以将上述地理坐标和园区的位置信息和状态信息 显示在用户界面上。Openlayers 是基于 JavaScript 和 CSS 运行在浏览器上的电子地图模块,包含了各 种用于操作地图、图层、数据源、样式的类。其中, ol.layer.Image 类和 ol.layer.Tile 类代表了栅格图层, ol.layer.Vector 类代表了矢量图层,将上述类的对象 插入 ol.Map 类的图层中可以实现图层的控制。另 外,利用 ol.interaction.Draw 类可以方便地实现园区 的绘制功能。但是,Openlayers 只能运行在浏览器 上,因此本系统针对不同操作系统的特性,实现了 地图控件和 Android 与 iOS 本地代码间的交互功能。 在 iOS 系统上,本系统利用了 Web View JavaScript Bridge 开源工具实现 Objective-C 代码与运行在 UI Web View 控件上的 JavaScript 代码进行交互。在 Android 系统上,利用 JavaScript Interface 工具实现 了 Java 代码与运行在 Web View 控件上的 JavaScript 代码的交互功能。

2. 数据网格化

数据网格化是指将管理园区按照实际的需求划 分成规整大小的网格单元,并将它们与卫星遥感栅 格、传感器插值数据等各种不同来源的数据相匹配, 可以达到天空地联动、高精度监控和管理的目标。

数据格网生成技术是通过园区矢量多边形的 外包矩形的西北点坐标为基准点,按照预设的格网 密度生成可以完全包含外包矩形的一系列的数据 格网,然后依次判断这些格网是否在园区的多边 形内或者与其相交,去除与园区范围无关的格网, 保证数据格网是可以完全覆盖园区范围的格网最 小子集。

卫星遥感栅格、传感器插值数据等需要与上 述园区格网进行匹配。对于传感器数据而言,分布 在不同地理位置上的传感器形成传感器集群,设计 统一的数据接口与云端系统进行连接。云端系统可 以利用集群传输回来的数据,进行最近邻插值、双 线性插值、三次卷积法等插值方法进行插值,从而 将其网格化。对于资源卫星遥感数据而言,系统 采用 MODIS 和 Landsat 系列卫星数据反演得到的NDVI、NPP 等数据,其本身即为网格化的栅格数 据,通过数据重采样即可将每一个园区的格网对应 一个栅格值。网格化所采样的插值与重采样等空间 分析方法采用 GDAL(Geospatial Data Abstraction Library)开源库实现,利用 C++ 语言将其封装为动 态链接库。云端系统在接收到新的数据时,自动识 别数据类型及其元数据,调用相关的动态链接库进 行网格化。

3. 预警服务和推送

预警服务与推送技术是指将服务器的预警信息 向客户端进行实时推送,其主要包含预警信息生成 和消息推送两个部分。 预警信息生成是指根据地面田间传感器、资源 卫星遥感等采集的多源数据,结合管理者设置的报 警阈值生成预警信息。

预警信息的数据源包括了田 间传感器和资源卫星遥感两大类。对于田间传感器 而言,各种采集不同类型数据的传感器通过 Zigbee 低功率通信技术与服务器连接,以一定的时间间 隔将数据发送到预警服务模块。对于资源卫星遥 感数据则是通过互联网使用美国国家航空航天局 (NASA)提供的 MODIS 等数据下载 API 遥感数据, 再通过 GDAL 开源库对其进行几何校正、辐射校 正、拼接、裁剪等数据预处理,计算 NDVI 等遥 感指标,并推送至预警服务模块。预警服务模块 包含有枸杞等农作物在不同生长期正常生长的环 境变量阈值参数,其阈值分为提醒阈值、警告阈 值和严重警告阈值等。例如,预警服务模块为枸 杞在种苗、抹芽、修剪、开花、结果等各个生长 期设定了温度、降水、NDVI 等阈值,当枸杞在 生长过程的某个阶段超出了某个阈值,预警提醒 模块会发送预警信息到推送模块进行推送。另外, 由于某些指标可能在一段时间内连续生成报警信 息,为了避免多次推送,用户可以根据实际情况 设置其报警的频率,也可以根据实际情况忽略某 些预警信息。

消息推送技术是利用互联网将预警信息推送 至系统的客户端。为了保证预警信息推送的实时 性,本系统利用 TCP(Transmission Control Protocol)协议使服务器与客户端一直保持长连接,对 于生产者的 iOS 端而言,由于系统的限制,需 要利用苹果公司的推送服务对客户端进行数据推 送,而对于生产者的 Android 端而言,本系统采 用 MPush 开源推送模块。如果云端和生产者端的 连接中断,则系统在提示用户的同时,采用“心跳” 机制不断尝试重新与服务器握手连接。上述方式 可以在有网络的状态下始终保持客户端的在线状 态,使得云端所产生的预警信息可以及时有效地 推送。

4. 二维码关联和追溯

二维码关联和追溯是实现农产品全流程的追溯 体系中重要的环节。可追溯的农产品都会附有产品 识别码,该识别码采用一定的规则进行编码,并利 用蓝牙打印机进行打印,当消费者扫描上述二维码 时,系统需要按照一定的方式提取农产品的全流程 生产信息,在上述流程中主要包括识别码编码方法、 蓝牙打印技术和扫码追溯技术等。

(1)识别码编码方法。本系统的编码原则是 利用较小的编码长度匹配全部相关的数据库信息, 且保证编码的唯一性。本系统所采集的本底环境 信息、生长状况信息、分拣评级信息都需要编码, 而农产品的识别码是需要生成二维码并依附在农 产品之上的,该编码包含的信息量最大,也最为 重要。以枸杞为例,农产品经过分拣后其产品的 性质已经固定,因此农产品识别码在分拣后实时 生成,分拣后的评级、包装等信息也依附于此农 产品识别码。农产品识别码共 15 位,由分拣时间、 操作人员编号、分拣编号组成,如图 5 所示。其 中,分拣时间采用两位的年份和三位的儒略日(年 积日)的形式表达,操作人员编号采用七位编号 表达,分拣编号采用三位的从 001 开始的顺序号 表达。

《图 5》

图 5 农产品识别码编码规则

 

(2)蓝牙打印技术。由于系统的二维码需要在 分拣时打印,因此需要使用适合野外的打印机。蓝 牙打印机外形小巧,携带方便,可连接 Android 和 iOS 移动终端在野外实时快速的打印。本系统采用 美国 Epson 有限公司指定的 ESC 指令集进行数据 传输与打印机控制,利用蓝牙连向打印机传送二进制码,可以将手机生成的二维码图片传输到打印机 进行输出。

(3)扫码追溯技术。消费者对二维码进行扫描 时,系统首先会查询到该产品的分拣、评级、包装 等信息,分拣信息中包括农作物摘采的网格编号, 利用该网格编号可以查询到该地块农作物的生长 环境、作物历等各种信息。

《(三)应用示范》

(三)应用示范

本研究在阿里云服务器、魅族 MX6、iPhone、 iPad 等多台服务器与移动设备上调试并部署了上述 农产品质量安全追溯系统,在 2017 年间与宁夏大 地生态有限公司开展合作,并在宁夏回族自治区中 卫市中宁县枸杞园区进行了应用示范。该地区地处 黄河两岸,为内蒙古高原和黄土高原过渡带,属北 温带大陆性季风气候区,昼夜温差大,其独特的地 理气候条件使得该地区的枸杞具有较高的品质,在 全国拥有很大的销量。因此,在中宁县的枸杞园区 开展其质量安全追溯体系建设的示范工作具有重要 的意义。

在 2017 年的示范应用过程中,系统的应用覆 盖了从耕地、种苗、抹芽、灌溉、修剪、除草、分拣、 评级、包装、销售等整个枸杞生产销售流程,最终 通过了现场检查和项目验收。示范应用表明,该系 统能够基本满足管理人员、生产人员和消费者的需 求,在农产品生产的信息化、智能化方面取得了新 的突破,一定程度上保证了枸杞质量安全,具有较 好的应用示范价值。

《五、结论与展望》

五、结论与展望

本研究利用互联网技术、物联网技术和地理信 息技术,融合资源卫星、地面传感器、人工采集等 多源数据,结合空间数据网格化方法,以枸杞为例, 研发了一套从生产、收获、分拣、包装到销售全流 程的农产品质量安全追溯系统,并以宁夏枸杞园区 为例进行了实践,验证了系统的可行性与有效性。 主要结论如下:

(1)实现了可自定义不同网格大小的农产品网 格化管理及其产品追溯功能,因此产品追溯的精确 度可以随着网格尺度变化,从而实现了包括宽度、 深度和精确度三个维度的食品可追溯体系。

(2)软件结合了资源卫星遥感数据、气象数据、 田间传感器以及生产者端录入的“三控”信息数据 等多源数据,有效地对农产品的生产、收获、分拣、 包装到销售全流程进行追溯。

(3)系统利用资源卫星遥感数据、气象数据与 田间地面传感器等多源数据,实现了可自定义预警 阈值的预警推送功能,帮助管理者和生产者对农产 品的生长环境和长势进行实时监控与预警,可提高 农产品的生产质量和效率。

尽管基于网格化管理的农产品追溯系统具有上 述优点,但目前的系统依然存在诸多需要改进之处。 一方面,目前系统业务流程和“三控”信息采集与 编码系统仅仅是针对枸杞这种特定经济作物的,未 来针对粮食、蔬菜等更多作物,甚至是牲畜养殖和 水产品等其他农产品的质量安全追溯业务,还需要 研究建立国家层面统一的、标准化的追溯标准;另 一方面,目前系统监测与预警功能仅利用资源卫星 遥感、物联网数据对农作物长势进行监测与预警, 未来在县、市、省甚至国家等大尺度区域开展的监 测、分析和预警,则可以进一步增强生产者对整个 市场全链条的了解,从而更加科学、有的放矢地对 农产品生产和销售进行调节。