[发明专利]一种VCT文件到shapefile文件的矢量数据并行转换方法有效

专利信息
申请号: 201310745410.4 申请日: 2013-12-30
公开(公告)号: CN103678705A 公开(公告)日: 2014-03-26
发明(设计)人: 陈振杰;周琛;李飞雪;黄秋昊;陈冲;吴洁璇;黄涛 申请(专利权)人: 南京大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 南京同泽专利事务所(特殊普通合伙) 32245 代理人: 石敏
地址: 210093 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种VCT文件到shapefile文件的矢量数据并行转换方法,该方法首先分别构建VCT文件中文件头、要素类型参数、属性数据结构、注记、几何图形数据和属性数据的要素索引,并统计各图层的几何图形数据类型和包含的几何图形数据数量,并分别对相同几何图形数据类型的图层按照包含的几何图形数据数量进行排序,然后每个图层的点数据累加得到总点数据w,根据进程数p将VCT文件分为p个矢量目标子集,最后p个进程将从VCT文件中解析出的几何图形数据的坐标信息、属性数据与对应要素的图层进行匹配,并将每个图层的数据分别存入到一个单独的shapefile文件。该方法可以通过并行处理实现对矢量地理数据VCT文件的快速转换。
搜索关键词: 一种 vct 文件 shapefile 矢量 数据 并行 转换 方法
【主权项】:
一种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注记文件中。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310745410.4/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top