CN103678705B - 一种VCT文件到shapefile文件的矢量数据并行转换方法 - Google Patents

一种VCT文件到shapefile文件的矢量数据并行转换方法 Download PDF

Info

Publication number
CN103678705B
CN103678705B CN201310745410.4A CN201310745410A CN103678705B CN 103678705 B CN103678705 B CN 103678705B CN 201310745410 A CN201310745410 A CN 201310745410A CN 103678705 B CN103678705 B CN 103678705B
Authority
CN
China
Prior art keywords
data
layer
file
line
point
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.)
Expired - Fee Related
Application number
CN201310745410.4A
Other languages
English (en)
Other versions
CN103678705A (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.)
Nanjing University
Original Assignee
Nanjing 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 Nanjing University filed Critical Nanjing University
Priority to CN201310745410.4A priority Critical patent/CN103678705B/zh
Publication of CN103678705A publication Critical patent/CN103678705A/zh
Application granted granted Critical
Publication of CN103678705B publication Critical patent/CN103678705B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及一种VCT文件到shapefile文件的矢量数据并行转换方法,该方法首先分别构建VCT文件中文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据的要素索引,并统计各图层的几何图形数据类型和包含的几何图形数据数量,并分别对相同几何图形数据类型的图层按照包含的几何图形数据数量进行排序,然后每个图层的点数据累加得到总点数据w,根据进程数p将VCT文件分为p个矢量目标子集,最后p个进程将从VCT文件中解析出的几何图形数据的坐标信息、属性数据与对应要素的图层进行匹配,并将每个图层的数据分别存入到一个单独的shapefile文件。该方法可以通过并行处理实现对矢量地理数据VCT文件的快速转换。

Description

