网站大量收购独家精品文档,联系QQ:2885784924

参考地理信息系统课件07栅格矢量的相互转化来自华北科技学院魏志刚.pptVIP

参考地理信息系统课件07栅格矢量的相互转化来自华北科技学院魏志刚.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 空间数据模型与数据库 3.4矢量结构与栅格结构的相互转换 矢量数据结构向栅格数据结构的转换(栅格化) 栅格数据结构向矢量数据结构的转换(矢量化) 3.4.1矢量到栅格 栅格化过程包括以下操作: 1)确定栅格矩阵(行列数\分辨率); 2)点的变换 3)线的变换 4)多边形的变换(面的变换) 1) 确定栅格矩阵 矢量数据转换成栅格数据后,图形的几何精度必然要降低,所以选择栅格尺寸的大小要尽量满足精度要求,使之不过多地损失地理信息。 为了提高精度,栅格需要细化,但栅格细化,数据量将以平方指数递增,因此,精度和数据量是确定栅格大小的最重要的影响因素。 1) 确定栅格矩阵 在转换之前需要确定栅格单元的大小,栅格单元的大小又称为栅格图像的分辨率,直接决定了栅格数据的精度。 2)点的栅格化 3)线的栅格化方法 线是由多个直线段组成的,因此线的栅格化的核心就是直线段如何由矢量数据转换为栅格数据。 栅格化的两种常用方法为: DDA法(Digital Differential Analyzer数字微分分析法) Bresenham法 DDA法(数字微分分析法) 设(xA,yA),(xB,yB)与栅格网的交点为(xi,yi),则: 其中: 这样从i=0计算到i=n-1,即可得直线与格网的n个交点坐标,对其取整就是该点的栅格数据了。 该方法的基本依据是直线的微分方程,即dy/dx=常数。其本质是用数值方法解微分方程,通过同时对x和y各增加一个小增量来计算下一步的x,y值,即这是一种增量算法。 在该算法中,必须以浮点数表示坐标,且每次都要舍入取整,因此,尽管算法正确,但速度不够快。 Bresenham算法 该算法原来是为绘图机设计的,但同样适合于栅格化。该算法构思巧妙,只需根据由直线斜率构成的误差项的符号,就可确定下一列坐标的递增值。 根据直线的斜率,把直线分为8个卦限。下面举斜率在第一卦限的情况为例,其余卦限的情况类似。 该算法的基本思路可描述为:若直线的斜率为1/2≤△y/△x≤1,则下一点取(1,1)点,若0≤△y/△x<1/2,则下一点取(1,0)点。 在算法实现时,令起始的误差项为e=-1/2, 然后在推断出下一点后,令e=e+△y/△x,若e≥0时,e=e-1。 这样只要根据e的符号就可确定下一点的增量,即: ????? 若e≥0,取(1,1)点 ????? 若e<0,取(1,0)点 例如,一直线的斜率为1/3,起始点:e0=-1/2,取点0 第1点:e1=-1/2 +1/3=-1/6取点① 第2点:e2=-1/6 +1/3 = 1/6且e2’=-5/6;取点② 第3点:e3=-5/6+1/3=-1/2取点③ 第4点:e4=-1/2+1/3=-1/6取点④ 第5点:e5=-1/6 +1/3 = 1/6且e2’=-5/6;取点⑤ 第6点:e6=-5/6+1/3=-1/2取点⑥ 依次进行,直到到达直线的另一端点。 这种算法不仅速度快、效果好,而且可以理论上证明它是目前同类各种算法中最优的。 为避免浮点运算,可令初值e’=e*2*△x 当△x≥0时与e同号 ?? 当e’0时,y方向获增量1,即令e’=e’-2*△x; 一般情况下e’=e’+2△y 起始点:e=-1/2, 即e’=-3 ????? 第2点:e=-1/2 +1/3=-1/6,e’=-3+2△y=-1取点① ????? 第3点:e=-1/6 +1/3 = 1/6,即e’=-1+2=1,取点②且e=-5/6,e’=-5; 4)面域的栅格化 边界线的转化与线的栅格化方法相同,接下来就是属性的填充。 填充的方法很多,关键问题是正确判断哪些栅格单元位于多边形之内,哪些位于多边形之外。为此,多边性必须严格封闭,没有缝隙。 方法有: 内部点扩散法 射线算法 平行线扫描法与铅垂线跌落法 边界代数充填算法 边界点跟踪算法 (1)内部点扩散算法 该算法由每个多边形一个内部点(种子点)开始,向其八个方向的邻点扩散,判断各个新加入点是否在多边形边界上,如果是边界上,则该新加入点不作为种子点,否则把非边界点的邻点作为新的种子点与原有种子点一起进行新的扩散运算,并将该种子点赋以该多边形的编号。重复上述过程直到所有种子点填满该多边形并遇到边界停止为止。 扩散算法程序设计比较复杂,并且在一定的栅格精度上,如果复杂图形的同一多边形的两条边界落在同一个或相邻的两个栅格内,会造成多边形不连通,这样一个种子点不能完成整个多边形的填充。 (2)射线算法 射线算法可逐点判断数据栅格点在某多边形之外或在多边形内,由待判点向图外某点引射线,判断该射线与某多边形所有边界相交的总次数,如相交偶数次,则待判点在该多边形外部,如为奇数次,则待判点在该多边形内部。 采用射线算法

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档