基于React Native的农业气象自动化观测系统国家级平台移动应用APP设计

2019-11-05 13:14沈超曹婷婷王一萌阙艳红李文雅
农业与技术 2019年18期

沈超 曹婷婷 王一萌 阙艳红 李文雅

摘 要:针对农业气象观测中无法实时监测数据完整性及人工观测资料存在误差的问题,分析了业务应用的功能需求及应用特点,建立了一套农业气象自动化观测系统国家级平台移动应用APP软件,通过React Native框架实现了开发协同,提高了开发效率,实现了农业气象自动化观测人工资料及时上传、作物长势自动获取的目标。

关键词:农业气象观测;React Native;长势速取

中图分类号:S163

文献标识码:A

DOI:10.19754/j.nyyjs.20190930052

引言

我国是农业大国,农业发展是我国国民经济发展的基础,提高农业气象观测自动化水平对提高农作物产量实现农产品增产增收具有现实意义[1]。

中国气象局综合观测司于2016年下发的《关于组织开展农业气象观测自动化试点工作的通知》(气测函〔2016〕46号文),中国气象局气象探测中心开展了一系列农业气象自动化观测试点工作,经过2a多的持续建设,现已实现台站端全部试点厂家仪器设备的原始观测数据采集、省级中心站针对原始观测数据的作物生长状况判识、原始观测数据及判识结果按照国家气象信息中心提供的编码格式生成农业气象观测XML数据上传至国家级的全流程业务体系建设。因现有传输方式不规范造成数据传输链路节点过多,造成数据传输不及时、上传信息不对称等问题,所以,亟需建立一套统一的农业气象自动化观测数据收集存储系统,实现原始数据来源可追溯、产品数据去向可追踪,及可对所有监测站点的作物生长发育分析统计的平台显得至关重要。

通过建立农业气象自动化观测系统国家级平台,可实时监控农业气象观测XML数据的传输情况、及时掌握作物生长状况对开展农业气象科学研究及作物产量评估提供数据支撑。

1 总体设计

农业气象自动化观测系统国家级平台移动终端APP是一套实时监控农业气象观测XML数据传输情况、获取作物长势情况及查询作物发育期信息的辅助性手机端应用工具。具有安卓和IOS两个版本,能够满足不同用户需求。主要功能包括监控预警、判识资料上传、长势速取、信息检索等。采用跨平台的基于React Native框架进行系统架构设计开发[2]。平台通过数据资源服务器获取观测资料,经解析、处理、分析、质控等操作后,存储至中心数据库,并按照需求进行分发上传。结合农作物发育期监测的需求,移动终端APP提供资料上传、长势提取、信息查询、产品生成以及站点预警监控等功能,能够实现自动将站点设备异常情况推送至手机端特定用户,系统在设计过程中考虑未来二次开发需求,在满足现有业务需求的同时,预留接口,满足未来业务功能扩展及升级需求。

1.1 系统网络结构

系统采用分布式部署方式,根据需求将原始数据处理软件、数据库及Web后台软件部署在不同服务器中。

数据中心主要指按照国家气象信息中心提供的编码格式生成的农业气象观测XML数据,经解码入库后供用户调用。农业气象自动化观测系统国家级平台移动终端主要调取数据包括设备上传的设备状态、作物图片及作物发育期数据。

数据获取主要指数据处理软件获取设备状态、作物图像及长势信息并存储在数据库中。

数据库服务器主要保存从数据中心获取的所有数据信息。

APP后台软件主要完成根据用户发送的查询条件,查询数据库获取数据信息并返回给手机APP应用软件;并将手机端用户上传的作物发育期资料保存到数据库中。

用户端是用户通过使用安装有APP的智能手机,对设备状态、预警信息、作物长势等信息进行查询,或将人工监测数据与拍摄的图像上传。

1.2 安全机制

1.2.1 服务器管理机制

对服务器建立域用户,授权用户方可进入。由管理员来管理服务器的操作系统与应用系统,保证系统与数据的安全。

1.2.2 网络防火墙