一种VCT文件到shapefile文件的矢量数据并行转换方法
技术领域
本发明涉及一种VCT文件到shapefile文件的矢量数据并行转换方法,属于地理信息处理技术领域。
背景技术
地理信息系统(GeographicInformationSystem,GIS)是计算机科学、地理学、测量学、地图学等多门学科综合的技术,而矢量数据结构是地理信息系统中的重要数据结构形式。地理信息系统采用的矢量数据结构模型,是将空间地质实体抽象成点、线、面三种几何要素,矢量数据结构通过优化拓扑结构表达空间实体的相关关系,为空间数据库建立框架。
随着GIS产业的迅猛发展,地理数据已经成为许多部门、行业的重要数据资源,确保交换畅通、消除信息孤岛是地理数据管理和应用中的重要内容。但各商用GIS软件中地理数据的存储格式各不相同,数据管理和交换受制于GIS软件。为此,1999年我国发布了《地球空间数据交换格式》,2007年又发布了其更新版本《地理空间数据交换格式》,是我国矢量数据、影像数据、格网数据交换格式的国家标准。其中,矢量数据交换格式(VCT)格式广泛应用于土地利用现状调查、土地利用规划和地籍调查等成果汇交和交换中。
VCT数据格式数据为文本数据,主要包括文件头、要素类型参数、属性数据结构、几何图形数据、注记、属性数据六个部分。VCT数据格式各部分的意义如下,1)文件头:说明文件所包含数据的基本信息,如文件标志、坐标单位、投影参数等。2)要素类型参数:说明每类要素对应的要素类型编码、要素类型名称、几何类型、缺省颜色、属性表名。3)属性数据结构:说明每个要素所对应的属性结构,包括属性表名、属性项个数、属性项名、字段描述。4)几何图形数据:分为点要素、线要素和面要素,包括每个几何图形的目标标识码、要素代码、所属图层名、坐标等信息(线、面形还有顶点个数信息)。5)注记:包括注记的坐标位置、注记内容、字体等信息。6)属性数据:可由多个属性表组成,由属性表名作为开始标志,每个属性表的属性相对集中。
VCT交换格式文件的主要特点是:(l)采用文本格式的明码文件,方便不同系统间的数据交换和查看;(2)空间矢量数据按要素层进行分类组织要素层是具有相同几何类型(点、线、面、注记等),代表同一类地理对象的实体集合,如控制点层为Point图形的集合、界址线层为Lin。图形的集合、宗地层为Polygon图形的集合等;(3)空间数据之间可以有显性拓扑关系也可以没有拓扑关系;(4)一个文件能包含多个要素层,并且可以是不同的几何注记类型,如点状地物、线状地物、地类块、地名注记等可同时存放在一个VCT文件中;(5)同时可以容纳2维和3维坐标的地理要素对象;(6)空间对象同时可带有属性数据。属性数据和图形数据都存放在VCT交换文件中。不同的要素层拥有不同的属性数据结构。属性数据通过目标标识码和几何数据关连。
Shapefile是一种面向对象的二进制空间数据交换格式,其特点是文件小、精度高、交换速度快,但不能表达要素间显性拓扑关系,一组Shapefile文件对应一个要素层。一组shapefile文件主要由主文件、索引文件和属性文件组成。其中,地图的几何信息存储在主文件中,属性信息存放在属性文件中,而索引文件可以快速访问主文件中的数据,本身不包括地图数据。
基于VCT和Shapefile两种矢量数据格式的特点可以看出,VCT与shapefile格式都支持点、线、面三种几何要素,注记以及属性信息,即两种格式之间存在一定的对应关系,为VCT到shapefile格式的转换提供了可能。但两者之间也存在着以下不同点,VCT格式按照几何要素(点要素、线要素、面要素)的不同对每个实体要素进行存储,所有的几何要素存储在一个文件中,且点要素以坐标点为单位存储、线要素以点要素为单位存储、面要素以线要素为单位存储;shapefile格式则按照图层的概念对实体要素进行存储,即每个图层只存储特定的几何要素(点要素、线要素或面要素),这增加了从VCT到shapefile格式转换的复杂性。
目前,MapGIS、SuperMap、GeoStar等国产GIS软件支持VCT数据格式的转换,但国产GIS软件的市场保有量小,而占据国内市场主要份额的ArcGIS等国外GIS软件不支持VCT数据格式。为此,众多学者开展了VCT数据格式转换方法的研究:2000年,王艳东等在期刊《测绘学报》第29卷第2期发表"基于中国地球空间数据交换格数据转换方法"一文,分析了当前流行的地理数据格式特点,并对地理空间数据交换格式的转换方法进行分析和评价;2006年,唐双宁在硕士毕业论文"基于GIS的空间数据共享研究"中,从点要素、线要素和面要素三个方面分析了基于VCT数据格式的转换方法并编程实现;2010年,屠龙海在期刊《国土资源信息化》第3期中发表"VCT空间数据交换格式数据的检测方法研究"一文,通过对VCT数据格式文件结构的分析,研发的VCT检测工具提高了VCT数据格式数据的检查等。
然而,随着地理数据日趋复杂化和海量化,以上研究都未提出针对大规模VCT数据应用的解决方案。另外,以上商用GIS软件和VCT数据格式转换研究多针对串行环境,随着地理数据日趋复杂化和海量化,这种方式已无法实现大规模地理数据的快速转换。但是,近年来多核CPU处理器和并行计算技术的逐步普及,为受制于计算性能而难以展开的地理数据快速转换提供了契机。
发明内容
本发明解决的技术问题是:提出一种高精度的将矢量数据VCT文件转换成shapefile文件的方法,该方法通过并行处理实现对矢量地理数据VCT文件的快速转换。
为了解决上述技术问题,本发明提出的技术方案是:一种VCT文件到shapefile文件的矢量数据并行转换方法,所述VCT文件包括文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据,其中所述几何图形数据包括三类,分别是点数据、线数据和面数据;所述转换方法包括以下步骤:
第一步、打开VCT文件,并进行并行环境初始化,生成指定数目p的进程;
第二步、主进程逐行读取VCT文件,分别构建该VCT文件中文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据的要素索引,具体为:
1)找到以“HeadBegin”作为开始标识符、“HeadEnd”作为结束标识符之间的字符串信息作为文件头,并从文件头中找到该VCT文件的投影参数;
2)找到以“FeatureCodeBegin”作为开始标识符、“FeatureCodeEnd”作为结束标识符之间的字符串信息作为要素类型参数,以行为单位遍历该要素类型参数,得到VCT文件中每个图层的编号以及该图层的图层类型名称、几何图形数据类型和该图层包含的属性表的名称;
3)找到以“TableStructureBegin”作为开始标志符、“TableStructureEnd”作为结束标志符之间的字符串信息作为属性数据结构,以属性表为单位遍历所述属性数据结构,得到第2)步骤中每个属性表包含的属性字段个数以及各属性字段的名称、类型和数据长度;
4)找到以“PointBegin”作为开始标识符、“PointEnd”作为结束标识符之间的字符串信息作为点要素,所述点要素中每五行为一个点数据,其中每个点数据的第二行为该点数据所属图层编号;遍历所有的点数据,根据每个点数据所属图层编号将点数据进行区分,得到不同图层编号包含的点数据的起始地址和结束地址,并与第2)步已得到的图层编号进行对应,从而得到各点要素图层所包含的数据的起始地址和结束地址以及每个点要素图层的点数据个数;5)找到以"LineBegin"作为开始标识符、"LineEnd"作为结束标识符之间的字符串信息作为线要素,顺序寻找所述线要素中包含的所有线数据,其中每个线数据的第二行为该线数据所属的图层编号、第五行为该线数据包含的点数据个数,根据第五行的数值得到该线数据占据的文件行数;逐单位读取线数据,根据各线数据所属的图层编号将线数据进行区分,并得到所有线数据的起始地址与结束地址;将上述的图层编号与第2)步已解析出的图层编号进行对应,从而得到各线要素图层所包含的数据的起始地址和结束地址;
6)找到以"PolygonBegin"作为开始标识符、"PolygonEnd"作为结束标识符之间的字符串信息作为面要素,顺序寻找所述面要素所包含的面数据,其中每个面数据的第二行为该面要素所属图层编号,其第五行为该面要素包含的线数据个数,根据第五行的值得到该面数据占据的文件行数;逐单位读取面数据,根据该面数据所属的图层编号将面数据进行区分,分别得到不同图层编号包含的面数据的起始地址与结束地址,并与第2)步已解析出的图层编号进行对应,从而得到各面要素图层所包含的数据的起始地址和结束地址;
7)找到以"AnnotationBegin"作为开始标识符、"AnnotationEnd"作为结束标识符之间的字符串信息作为注记;
8)找到以"AttributeBegin"作为开始标识符、"AttributeEnd"作为结束标识符之间的字符串信息作为属性数据,不同图层的属性数据以属性表的名称开始,以"TableEnd"结束,得到各图层包含的属性表对应的起始地址与结束地址;
第三步、主进程统计各图层的几何图形数据类型和包含的几何图形数据数量,并分别对相同几何图形数据类型的图层按照包含的几何图形数据数量进行排序;具体为:
3A)统计各个点要素图层的所有点数据,并根据点数据的数量进行排序;
3B)统计各个线要素图层各个线数据包含的点数据,并根据点数据的数量进行排序;
3C)统计各个面要素图层各个面数据包含的线数据,再累加线数据包含的点数据,得到每个面要素图层包含的所有点数据,并根据点数据的数量对各个面要素图层进行排序;
第四步、主进程将所有图层的点数据累加得到总点数据w,根据进程数p将VCT文件分为p个矢量目标子集,每个矢量目标子集包含w/p个点数据;遍历各图层及其包含的点数据,将各矢量子集包含的点数据进行调整,使得点要素图层被完整分配,线要素图层以线数据为基本单位分配,面要素图层以面数据为基本单位分配,从而最终得到矢量目标集S{S1,S2,……,Sp};按照矢量目标集的顺序依次将各任务子集分配到不同进程,从而完成VCT的数据划分;各进程将第二步中解析出的几何图形数据的坐标信息、属性数据与对应要素的图层进行匹配,并分别将每个图层的数据存入到一个单独的shapefile文件中;具体方法如下:
4A)根据当前图层的几何图形数据类型、投影参数、属性字段,创建具有相同几何图形数据类型和投影参数的shapefile文件,该文件名以图层名称命名;
4B)根据当前图层的几何图形数据类型,如果是点要素,直接读取点数据并存储点坐标;如果是线要素,将线数据及每条线对应的点坐标进行存储;如果是面要素,首先读取每个面数据包含的线数据编号,其次在VCT文件中提取对应线数据包含的点坐标,最终将面数据及其包含的所有点坐标进行存储,其中点坐标根据面数据的方向顺序进行存储;
4C)根据当前图层的几何图形数据类型,在shapefile文件中创建相同类型的几何图形对象,将第4B)步中解析得到的几何图形数据写入shapefile图形文件中;
4D)读取属性数据,根据当前图层包含的属性表名称解析出所有属性字段记录,并写入shapefile属性文件中;
4E)根据注记索引解析出注记信息并写入shapefile注记文件中。
作为优选方案,所述p为处理器核心的数量。
作为优选方案,第二步中以行为单位遍历该要素类型参数时,以字符","为分隔符,第一个字符串为图层编号,第二个字符串为图层名称,第三个字符串为该图层的几何图形数据类型,第七个字符串为该图层包含的属性表的名称。
作为优选方案,第二步中以属性表为单位遍历所述属性数据结构时,以字符","对该属性表第一行进行区分,第一个字符串表示属性表名称,第二个字符串即表示属性字段个数。
本发明带来的有益效果是:本发明在很大程度上提升了VCT数据文件的解析效率,通过在深入探讨VCT文件特点的基础上,提出VCT文件要素索引的快速构建方法,有效地将VCT文件的重要信息及各矢量要素位置信息进行存储。本发明通过减少从文件头开始的重复遍历问题,提高了VCT文件的使用效率;而且本发明能够清晰直观地了解VCT文件的内部结构,从而更全面准确地将VCT文件信息进行解析,具有良好的通用性。
本发明能够顾及负载均衡的数据划分,在多核环境下实现了VCT文件向shapefile文件格式转换的并行算法。本发明可以适应当前地理数据日趋复杂化和海量化的现状,通过并行处理实现对矢量地理数据VCT文件到shapefie文件的快速转换,克服了大量商业软件不能支持VCT数据格式的困难,扩大了VCT数据格式的适用范围,使得国家标准矢量数据格式得以推广与广泛应用。
综上,本发明在深入理解VCT文件格式的基础上实现重要信息的快速提取,从而实现重要信息的存储,构建了针对VCT文件的要素索引。本发明能够快速有效地实现对大规模VCT数据文件的索引构建,提高了VCT格式文件的搜索效率。实践证明,该方法具有较高的实用性,可实现VCT文件到shapefie文件的快速转换。
附图说明
下面结合附图对本发明的VCT文件到shapefile文件的矢量数据并行转换方法作进一步说明。
图1是本发明实施例的VCT文件构建要素索引的示意图。
图2是本发明实施例对各进程进行任务子集分配的示意图。
图3a是本发明实施例的VCT源文件的部分信息。
图3b是本发明实施例转换后的矢量数据shapefile文件示意图。
图4是本发明实施例运行时间与进程数的关系示意图。
图5是本发明实施例并行算法执行的加速比变化示意图。
具体实施方式
实施例
本实施例采用标准C++编程语言在MicrosoftVisualStudio2010开发平台下开发,并在MPI(MessagePassingInterface)并行环境下实现,shapefile文件的读写操作通过开源地理数据格式转换类库GDAL实现。
本实施例的输入数据为某土地利用数据库输出的VCT文件,数据量为450MB。该VCT文件的部分信息如图3a所示,其地图投影为高斯-克吕格投影,参考椭球体为IAG-75椭球体。文件包含点、线和面三类几何投影数据,包括行政区、行政区界线、地类图斑、地类界线、零星地物等11个图层。
本实施例使用的测试环境为:IBMSystemx3500-M3X服务器,配置为2颗IntelXeonQuadCoreE5620四核CPU(主频2.4GHz)、内存为8GB、硬盘为2TB、双口千兆以太网。软件配置为:CentosLinux6.0操作系统、MPI版本为OpenMPI1.4.1。
本实施例的VCT文件到shapefile文件的矢量数据并行转换方法,所述VCT文件包括文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据,其中所述几何图形数据包括三类,分别是点数据、线数据和面数据;所述转换方法包括以下步骤:
第一步、打开VCT文件,并进行并行环境初始化,生成指定数目p的进程。
作为优选方案,所述p为处理器核心的数量,本实施例中处理器为两个IntelXeonQuadCoreE5620四核CPU,所以本实施例中p取8。
第二步、主进程逐行读取VCT文件,分别构建该VCT文件中文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据的要素索引,如图1所示,具体方法如下:
1)找到以“HeadBegin”作为开始标识符、“HeadEnd”作为结束标识符之间的字符串信息作为文件头,并从文件头中找到该VCT文件的投影参数;
2)找到以“FeatureCodeBegin”作为开始标识符、“FeatureCodeEnd”作为结束标识符之间的字符串信息作为要素类型参数,以行为单位遍历该要素类型参数,以字符","为分隔符,第一个字符串为图层编号,第二个字符串为图层名称,第三个字符串为几何图形数据类型,第七个字符串为该图层包含的属性表的名称,从而得到VCT文件中每个图层的编号以及该图层的图层类型名称、几何图形数据类型和该图层包含的属性表的名称;
3)找到以“TableStructureBegin”作为开始标志符、“TableStructureEnd”作为结束标志符之间的字符串信息作为属性数据结构,以属性表为单位遍历所述属性数据结构,得到第2)步骤中每个属性表包含的属性字段个数以及各属性字段的名称、类型和数据长度;
本实施例以字符","对该属性表第一行进行区分,第一个字符串表示属性表名称,第二个字符串即表示属性字段个数;
4)找到以“PointBegin”作为开始标识符、“PointEnd”作为结束标识符之间的字符串信息作为点要素,所述点要素中每五行为一个点数据,其中每个点数据的第二行为该点数据所属图层编号;遍历所有的点数据,根据每个点数据所属图层编号将点数据进行区分,得到不同图层编号包含的点数据的起始地址和结束地址,并与第2)步已得到的图层编号进行对应,从而得到各点要素图层所包含数据的起始地址和结束地址以及每个点要素图层的点数据个数;
5)找到以"LineBegin"作为开始标识符、"LineEnd"作为结束标识符之间的字符串信息作为线要素,顺序寻找所述线要素中包含的所有线数据,其中每个线数据的第二行为该线数据所属的图层编号、第五行为该线数据包含的点数据个数,根据第五行的数值得到该线数据占据的文件行数;逐单位读取线数据,根据各线数据所属的图层编号将线数据进行区分,并得到所有线数据起始地址与结束地址;将上述的图层编号与第2)步已解析出的图层编号进行对应,从而得到各线要素图层所包含数据的起始地址和结束地址;
6)找到以"PolygonBegin"作为开始标识符、"PolygonEnd"作为结束标识符之间的字符串信息作为面要素,顺序寻找所述面要素所包含的面数据,其中每个面数据的第二行为该面要素所属图层编号,其第五行为该面要素包含的线数据个数,根据第五行的值得到该面数据占据的文件行数;逐单位读取面数据,根据该面数据所属的图层编号将面数据进行区分,分别得到不同图层编号包含的面数据的起始地址与结束地址,并与第2)步已解析出的图层编号进行对应,从而得到各面要素图层所包含数据的起始地址和结束地址;
7)找到以"AnnotationBegin"作为开始标识符、"AnnotationEnd"作为结束标识符之间的字符串信息作为注记;
8)找到以"AttributeBegin"作为开始标识符、"AttributeEnd"作为结束标识符之间的字符串信息作为属性数据,不同图层的属性数据以属性表名称开始,以"TableEnd"结束,得到各图层包含的属性表对应的起始地址与结束地址;
第三步、主进程统计各图层的几何图形数据类型和包含的几何图形数据数量,并分别对相同几何图形数据类型的图层按照包含的几何图形数据数量进行排序;具体为:
3A)统计各个点要素图层的所有点数据,并根据点数据的数量进行排序;
3B)统计各个线要素图层各个线数据包含的点数据,并根据点数据的数量进行排序;
3C)统计各个面要素图层各个面数据包含的线数据,再累加线数据包含的点数据,得到每个面要素图层包含的所有点数据,并根据点数据的数量对各个面要素图层进行排序;
第四步、如图2所示,主进程将所有图层的点数据累加得到总点数据w,根据进程数p将VCT文件分为p个矢量目标子集,每个矢量目标子集包含w/p个点数据;遍历各图层及其包含的点数据,将各矢量子集包含的点数据进行调整,使得点要素图层被完整分配,线要素图层以线数据为基本单位分配,面要素图层以面数据为基本单位分配,从而最终得到矢量目标集S{S1,S2,……,Sp};按照矢量目标集的顺序依次将各任务子集分配到不同进程,从而完成VCT的数据划分;
各进程将第二步中解析出的几何图形数据的坐标信息、属性数据与对应要素的图层进行匹配,并将每个图层的数据分别存入到一个单独的shapefile文件中;具体方法如下:
4A)根据当前图层的几何图形数据类型、投影参数、属性字段,创建具有相同几何图形数据类型和投影参数的shapefile文件,该文件名以图层名称命名;
4B)根据当前图层的几何图形数据类型,如果是点要素,直接读取点数据并存储点坐标;如果是线要素,将线数据及每条线对应的点坐标进行存储;如果是面要素,首先读取每个面数据包含的线数据编号,其次在VCT文件中提取对应线数据包含的点坐标,最终将面数据及其包含的所有点坐标进行存储,其中点坐标根据面数据的方向顺序进行存储;
4C)根据当前图层的几何图形数据类型,在shapefile文件中创建相同类型的几何图形对象,将第4B)步中解析得到的几何图形数据写入shapefile图形文件中;
4D)读取属性数据,根据当前图层包含的属性表名称解析出所有属性字段记录,并写入shapefile属性文件中;
4E)根据注记索引解析出注记信息并写入shapefile注记文件中。
本实施例共生成11个shapefile文件,包括2个点图层、4个线图层和5个面图层。转换后的矢量数据shapefile文件如图3b所示。
为了比较格式转换结果精度,将原始VCT文件与对应目标shapefile文件的要素个数进行对比。如图3a和图3b所示,从对比结果可以看出,转换后的图形数据完整、准确,且属性数据齐全并与空间图形一一对应,表明转换结果正确。
值得说明的是,并行算法的运行时间是最基本的性能度量。当进程数等于1时,执行串行计算;当进程数大于1时,执行并行算法。申请人对本例的矢量数据格式转换串行算法和并行算法运行的时间进行了计算和对比。如图4可示,本实施例执行串行算法的运行时间为201.69s;执行并行算法时,当进程数小于8时,随着进程数的增加,并行运行时间不断减少;当进程数等于8时,并行运行时间达到最小,为30.25s;当进程数大于8时,并行运行时间又逐渐缓慢增加,最终基本稳定。
另外,并行加速比是同一个任务在串行环境下和并行环境下运行时间的比值。它体现了在并行环境下运行并行算法求解实际问题所能获得的实际效能,也是最传统的并行效率的评价标准。图5描述了栅格化行划分并行算法执行的加速比的变化图。当各处理器的计算负载第一次达到平衡之前,加速比与处理器数成正比,具有线性加速比,并行效率保持较优状态;当进程数达到8时,取得最大加速比,为6.67。当进程数进一步增加时,各处理器计算负载失衡,并行环境变得不稳定,加速比有下降趋势。
本发明的VCT文件到shapefile文件的矢量数据并行转换方法不局限于上述实施例所述的具体技术方案,凡采用等同替换形成的技术方案均为本发明要求的保护范围。

