CN107544948A - 一种基于MapReduce的矢量文件转换方法和装置 - Google Patents

一种基于MapReduce的矢量文件转换方法和装置 Download PDF

Info

Publication number
CN107544948A
CN107544948A CN201710567583.XA CN201710567583A CN107544948A CN 107544948 A CN107544948 A CN 107544948A CN 201710567583 A CN201710567583 A CN 201710567583A CN 107544948 A CN107544948 A CN 107544948A
Authority
CN
China
Prior art keywords
files
shapefile
parallel
information
geocsv
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710567583.XA
Other languages
English (en)
Other versions
CN107544948B (zh
Inventor
朱德海
姚晓闯
杨建宇
赵龙
李林
刘哲
黄婧瑶
杜振博
熊全
杨浩东
郧文聚
张晓东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Agricultural University
Original Assignee
China Agricultural University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Agricultural University filed Critical China Agricultural University
Priority to CN201710567583.XA priority Critical patent/CN107544948B/zh
Publication of CN107544948A publication Critical patent/CN107544948A/zh
Application granted granted Critical
Publication of CN107544948B publication Critical patent/CN107544948B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于MapReduce的矢量文件转换方法和装置,所述方法包括:S1,对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;S2,对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。本发明通过对多个Shapefile文件进行并行解析处理以及并行重构处理,获取对应的GeoCSV文件,不仅能够支持大规模的空间矢量数据Shapfile文件的并行化高效转换;同时转换后的GeoCSV结果文件也能够满足云环境下空间矢量大数据分布式存储和并行化处理的需求。

Description

一种基于MapReduce的矢量文件转换方法和装置
技术领域
本发明涉及空间大数据领域,具体涉及一种基于MapReduce的矢量文件转换方法和装置。
背景技术
ESRI Shapefile文件是一种开放的非拓扑的简单几何数据类型文件,主要用于描述空间矢量数据的几何要素(点、线、面)和属性特征。尽管Shapefile文件具有结构简单、精度高、显示迅速的优势;但是,随着国家基础测绘数据的积累和数据采集手段的提高,海量的Shapefile文件在数据存储和处理方面也面临着严峻的挑战。一方面,Shapefile文件在文件存储上受到2G上限的制约,大量的小文件也增加了数据管理和处理的难度;另一方面,Shapefile文件在字段存储类型、索引效率以及网络传输等方面存在着明显的不足,不利于空间矢量大数据的存储和分析。
GeoCSV文件是一种以基于OGC(Open Geospatial Consortium)标准的WKT(Well-Know Text)、WKB(Well-Know Binary)或GeoJSON(Geographic JavaScript ObjectNotation)等格式来描述空间数据的几何要素(点、线、面)和属性特征,并采用CSV(Comma-Separated Values)格式进行数据存储的矢量数据文件。基于GeoCSV的空间矢量数据模型,一方面具有OGC标准数据或JSON数据简单结构而且便于网络传输的优势;另一方面采用CSV换行分隔存储,有利于在云环境(如Hadoop、Spark等)下进行分布式处理中数据的切分、处理和分析,因此,在空间大数据时代,GeoCSV文件得到了广泛的应用。
由于Shapefile文件和GeoCSV文件均为公开描述空间几何要素(点、线、面)的标准格式,即两种类型的文件在几何要素存储上存在着一定的对应关系,这为实现Shapefile文件到GeoCSV文件的矢量数据转换提供了可能。但两者之间也存在着几点不同。Shapefile文件为多文件格式(一个标准Shapefile文件至少要包含.shp、.dbf和.shx三个主文件),增加了数据转换的复杂度。另外,Shapefile文件按照图层的概念对实体要素进行存储;而GeoCSV文件则按照几何对象的概念进行存储,两者并非简单的一一对应关系。
现有技术中,主流商业软件ArcGIS为了满足空间矢量大数据存储与处理的需要,提供了Shapefile文件向GeoJSON文件转换的插件。但该插件只能实现单个Shapefile文件的简单转换,或基于二次开发接口来实现多个Shapefile文件的串行转换。随着国家基础测绘数据的积累和数据采集手段的发展,基于串行的海量Shapefile文件并行转换方法已经无法满足地理空间矢量大数据快速转换的需要。
发明内容
针对现有技术中存在的上述缺陷,本发明提供一种基于MapReduce的矢量文件转换方法和装置。
本发明的一方面提供一种Shapefile文件的并行转换方法,包括:S1,对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;S2,对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
其中,所述步骤S1进一步包括:对所述Shapefile文件进行几何要素解析,获取与所述Shapefile文件对应的所述几何信息;对所述Shapefile文件进行属性数据字段解析,获取与所述Shapefile文件对应的所述属性信息。
其中,所述步骤S2进一步包括:S21,获取与所述几何信息对应的几何要素以及与所述属性信息对应的属性要素;S22,采用CSV格式对所述几何要素及所述属性要素进行数据组织,生成与所述多个Shapefile文件对应的所述GeoCSV文件。
其中,所述步骤S1前还包括:读取所述多个Shapefile文件的基础信息;其中,所述基础信息包括所述多个Shapefile文件的存储路径、文件数量和文件名称。
其中,所述读取所述多个Shapefile文件的基础信息的步骤进一步包括:获取HDFS系统中存储的所述多个Shapefile文件的存储路径;根据所述存储路径遍历所述多个Shapefile文件,获取所述基础信息。
其中,所述步骤S21进一步包括:通过OGC的WKT、WKB或GeoJSON格式对所述几何信息和所述属性信息进行描述,获取所述几何要素及所述属性要素。
其中,所述步骤S22中的生成与所述多个Shapefile文件对应的所述GeoCSV文件进一步包括:汇集全部集群节点的输出结果;根据所述输出结果生成所述GeoCSV文件。
本发明的另一方面提供一种Shapefile文件的并行转换装置,包括:并行解析模块,用于对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;并行重构模块,用于对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
本发明的又一方面提供一种Shapefile文件的并行转换设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方面提供的Shapefile文件的并行转换方法,例如包括:S1,对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;S2,对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
本发明又一方面提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述方面提供的Shapefile文件的并行转换方法,例如包括:S1,对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;S2,对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
本发明提供的一种基于MapReduce的矢量文件转换方法和装置,通过对多个Shapefile文件进行并行解析处理以及并行重构处理,获取对应的GeoCSV文件,不仅能够支持大规模的空间矢量数据Shapfile文件的并行化高效转换;同时转换后的GeoCSV结果文件也能够满足云环境下空间矢量大数据分布式存储和并行化处理的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的Shapefile文件的并行转换方法的流程示意图;
图2为本发明另一实施例提供的Shapefile文件的并行转换方法的流程示意图;
图3为本发明另一实施例提供的Shapefile文件的并行转换方法的任务并行分解示意图;
图4为本发明另一实施例提供的Shapefile文件的并行转换方法的单机环境下矢量数据转换效率对比图;
图5为本发明另一实施例提供的Shapefile文件的并行转换方法的集群环境下矢量数据转换效率对比图;
图6为本发明实施例提供的Shapefile文件的并行转换装置的结构示意图;
图7为本发明实施例提供的Shapefile文件的并行转换设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解,本发明实施例提供的Shapefile文件的并行转换方法的整体思路为:Hadoop云计算平台提供了大数据分布式存储与并行化处理的功能,如何实现云环境下,大规模矢量数据的并行化处理,尽可能地提高转换效率成为本发明实施例提供的方法所研究的重要内容。
以下以基于云计算平台Hadoop集群环境对本发明实施例提供的Shapefile文件的并行转换方法进行实现为例进行说明,但本发明实施例提供的方法并不限于Hadoop集群环境。
其中,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS具有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算。
图1为本发明实施例提供的Shapefile文件的并行转换方法的流程示意图,如图1所示,包括:S1,对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;S2,对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
其中,Shapefile属于一种矢量图形格式,它能够保存几何图形的位置及相关属性。Shapefile是一种比较原始的矢量数据存储方式,它仅仅能够存储几何体的位置数据,而无法在一个文件之中同时存储这些几何体的属性数据。Shapefile文件的这种文件格式实际上是由多个文件组成的;其中,要组成一个Shapefile文件,有三个文件是必不可少的,它们分别是“.shp”、“.shx”和“.dbf”文件。
其中,“.shp”是图形格式,用于保存元素的几何实体;“.shx”是图形索引格式,用于几何体位置索引,记录每一个几何体在“.shp”文件之中的位置,能够加快向前或向后搜索一个几何体的效率;“.shx”是属性数据格式,用于以dBase IV的数据表格式存储每个几何形状的属性数据。
其中,GeoCSV文件是一种以基于OGC(Open Geospatial Consortium,开放地理空间信息联盟)标准的WKT(Well-Know Text,熟知文本)、WKB(Well-Know Binary,熟知文本的二进制编码)或GeoJSON(Geographic JavaScript Object Notation,地理JavaScript对象表示法)等格式来描述空间数据的几何要素(点、线、面)和属性特征,并采用CSV(Comma-Separated Values,逗号分隔值)格式进行数据存储的矢量数据文件。
其中,并行解析处理是以单个Shapefile文件为对象,并行地对多个Shapefile文件进行解析,读取每个Shapefile文件对应的几何信息(.shp)和属性信息(.dbf),实现针对Shapefile文件之间的任务并行处理。
其中,并行重构处理是以每个Shapefile文件对应的几何信息(.shp)和属性信息(.dbf)为对象,重新构造新的GeoCSV文件,该GeoCSV文件可以为一个,但可以包含多个Shapefile文件的空间数据。
在步骤S1中,首先对多个Shapefile文件进行并行解析处理,以每个Shapefile文件为对象,读取其对应的几何信息(.shp)和属性信息(.dbf)。
在步骤S2中,根据步骤S1获取的几何信息和属性信息,对多个Shapefile文件进行并行重构处理。其中,Shapefile文件的几何信息通常以坐标的形式(X坐标和Y坐标)描述空间数据,而在GeoCSV文件中则以点、线、面的形式对空间数据进行描述,因此需要对数据进行重构,才能获得满足GeoCSV的空间数据。
本发明实施例提供的Shapefile文件的并行转换方法,通过对多个Shapefile文件进行并行解析处理以及并行重构处理,获取对应的GeoCSV文件,不仅能够支持大规模的空间矢量数据Shapfile文件的并行化高效转换;同时转换后的GeoCSV结果文件也能够满足云环境下空间矢量大数据分布式存储和并行化处理的需求。
在上述实施例的基础上,所述步骤S1进一步包括:对所述Shapefile文件进行几何要素解析,获取与所述Shapefile文件对应的所述几何信息;对所述Shapefile文件进行属性数据字段解析,获取与所述Shapefile文件对应的所述属性信息。
其中,空间几何要素解析具体为:Shapefile中几何信息存储在.shp主文件当中,本发明实施例提供的方法通过ShpReader函数根据Shapefile的顺序依次解析.shp主文件。主文件(.shp)包含一个固定长度的文件头(Header),之后存储了可变长度的记录。每个可变长度记录由一个固定长度的记录头(Record Headers)和可变长度记录内容(RecordContents)组成。
其中,属性数据字段解析具体为:Shapefile中属性信息存储在.dbf文件当中,本发明实施例提供的方法通过DbfReader函数根据Shapefile的顺序依次解析.dbf文件。.dbf文件包括.shp主文件中与几何信息相对应的属性信息,属性信息的顺序与几何信息记录的顺序完全一样。
在上述实施例的基础上,所述步骤S2进一步包括:S21,获取与所述几何信息对应的几何要素以及与所述属性信息对应的属性要素;S22,采用CSV格式对所述几何要素及所述属性要素进行数据组织,生成与所述多个Shapefile文件对应的所述GeoCSV文件。
在步骤S21中,首先需要对通过并行解析处理得到的几何信息和属性信息进行转换,将几何信息(X坐标和Y坐标)转换为几何要素(点、线、面);将属性信息转换为属性要素。
在步骤S22中,对步骤S21获取的几何要素和属性要素进行CSV格式的数据组织,即将数据组织成为CSV格式,从而获得最终的GeoCSV文件,完成云环境下Shapefile文件到GeoCSV文件的矢量数据并行转换。
在上述实施例的基础上,所述步骤S1前还包括:读取所述多个Shapefile文件的基础信息;其中,所述基础信息包括所述多个Shapefile文件的存储路径、文件数量和文件名称。
具体地,在进行并行解析处理前,可以对待转换的矢量数据集文件夹中的Shapefile文件的基础信息进行获取,获取基础信息后能够有效进行并行解析处理和并行重构处理。
在上述实施例的基础上,所述读取所述多个Shapefile文件的基础信息的步骤进一步包括:获取HDFS系统中存储的所述多个Shapefile文件的存储路径;根据所述存储路径遍历所述多个Shapefile文件,获取所述基础信息。
具体地,首先获得HDFS系统中的各Shapefile文件的存储路径,再根据各路径,对所有的Shapefile文件进行遍历,其中遍历是指对各Shapefile文件都访问一遍,分别获取每个Shapefile文件的基础信息。
在上述实施例的基础上,所述步骤S21进一步包括:通过OGC的WKT、WKB或GeoJSON格式对所述几何信息和所述属性信息进行描述,获取所述几何要素及所述属性要素。
具体地,针对通过Shapefile文件并行解析点、线或面要素得到的几何信息(X坐标和Y坐标)以及属性信息(Attributes),分别通过要素对象类中的getPolint(Count)(getX()、getY())和get(Field)等方法获取相应的数据,并按照OGC(Open GeospatialConsortium,开放地理空间联盟)的WKT(Well-Know Text,熟知文本)、WKB(Well-KnowBinary,熟知文本的二进制编码)或GeoJSON(Geographic JavaScript Object Notation,地理JavaScript对象表示法)等格式来描述数据的几何要素(点、线或面)和属性要素;然后采用CSV格式进行数据组织,实现GeoCSV文件的并行重构。
在上述实施例的基础上,所述步骤S22中的生成与所述多个Shapefile文件对应的所述GeoCSV文件进一步包括:汇集全部集群节点的输出结果;根据所述输出结果生成所述GeoCSV文件。
具体地,采用CSV格式进行数据组织后,由于可以通过多个集群节点进行转换,因此需要对全部集群节点输出的CSV文件进行汇集,获取最终的GeoCSV文件。
为了说明上述实施例,图2为本发明另一实施例提供的Shapefile文件的并行转换方法的流程示意图,以如图2所示步骤的方法进行说明。
本实施例所采用测试环境如表1所示,包括单机环境和集群环境。其中,单机环境主要针对相同硬件配置、不同的操作系统下,如Windows 10和Ubuntu 15,进行本发明实施例提供方法的效率对比测试;集群环境主要是在云计算平台Hadoop集群环境中针对本发明方法进行的效率测试。
表1试验测试环境
表2试验测试数据集
本发明实施例所采用的数据来自全国耕地质量等别数据库,为面状要素(Polygon),数据类型为Shapefile文件。为测试本文提出算法的性能及其优越性,本实施例进行实验的数据量大小从2GB到128GB不等;Shapefile文件个数从86到5561不等;对应的图斑要素个数从1361127到85558229不等,详细数据信息如表2所示。
本发明实施例的Shapefile文件到GeoCSV文件的矢量数据并行转换方法,所述Shapefile文件包括点、线和面三类几何要素;所述转换方法流程如图2所示,包括以下步骤:
步骤一,读取文件基础信息;
首先将待转换文件夹上传至HDFS分布式存储系统,程序通过FileStatus接口获取待转换的矢量数据集文件夹中Shapefile文件的基本信息,包括Shapefile文件的存储路径、文件名称、文件总个数等。并将这些信息存入内存当中。
步骤二:Shapefile文件的并行解析处理;
根据上一步骤中获取的文件基础信息,进行Shapefile文件并行解析;该步骤以单个Shapefile文件为转换对象,读取其对应的几何信息(.shp)和属性信息(.dbf),实现针对Shapefile文件之间的任务并行处理。
以下以MapReduce为例对本发明实施例进行说明;其中,MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
具体地,由于Shapefile文件不同于普通的文本文件,因此在MapReduce过程当中需要重新自定义InputFormat类和Writable类。本发明实施例提供的方法分别针对不同的数据类型(点(Point)、线(Polyline)、面(Polygon)),通过提供自定义类FeatureInputFormat类和FeatureWritable类来实现对Shapefile文件的并行解析。
图3为本发明另一实施例提供的Shapefile文件的并行转换方法的任务并行分解示意图,如图3所示,由于一个Shapefile文件是由多个子文件(.shp、.shx、.dbf等文件)构成,并且每个子文件都包含唯一的头文件;因此,在算法实现过程中,每个Shapefile文件的转换任务都可以被视为一个单独的子任务。
对于面状(Polygon)要素,本发明实施例提供的方法通过提供PolygonFeatureInputformat类来加载Shapfile文件,通过PolygonFeatureWritable类来解析Shapefile文件。
本发明实施例以面状要素(Polygon)为例进行说明,对Shapefile文件的并行解析的具体步骤如下:
1)空间几何要素解析
Shapefile中几何信息存储在.shp主文件当中,本发明实施例提供的方法通过ShpReader函数根据Shapefile的顺序依次解析.shp主文件。主文件(.shp)包含一个固定长度的文件头(Header),之后存储了可变长度的记录。每个可变长度记录由一个固定长度的记录头(Record Headers)和可变长度记录内容(Record Contents)组成。
2)属性数据字段解析
Shapefile中属性信息存储在.dbf文件当中,本发明实施例提供的方法通过DbfReader函数根据Shapefile的顺序依次解析.dbf文件。.dbf文件包括.shp主文件中与几何信息相对应的属性信息,属性信息的顺序与几何信息记录的顺序完全一样。
通过以上的解析过程,能够得到一组键值(Key-Value)对,其中key为面状要素对应的编号;value为面状要素对应的要素信息,包括几何信息和属性信息。本发明实施例提供的方法的地理API主要基于ESRI提供的开源Java API。
步骤三:GeoCSV文件并行重构;
针对通过Shapefile文件并行解析面状(Polygon)要素得到的空间几何信息(X坐标和Y坐标)以及属性字段(Attributes),分别通过要素对象类中的getPolint(Count)(getX()、getY())和get(Field)等方法获取相应的空间数据,并按照OGC的WKT、WKB或GeoJSON等格式来描述空间数据的几何要素(点、线、面)和属性特征,并采用CSV格式进行数据组织,实现GeoCSV文件的并行重构。
步骤四:GeoCSV文件生成;
汇集集群节点中所有输出结果,生成最终的GeoCSV文件,完成云环境下Shapefile文件到GeoCSV文件的矢量数据并行转换。
本发明实施例基于MapReduce的矢量数据并行转换算法通过一个Job来实现,具体算法描述如下:
MapReduce工作所完成的内容包括:
输入:单个或多个Shapfile文件数据集D(以面要素为例)
输出:GeoCSV文件
步骤1,在Master节点提交作业之前,获取数据集D中,Shapefile文件的个数、数据类型等基础信息;
1.1,解析Shapefile文件信息,读取头文件信息;
1.1.1,通过ShpHeader类和DbfHeader类分别读取几何信息概况和属性信息概况;其中几何信息概况主要包括要素个数、要素偏移量、坐标点个数等;而属性信息主要获取字段个数和相应偏移量;
1.2,通过PolygonFeatureReader读取当前Shapefile文件中一个空间对象Polygon;
1.2.1,通过ShpReader类和DbfReader类分别逐个读取Shapefile文件中的几何信息和属性信息;
1.2.2,通过PolygonFeatureReader类将以上获得到的空间对象(Polygon)信息转换为Map函数的输入键值对;
步骤2,在Map阶段中,完成Shapefile文件到GeoCSV文本的矢量数据转换。执行下述操作:
2.1,在Map操作中,通过获取一条记录的Value,即空间对象Polygon,对读取到的空间对象进行如下操作:
2.1.1,由于在Shapefile文件当中存在的类型包括简单多边形(Polygon)和复杂多边形(MultiPolygon),因此,在处理之前需要进行判断当前空间对象是否为多面(MultiPolygon);
2.1.2,若为多面,则需要进行内部循环,通过循环遍历所有的多边形,分别获取单个对象对应的空间几何记录和属性记录,按照GeoCSV格式重新组合Map输出格式,写入Value中,实现空间多面要素的转换;
2.1.3,若为单面,则直接进行空间对象的几何记录和属性记录的读取,进行GeoCSV格式转换,将最终重构的结果写入Map函数的输出Value中,实现空间单面要素的转换。
该算法在Map阶段,输入键(Key)为空,而值(Vaule)为Shapefile文件中空间对象的描述信息,包括几何信息和属性信息;而输出键(Key)为空间对象ID号,而值(Vaule)为基于GeoCSV文件格式描述的空间对象Shape。通过Map函数直接将结果写入GeoCSV文件。因此,该算法过程当中可以不执行Reduce函数。应当说明的是,在其他实施方法中,可以执行Reduce函数。
为了很好的测试基于MapReduce的Shapefile文件到GeoCSV文件的矢量数据并行转换方法的效率和优势,分别针对单机环境和集群环境进行了试验。通过在单机环境下测试基于ArcToolBox的串行方法与基于MapReduce的并行方法的转换,来评价本发明方法的效率;通过在集群环境下测试基于MapReduce的并行转换方法来体现本发明方法的可扩展性和优越性。效率和优势评价结果如图4和图5所示。
图4为本发明另一实施例提供的Shapefile文件的并行转换方法的单机环境下矢量数据转换效率对比图,如图4所示,基于MapReduce的Shapefile文件到GeoCSV文件的矢量数据并行转换方法的效率明显得到提高。从测试结果可以看出采用ArcToolBox串行转换方法时间消耗上是本发明方法的5倍以上,表明本发明方法是非常成功的。
图5为本发明另一实施例提供的Shapefile文件的并行转换方法的集群环境下矢量数据转换效率对比图,如图5所示,集群环境下只针对数据量大小为64GB的数据集进行测试,实验结果表明随着集群节点个数的增加,本文提出的并行算法执行时间越短,基本呈倍数减少,充分体现了云计算环境的可扩展性。
图6为本发明实施例提供的Shapefile文件的并行转换装置的结构示意图,如图6所示,包括:并行解析模块601,用于对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;并行重构模块602,用于对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
并行解析模块601首先对多个Shapefile文件进行并行解析处理,具体并行解析模块601以每个Shapefile文件为对象,读取其对应的几何信息(.shp)和属性信息(.dbf)。
并行重构模块602根据并行解析模块601获取的几何信息和属性信息,对多个Shapefile文件进行并行重构处理。其中,Shapefile文件的几何信息通常以坐标的形式(X坐标和Y坐标)描述空间数据,而在GeoCSV文件中则以点、线、面的形式对空间数据进行描述,因此需要并行重构模块602对数据进行重构,才能获得满足GeoCSV的空间数据。
本发明实施例提供的Shapefile文件的并行转换装置,通过对多个Shapefile文件进行并行解析处理以及并行重构处理,获取对应的GeoCSV文件,不仅能够支持大规模的空间矢量数据Shapfile文件的并行化高效转换;同时转换后的GeoCSV结果文件也能够满足云环境下空间矢量大数据分布式存储和并行化处理的需求。
在上述实施例的基础上,所述并行解析模块601进一步包括:几何解析单元,用于对所述Shapefile文件进行几何要素解析,获取与所述Shapefile文件对应的所述几何信息;属性解析单元,用于对所述Shapefile文件进行属性数据字段解析,获取与所述Shapefile文件对应的所述属性信息。
在上述实施例的基础上,所述并行重构模块602进一步包括:获取单元,用于获取与所述几何信息对应的几何要素以及与所述属性信息对应的属性要素;生成单元,用于采用CSV格式对所述几何要素及所述属性要素进行数据组织,生成与所述多个Shapefile文件对应的所述GeoCSV文件。
在上述实施例的基础上,所述装置还包括:读取模块,用于读取所述多个Shapefile文件的基础信息;其中,所述基础信息包括所述多个Shapefile文件的存储路径、文件数量和文件名称。
在上述实施例的基础上,所述读取模块进一步用于:获取HDFS系统中存储的所述多个Shapefile文件的存储路径;根据所述存储路径遍历所述多个Shapefile文件,获取所述基础信息。
在上述实施例的基础上,所述第一获取单元进一步用于:通过OGC的WKT、WKB或GeoJSON格式对所述几何信息和所述属性信息进行描述,获取所述几何要素及所述属性要素。
在上述实施例的基础上,所述生成单元具体用于汇集全部集群节点的输出结果;根据所述输出结果生成所述GeoCSV文件。
图7为本发明实施例提供的Shapefile文件的并行转换设备的结构示意图,如图7所示,该设备包括:至少一个处理器701;以及与所述处理器701通信连接的至少一个存储器702,其中:所述存储器702存储有可被所述处理器701执行的程序指令,所述处理器701调用所述程序指令能够执行上述各实施例所提供的Shapefile文件的并行转换方法,例如包括:S1,对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;S2,对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
本发明实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行对应实施例所提供的Shapefile文件的并行转换方法,例如包括:S1,对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;S2,对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
以上所描述的Shapefile文件的并行转换设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
本发明实施例提供的Shapefile文件的并行转换方法、装置和设备,其基于MapReduce编程框架,实现了空间矢量大数据格式的并行化转换。所述方法首先通过并行解析大规模Shapefile文件内容,主要包括.shp主文件和.dbf文件;然后提取相应的几何要素对象信息,包括空间坐标信息和属性字段信息等;最后按照OGC标准或GeoJSON格式对矢量数据进行重构,结合CSV分行思想将几何要素对象写入到结果文件当中,生成相应的GeoCSV文件。本发明实施例提供的矢量数据并行转换方法,是基于云计算平台Hadoop集群环境进行实现,不仅能够支持大规模的空间矢量数据Shapfile文件的并行化高效转换;同时转换后的GeoCSV结果文件也能够满足云环境下空间矢量大数据分布式存储和并行化处理的需要。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种Shapefile文件的并行转换方法,其特征在于,包括:
S1,对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;
S2,对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1进一步包括:
对所述Shapefile文件进行几何要素解析,获取与所述Shapefile文件对应的所述几何信息;对所述Shapefile文件进行属性数据字段解析,获取与所述Shapefile文件对应的所述属性信息。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2进一步包括:
S21,获取与所述几何信息对应的几何要素以及与所述属性信息对应的属性要素;
S22,采用CSV格式对所述几何要素及所述属性要素进行数据组织,生成与所述多个Shapefile文件对应的所述GeoCSV文件。
4.根据权利要求1所述的方法,其特征在于,所述步骤S1前还包括:
读取所述多个Shapefile文件的基础信息;
其中,所述基础信息包括所述多个Shapefile文件的存储路径、文件数量和文件名称。
5.根据权利要求4所述的方法,其特征在于,所述读取所述多个Shapefile文件的基础信息的步骤进一步包括:
获取HDFS系统中存储的所述多个Shapefile文件的存储路径;
根据所述存储路径遍历所述多个Shapefile文件,获取所述基础信息。
6.根据权利要求2所述的方法,其特征在于,所述步骤S21进一步包括:
通过OGC的WKT、WKB或GeoJSON格式对所述几何信息和所述属性信息进行描述,获取所述几何要素及所述属性要素。
7.根据权利要求3所述的方法,其特征在于,所述步骤S22中的生成与所述多个Shapefile文件对应的所述GeoCSV文件进一步包括:
汇集全部集群节点的输出结果;
根据所述输出结果生成所述GeoCSV文件。
8.一种Shapefile文件的并行转换装置,其特征在于,包括:
并行解析模块,用于对多个Shapefile文件进行并行解析处理,获取所述多个Shapefile文件分别对应的几何信息和属性信息;
并行重构模块,用于对所述几何信息和所述属性信息进行并行重构处理,生成与所述多个Shapefile文件对应的GeoCSV文件。
9.一种Shapefile文件的并行转换设备,其特征在于,包括:
至少一个处理器;
以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
CN201710567583.XA 2017-07-12 2017-07-12 一种基于MapReduce的矢量文件转换方法和装置 Active CN107544948B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710567583.XA CN107544948B (zh) 2017-07-12 2017-07-12 一种基于MapReduce的矢量文件转换方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710567583.XA CN107544948B (zh) 2017-07-12 2017-07-12 一种基于MapReduce的矢量文件转换方法和装置

