当前位置:首页 期刊杂志

基于NFC与GeoML的地矿数据采集系统

时间:2024-05-04

黄 挺 刘 刚 张志庭 何珍文

(中国地质大学(武汉)计算机学院 湖北 武汉 430074)(中国地质大学(武汉)智能地学信息处理湖北省重点实验室 湖北 武汉 430074)

0 引 言

信息产品是现代地质与地矿调查工作的主要成果,关系到国家的经济发展,不单单是国家经济建设的重要基础,而且还是经济发展的先行者,在国家与社会的发展中有着难以取代的战略地位和作用。地质与地矿调查工作在近几十年来的深入挖掘与探究,已经有了一定的成果,但是随着科技的发展,传统地质工作急需新的技术尤其是信息技术的辅助与支撑。

野外地质数据采集系统作为地质信息系统中重要的部分,是开展地质研究的基础,其质量直接影响解释结果与客观实际的接近程度[1-7]。野簿记录是过去地矿工作所采用的主要形式。地矿人员将采集到纸质数据带回去并对其进行数字化成为电子文件或将其存入数据库中。通过纸质数据与原图进行比较检查,具有记录内容随意、格式不规范以及使用不方便等缺点。数字化过程繁琐也会降低数据采集的质量和准确性,容易存在数据质量问题,难以满足地学定量化和地矿信息化的要求[7-10]。

人们针对这些问题,提出了利用电子仪器来进行数据采集,但是初期这些设备笨重难用。后又使用PDA掌上电脑,但也存在系统本身易用度不足、扩展性弱、开发困难等问题。随着移动技术的发展以及智能手机的普及,有一些基于Android的数据采集系统已经有所应用,但是在地矿领域的相关应用较少。目前少有的几种地矿数据采集系统在野外离线模式下要进行数据的传输共享依旧是困难重重,并且地矿数据采集人员将数据传输到服务器,当数据重合时往往采用覆盖这种不合理的方式,缺乏一种有效合理的同步机制来实现数据的汇总。

针对地矿数据采集工作繁琐、效率低、野外数据传输共享不方便、数据汇总不合理等问题,本文研究开发了一个能够适应地矿采集工作、功能完善、延展性强、适应性强、简单易用、处理过程有效合理的地矿数据采集系统。本系统在Android平台上,实现了基于NFC与GeoML的地质工作数据采集、浏览、传输以及管理。结合北斗定位系统,提高地质数据的位置精确性和安全性,采用移动端进行数据的采集、浏览和展示保证了地矿数据采集的高效性,利用NFC与GeoML实现数据的传输共享与处理,缩短了数据更新周期,保证了数据传输的安全性、高效性以及合理性。

1 关键技术

1.1 NFC传输

NFC传输是一种近距离无线通信,也称为近场通信,由非接触式射频识别(RFID)演变而来,其基础是RFID及互连技术[11-14]。NFC是一种短距高频的无线电技术,在13.56 MHz频率运行于20厘米距离内[11-12,14]。其原理非常简单,根据主被动关系可以划分为主动与被动两种交换数据的模式。被动模式下进行数据传输目标设备不必产生射频场,主动模式下两者都要产生射频场来进行数据的交换。

NFC通常采用集成芯片的方式将其整合到设备中,设备之间只要相互接触便能够建立连接,现主要应用于移动支付、电子公交、门禁以及某些特定领域的文件、图像、视频、同步处理等。

利用NFC技术来实现离线数据传输的优势在于:

(1) 近距离无线通信。传输距离在0.2 m范围以内,一次只允许两台设备进行连接传输,采用硬件安全模块加密,有效保证数据传输的安全性。

(2) 产品渗透性高。随着基于NFC的移动支付、电子门禁等应用的普及,目前主流智能手机以及大量的可穿戴设备都支持了NFC功能。

(3) 传输建立时间快。建立连接的时间不超过0.1 s,而蓝牙建立连接需要5 s左右,这也是为什么NFC能在移动支付、电子公交等领域进行应用,蓝牙却无法适用的重要原因。

1.2 GeoML同步协议

GeoML同步协议采用XML的标准规范设计,并借鉴SyncML协议所采用的标签定义规范以及设计思路,通过GeoML消息来处理客户端和服务器端之间的消息交换,其本质上是SyncML协议的一种改进。