Claims (4)

1.一种VCT文件到shapefile文件的矢量数据并行转换方法,所述VCT文件包括文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据,其中所述几何图形数据包括三类,分别是点要素、线要素和面要素;所述转换方法包括以下步骤:
第一步、打开VCT文件,并进行并行环境初始化,生成指定数目p的进程;
第二步、主进程逐行读取VCT文件,分别构建该VCT文件中文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据的要素索引,具体为:
1)找到以“HeadBegin”作为开始标识符、“HeadEnd”作为结束标识符之间的字符串信息作为文件头,并从文件头中找到该VCT文件的投影参数;
2)找到以“FeatureCodeBegin”作为开始标识符、“FeatureCodeEnd”作为结束标识符之间的字符串信息作为要素类型参数,以行为单位遍历该要素类型参数,得到VCT文件中每个图层的编号以及该图层的图层类型名称、几何图形数据类型和该图层包含的属性表的名称;
3)找到以“TableStructureBegin”作为开始标志符、“TableStructureEnd”作为结束标志符之间的字符串信息作为属性数据结构,以属性表为单位遍历所述属性数据结构,得到第2)步骤中每个属性表包含的属性字段个数以及各属性字段的名称、类型和数据长度;
4)找到以“PointBegin”作为开始标识符、“PointEnd”作为结束标识符之间的字符串信息作为点要素,所述点要素中每五行为一个点数据,其中每个点数据的第二行为该点数据所属图层编号;遍历所有的点数据,根据每个点数据所属图层编号将点数据进行区分,得到不同图层编号包含的点数据的起始地址和结束地址,并与第2)步已得到的图层编号进行对应,从而得到各点要素图层所包含的数据的起始地址和结束地址以及每个点要素图层的点数据个数;
5)找到以"LineBegin"作为开始标识符、"LineEnd"作为结束标识符之间的字符串信息作为线要素,顺序寻找所述线要素中包含的所有线数据,其中每个线数据的第二行为该线数据所属的图层编号、第五行为该线数据包含的点数据个数,根据第五行的数值得到该线数据占据的文件行数;逐单位读取线数据,根据各线数据所属的图层编号将线数据进行区分,并得到所有线数据的起始地址与结束地址;将上述的图层编号与第2)步已解析出的图层编号进行对应,从而得到各线要素图层所包含的数据的起始地址和结束地址;
6)找到以"PolygonBegin"作为开始标识符、"PolygonEnd"作为结束标识符之间的字符串信息作为面要素,顺序寻找所述面要素所包含的面数据,其中每个面数据的第二行为该面要素所属图层编号,其第五行为该面要素包含的线数据个数,根据第五行的值得到该面数据占据的文件行数;逐单位读取面数据,根据该面数据所属的图层编号将面数据进行区分,分别得到不同图层编号包含的面数据的起始地址与结束地址,并与第2)步已解析出的图层编号进行对应,从而得到各面要素图层所包含的数据的起始地址和结束地址;
7)找到以"AnnotationBegin"作为开始标识符、"AnnotationEnd"作为结束标识符之间的字符串信息作为注记;
8)找到以"AttributeBegin"作为开始标识符、"AttributeEnd"作为结束标识符之间的字符串信息作为属性数据,不同图层的属性数据以属性表的名称开始,以"TableEnd"结束,得到各图层包含的属性表对应的起始地址与结束地址;
第三步、主进程统计各图层的几何图形数据类型和包含的几何图形数据数量,并分别对相同几何图形数据类型的图层按照包含的几何图形数据数量进行排序;具体为:
3A)统计各个点要素图层的所有点数据,并根据点数据的数量进行排序;
3B)统计各个线要素图层各个线数据包含的点数据,并根据点数据的数量进行排序;
3C)统计各个面要素图层各个面数据包含的线数据,再累加线数据包含的点数据,得到每个面要素图层包含的所有点数据,并根据点数据的数量对各个面要素图层进行排序;
第四步、主进程将所有图层的点数据累加得到总点数据w,根据进程数p将VCT文件分为p个矢量目标子集,每个矢量目标子集包含w/p个点数据;遍历各图层及其包含的点数据,将各矢量子集包含的点数据进行调整,使得点要素图层被完整分配,线要素图层以线数据为基本单位分配,面要素图层以面数据为基本单位分配,从而最终得到矢量目标集S{S1,S2,……,Sp};按照矢量目标集的顺序依次将各任务子集分配到不同进程,从而完成VCT的数据划分;
各进程将第二步中解析出的几何图形数据的坐标信息、属性数据与对应要素的图层进行匹配,并分别将每个图层的数据存入到一个单独的shapefile文件中;具体方法如下:
4A)根据当前图层的几何图形数据类型、投影参数、属性字段,创建具有相同几何图形数据类型和投影参数的shapefile文件,该文件名以图层名称命名;
4B)根据当前图层的几何图形数据类型,如果是点要素,直接读取点数据并存储点坐标;如果是线要素,将线数据及每条线对应的点坐标进行存储;如果是面要素,首先读取每个面数据包含的线数据编号,其次在VCT文件中提取对应线数据包含的点坐标,最终将面数据及其包含的所有点坐标进行存储,其中点坐标根据面数据的方向顺序进行存储;
4C)根据当前图层的几何图形数据类型,在shapefile文件中创建相同类型的几何图形对象,将第4B)步中解析得到的几何图形数据写入shapefile图形文件中;
4D)读取属性数据,根据当前图层包含的属性表名称解析出所有属性字段记录,并写入shapefile属性文件中;
4E)根据注记索引解析出注记信息并写入shapefile注记文件中。
2.根据权利要求1所述的VCT文件到shapefile文件的矢量数据并行转换方法,其特征在于:所述p为处理器核心的数量。
3.根据权利要求1所述的VCT文件到shapefile文件的矢量数据并行转换方法,其特征在于:第二步中以行为单位遍历该要素类型参数时,以字符","为分隔符,第一个字符串为图层编号,第二个字符串为图层类型名称,第三个字符串为该图层的几何图形数据类型,第七个字符串为该图层包含的属性表的名称。
4.根据权利要求1所述的VCT文件到shapefile文件的矢量数据并行转换方法,其特征在于:第二步中以属性表为单位遍历所述属性数据结构时,以字符","对该属性表第一行进行区分,第一个字符串表示属性表名称,第二个字符串即表示属性字段个数。
CN201310745410.4A 2013-12-30 2013-12-30 一种VCT文件到shapefile文件的矢量数据并行转换方法 Expired - Fee Related CN103678705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310745410.4A CN103678705B (zh) 2013-12-30 2013-12-30 一种VCT文件到shapefile文件的矢量数据并行转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310745410.4A CN103678705B (zh) 2013-12-30 2013-12-30 一种VCT文件到shapefile文件的矢量数据并行转换方法