防止Internet上的攻击,保护各服务器不受来自外部的攻击;防止内部非授权户从内部其他网端对服务器的攻击,保护服务器不受来自内部的进攻。保证服务器与整个网络的安全。

1.2.3 严格的权限设置

对于登录本系统的用户,必须经过系统用户验证与密码验证,确认为本系统用户后,方可进入系统。用户角色分为国家级普通用户、系统管理员、省级普通用户、一般用户,根据不同用户有不同的操作权限与操作内容,以保证系统的安全性。

1.3 技术架构

根据平台的业务逻辑,系统总体自上而下分为应用层、服务层和资源层3个层次。

1.3.1 应用层

应用层即为表现层,通过APP界面,用户可登录系统,系统依据用户权限为用户提供查询、分析、预警等功能。通过调用服务层接口为用户提供相应的应用服务。

1.3.2 服务层

服务层是应用层与资源层之间的媒介,由中间应用组件、服务进程等构成,为资源层和应用层提供通信、目录、权限、复制、检索、服务定制管理和数据传输等服务。该层次通过对内部数据信息的调用,构建各个应用,提供客户端数据和服務接口,客户端应用最终都转换为对这些接口的调用,并形成面对最终用户的界面。

1.3.3 资源层

资源层与服务层共同构成支撑应用层正常运行的环境。资源层通过成熟的中间件、数据库技术和技术架构,对数据资源进行收集、处理、存储及管理。

1.4 React Native框架

React Native是目前主流的移动端跨平台框架,可满足在Android 和 IOS平台下的移动应用开发工作[3]。其优点如下。

1.4.1 热更新

对于IOS开发者来说,审核周期至少1周,每开发迭代一个版本时都必须通过IOS的审核机制进行审核,若采用热更新的方式,可绕过审核机制。因此,React Native框架所具有的热更新能力是显而易见的。React Native的热更新功能,主要是通过更新Bundle文件来实现。对于一个手机端应用来说,Bundle文件即为要加载的前端内容。只需更新Bundle文件,即为更新了整个APP,因此只需做一个后台服务,其具有上传下载Bundle文件的能力。然后在客户端每次打开的时候向服务端发送请求,看是否有最新的Bundle文件,并进行下载替换即可。

1.4.2 代码复用率高

目前开发人员的成本是越来越高,因此代码的可复用率关系着企业的开发成本,同时代码平台的无关性也深受每个前端开发人员的欢迎。而React Native的Android版本和IOS版本的代码可80%以上共用,大大节约了开发时间和开发成本,因此,React Native框架成为主流开发框架是必然的。

1.4.3 开发效率高,漏洞修复快

由于React Native具有代码复用率高和热更新的优势,所以其开发效率也较高。另外,React Native框架使用的开发方式不同,无需每次修改都要通过编译安装查看效果,且通过采用模块化的开发方式,大大提升了开发效率。并且可实时更新Bundle文件,达到每次启动APP应用均可以使用最新版本,实现可快速修复漏洞的目的[4]。

2 功能设计及实现

农业气象自动化观测系统国家级平台移动终端APP主要针对全国作物长势情况及站点设备运行情况进行监控分析,同时满足资料上传、作物长势速取等服务。主要实现对设备及数据的状态监控、数据与设备异常监控及预警、人工观测数据上传、作物长势提取以及作物发育情况产品生成等功能。具体功能结构如图2所示。

2.1 用户管理

用户通过农业气象手机应用APP登录农业气象自动化观测国家级平台,首页主要完成将用户权限下所有站点展示在地图中,并显示系统的各个功能。通过个人中心可以对用户基本信息及密码进行修改,当进行密码修改时输入旧密码与2次新密码,确认修改后调用后台接口保存新密码至数据库。系统首页如图3所示。

2.2 运行监控

运行监控主要实现以列表形式展示农业气象观测XML数据传输情况,设备状态情况,数据状态情况,文件完整度情况。如图4所示。

2.3 故障监控

故障监控是以列表的形式实时展示各个站点的到报情况及数据质量情况。包含数据传输,设备状态、数据质量3类信息。