SyncML(Synchronization Markup Language)作为一种信息同步标准协议,与所处的平台没有关系。简而言之,就是采用SyncML能够在任何的程序或者设备上获取到一致的数据,其本身是一种开放的标准,能够在兼容的设备、网络和程序中进行数据的同步处理操作。SyncML的根本目的就是通过这种开放标准实现与发展出一个能够广泛在相互兼容的设备、网络、程序之间进行普通的、单一的数据同步协议。

SyncML同步协议最主要的组成部分如下:

(1) change log:SyncML采用的一种消息跟踪机制,通过这种机制来处理服务器端与客户端的数据修改与信息交换问题。

(2) Map operation(操作的映射):同步操作在服务器端与客户端的对应的数据库中每一条数据元素都定义一个唯一的一个标识码(IDS),当进行数据操作时,如果IDS是不一样的,就需要在服务器端留存一个ID对应的映射,以确保客户端与服务器端之间的数据交换一致性。

(3) Sync anchors(同步锚):同步初始化时会发送最后一次和下一次同步的锚,通过这种方式,在服务端和客户端交换各自的同步锚,接受设备必须保存同步锚直到下次同步。

(4) Confict resolution(冲突解决方式):冲突解决策略是SyncML同步机制的最基本的功能,也是同步机制的根本。在确认客户端与服务器端之间的数据产生冲突后,服务器端将通过状态消息码以及通知功能来告知进行数据同步的客户端,令其定义冲突解决方案。

(5) Security(安全性):SyncML定义了服务器层、数据库层和对象层三种层次来进行用户验证机制,使用SyncML协议必须支持MD5验证。

(6) Device capabilities(设备性能):同步的客户端须得在第一次进行数据同步或在设备的静态信息产生更新之后将设备得相关信息传递到服务器端。此后的每次数据同步请求服务器端都要接受和处理设备信息。

2 系统设计

本系统的架构为层次化的架构设计,系统架构图如图1所示,可以将其分为4个层次,即接口层、业务逻辑层、数据访问层和数据库层。

接口层主要负责提供数据传输的接口,它将利用业务逻辑层的功能来选取需要的数据或者要保存的数据,然后通过数据访问层获取数据或者插入数据。本系统的两个重要的接口分别是NFC离线数据传输分享接口和地质云的GeoML同步协议传输。

业务逻辑层是整个系统的核心,主要用于实现系统业务的各个流程,统筹各个功能模块并实现相应的业务逻辑[15-17]。业务逻辑层包括数据录入、GIS地图的显示与操作、地质实体投影、北斗定位等。

数据访问层负责数据的存储与管理,也可以称为Dao(Data Acess Object)层。业务逻辑层调用数据访问层来进行数据操作。本系统基于ORM框架来实现数据的访问,统一将关系数据库中的表视作对象,把数据存取操作集中到Dao层,能够更清晰合理地管理软件开发过程的代码和逻辑。

数据库层包含SQLite数据库以及文件系统,SQLite数据库负责管理用户数据、采集人员录入和从其他设备传输过来的结构化数据,文件系统负责管理视频、录音、图片等非结构化数据。

图1 采集系统系统架构图

3 功能模块设计

该系统采用了模块化设计,主要包含用户管理模块、北斗GIS地图模块、数据录入模块、数据传输模块、地质云管理模块。北斗GIS地图模块负责客户端的定位、GIS地图、实体投影等;数据录入模块包括数据的录入、查看、修改;数据传输模块包含移动端之间的NFC离线数据传输共享以及移动端与地质云的GeoML同步协议传输;地质云管理模块即服务器端,负责数据汇聚和管理。如图2所示。

图2 系统功能模块图

3.1 用户管理模块

在地矿数据采集工作中,保证数据的安全至关重要,防止非法用户查看、修改数据就成为了系统所需要提供的基本安全性保证[15]。用户管理模块的主要作用是确保用户的合法性,用户在进入地矿数据采集系统之前必须进行身份验证。

用户管理模块中,可以划分为两个子模块,即用户注册模块和登录模块,对应了两个界面,即用户注册界面以及登录界面。用户注册需要验证相关的个人信息以及单位信息,登录系统需要验证密码以及用户部分信息。

3.2 北斗GIS地图模块

北斗GIS地图模块利用北斗卫星导航系统进行目标地的定位与位置信息获取。北斗卫星导航系统是由空间段、地面段和用户段三部分组成。其可在全球范围内全天候、全天时为各类用户提供高精度、高可靠定位、导航、授时服务,并具短报文通信能力,已经具备区域导航、定位和授时能力,定位精度10米,测速精度0.2米/秒,授时精度10纳秒[18-22]。