Publications (2)

Publication Number Publication Date
CN103678705A CN103678705A (zh) 2014-03-26
CN103678705B true CN103678705B (zh) 2016-07-13

Family

ID=50316249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310745410.4A Expired - Fee Related CN103678705B (zh) 2013-12-30 2013-12-30 一种VCT文件到shapefile文件的矢量数据并行转换方法

Country Status (1)

Country Link
CN (1) CN103678705B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182472A (zh) * 2014-07-29 2014-12-03 浙江大学 一种基于内存数据库Redis的土地利用矢量数据存储方法
CN105260422B (zh) * 2015-09-28 2018-10-26 西北核技术研究所 一种多格式波形数据文件批处理方法
CN107544948B (zh) * 2017-07-12 2019-12-06 中国农业大学 一种基于MapReduce的矢量文件转换方法和装置
CN107798132B (zh) * 2017-11-20 2021-06-29 福建亿榕信息技术有限公司 分布式文件转版与加工方法、系统及计算机可读存储介质
CN110059067B (zh) * 2019-04-04 2022-09-27 南京南瑞水利水电科技有限公司 一种水利空间矢量大数据存储管理方法
CN110210008B (zh) * 2019-05-30 2022-06-21 厦门精图信息技术有限公司 基于最大共边的vct3.0文件转换方法、终端设备及存储介质
CN111061726B (zh) * 2019-11-18 2023-03-31 内蒙古师范大学 基于点m值的空间矢量数据存储方法及坐标系转换系统
CN112929732B (zh) * 2019-12-06 2022-07-08 腾讯科技(深圳)有限公司 视频的处理方法、装置和计算机存储介质
CN111159327A (zh) * 2020-04-03 2020-05-15 速度时空信息科技股份有限公司 一种国标模型到军标模型的矢量空间数据模型转换方法
CN111639202B (zh) * 2020-05-18 2023-08-04 北京山维科技股份有限公司 一种地理信息数据的同图层存储方法、装置、介质及设备
CN111813886A (zh) * 2020-09-07 2020-10-23 成都同飞科技有限责任公司 一种基于管道探测成果建立管网数据库的方法及系统
CN112416953A (zh) * 2020-10-22 2021-02-26 浩亚信息科技有限公司 基于数据库表格的复杂多边形要素更新方法、设备、介质
CN112417071B (zh) * 2020-11-02 2021-10-26 中关村科学城城市大脑股份有限公司 一种基于gis的矢量数据图层的融合及服务调用方法
CN112463905B (zh) * 2020-11-30 2022-06-03 湖北金拓维信息技术有限公司 一种矢量数据shp文件并行写入方法
CN116302488B (zh) * 2023-01-17 2024-01-23 重庆市地理信息和遥感应用中心(重庆市测绘产品质量检验测试中心) 一种地形图数据坐标多进程自动识别转换方法
CN116932680B (zh) * 2023-08-07 2024-04-02 朱俊丰 矢量空间数据的特征标记方法、系统及计算机存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591709A (zh) * 2011-12-20 2012-07-18 南京大学 基于OGR的shapefile文件主从式并行写方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591709A (zh) * 2011-12-20 2012-07-18 南京大学 基于OGR的shapefile文件主从式并行写方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于组件技术的由VCT到Shape数据格式转换研究;刘小伟等;《中国期刊全文数据库 城市勘测》;20090430(第2期);全文 *

