基于开源软件的空间数据库系统开发平台的研究
2019-11-27远俊红王小丽
远俊红,王小丽
(1.云南林业职业技术学院,云南 昆明 650224;2.云南开放大学,云南 昆明 650224)
0 引 言
空间数据库是指在地球表面某一范围内与空间地理相关、反映某一主题信息的数据集合,是一类以空间目标作为存储对象的专业数据库,是地理信息系统的核心和基础。以地球表面空间位置为参照的自然、社会和人文经济景观数据,被称为空间数据[1]。
2013年8月,国家林业局出台了《中国智慧林业发展指导意见》,标志着我国林业信息化由“数字林业”步入“智慧林业”的发展新阶段。支撑智慧林业大厦的五大技术——云计算、物联网、移动互联网、大数据、智慧城市[2]也在不断发展,而数据库技术正是这五大技术的基础。空间数据库作为数据库学科的一个分支,经历了从文件系统、文件+关系数据库、空间数据库引擎+关系数据库到空间数据库管理的演变过程[1]。
国内针对地理信息系统方面的研究,基本上集中在空间数据库的商业产品应用。信永波等采用ArcGIS Diagrammer工具建立UML模型,完成了泥石流数据库的设计[3]。周英基于ArcEngine组件技术、Access数据库引擎、.net技术和C#面向对象的程序语言,开发了雅安地震灾区环境信息空间数据库管理系统[4]。郭雪采用C/S体系结构,以C#为开发语言,Oracle数据库、ArcGIS Engine为嵌入式组件,开发了农村土地确权管理系统[5]。胡莉烨设计了基于ArcGIS的海洋生态环境监测系统,实现了用ArcGIS Engine对海洋生态环境的监测要求[6]。谢轩等以Internet为系统平台,运用WebGIS技术、ASP网络编程技术、网络数据库技术以及人工智能技术等现代化信息系统开发手段,设计了基于WebGIS的水稻病虫害预警信息系统[7]。目前,基于空间数据库开发的应用大多采用商用空间数据库或空间数据库引擎,对于开源空间数据库的研究较少。例如,王洪斌等将PostgreSQL空间数据库和SharpMap控件应用于遥感影像管理[8];赵仁辉等以PostgreSQL/PostGIS为空间数据库、MapServer为GIS引擎、OpenLayers为客户端搭建系统平台,对多级地图缓存和基于WebService的模型库等关键技术进行了分析与描述[9]。当前,基于全开源软件的空间数据库系统开发平台更少。国外关于开源空间数据库方面的研究主要集中在查询优化[10]、数据库拓扑关系验证[11]等方面,对于开源空间数据库在行业里的应用也比较少。
随着开源组织的成立、开源成熟产品的推出,目前开源已经成为一种主流趋势,从操作系统(Linux对Windows)、数据库系统(PostgreSQL、SQLite等对ORACLE、SQL Server等)、编程语言Python、Java对.Net到.Net开源内核代码,都说明开源势在必行。
1 研究的必要性和主要内容
基于空间数据库的研究背景和发展趋势,针对开源空间数据库管理系统开发,笔者总结出以下特点:
(1)开源软件优势在于成本低、完整的源代码开放、高度支持OGC等标准和高度可扩展;
(2)通过现有空间数据库产品在数据类型、遵循的规范、存储模式、空间索引、空间操作以及地图投影等方面的对比[1],作为开源空间数据库的代表,PostgreSQL在支持数据类型、空间索引和空间操作方面具有相当突出的优势;
(3)Linux相对于Windows而言,作为服务器部署更安全、更简单,所需要的配置个人电脑很容易达到;
(4)在开源操作系统Linux上,PostgreSQL和SQLite的性能比在Windows上要好;
(5)Python语言作为开源的典型代表,支持空间数据处理的库比较多;
(6)“智慧林业”建设和林业信息化的需要。
笔者在开源操作系统Linux或Unix上,搭建了一个基于PostgreSQL或SQLite的开源空间数据库以及对应的空间数据模型扩展PostGIS或SpatiaLite,通过桌面应用平台Quantun GIS与OpenJUMP,利用开源编程语言Python或Java进行数据分析与数据挖掘,为中小型空间数据分析项目提供了一种基于全开源架构的解决方案,为智慧林业建设提供了技术支持。
1.1 主要内容
课题以空间数据库理论为基础,充分利用开源软件成本较低、自由、可扩展性的特性,以开源软件为主要视角,分析从操作系统到桌面应用和编程语言的空间数据库方面的应用,探寻一种基于开源软件的空间数据库系统开发平台,如图1所示。
图1 基于开源软件的空间数据库系统开发平台
重点解决的问题:开源软件支持标准的种类和支持的数据类型;开源软件对于空间数据的采集、存储检索、查询分析、输出与表示以及空间分析函数转化;程序设计语言操纵、分析空间数据的模块调用。
应用、特色和作用:(1)为智慧林业建设提供技术平台支持;(2)开源软件,自由不涉及版权纷争,更好地遵从标准,技术更新快、功能强;(3)为学校在开展空间数据库教学科研提供了一种开源平台。
2 平台搭建及空间数据库系统开发
2.1 平台搭建
平台的搭建需要操作系统的安装和配置、数据库管理系统的安装和配置以及桌面应用软件的安装[12-13]。
2.1.1 第一步:安装开源操作系统
考虑到学习的方便性和平台的实用性,采用在Win10操作系统中以虚拟机的方式安装类Linux操作系统(Xubuntu)。Xubuntu是一个优雅且易于使用的操作系统,附带Xfce,是一个稳定、轻便且可配置的桌面环境。因为Xubuntu安装完成后需要进行更新,默认更新网站都是国外网站,因此需要设置更新数据源为国内镜像,如清华大学、中国科技大学或者阿里云。
2.1.2 第二步:安装PostgreSQL数据库管理系统及其空间扩展PostGis
底层操作系统安装完成后,需安装PostgreSQL数据库管理系统。由于在Xubuntu下PostgreSQL没有图形界面的安装程序,所以需要打开Xubuntu的终端,利用命令行完成安装过程。需要注意,安装需要连接网络。注意事项包括:修改快一点的数据源,如阿里云;使用sudo apt-get install postgresql-version,如postgresql-9或postgresql-10;利用sudo apt-get install postgis安装PostGis;必须在创建的每个数据库中启用PostGis,该数据库才具备管理空间数据的能力。
2.1.3 第三步:安装桌面应用QGIS
选择QGIS 3.4 LTR版本,利用图2的命令进行安装。安装完成后,双击QGIS图标即可打开应用程序。
图2 安装桌面应用QGIS的命令
2.2 基于平台的系统开发应用
至此,基于开源软件的空间数据库系统开发平台已经搭建完成。基于此平台做了两个方面的尝试:一是对于矢量数据(shp)的处理,二是将OSM地图数据存入PostGis数据库,并进行渲染和处理。
3 结 论
研究结果显示,本平台的特色或创新如下:
(1)本课题所研究和搭建的平台从操作系统、数据库、桌面应用和程序语言全部采用开源软件,使得该平台为全开源架构,不同于应用商业产品的开发平台;
(2)开源软件意味着不需要付费,在成本控制方面具有低成本特性。因为开源软件都是社区人士在维护,造就了开源软件的高扩展性,为本开发平台的高扩展性奠定了基础。