土地适宜性分析的数据处理技术框架及其构件研究
2017-03-15文琴罗飞曹亮
文琴++罗飞++曹亮
摘 要 现在对土地适宜性分析的需求日益复杂化、多样化,传统的将数据与GIS技术相结合的土地适应分析方式已经满足不了系统的性能需求。本文针对现有的土地适应性分析的需求,研究分析了一种将NetCDF存储与Spark分布式计算相结合的高性能数据处理方式。我们将数据处理的各个关键步骤分解成标准的构件,针对土地性适应分析我们将分析过程分解为了三个主要的标准构件分别为:数据存储构件是将数据用NetCDF模型进行存储,以便将多数据源数据统一存储,减少数据检索时间,提高数据的存储效率;数据插值构件是利用分布式计算框架Spark对土地适宜性分析中的数据进行并行插值(离散点数据插值为格点数据);每个格点适宜度的计算构件是利用分布式计算框架Spark并行计算每个格点的适宜性等级,以提高数据处理效率。最后以人工草地建植适宜性综合管理系统为例,给出了一个基于Spark及NetCDF构件的实例,研究结果表明将NetCDF与Spark技术应用于土地适宜性分析以及将其以构件的形式进行开发可大大提高分析的效率。
【关键词】Spark NetCDF 土地适宜性分析 构件
1 引言
由于土地适宜性分析中很多模块的分析数据是标准的数据格式,针对这些数据,我们根据以前的积累和经验建立一些标准的构件,构件可以在以后的分析中进行复用,这样很大程度上节约了重新开发所需要的时间,避免了重新开发可能会导致的错误,从而提高了软件开发的效率和软件的质量。而以构件的形式实现软件复用,又被视为是现实可行的主要方法之一。为了提高土地适宜性分析的开发效率和开发质量,本文重点研究土地适宜性分析中重要的三个过程即:数据的存储、数据的插值和每个格点适应度的计算的高性能构件。
在已有的土地适宜性分析研究中,随着土地适宜性分析数据的增多,数据资料存储技术和数据处理技术存有一定的缺陷,在这些研究中基本上利用的都是GIS空间数据存储模型对多样性数据资料进行存储,当数据量增多时,对多样性数据资料进行存取时,存取速度会成为系统性能的瓶颈。对数据进行处理时,数据的执行时间增加且数据执行的效率降低。所以土地适宜性分析的数据存储效率及数据的处理效率较低。因此本文提出将数据处理的各个关键步骤分解成标准的构件,其中在数据存储构件中,利用NetCDF数据模型来存储土地适宜性分析中的数据,以提高数据存储效率;在数据插值构件和每个格点适宜度的计算构件中,利用分布式计算框架Spark将土地适宜性分析中的离散点数据并行插值及并行计算每个格点的适宜性等级,以提高数据的处理效率。
2 土地适宜性分析
2.1 技术架构
采用J2EE体系框架,面向SOA(Service Oriented Architecture,面向服务的体系架构),利用装配的形式搭建系统功能模块,实现常用构件。将土地适宜性分析系统中关键的三个过程:数据的存储、数据的插值和每个格点适应度的计算分别做成构件。由于土地适宜性分析系统中,需要分析的数据是多样的、复杂的。同时通过对GIS空间数据存储模型、关系数据库模型以及NetCDF模型的数据存储效率进行分析,得知NetCDF的数据存储效率相比于其他两个存储模型具有明显的优势,因此在数据存储构件中选用NetCDF数据模型来表示土地适宜性分析中的数据,使用统一的格式对其进行表示。
由于分布式計算框架Spark是一个基于内存计算的集群计算系统,可将中间结果直接保存在内存中,无需进行IO操作,这加快了数据的分析。因此,在数据插值构件和每个格点适宜度的计算构件中利用分布式计算框架Spark对土地适宜性分析系统中的离散点数据插值为格点数据过程和每个格点适宜性等级的计算过程进行并行优化,加快土地适宜性系统的数据处理速度。基于NetCDF数据格式与分布式计算框架Spark的土地适宜性分析的技术架构如图1土地适宜性分析的技术框架图所示。
图1的数据存储过程中的离散点数据和格点数据分别由NetCDF数据模型的表示如图2数据存储构件。数据插值过程的详细描述如图3数据插值构件以及图5中的并行插值部分所示。图1中每个格点适宜度的计算过程的详细分析如图4每个格点适宜度的计算构件及图5的中并行计算每个格点的适宜度所示。
2.2 数据存储构件
土地适宜性分析系统中,主要涉及到离散点数据和格点数据这两类数据,且这两类数据在在进行数据分析时均利用NetCDF数据模型进行表示。离散点数据指的是在研究区域内分布不均匀的观测数据。格点数据指的是在研究区域内经过离散点数据插值后的,分布均匀的数据。数据存储构件的功能主要是将离散点数据和格点数据分别用NetCDF数据模型进行表示。构件的基本思路如下:
首先传入需要用NetCDF数据模型表示的离散点数据或者是格点数据,再利用NetCDF接口进行解码,最后得到以NetCDF数据模型表示的离散点数据或者格点数据,图2为原始数据以NetCDF数据格式表示的数据格式转化过程。
2.3 数据插值构件
在进行土地适宜性分析时,为了能更加准确的计算出研究区域内每个网格点的适宜度,需要将研究区域内的所有离散点数据插值为研究区域内的格点数据,该过程的数据模型转化如图3所示,此过程称为数据插值过程。为了提高土地适宜性分析的效率,利用分布式计算框架Spark对土地适宜性分析中的数据进行并行插值同时将该过程做成一个常规的构件如图3所示,在使用该构件之前需要搭建好该构件所需的分布式计算框架Spark集群环境,构件的基本思路如下:
首先传入需要插值的离散点数据,该离散点数据由NetCDF表示,再根据插值算法,在分布式计算框架Spark集群环境下将离散点数据并行插值为格点数据,其中插值算法是通过外界传入的参数或预置规则进行选择的,该土地适宜性分析系统中利用到的插值算法主要有反距离权重插值和Cressman方法,由于需要处理的数据空间分布的不同,反距离权重插值(IDW)算法提供了两个分支,IDW_Neighbour用于空间分布连续的数据,IDW_Radius运用于空间分布不连续的数据。插值后的中间结果可保存在内存中。
2.4 每个格点适宜度的计算构件
将离散点数据并行插值为研究区域内的格点数据后,需要计算每个格点的适宜度。本文将该过程做成了一个常规构件,在使用该构件之前需要搭建该构件所需的分布式计算框架Spark集群环境,利用分布式计算框架Spark并行计算每个格点的适宜性等级,每个格点适宜度的计算构件(如图4所示)的基本思路如下:
首先传入需要计算的格点数据,格点数据由NetCDF表示,再将每个格点根据事先预定好的适宜性公式,在分布式计算框架Spark集群环境下并行计算每个格点适宜性等级,最终得到每个格点的适宜性等级,画出等值线。整个数据处理流程如图5所示。
如图5所示,首先将计算任务进行分解,然后再将分解的任务分配到不同的处理器上,再在分布式计算框架Spark集群环境下对数据进行并行插值过程和并行计算每个格点适宜度过程。
3 实例研究
本节结合人工草地建植适宜性综合管理系统,给出基于Spark及NetCDF构件的土地适宜性分析研究的实例。人工草地建植适宜性综合管理系统旨在为牧民用户提供特定地段上特定牧草的适宜性分析。
人工草地建植适宜性综合管理系统的开发模型如图6所示。该开发模型是基于Spark及NetCDF构件方式实现的,系统分为草场基础数据管理、草场建植适宜性分析计算、草场建植适宜性询三大模块,其中草场基础数据管理中的概念数据存储利用基于NetCDF的数据存储构件实现,草场建植适宜性分析计算利用基于Spark的数据插值构件和每个格点适宜度的计算构件实现。基于此构件模型的人工草地建植适宜性综合管理系统在实际的开发和使用中发现此构件技术大大提高了软件开发的效率、缩短软件开发的周期和提高软件开发的质量。
4 结束句
为了降低软件开发成本,缩短软件开发周期,提高软件开发效率和软件质量,本文提出将土地适宜性分析中的三个关键的过程即数据的存储、数据的插值和每个格点适应度的计算分别做成三个常规的构件,同时为了优化土地适宜性分析中的数据存储技术和数据处理技术,本文利用NetCDF数据模型及分布式计算框架Spark分别对土地适宜性分析进行优化处理,以提高土地适宜性分析的效率。研究NetCDF数据模型和分布式计算框架Spark为土地适宜性分析系统的数据存储技术和数据处理技术提供较好的理论及实践基础。
参考文献
[1]王想红,刘纪平等.基于NetCDF数据模型的海洋环境数据三维可视化研究[J].测绘科学,2013:59-61.
[2]孙建伟,孙昭晨,陈轩等.NetCDF格式数据的创建及应用[J].交通标准化,2010(226):31-34.
[3]Matei Zaharia 著.Spark大型集群上的快速和通用数据处理架构[D].加州大学伯克利分校,2014:20-24.
[4]陳虹君.基于Hadoop平台的Spark框架研究.[C]四川:电脑知识与技术,2014:8407-8408.
[5]黎文阳.大数据处理模型Apache Spark研究[D].现代计算机(普及版),2015:55-60.
[6]Spark[J/OL].http://spark.apache.org.
[7]许鹏 著.Apache Spark源码剖析[M].电子工业出版社,2015:23-30.
[8]夏俊鸾,黄洁等.Spark大数据处理技术[M].电子工业出版社,2015.
[9]刘文军,李靖等.基于NetCDF数据模型的气象资料存储设计[D].安徽农业科学,2009:1370-1371.
[10]李亚萍著.土地适宜性评价方法的研究[J].现代化农业,2009:30-32.
[11]Lastovetsky A.Parallel Testing of Distributed Software[J].Information and Software Technology,2009,47(10):657-662.
[12]Parveen P,Tilley T.Towards a Distributed Execution Framework for JUnit Test Cases[C]//Proc.of IEEE International Conference on Software Maintenance.[S.l.]:IEEE Press,2009: 425-428.
作者简介
文琴(1991-),女,四川省成都市人。研究生学历。现为宿迁市科技局局长、高级工程师。主要研究方向为气象信息化技术。
罗飞(1977-),女,四川省成都市人。现为成都信息工程大学软件工程学院副教授。主要研究方向为气象信息化技术、数据集成与可视化研究方向的研究。
曹亮(1985-),男,四川省成都市人。现为成都信息工程大学软件工程学院讲师。研究方向为数据库技术、数据挖掘技术。
作者单位
成都信息工程大学软件工程学院 四川省成都市 610225