Also Published As

Publication number Publication date
CN103678705A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
CN103678705B (zh) 一种VCT文件到shapefile文件的矢量数据并行转换方法
US10062188B2 (en) Customizable route planning using graphics processing unit
Guo et al. Coupled ensemble flow line advection and analysis
Schön et al. Octree-based indexing for 3D pointclouds within an Oracle Spatial DBMS
Tucci et al. Using spatial analysis and geovisualization to reveal urban changes: Milan, Italy, 1737–2005
CN103177103A (zh) 一种三维地理信息系统管理平台
CN113326314B (zh) 数据可视化方法、装置、电子设备及可读存储介质
Singh et al. Spatial data analysis with ArcGIS and MapReduce
Uznir et al. Improving 3D spatial queries search: Newfangled technique of space filling curves in 3D city modeling
Yang et al. A hybrid spatial index for massive point cloud data management and visualization
Engélinus et al. Elcano: A Geospatial Big Data Processing System based on SparkSQL.
Werner et al. AtlasHDF: an efficient big data framework for GeoAI
Zhu et al. Towards semantic 3D city modeling and visual explorations
Kontakis et al. Spatial indexing of complex virtual reality scenes in the web
TW201317935A (zh) 二維量測圖檔解析繪製系統及方法
Chabaniuk et al. Modern approaches to electronic atlases development in the context of ‘big data’
Finat et al. Constructors of geometric primitives in domain ontologies for urban environments
CN102708109B (zh) 栅格数据的读取方法和装置,栅格数据的写入方法和装置
US10282376B2 (en) Semi-structured spatial data conversion
Bivand Analytical environments
Ma et al. OSMsc: a framework for semantic 3D city modeling using OpenStreetMap
Goodchild GIScience in the 21st century
Zhang et al. A ubiquitous knowledgeable data representation model (UKRM) for three-dimensional geographic information systems (3D GIS)
Zhang et al. Distributed processing practice of the 3D city model based on HBase
Kim et al. A light weight algorithm for large-scale BIM data for visualization on a web-based GIS platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160713

Termination date: 20161230

CF01 Termination of patent right due to non-payment of annual fee