基于Node.js和MongoDB实现地理国情样本库系统
2015-10-26牛艳霞马秉斌
牛艳霞,马秉斌
青海省基础地理信息中心,青海西宁 810000
基于Node.js和MongoDB实现地理国情样本库系统
牛艳霞,马秉斌
青海省基础地理信息中心,青海西宁 810000
本文主要论述了如何基于Node.js与MongoDB数据库建立地理国情样本库系统,完成对地理国情普查成果中样本点数据的统一存储、查询和管理,并介绍了系统功能架构及实现。
地理国情样本库系统;Node.js;MongoDB
0 引言
地理国情普查是从地理空间位置分布的角度出发来描述和研究我国国情国力信息的重要手段,是掌握自然资源、生态环境以及人类活动基本情况的综合性、基础性工作。其目的是全面获取各类地理国情信息,并进行综合统计分析,揭示经济社会发展和自然资源环境的空间分布及内在关系,实现地理国情信息对政府、企业和公众的服务[1]。
地理国情样本数据包括遥感影像解译样本数据、地面照片、遥感影像实例等几类数据,这些成果数据一般以独立文件形式存在,由于其数量巨大,且相互之间存在依赖对照关系,通过人工加文件系统的方式很难对其进行有效管理,选择建立一个地理国情样本库管理系统可以更好的管理和存储此类数据,便于后期工作。
1 Node.js与MongoDB简介
1.1 Node.js
Node.js是一个基于ChromeV8引擎建立的服务器端JavaScript运行环境,可以用来快速搭建具有高响应速度和易于扩展的网络应用。
Node.js具有异步I/O,事件驱动、单线程等特性[2],其基于事件轮询的异步响应方式,使得Node.js在响应文件资源读取、数据库查询等请求时,无需等待硬盘I/ O完成,在数据准备好后会通过事件机制通知Node.js进行响应,这种编程模型在处理WMTS服务的海量图片小文件并发请求时可同时满足高并发和高响应的要求,因此,基于Node.js构建的WMTS服务相比传统GIS服务器软件提供的WMTS服务具有先天上的优势。
1.2 MongoDB
MongoDB是目前非常流行的一种非关系型数据库(NoSql),它具有强大、灵活、可扩展的数据存储方式,其功能非常丰富,甚至包括对MapReduce式聚合的支持,以及对地理空间索引的支持。MongoDB是面向文档的数据库,基本思路是将原来“行”(row)的概念换成更加灵活的“文档”(document)模型[3],这种方式可以将文档或数组进行内嵌,用一条记录就可以表示非常复杂的层次关系,非常切合面向对象的编程模型。
MongoDB的GridFS机制可以使得MogoDB可以脱离独立文件存储架构进行大二进制文件的存储,其利用复制或分片机制可以避免用于存储用户上传内容的文件系统出现故障,而且由于GridFS在存储大量文件时不产生磁盘碎片,非常适合本系统中照片和样本影像等海量小文件数据的存储和管理。
2 系统架构
地理国情样本库系统需完成地理国情样本数据的定义、存储和管理,以及感影像解译样本数据、地面照片、遥感影像实例等二进制图片文件在MongoDB数据库中的入库、出库操作和管理,并完成用户验证和授权等安全管理机制的机那里,其具体可划分为样本定义、样本查询、样本管理、用户管理四个功能模块,其系统架构如图1所示。
图1 系统架构图
3 功能实现
3.1 样本管理
样本管理模块主要用于完成地理国情要素中12个一级类、58个二级类、135个三级类的管理,其功能包括新增样本分类、修改样本分类和删除样本分类。在具体实现时,为了保证三个级别分类的归属关系一致,设计为三级联动更新的模式,通过调用Node.js实现的rest服务接口来实现json格式数据的异步传输。
3.2 样本定义
样本定义模块主要用于完成所有地理国情要素分类的地类名称、定义描述、采集要求等属性要素的管理、修改和更新,以及完成地类实景照片、样本照片、解译样本等图片和影像的上传、更新和属性管理。其具体实现为界面UI采用Bootstrap框架进行搭建,前端交互采用jQuery框架和相关插件实现文件的异步上传,服务端利用“jquery-file-upload-middleware”中间件实现文件的上传管理。
3.3 样本查询
样本查询模块主要用于完成地理国情普查工作中所有采集到的样本点数据的查询和展示,其查询方式分为分类编码查询、影像分类查询、影像分辨率查询、照片拍摄时间查询、影像获取时间查询几种,并可以综合几种查询方式以进行组合查询,查询到的结果展示包括样本点详细信息描述,样本照片和样本影像。在具体实现时考虑到入库效率问题,对已经采集到的样本数据通过编写批处理工具的方式实现了集中入库,其最终实现效果如图2所示。
4 结论
地理国情普查样本库系统存储和管理的具有连续时间特征且具有对照关系的地面照片和遥感影像数据可作为遥感影像解译工作的依据,可以为遥感影像解译者建立对相关地域的正确认识提供重要支持,并可在解译结果的质量控制方面发挥重要作用。同时,地理国情普查样本库系统的建立以一种高效的方式完成了地理国情查成果中样本点及相关数据的统一管理,有利于后续地理国情普查工作的开展。
图2 地理国情普查样本库系统
[1]国家测绘地理信息局.地理国情普查试点方案,2012.
[2]朴灵.深入浅出Node.js[M].北京:人民邮电出版社,2013.
[3]程显峰.MongoDB权威指南[M].北京:人民邮电出版社,2011.
[4]谢小惠.福建省地理国情普查试点成果建库实践测绘与空间地理信息.2014-06-25.
TP3
A
1674-6708(2015)137-0131-01