数字地图制图原理 Part5 矢量、栅格数据转换 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 本章主要内容: 不同数据格式之间转换的必要性 矢量数据到栅格数据格式转换 内部点扩散算法 射线算法 扫描算法 叠代数算法 栅格数据到矢量数据格式转换 矢量栅格混合数据处理 2 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 5.1 不同数据格式之间转换的必要性 栅格结构和矢量结构是模拟地理信息的两种不同的方 法,二者结合,优势互补。 栅格数据结构具有“属性明显、位置隐含”的特点,它易于实 现,操作简单,有利于栅格的空间信息模型的分析,但栅格 数据表达精度不高,数据存储量大,工作效率低。因此基于 栅格结构的应用来说,需要根据应用项目的自身特及其精度 要求来恰当地平衡栅格数据结构的表达精度和工作效率两者 之间的关系。 矢量数据结构具有“位置明显、信息隐含”的特点,它操作起 来比较复杂,许多分析操作(如叠置分析)用矢量数据结构 难于实现;但它的数据表达精度高,数据存储量小,输出图 形美观却工作效率高。 3 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 Scanning Original map Scanned image Editing & Cleaning Vectorising Resulting vector data 4 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 5 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 6 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 矢量栅格格式比较 比较内容 数据结构 数据量 图形精度 遥感影像格式 数据共享 拓扑和网络分析 叠置分析 矢量结构 结构复杂、紧凑、 冗余度低 小 高 不一致 不易实现 容易实现 不易实现 栅格结构 简单、冗余度 高 大 低 一致或接近 容易实现 不易实现 容易实现 7 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 5.2 矢量数据转换成栅格数据 将矢量数据转换为行、列号 点的栅格化 I = 1 + INT{ (Ymax-Y)/△Y } J = 1 + INT{ (X-Xmin)/△X } 8 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 线的栅格化 八方向栅格化 根据矢量的倾角情况,在每行或每列上,只有一个像 元被“涂黑”(赋予不同于背景的灰度值)。 保持八方向连通,栅格影像看起来最细,不同线划间 不易“粘连” Y Y X X 9 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 全路径栅格化 即按行计算起始列号和终止列号(或者采用按列计算起 始行号和终止行号)的方法 基本步骤: ①计算矢量倾角的正切 ②计算起始、终止列号 ③将改行从起始列到终止列全部“涂黑” ④若当前行不是终点,继续从②开始循环 Y X 10 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 两种栅格化比较 11 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 恒密度栅格化 实质上指在八方向的基础上,在矢量所通过的路径上, 适当增加“涂黑”(涂灰)的像元,使得在任何方向上,栅 格化的结果的视觉密度基本保持恒定 12 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 面域的栅格化 射线法 平行线扫描法 铅垂线跌落法 边界跟踪法 外环顺时针,内环逆时针(防止内环被填充) 沿边界判断每个单元的类型,行数增加为L,减少为 R,不变为N 填充L与R之间的栅格 扩散法 种子填充法,以种子向八方向填充,直到遇到边界 为止。(种子点填充算法和扫描线种子填充算法) 13 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 射线法 边界跟踪法 14 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 种子填充算法 15 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 5.3 栅格数据转换到矢量数据 点的矢量化 对于任意一个栅格点A而言,将其行、列号转换为 中心点的X,Y坐标 X=X0+(J-0.5)* Dx Y=Y0+(I-0.5)* Dy 线/面状目标的矢量化 线状目标为提取中心线 面状目标为提取边界线(封闭的) 16 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 边界提取的主要步骤与方法 地图数据输入目前比较常见的方法是扫描地图的数字化, 那么解决栅格影像向矢量数据自动转换问题就非常突出 边界提取主要分两步细化与轴线矢量化 线状栅格数据的细化 栅格影像一般具有一定粗度且线划本身多呈现粗细不 均匀的状态,细化以便于进一步处理,这是因为: 中轴线是栅格数据的理想表示 实现细化是将栅格曲线矢量化的前提 中轴线是以栅格形式制作地图符号的基础之一 某些算法中可以提高计算精度 细化算法从大的方面分两大类 基于距离变换图,得到骨架线,再跟踪山脊线 基于不破坏连通的情况下不断去除边缘算法 17 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 用距离变换法搜索中 轴线 首先得到距离变换图, 然后从骨架图的某个 像元出发,沿着两个 跟踪领域中灰度值最 大的那个像元(相同 时,可进一步判断往 下的那个像元),尽 量保持在所有像元的 中间部分,同时对其 加粗,将其余像元置 为负数,以示区别, 知道处理玩所有像元。 18 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 最大数值计算法 按照某种计算因子,使得边缘像元保持不变,内部像元 增强,然后提取内部增强像元的方法 V = f(i,j) + f(i-1,j) + f(i,j+1) + f(i-1,j+1) 19 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 经典的细化算法 其基本原理是去掉不会影响原栅格影像拓扑连通性的像 元,保留影像连通性的像元,在此基础上跟踪矢量化的 方法 20 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 边缘跟踪剥皮法 其思想是寻找到一个位于线划影像边缘的像元,接着依 此像元为中心,按一定顺序(CW/CCW)检测其八个领 域的灰度值。通过这次检测,可以同时达到两个目的: 一是决定本中心像元应不应该被置成“0”;二是找到与本 中心像元相邻的边缘像元,以便继续“剥皮”和跟踪 跟踪线划栅格影像一侧边缘的终止条件是跟踪到了起始 像元 21 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 轴线栅格数据的矢量化 1、从第一列(行)起由上至下逐行(列)寻找起始 中心栅格 2、以所找到的栅格为中心,从上一“邻居”开始顺时针 (CCW)判断其八方向“邻居”内容,把首先搜索到的 有“1”值的“邻居”作为前进方向上的下一个中心栅格 3、将判别中心移动到新找到的栅格,然后计算上一 中心栅格的中心栅格点坐标,记入数组,将该栅格值 置“0” 4、重复2-3步,当八“邻居”都无值或已经到达边界时, 整条曲线或部分曲线已经追踪完毕 5、重复执行1-4,直到所有栅格都编程“0”,则转换 结束 22 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 23 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 矢量栅格混合数据处理 为了实现矢/栅数据的优势互补,许多软件提供两种数据 结构的接口 为了地图信息的可视化美观 为了快速实现某些特殊的地图分析功能 缓冲带内居民点的选取 复杂矢量目标缓冲区内的选取操作 栅格数据处理 矢量曲线的求交运算 复杂曲线的求交运算 栅格数据的位置判断与求交 目标操作 栅格图形建立地理坐标系 选取在矢量图形中进行 地貌晕渲与等高线匹配显示等 24 数 字 地 图 制 图 原 理 Part5 矢量栅格数据格式转换 25 数 字 地 图 制 图 原 理 26