当前位置: 首页 > 专利查询>南京大学专利>正文

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

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

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

技术介绍
地理信息系统(Geographic Information System, GIS)是计算机科学、地理学、测量学、地图学等多门学科综合的技术,而矢量数据结构是地理信息系统中的重要数据结构形式。地理信息系统采用的矢量数据结构模型,是将空间地质实体抽象成点、线、面三种几何要素,矢量数据结构通过优化拓扑结构表达空间实体的相关关系,为空间数据库建立框架。随着GIS产业的迅猛发展,地理数据已经成为许多部门、行业的重要数据资源,确保交换畅通、消除信息孤岛是地理数据管理和应用中的重要内容。但各商用GIS软件中地理数据的存储格式各不相同,数据管理和交换受制于GIS软件。为此,1999年我国发布了《地球空间数据交换格式》,2007年又发布了其更新版本《地理空间数据交换格式》,是我国矢量数据、影像数据、格网数据交换格式的国家标准。其中,矢量数据交换格式(VCT)格式广泛应用于土地利用现状调查、土地利用规划和地籍调查等成果汇交和交换中。VCT数据格式数据为文本数据,主要包括文件头、要素类型参数、属性数据结构、几何图形数据、注记、属性数据六个部分。VCT数据格式各部分的意义如下,I)文件头:说明文件所包含数据的基本信息,如文件标志、坐标单位、投影参数等。2)要素类型参数:说明每类要素对应的要素类型编码、要素类型名称、几何类型、缺省颜色、属性表名。3)属性数据结构:说明每个要素所对应的属性结构,包括属性表名、属性项个数、属性项名、字段描述。4)几何图形数据:分为点要素、线要素和面要素,包括每个几何图形的目标标识码、要素代码、所属图层名、坐标等信息(线、面形还有顶点个数信息)。5)注记:包括注记的坐标位置、注记内容、字体等信息。6)属性数据:可由多个属性表组成,由属性表名作为开始标志,每个属性表的属性相对集中。VCT交换格式文件的主要特点是:(I)采用文本格式的明码文件,方便不同系统间的数据交换和查看;(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文件包括文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据,其中所述几何图形数据包括三类,分别是点数据、线数据和面数据;所述转换方法包括以下步骤: 第一步、打开VCT文件,并进行并行环境初始化,生成指定数目P的进程; 第二步、主进程逐行读取VCT文件,分别构建该VCT文件中文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据的要素索引,具体为: I)找到以“HeadBegin”作为开始标识符、“HeadEnd”作为结束标识符之间的字符串信息作为文件头,并从文件头中找到该VCT文件的投影参数; 2)找到以“FeatureCodeBegin”作为开始标识符、“FeatureCodeEnd”作为结束标识符之间的字符串信息作为要素类型参数,以行为单位遍历该要素类型参数,得到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)根据当前图层的几何图形数据类型、投影参数、属性字...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈振杰周琛李飞雪黄秋昊陈冲吴洁璇黄涛
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1