北斗的定位原理:首先,移动设备发送信号到卫星;然后,卫星转发到总控站进行解算,总控站把结果转发卫星;最后再回传客户端。操作延迟相对高,但是定位精度稍微高一些。在得到了定位信息之后,系统利用GIS地图对所在位置进行实时显示。

GIS地图基于百度地图开发。百度地图具有功能全面、服务稳定、性能优异的特点[23],调用百度地图服务必须先获取其Map API Key。本系统采用的百度地图包含普通模式、跟随模式、罗盘模式,用户可以根据需要选择合适的模式。

3.3 数据录入模块

对地矿数据信息进行编入和保存,包含多张与地矿信息相关的数据表。与北斗模块配合,能实时可视化地进行数据录入。系统基于Android操作系统自带的SQLite数据库,采用对象关系映射(ORM)的模式,利用开源Android数据库LitePal框架实现数据的持久化存储。本选题数据录入主要包含井信息表、井斜轨迹数据表、地层分层表、矿区信息表、矿区范围表、钻孔信息表。地矿数据库表清单如表1所示,以井信息表为例的录入数据项如表2所示。

表1 地矿数据库表清单

表2 井信息表结构

3.4 数据传输模块

该系统的数据传输模块包含两个部分,分别是移动端之间的NFC离线数据传输共享以及移动端与地质云的GeoML同步协议传输。

NFC近场传输能够近乎完美地契合地矿信息管理系统离线传输方式的需求。当Android系统检测到NFC tag时,它会利用Tag Dispatch机制进行处理。Android接受到NFC tag中所传来的地矿数据信息Message后,会解读message中的信息,并且建立不同类型的Intent对象,然后搜索该Intent对应的程序,即本文客户端的地矿数据采集程序。接下来该程序将会获取数据并将数据存入数据库中并更新。

移动端与地质云的在线传输主要是将非敏感海量分散的地质数据,通过Internet传输给地质数据服务云。基础协议采用HTTP协议,服务形式为REST(Representational State Transfer),同步协议采用GeoML协议。具体客户端将要同步到云端的数据从数据库中提取出来并将其存放到XML文件上,使用HTTP协议通过Internet将XML传输到云端后,服务器将会解析XML中的数据,并利用GeoML同步协议将其依次存放到服务器所对应的数据库中。

为了提升用户体验感,本系统采用了多线程技术来解决主线程与工作线程之间的通信问题。Android多线程包含Handle机制和AsyncTask机制。Handle机制一般用于实现某一个定时任务或者用于线程之间的数据传输;AsyncTask机制使用线程池,能够避免不必要的线程创建和销毁。本系统通过使用多线程技术能够在用户进行数据传输时进行实时的反馈,并更新UI。例如可以让用户清楚是否连接成功、数据传输的百分比、数据传输是否成功等。

3.5 地质云管理模块

在服务器架构体系研发中,采用REST架构体系进行设计。REST即表述性状态传递,是一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。通过url来设计系统的结构是开发系统过程中的一种新的思维方式。根据REST,每个url都代表一个resource,而整个系统就是由这些resource组成的。

基于此架构服务器端能对各移动终端的数据进行汇聚和管理。所采用的同步协议即上文所述的GeoML协议。

4 运行效果

本系统基于Android平台与服务器端进行了相关的安装测试。通过大量的测试,该系统界面简单清晰、操作方便、定位精准、传输快速、性能稳定、表现良好,经地矿人员试验后反响较好。客户端的主界面与用户界面如图3所示,数据录入与修改界面如图4所示,数据的汇总与查看如图5所示,服务器端数据展示界面如图6所示。

图3 主界面与用户界面

图4 数据录入与修改界面

图5 数据汇总与查看界面

图6 服务器端数据展示界面

5 结 语

本系统针对地矿数据采集工作繁琐、效率低、野外数据传输共享不方便、数据汇总不合理等问题,采用当前实用性较高的NFC传输技术与GeoML同步协议设计并实现了地矿数据采集系统,包含用户管理模块、北斗GIS地图模块、数据录入模块、数据传输模块、地质云管理模块。基于移动互联网与NFC技术实现了地质地矿数据采集、传输、管理;基于北斗系统和GIS地图实现了友好的交互浏览界面;基于GeoML同步协议实现多端地质数据的同步共享。该系统能够更新传统的野外数据采集流程,具有界面清晰、操作简便、定位精准、数据传输共享方便、交互性好等特点。本文的设计与研发有效地结合了移动互联网与地矿勘察信息化,方便了地矿数据采集的获取与传输共享,有助于推动地矿勘察信息化的发展。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!