Publications (2)

Publication Number Publication Date
CN107544948A true CN107544948A (zh) 2018-01-05
CN107544948B CN107544948B (zh) 2019-12-06

Family

ID=60970192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710567583.XA Active CN107544948B (zh) 2017-07-12 2017-07-12 一种基于MapReduce的矢量文件转换方法和装置

Country Status (1)

Country Link
CN (1) CN107544948B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875001A (zh) * 2018-06-14 2018-11-23 江苏爬山虎科技股份有限公司 一种大容量地理空间数据导出vct文件的方法
CN109144966A (zh) * 2018-07-06 2019-01-04 航天星图科技(北京)有限公司 一种海量时空数据的高效组织与管理方法
CN109669961A (zh) * 2019-03-12 2019-04-23 紫光云数科技有限公司 一种多源矢量数据存储及迭代计算方法
CN110059067A (zh) * 2019-04-04 2019-07-26 南京南瑞水利水电科技有限公司 一种水利空间矢量大数据存储管理方法
CN110941587A (zh) * 2019-11-18 2020-03-31 内蒙古师范大学 基于附加文件的空间矢量数据存储方法及坐标系转换系统
CN112732852A (zh) * 2020-12-31 2021-04-30 武汉大学 一种跨平台的时空大数据分布式处理方法及软件
CN112882662A (zh) * 2021-03-17 2021-06-01 中国人民解放军国防科技大学 一种基于连续内存的地理要素高效访问方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633092A (zh) * 2004-11-25 2005-06-29 武汉大学 基于移动Agent和GML的分布式GIS空间信息集成装置与方法
CN101324896A (zh) * 2008-07-24 2008-12-17 中国科学院计算技术研究所 一种矢量数据的存储方法、查询方法和管理系统
CN101853514A (zh) * 2009-04-02 2010-10-06 肖克炎 彩色地质图图像的交互式矢量化方法及其系统
CN102012941A (zh) * 2010-12-14 2011-04-13 南京师范大学 一种不同维度矢量数据统一表达、存储及运算的处理方法
CN103678705A (zh) * 2013-12-30 2014-03-26 南京大学 一种VCT文件到shapefile文件的矢量数据并行转换方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633092A (zh) * 2004-11-25 2005-06-29 武汉大学 基于移动Agent和GML的分布式GIS空间信息集成装置与方法
CN101324896A (zh) * 2008-07-24 2008-12-17 中国科学院计算技术研究所 一种矢量数据的存储方法、查询方法和管理系统
CN101853514A (zh) * 2009-04-02 2010-10-06 肖克炎 彩色地质图图像的交互式矢量化方法及其系统
CN102012941A (zh) * 2010-12-14 2011-04-13 南京师范大学 一种不同维度矢量数据统一表达、存储及运算的处理方法
CN103678705A (zh) * 2013-12-30 2014-03-26 南京大学 一种VCT文件到shapefile文件的矢量数据并行转换方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875001A (zh) * 2018-06-14 2018-11-23 江苏爬山虎科技股份有限公司 一种大容量地理空间数据导出vct文件的方法
CN108875001B (zh) * 2018-06-14 2022-01-14 爬山虎科技股份有限公司 一种大容量地理空间数据导出vct文件的方法
CN109144966A (zh) * 2018-07-06 2019-01-04 航天星图科技(北京)有限公司 一种海量时空数据的高效组织与管理方法
CN109669961A (zh) * 2019-03-12 2019-04-23 紫光云数科技有限公司 一种多源矢量数据存储及迭代计算方法
WO2020181710A1 (zh) * 2019-03-12 2020-09-17 紫光云数科技有限公司 一种基于MySQL的多源矢量数据存储及迭代计算方法
CN110059067A (zh) * 2019-04-04 2019-07-26 南京南瑞水利水电科技有限公司 一种水利空间矢量大数据存储管理方法
CN110941587A (zh) * 2019-11-18 2020-03-31 内蒙古师范大学 基于附加文件的空间矢量数据存储方法及坐标系转换系统
CN110941587B (zh) * 2019-11-18 2023-04-18 内蒙古师范大学 基于附加文件的空间矢量数据存储方法及坐标系转换系统
CN112732852A (zh) * 2020-12-31 2021-04-30 武汉大学 一种跨平台的时空大数据分布式处理方法及软件
CN112882662A (zh) * 2021-03-17 2021-06-01 中国人民解放军国防科技大学 一种基于连续内存的地理要素高效访问方法
CN112882662B (zh) * 2021-03-17 2022-05-27 中国人民解放军国防科技大学 一种基于连续内存的地理要素高效访问方法

