《基于FPGA构建的分层次栅格转矢量处理方法.pdf》由会员分享,可在线阅读,更多相关《基于FPGA构建的分层次栅格转矢量处理方法.pdf(33页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103871086 A (43)申请公布日 2014.06.18 CN 103871086 A (21)申请号 201410054902.3 (22)申请日 2014.02.18 G06T 9/00(2006.01) (71)申请人 中国林业科学研究院资源信息研究 所 地址 100091 北京市海淀区香山路东小府 1 号院 (72)发明人 孟献策 鞠洪波 肖鹏 陈永富 张怀清 刘华 (74)专利代理机构 北京市商泰律师事务所 11255 代理人 毛燕生 (54) 发明名称 基于 FPGA 构建的分层次栅格转矢量处理方 法 (57) 摘要 基于 FPGA 构建的分层次栅。
2、格转矢量处理方 法, 属于计算机硬件和计算机程序两个技术领域。 含有数据预处理步骤 ; 采用 FPGA 电路提取边界节 点步骤 ; 多边形搜索步骤 ; 创建多边形矢量步骤 ; 创建矢量文件步骤。对经过预处理的遥感影像进 行矢量化, 将遥感影像上具有相同属性内容的像 元, 转化为包含有 : 不同面积、 不同周长、 不同属 性、 不同形状来表示的矢量图形元素, 并且在转化 后的矢量图形元素间具有完整的空间拓扑关系 ; 在转化后的矢量图形元素属性与遥感影像上所对 应的像元, 在空间位置和属性上具有完全相同的 一一对应关系。 (51)Int.Cl. 权利要求书 4 页 说明书 20 页 附图 8 页 。
3、(19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书4页 说明书20页 附图8页 (10)申请公布号 CN 103871086 A CN 103871086 A 1/4 页 2 1. 基于 FPGA 构建的分层次栅格转矢量处理方法, 其特征在于包括 : 1) 、 数据预处理步骤 ; 2) 、 采用 FPGA 电路提取边界节点步骤 ; 3) 、 多边形搜索步骤 ; 4) 、 创建多边形矢量步骤 ; 5) 、 创建矢量文件步骤。 2.根据权利要求1所述的基于FPGA构建的分层次栅格转矢量处理方法, 其特征在于含 有以下步骤 ; 1) 、 数据预处理步骤 ; 在获取遥感影像数据后,。
4、 对栅格数据进行了边界扩展处理, 在将原栅格数据的四周添 加一圈新的像元数据 ; 对于所要添加的像元数据, 要求是该数据的像元值或属性内容, 要与原栅格数据中任 何一个的像元值或属性内容都不相同 ; 根据像元值或属性内容的分类, 设置栅格转矢量的条件 ; 是将栅格数据全部转换为矢 量数据 ; 还是只转换某些指定像元值或属性内容中某些类型的像元, 即设置栅格转矢量所 依据的基本条件 ; 在数据预处理结束后, 启动节点提取步骤 ; 在节点提取步骤中 ; 可以根据转换条件, 将扩展后的栅格数据按照所设置的栅格转矢 量条件, 传送到栅格转矢量处理器中, 处理器按分层次转换条件进行节点提取, 计算后传回。
5、 节点数据, 为多边形搜索提供边界节点数据 ; 其具体转换数量由转换条件决定 ; 只对栅格数据中的某些指定的像元属性值或内容, 进行栅格转矢量计算 ; 而不存在现 有栅格转矢量算法中, 只能一次将栅格数据全部转化为矢量数据的强制性限制 ; 2) 、 采用 FPGA 电路提取边界节点步骤 ; 在采用 FPGA 电路构造的节点提取电路中, 主要包含有参数寄存器初始化操作 ; 栅格数 据存储地址计算单元、 3*3 像元矩阵节点计算单元、 节点保存控制单元, 循环控制操作单元 等硬件功能电路组成, 这些硬件功能电路在系统时序的控制下, 逐步进行操作, 直到完成所 有栅格数据的节点提取操作 ; 参数寄存。
6、器初始化操作 : 在参数寄存器初始化操作中, 包含有 : 栅格数据参数初始化, 节点计算参数初始化两个 部分 ; 栅格数据参数初始化主要用于记录栅格数据的基本信息, 如栅格数据 (指扩展后的栅 格数据) 存储在存储器中的开始地址、 栅格数据的行数、 列数 ; 一个像元所使用的字节数量、 栅格数据需要转换为矢量数据的转换条件 (数组) 及转换数量等参数 ; 节点计算参数初始化用于记录节点计算中需要使用参数信息, 及在计算中需要保存的 参数、 计算结果等信息, 并且在节点计算中还需要使用栅格数据参数中数据 ; 参数寄存器初始化操作完成后, 进入节点提取的循环操作, 其操作步骤如下 : 栅格数据存储。
7、地址计算单元 : 栅格数据存储地址计算单元, 是根据参数寄存器的初始化内容和当前计算像元的位置 信息, 计算出进行 3*3 像元矩阵计算时, 需要参与计算的栅格数据的存储地址, 供 3*3 像元 权 利 要 求 书 CN 103871086 A 2 2/4 页 3 矩阵节点计算单元读取栅格数据进行计算 ; 节点计算单元 : 在 3*3 像元矩阵节点计算单元中, 根据地址计算单元提供的栅格数据的地址, 读取栅 格数据 (像元) 按照分层次边界拓扑搜索模型要求进行计算, 生成节点编码 ; 节点保存控制控制单元 : 节点保存控制单元包含有 : 节点保存地址计算电路、 节点有效性检查电路和条件转换 分。
8、层控制电路、 节点读写控制电路四部分组成 ; 节点保存地址计算电路, 根据节点计算参数寄存器的初始化内容和节点数量计算出节 点数据需要保存在内存中地址, 供保存节点时使用 ; 节点有效性检查电路和条件转换分层控制电路, 对节点计算单元所计算出的节点编码 进行判断, 该节点编码是否有效及该像元是否符合分层条件 ; 节点读写控制电路, 对符合分层条件的有效节点, 根据节点保存地址, 将节点编码、 像 元的行列位置等信息保存到存储器中, 供多边形搜索时使用 ; 循环控制操作单元包含有行循环控制操作单元和列循环控制操作单元两部分 ; 负责完 成对栅格数据的全遍历循环控制操作, 直到完成栅格数据在具体某。
9、个转换条件 (层次) 的边 界拓扑搜索模型的计算工作, 生成全部节点数据, 供多边形搜索时使用 ; 如果循环没有结束则继续进行上述操作 ; 3) 、 多边形搜索步骤 ; 当节点提取电路运行结束时, 符合条件的节点数据已经全部提取出来 ; 启动多边形搜 索流程进行多边形搜索计算, 此流程是一个并行计算的操作流程, 其所需启动的流程的个 数, 将根据所设置的栅格转矢量条件中的转换类型数量来确定 ; 或者按照行或列进行分组 进行并行计算 ; 在流程中需要对每个多边形搜索队列的接受和反馈信息进行处理, 控制和调度多边形 搜索对流的运行状况, 保证并行计算的正确运行 ; 首先是创建一个多边形数据结构 ;。
10、 然后从边界节点数据中开始读取节点数据, 并以此 节点为开始节点, 创建一个新的多边形搜索队列 ; 创建完多边形搜索队列后, 继续读取边界 节点数据, 按照搜索条件开始进行多边形搜索计算, 满足此多边形条件的节点添加到此多 边形队列中, 直到新节点的指向为开始节点时, 此多边形队列已经形成一个封闭的多边形, 即完成了一个多边形的搜索计算流程, 多边形封闭后, 将这个多边形作为多边形数据结构 中的一条多边形记录进行保存 ; 同时需要删除该多边形搜索队列 ; 如果读取的边界节点数据, 不是现有并行计算多边形队列中的连接节点时, 则需要创 建一个新的多边形搜索队列, 重复上述操作直到将边界节点数据中。
11、的所有节点, 全部变成 形成封闭多边形, 完成多边形搜索计算 ; 4) 、 创建多边形矢量步骤 ; 在创建多边形矢量数据流程中, 将根据多边形搜索计算中获得的有关该多边形的顺序 号、 面积、 周长、 开始节点位置、 多边形类型、 空洞多边形数量、 多边形范围、 节点数据集等信 息记录到多边形数据结构表中, 为合并多边形矢量数据进行数据准备, 同时启动创建矢量 数据文件操作流程 ; 在多边形搜索计算结束后, 启动创建多边形矢量数据流程 ; 创建多边形矢量数据的目 权 利 要 求 书 CN 103871086 A 3 3/4 页 4 的是, 为多边形数据结构中的每个岛多边形, 找到一个能够包容他的。
12、最小独立多边形, 找到 这个独立多边形后, 将岛多边形的坐标点链表中的坐标数据, 添加到包容他的独立多边形 的坐标点链表的末端, 修改独立多边形的面积为 : S=S-Sd, S 为独立多边形面积, Sd 为岛多 边形面积 ; 并给独立多边形的岛多边形数量的属性值 +1, 他的初始值为 0 ; 重复上述操作直到为所有岛多边形找到包容他的独立多边形为止 ; 5) 、 创建矢量文件步骤 ; 在创建矢量文件流程中, 首先根据栅格数据所使用的坐标系信息, 创建矢量文件和坐 标系, 然后根据多边形矢量数据中独立多边形的数量, 建立循环搜索过程, 每次读取一个多 边形矢量数量, 并按照多边形矢量数据的结构写。
13、入到矢量文件中, 当将多边形矢量数据中 的所有独立多边形矢量数据全部写入到矢量文件中时, 完成创建矢量文件流程, 结束栅格 转矢量流程, 结束对一个栅格文件的转换工作。 3.根据权利要求1所述的基于FPGA构建的分层次栅格转矢量处理方法, 其特征在于含 有以下步骤 ; 栅格转矢量处理步骤 ; 分层次边界拓扑搜索模型 : 栅格数据中的一个像元就是对应于地表上的一个二维正 方形区域 (也有矩形的) , 该矩形的四条边, 就是此像元与其他相邻像元的分界线 ; 对于一个 由 3*3 像元组成的像元矩阵来讲, 处于矩阵中心的像元, 称之为中心点像元, 在中心点像元 周围还分布有八个像元 ; 将所有这些相。
14、邻像元都当作一个相邻数据层 ; 依据分层次处理的技术路线, 通过将独 立数据层与相邻数据层间的分界线都提取出来, 连接成一个个封闭多边形, 即分层次栅格 转矢量。 4.根据权利要求3所述的基于FPGA构建的分层次栅格转矢量处理方法, 其特征在于含 有以下步骤 ; 采用分层次边界拓扑搜索模型进行边界节点计算时, 需要将栅格数据中的每 个像元, 都作为中心点像元, 同时读取中心点像元和四个相邻像元进行比较计算, 确认每个 中心点像元是否为边界节点, 对栅格数据进行全遍历的一个搜索计算过程。 5.根据权利要求4所述的基于FPGA构建的分层次栅格转矢量处理方法, 其特征在于含 有以下步骤 ; 栅格转矢。
15、量处理步骤的初始化内容包含 : 栅格数据参数初始化, 节点计算参 数初始化两个部分内容 ; 栅格数据参数初始化主要用于记录栅格数据的基本信息, 如栅格数据 (指扩展后的栅 格数据) 存储在存储器中的开始地址、 栅格数据的行数、 列数 ; 一个像元所使用的字节数量、 栅格数据需要转换为矢量数据的转换条件 (数组) 及转换数量等参数 ; 节点计算参数初始化用于记录节点计算中需要使用参数信息, 及在计算中需要保存的 参数、 计算结果等信息, 并且在节点计算中还需要使用栅格数据参数中数据。 6. 根据权利要求 1 所述的基于 FPGA 构建的分层次栅格转矢量处理方法, 其特征在于 含有以下步骤 ; 创。
16、建多边形矢量步骤 ; 首先对多边形数据按照多边形类型和多边形最大范 围进行排序, 根据岛多边形的数量建立搜索循环过程, 在循环中每次读取一个岛多边形数 据, 根据岛多边形的最大范围, 在独立多边形数据中搜索找到一个能够包容他的独立多边 形序列, 此序列中的独立多边形从最小独立多边形向逐渐扩大的顺序排列, 首先从最小独 立多边形开始, 判断岛多边形是否被包容, 如果被包容, 将岛多边形的坐标点链表数据添加 权 利 要 求 书 CN 103871086 A 4 4/4 页 5 到独立多边形的坐标点链表数据中, 完成一个岛多边形的搜索 ; 如果不被包容, 则在包容他 的独立多边形序列中寻找下一个独立。
17、多边形进行判断, 直到找到一个包容他的独立多边形 为止 ; 重复上述操作, 直到为每个岛多边形找到包容他的独立多边形为止, 完成创建多边形 矢量数据流程。 7.根据权利要求1所述的基于FPGA构建的分层次栅格转矢量处理方法, 其特征在于含 有以下步骤 ; 创建矢量文件步骤 ; 在创建多边形矢量数据流程结束后, 独立多边形与岛多边形的拓 扑关系已经建立完成, 只需要将多边形矢量数据写入文件就完成栅格转矢量的全部流程和 操作了 ; 在创建矢量文件流程中, 首先根据栅格数据所使用的坐标系信息, 创建矢量文件和坐 标系, 然后根据多边形矢量数据中独立多边形的数量, 建立循环搜索过程, 每次读取一个多 。
18、边形矢量数量, 并按照多边形矢量数据的结构写入到矢量文件中, 当将多边形矢量数据中 的所有独立多边形矢量数据全部写入到矢量文件中时, 完成创建矢量文件流程, 结束对栅 格数据中一个栅格转矢量条件的全部转换工作 ; 在将多边形矢量数据写入到矢量文件时, 因为栅格数据是经过扩展的, 他的像元位置 相对原栅格数据, 在行和列的位置上还需要对多边形的坐标点都增加了一个像元的位置, 需要在转换时对节点的坐标点 (X, Y) 都 -1。 权 利 要 求 书 CN 103871086 A 5 1/20 页 6 基于 FPGA 构建的分层次栅格转矢量处理方法 技术领域 0001 本发明涉及基于 FPGA 构建。
19、的分层次栅格转矢量处理方法, 属于计算机硬件技术 和计算机程序两个技术领域。 背景技术 0002 矢量数据和栅格数据是地理信息系统中最长见的两种空间数据结构。 但随着航天 技术的快速发展, 所能提供的各种类型、 各种分辨率的遥感影像数据也越来越丰富, 遥感影 像信息已经成为地理信息系统中的一个非常重要的信息来源, 同时地理信息系统的发展也 对对遥感信息的依赖性变得越来越强了。但是由于栅格数据本身所具有的缺陷, 使得他在 地理信息系统中的应用受到了一定的限制, 因此将栅格数据转换为矢量数据也就变得非常 重要了 ; 同时栅格转矢量技术也是属于地理信息处理技术中相对比较经典的技术问题, 也 产生和积。
20、累了比较多的计算方法, 并在地理信息系统中得到应用。 发明内容 0003 为了克服现有技术的不足 , 本发明提供基于 FPGA 构建的分层次栅格转矢量处理 方法。 0004 基于 FPGA 构建的分层次栅格转矢量处理方法, 通过采用 FPGA 电路构造分层次边 界拓扑搜索模型, 用硬件电路模拟算法的方式, 对栅格数据进行分层次边界拓扑搜索模型 计算, 在计算中自动生成带有边界节点坐标和节点方向的边界节点 ; 达到对大数据的快速 处理的目的 ; 对 FPGA 电路产生的节点数据, 在通过软件对节点数据进行搜索, 构造出包含 有多边形之间的相邻、 包容和被包容等拓扑关系的矢量文件。 0005 因此。
21、本发明在处理其超大数据量、 拓扑关系极其复杂的遥感影像数据时, 更能够 显示出该发明的转换效率和高速性能。该技术的应用可以提高在大面积、 大范围的各类资 源调查中的效率和自动化程度, 及时准确地的获取各种资源信息, 从而达到节省人力物力 的目的。 0006 基于 FPGA 构建的分层次栅格转矢量处理方法, 采用 FPGA 电路构造分层次边界拓 扑搜索模型实现栅格转矢量中的边界提取处理器设计, 充分利用计算机技术在网格计算、 云计算、 并行计算等方面高速发展所取得的技术成果, 通过采用 FPGA 电路构造的分层次边 界拓扑搜索模型, 在硬件电路的模型计算中, 自动生成带有边界节点坐标和节点方向的。
22、边 界节点, 通过对这些边界节点的搜索, 构造出包含有多边形之间的相邻、 包容和被包容等拓 扑关系的矢量文件。 在栅格转矢量过程中, 只需要对需要转换的图像数据加载一次, 就能够 自动完成整个转换过程 ; 不需要进行任何转换后的后期处理工作, 并且在转换后不可能出 现多边形相互间重叠、 相交 ; 相邻、 包容拓扑关系错误和不完整的情况。 0007 因此本申请技术在处理数据量庞大、 拓扑关系极其复杂的遥感影像数据时, 更加 能够显示出本申请技术的转换效率和高速性能。 0008 本发明所要解决的技术问题, 提供了基于 FPGA 构建的分层次栅格转矢量处理方 说 明 书 CN 103871086 A。
23、 6 2/20 页 7 法, 对遥感影像数据进行栅格数据矢量化, 将遥感影像上具有相同属性内容的像元, 转化为 包含有 : 不同面积、 不同周长、 不同属性、 不同形状来表示的矢量图形元素, 并且也能够表现 出这些 不同矢量图形元素之间, 所存在的相邻、 包容和被包容的空间拓扑关系也能够得到 完全展示。并且转化后的矢量图形元素属性与遥感影像上所对应的像元, 在空间位置上具 有完全相同的一一对应关系。 0009 基于 FPGA 构建的分层次栅格转矢量处理方法, 采用与传统的转换方法不同的处 理方法, 通过采用 FPGA 电路构造的分层次边界点拓扑搜索模型, 将栅格数据像元间的拓扑 关系简化, 在。
24、模型计算中自动生成包含有坐标位置信息的边界节点, 并且这些边界节点数 据还具有描述边界节点是从哪里开始、 到哪里结束的边界走向的指向性信息 ; 在通过对这 些边界节点数据进行多边形搜索, 通过边界节点数据的指向性, 可以十分明确的定位与之 相连的边界节点的确切位置信息, 将这些具有特定关系的边界节点全部连接起来, 就自动 形成一个封闭多边形, 并且通过判断封闭多边形的走向, 如果是顺时针他就是一个独立多 边形, 他可能包含有岛多边形 ; 如果是逆时针他就一定是被某个独立多边形所包容的岛多 边形。 而不可能出现多边形相互间的重叠、 相交 ; 相邻、 包容拓扑关系错误和不完整情况, 所 有本发明具。
25、有算法简洁、 快速生成的边界节点数据具有明确的指向性和唯一性的特定拓扑 关系。 0010 而且本发明包含有三个显著特点是, 一个是可以对栅格数据中的某些指定的像元 属性值或内容, 进行栅格转矢量计算 ; 而不存在现有栅格转矢量算法中, 只能一次将栅格数 据全部转化为矢量数据的强制性限制 ; 二个是通过采用 FPGA 电路构造的分层次边界点拓 扑搜索模型, 用计算机硬件电路技术将栅格数据转化为矢量数据, 具有比采用软件编程算 法所无法想象的速度 ; 三是采用软硬件技术相结合的技术方法, 用计算机硬件技术对栅格 数据进行边界节点快速提取, 用并行计算技术对边界节点数据进行多边形搜索, 从而完成 栅。
26、格转矢量操作。因此本发明可以极大的提高转化效率和广泛的应用领域。 0011 本发明的栅格转矢量算法, 只需要对需要转换的图像数据加载一次, 就能够自动 完成整个转换过程, 不需要进行任何转换后的后期处理工作, 并且转换后不可能出现多边 形相互间重叠、 相交 ; 相邻、 包容拓扑关系错误和不完整的情况。 0012 此本发明特别适合于超大数据量、 栅格数据中像元相邻关系极其复杂的栅格转矢 量计算。该算法提高在森林资源监测、 湿地资源监测、 土地资源监测等各种资源在分布范 围、 资源变化、 预测分析等方面的数据处理效率 ; 特别是需要对监测目标进行实时跟踪处理 的自然灾害在发生、 发展情况中的监测分。
27、析预警系统 ; 及目标识别、 目标制导等军事应用领 域中的需要进行栅格转矢量的计算应用 ; 并且该算法在转化后的矢量数据中, 不存在转换 误差、 不需要进行任何后期处理操作, 故该技术具有计算模型简单、 转换效率高、 速度快, 自 动化程度高和可有选择性的将栅格数据转化为矢量数据的突出特点。 0013 本发明提供了基于 FPGA 构建的分层次栅格转矢量处理方法, 包括 : 0014 1) 、 数据预处理步骤 ; 0015 2) 、 采用 FPGA 电路提取边界节点步骤 ; 0016 3) 、 多边形搜索步骤 ; 0017 4) 、 创建多边形矢量步骤 ; 0018 5) 、 创建矢量文件步骤 。
28、; 说 明 书 CN 103871086 A 7 3/20 页 8 0019 基于FPGA构建分层次边界拓扑搜索模型的基于FPGA构建的分层次栅格转矢量处 理方法流程图见图 1 所示。 0020 基于 FPGA 构建的分层次栅格转矢量处理方法 , 含有以下步骤 ; 0021 1) 、 数据预处理步骤 ; 0022 在获取遥感影像数据后, 为了实现算法的简单化、 避免在计算中需要对栅格数据 中的四个边界上 (第一行、 最后一行、 第一列和最后一列) 的数据进行特殊计算, 减少计算中 的条件分支判断, 提高运算效率, 达到用一个统一直观的处理流程进行计算的目的, 对栅格 数据进行了边界扩展处理, 。
29、即进行数据预处理操作。 0023 数据预处理的目的是在将原栅格数据的四周添加一圈新的像元数据。 0024 对于所要添加的像元数据, 要求是该数据的像元值或属性内容, 要与原栅格数据 中任何一个的像元值或属性内容都不相同。 0025 数据预处理的第二个目的是根据像元值或属性内容的分类, 设置栅格转矢量的条 件。是将栅格数据全部转换为矢量数据 ; 还是只转换某些指定像元值或属性内容中某些类 型的像元, 即设置栅格转矢量所依据的基本条件。 0026 在数据预处理结束后, 启动 FPGA 电路提取边界节点步骤, 该步骤是一个可以同时 进行并行计算的流程, 所需要启动的流程的个数, 将根据所设置的栅格转。
30、矢量条件中的转 换类型数量来确定。 0027 FPGA 电路提取边界节点理步骤 ; 0028 将扩展后的栅格数据按照所设置的栅格转矢量条件, 传送到栅格转矢量处理器 中, 处理器按分层次转换的方式, 计算后分组传回节点数据, 其具体数量由转换条件中的转 换数量来决定 ; 为进行多边形搜索提供边界节点数据。 0029 2) 、 采用 FPGA 电路提取边界节点步骤 ; 0030 在采用 FPGA 电路构造的节点提取电路中, 主要包含有参数寄存器初始化操作 ; 栅 格数据存储地址计算单元、 3*3 像元矩阵节点计算单元、 节点保存控制单元, 循环控制操作 单元等硬件功能电路组成, 这些硬件功能电路。
31、在系统时序的控制下, 逐步进行操作, 直到完 成所有栅格数据的节点提取操作。 0031 参数寄存器初始化操作 : 0032 在参数寄存器初始化操作中, 包含有 : 栅格数据参数初始化, 节点计算参数初始化 两个部分。 0033 栅格数据参数初始化主要用于记录栅格数据的基本信息, 如栅格数据 (指扩展后 的栅格数据) 存储在存储器中的开始地址、 栅格数据的行数、 列数 ; 一个像元所使用的字节 数量、 栅格数据需要转换为矢量数据的转换条件 (数组) 及转换数量等参数。 0034 节点计算参数初始化用于记录节点计算中需要使用参数信息, 及在计算中需要保 存的参数、 计算结果等信息, 并且在节点计算。
32、中还需要使用栅格数据参数中数据。 0035 参数寄存器初始化操作完成后, 进入节点提取的循环操作, 其操作步骤如下 : 0036 栅格数据存储地址计算单元 : 0037 栅格数据存储地址计算单元, 是根据参数寄存器的初始化内容和当前计算像元的 位置信息, 计算出进行 3*3 像元矩阵计算时, 需要参与计算的栅格数据的存储地址, 供 3*3 像元矩阵节点计算单元读取栅格数据进行计算。 说 明 书 CN 103871086 A 8 4/20 页 9 0038 节点计算单元 : 0039 在 3*3 像元矩阵节点计算单元中, 根据地址计算单元提供的栅格数据的地址, 读 取栅格数据 (像元) 按照分层。
33、次边界拓扑搜索模型要求进行计算, 生成节点编码。 0040 节点保存控制控制单元 : 0041 节点保存控制单元包含有 : 节点保存地址计算电路、 节点有效性检查电路和条件 转换分层控制电路、 节点读写控制电路四部分组成。 0042 节点保存地址计算电路, 根据节点计算参数寄存器的初始化内容和节点数量计算 出节点数据需要保存在内存中地址, 供保存节点时使用。 0043 节点有效性检查电路和条件转换分层控制电路, 对节点计算单元所计算出的节点 编码进行判断, 该节点编码是否有效及该像元是否符合分层条件。 0044 节点读写控制电路, 对符合分层条件的有效节点, 根据节点保存地址, 将节点编 码、。
34、 像元的行列位置等信息保存到存储器中, 供多边形搜索时使用。 0045 循环控制操作单元包含有行循环控制操作单元和列循环控制操作单元两部分。 他 负责完成对栅格数据的全遍历循环控制操作, 直到完成栅格数据在具体某个转换条件 (层 次) 的边界拓扑搜索模型的计算工作, 生成全部节点数据, 供多边形搜索时使用。 0046 如果循环没有结束则继续进行上述操作。 0047 3) 、 多边形搜索步骤 ; 0048 多边形搜索计算采用并行方法, 该并行方法是 : 首先是创建一个多边形数据结构。 然后从边界节点数据中开始读取节点数据, 并以此节点为开始节点, 创建一个新的多边形 搜索队列。 创建完多边形搜索。
35、队列后, 继续读取边界节点数据, 按照搜索条件开始进行多边 形搜索计算, 满足此多边形条件的节点添加到此多边形队列中, 直到新节点的指向为开始 节点时, 此多边形队列已经形成一个封闭的多边形, 即完成了一个多边形的搜索计算流程, 多边形封闭后, 将这个多边形作为多边形数据结构中的一条多边形记录进行保存 ; 同时需 要删除该多边形搜索队列。 0049 如果读取的边界节点数据, 不是现有并行计算多边形队列中的连接节点时, 则需 要创建一个新的多边形搜索队列, 重复上述操作直到将边界节点数据中的所有节点, 全部 变成形成封闭多边形, 完成多边形搜索计算。 0050 4) 、 创建多边形矢量步骤 ; 。
36、0051 在创建多边形矢量数据流程中, 将根据多边形搜索计算中获得的有关该多边形的 顺序号、 面积、 周长、 开始节点位置、 多边形类型、 空洞多边形数量、 多边形范围、 节点数据集 等信息记录到多边形数据结构表中, 为合并多边形矢量数据进行数据准备, 同时启动创建 矢量数据文件操作流程。 0052 在多边形搜索计算结束后, 启动创建多边形矢量数据流程。创建多边形矢量数据 的目的是, 为多边形数据结构中的每个岛多边形, 找到一个能够包容他的最小独立多边形, 找到这 个独立多边形后, 将岛多边形的坐标点链表中的坐标数据, 添加到包容他的独立多 边形的坐标点链表的末端, 修改独立多边形的面积为 :。
37、 S=S-Sd, S 为独立多边形面积, Sd 为 岛多边形面积 ; 并给独立多边形的岛多边形数量的属性值 +1, 他的初始值为 0。 0053 重复上述操作直到为所有岛多边形找到包容他的独立多边形为止。 0054 5) 、 创建矢量文件步骤 ; 说 明 书 CN 103871086 A 9 5/20 页 10 0055 在创建矢量文件流程中, 首先根据栅格数据所使用的坐标系信息, 创建矢量文件 和坐标系, 然后根据多边形矢量数据中独立多边形的数量, 建立循环搜索过程, 每次读取一 个多边形矢量数量, 并按照多边形矢量数据的结构写入到矢量文件中, 当将多边形矢量数 据中的所有独立多边形矢量数据。
38、全部写入到矢量文件中时, 完成创建矢量文件流程, 结束 栅格转矢量流程, 结束对一个栅格文件的转换工作。 0056 本发明的优点是使用遥感影像数据提供了基于 FPGA 构建的分层次栅格转矢量处 理方法, 使用软硬件结合的技术方法, 对经过预处理 (指数计算、 阈值分割、 分类等计算处 理) 的遥感影像进行矢量化, 将遥感影像上具有相同属性内容的像元, 转化为包含有 : 不同 面积、 不同周长、 不同属性、 不同形状来表示的矢量图形元素, 并且也能够表现出这些不同 矢量图形元素之间, 所存在的相邻、 包容和被包容的空间拓扑关系也能够得到完全展示。 通 过转化后的矢量图形, 可以更方便的对图形元素。
39、的属性信息, 分析他在空间位置上所发生 的面积变化、 空间位置变化、 属性信息间的相互转化和演替过程进行监测和预测, 为进行缓 冲区分析、 叠加分析 (叠加求交、 叠加求和) 等与空间分析计算相关联的地理信息处理能力 提供了可能, 增加和扩大了遥感影像数据在地理信息应用领域的范围, 也为地理信息应用 领域提供了更多的基础数据。 附图说明 0057 当结合附图考虑时, 通过参照下面的详细描述, 能够更完整更好地理解本发明以 及容易得知其中许多伴随的优点, 但此处所说明的附图用来提供对本发明的进一步理解, 构成本发明的一部分, 本发明的示意性实施例及其说明用于解释本发明, 并不构成对本发 明的不当。
40、限定, 如图其中 : 0058 图 1 为本发明的流程图 ; 0059 图 2 为本发明的数据预处理流程示意图 ; 0060 图 3 为本发明的上部向右型 - 搜索方向示意图 ; 0061 图 4 右侧向下型 - 搜索方向示意图 ; 0062 图 5 下部向左型 - 搜索方向示意图 ; 0063 图 6 左侧向上型 - 搜索方向示意图 ; 0064 图 7 用 FPGA 构造的节点提取电路流程图 ; 0065 图 8 栅格转矢量处理器结构框图 ; 0066 图 9 地址计算控制器单元框图 ; 0067 图 10 节点计算单元框图 ; 0068 图 11 节点保存控制单元框图 ; 0069 图 。
41、12 循环控制操作单元框图 ; 0070 图 13 多边形搜索调度与控制流程示意图 ; 0071 图 14 多边形搜索流程示意图 ; 0072 图 15 创建多边形矢量数据流程示意图 ; 0073 图 16 创建矢量文件流程示意图。 0074 下面结合附图和实施例对本发明进一步说明。 说 明 书 CN 103871086 A 10 6/20 页 11 具体实施方式 0075 显然, 本领域技术人员基于本发明的宗旨所做的许多修改和变化属于本发明的保 护范围。 0076 实施例 1 : 如图 1、 图 2、 图 3、 图 4、 图 5、 图 6、 图 7、 图 8、 图 9、 图 10、 图 11。
42、、 图 12、 图 13、 图 14、 图 15、 图 16 所示, 基于 FPGA 构建的分层次栅格转矢量处理方法, 含有以下步骤 ; 0077 1、 数据预处理步骤 ; : 0078 对栅格数据结构的描述如下 : 0079 用 N 表示该数据的最大行数, 第一行为 0, 最后一行为 N, 具体到某一行时用 n 表 示。 0080 用 M 表示该数据的最大列数, 第一列为 0, 最后一列为 M, 具体到某一列时用 m 表 示。 0081 在获取遥感影像数据后, 为了实现算法的简单化、 避免在计算中需要对栅格数据 中的四个边界上 (第一行、 最后一行、 第一列和最后一列) 的数据进行特殊计算,。
43、 减少计算中 的条件分支判断, 提高运算效率, 达到用一个统一直观的处理流程进行计算的目的, 对栅格 数据进行了边界扩展处理, 即进行数据预处理操作。 0082 数据预处理的目的是在将原栅格数据的四周添加一圈新的像元数据。 0083 对于所要添加的像元数据, 要求是该数据的像元值或属性内容, 要与原栅格数据 中任何一个的像元值或属性内容都不相同。 0084 数据预处理的第二个目的是根据像元值或属性内容的分类, 设置栅格转矢量的条 件。是将栅格数据全部转换为矢量数据 ; 还是只转换某些指定像元值或属性内容中某些类 型的像元, 即设置栅格转矢量所依据的基本条件。 0085 在边界搜索流程中, 将根。
44、据所设置的栅格转矢量条件, 只对满足转换条件的栅格 数据进行转换。栅格转矢量条件, 用数组 ZHTJ(i) 表示, 需要进行转换的属性类型数量, 用 ZHLX_SL 表示。 0086 数据预处理流程见图 2 所示。如原栅格数据为 18 行, 13 列, 包含有 9 种属性类别, 原栅格数据见表 1 所示 ; 扩展处理后的栅格数据为为 20 行, 15 列, 包含有 10 种属性类别, 扩展后的栅格数据见表 2 所示。 0087 在算法中规定采用将原属性类别的最大数 +1 所得到的属性值, 作为扩展数据的 属性值, 添加到原栅格数据四周, 以保证所添加的扩展数据与原栅格四周边界上数据属性 值的完。
45、全不同。或者用栅格数据的像元的最大值 +50 的方式添加扩展数据。数据扩展后的 栅格数据包含有 10 中属性种类, 比原数据增加了一种属性类型。 0088 表 1 原栅格数据示例, N*M=18*13 0089 1 1 1 3 3 4 4 3 3 5 5 2 2 1 1 2 3 3 3 4 4 4 5 1 5 2 1 2 2 2 3 3 3 4 4 5 1 5 5 5 2 2 3 3 3 3 5 5 5 5 5 5 5 3 3 3 3 3 7 7 5 5 5 5 6 5 5 5 3 3 7 7 7 5 8 5 6 6 5 5 4 4 4 7 7 7 8 8 6 6 6 4 4 4 4 4 6 。
46、7 7 7 7 8 4 6 说 明 书 CN 103871086 A 11 7/20 页 12 9 4 4 4 6 6 6 7 8 8 8 4 4 9 9 6 6 6 6 6 9 9 8 8 4 4 9 9 6 6 9 6 9 9 9 8 4 4 5 5 9 6 6 9 9 9 9 9 9 7 7 5 5 9 9 6 9 1 1 1 1 9 7 5 5 4 9 9 9 9 1 1 3 1 9 7 7 5 4 9 9 1 1 1 3 3 1 1 9 5 5 4 6 9 9 1 3 3 3 3 3 1 9 9 2 8 9 9 1 1 1 1 1 3 1 9 9 2 8 8 8 9 9 9 9 1 。
47、1 1 9 5 0090 0091 表 2 扩展后栅格数据 N*M=20*15 0092 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 111334433552210 10 112333444515210 10 122233344515510 10 522333355555510 10 533333775555610 10 555337775856610 10 554447778866610 10 444446777784610 10 944466678884410 10 996666699884410 10 996696999844510 1。
48、0 596699999977510 10 599691111975510 10 499991131977510 10 499111331195510 10 469913333319910 10 289911111319910 10 288899991119510 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 0093 0094 栅格转矢量处理步骤 ; 0095 1) 分层次边界拓扑搜索模型 : 0096 栅格转矢量算法研究的问题是, 如果有一块像元类型或像元值 (或像元值在一定 范围内) 完全相同的区域 (可以是任意形状) , 那么与该区域相邻的所有。
49、其他像元, 其像元类 型或像元值 (或像元值不在那个范围内的像元) 就一定与这块区域不同 ; 如何用一条矢量 线, 将这个区域处于边缘位置上像元, 和与之相邻的所有像元分割开来, 并且这条矢量线还 要将这块区域完全包围起来, 形成一个封闭的多边形 ; 并且在这个多边形中还不能出现线 段交叉、 重复等情况, 同时这个多边形还应该具有完整的拓扑关系, 如包容、 被包容等拓扑 关系。 0097 针对栅格转矢量问题, 本申请提出了基于 FPGA 构建的分层次栅格转矢量处理方 法, 下面进行步骤描述。 0098 栅格数据中的一个像元就是对应于地表上的一个二维正方形区域 (也有矩形的) , 该矩形的四条边, 就是此像元与其他相邻像元的分界线 ; 对于一个由 3*3 像元组成的像元 说 明 书 CN 103871086 A 12 8/20。