数据传输情况是实时展示所有站点近24h数据到报情况及到报率。点击查看详情,可展示缺报的时刻点。

设备状态异常展示当天所有站点的设备传感器状态异常情况。包括站点编号,站点名称,故障要素、故障情况等。原则上一个异常信息一条记录。

数据质量异常展示当天某站点的农业气象观测XML数据不完整或格式不符合要求。包括站点编号,站点名称,监控时间,异常情况等。

2.4 预警提示

预警提示是指系统检测到站点发生数据传输故障、观测设备故障、通讯链路中断或数据质量异常等情况后,通过APP后台软件推送及手机短信提醒的方式向用户推送故障信息。用户进入预警提示界面后可查看用户权限下所有异常站点的名称、预警观测时间及报警内容等预警提示信息,且点击“标为已读”可将提示信息标记为已读存储在数据库中。

2.5 资料上传

资料上传主要实现手机端收集作物发育期资料的功能。用户通过手机应用APP可上传实时拍摄的作物图片或读取手机相册中图片,同时添加该作物发育期具体描述信息,包括监测时间、发育期、持续天数、详细描述等,点击上传调用APP后台软件接口将资料上传至中心服务器。如图7所示。

2.6 产品生成

产品生成主要完成各站点作物长势数据各年份及各发育期的统计分析查询。按年份查询时,查找过去历史年份中的每个发育期的站点作物长势数据(发育期各阶段起止时间、持续天数、平均高度、平均密度、平均盖度)信息、站名、站号、所属省份、观测年份、作物名称等,可展示近3a、近5a、近10a或自定义时间范围的统计分析结果。

按发育期查询时,查找时间范围内(年份选择)的各个发育期的站点作物长势数据(发育期各阶段起止时间、持续天数,平均高度,平均密度,平均盖度)信息、站名、站号、所属省份、观测年份、作物名称等。

2.7 信息查询

信息查询主要完成数据信息、故障信息、作物生长图片及发育期信息的查询。

数据查询主要根据用户选择的作物名称、发育阶段及时间范围等查询条件,手机APP将查询命令发送至后台软件,后台软件通过查询数据库将满足条件的站点作物长势数据(发育期各阶段时间、高度、盖度、密度)信息,包括省份、站点编号、站点名称、监测时间、发育期名称、天数、开始时间、持续天数、高度、密度、盖度等数据返回给手机端。 如图9所示。

故障查询主要以列表形式展示满足查询条件的用户权限下各个故障站点的数据传输、设备状态或数据质量等异常信息。

图片查询主要以列表方式展示满足查询条件的某时间段内的某站点图片长势信息,包括台站级用户上传的站点图片长势信息。包含图片及对应判识信息。以缩略图排列方式展示。点击缩略图展示原始图片及相应生长特征信息。

2.8 长势提取

长势速取主要完成通过识别图片直接获取作物生长发育期信息的功能。用户通过手机APP实时拍摄作物图片或选取手机相册中图片,点击上传,国家级平台判识软件经判识后确认拍摄作物,相关判识信息以弹窗形式返回至移动终端,如果用户需查看识别后的作物发育期详细信息,则点击识别结果进行查看。

3 结论

综上所述,本文通过农业气象自动化观测国家级平台的建设需求,深入分析探讨了移动终端APP的设计思想,并通过使用React Native框架实现代码的可复用,提高了开发效率。并根据功能需求,完成了一套可实现实时监控原始数据传输情况、作物长势情况及作物发育期信息的手机端应用软件,提高了农业气象观测效率,提升了气象观测易用性水平,推动了農业气象观测智能化进程。

参考文献

[1] 于涛.新时期地面气象观测对农业生产的意义及完善措施[J].现代农业科技,2019(9):178-180.

[2]瞿文政,许志明,王嘉茵,等.一种基于React Native框架的换宿系统实现方法[J].计算机技术与发展,2019(29):211-215.

[3]严新巧.基于移动开发现状探讨React Native[J].电脑知识与技术,2016(11):76-82.

[4]焦锋.React Native在APP开发中的应用研究[J].数学技术与应用,2017(7):109.