Also Published As

Publication number Publication date
CN107544948B (zh) 2019-12-06

Similar Documents

Publication Publication Date Title
CN107544948A (zh) 一种基于MapReduce的矢量文件转换方法和装置
de Souza Muñoz et al. openModeller: a generic approach to species’ potential distribution modelling
Holzschuher et al. Performance of graph query languages: comparison of cypher, gremlin and native access in neo4j
Flemons et al. A web-based GIS tool for exploring the world's biodiversity: The Global Biodiversity Information Facility Mapping and Analysis Portal Application (GBIF-MAPA)
CN106708993A (zh) 基于大数据技术的空间数据存储处理中间件框架实现方法
CN103246749B (zh) 面向分布式计算的矩阵数据库系统及其查询方法
CN103678705B (zh) 一种VCT文件到shapefile文件的矢量数据并行转换方法
Li et al. Geospatial operations of discrete global grid systems—A comparison with traditional GIS
Ye et al. Development of a highly flexible mobile GIS-based system for collecting arable land quality data
CN108804602A (zh) 一种基于spark的分布式空间数据存储计算方法
CN103177103A (zh) 一种三维地理信息系统管理平台
Zou et al. A case study of large-scale parallel I/O analysis and optimization for numerical weather prediction system
Zhang A high-performance web-based information system for publishing large-scale species range maps in support of biodiversity studies
Yao et al. LandQ v2: A mapreduce-based system for processing arable land quality big data
Singh et al. Spatial data analysis with ArcGIS and MapReduce
CN114661839A (zh) 一种基于瓦片的轨迹地图的展示方法、装置、介质和设备
Vonitsanos et al. A nosql database approach for modeling heterogeneous and semi-structured information
Bhattacharya et al. Smart cities intelligence system (smacisys) integrating sensor web with spatial data infrastructures (sensdi)
Touya et al. Experiments to distribute and parallelize map generalization processes
Ngo et al. A new approach based on ELK stack for the analysis and visualisation of geo-referenced sensor data
Gomes et al. Accessing and processing Brazilian earth observation data cubes with the open data cube platform
Mohammed Free and Open Source GIS: an overview on the recent evolution of projects, standards and communities
Xiong et al. HiGIS: An open framework for high performance geographic information system
CN109947354A (zh) 一种基于Agent的无中心异构时空数据存储系统与方法
Vo et al. iSPEED: a scalable and distributed in-memory based spatial query system for large and structurally complex 3D data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant