文档详情

第三章空间数据处理(第二节).ppt

发布:2016-12-22约3.27千字共35页下载文档
文本预览下载声明
第二节 空间数据结构的转换 (一)点的栅格化 (二)线的栅格化 (二)线的栅格化 (三)面的栅格化 (三)面的栅格化 (三)面的栅格化 (三)面的栅格化 (一)基于图像数据的矢量化方法 2、细化: 将二值图像像元阵列逐步剥除轮廓边缘的点,使 之成为线划宽度只有一个像元的骨架图形。 要求:(1)保持原线划的连续性; (2)线宽只为一个像元; (3)细化后的骨架应是原线划的中心线; (4)保持图形的原有特征。 基本过程:首先,确定需细化的像元集合; 其次,移去不是骨架的像元; 然后,重复上述步骤,直到仅剩骨架像元为止。 (一)基于图像数据的矢量化方法 细化算法:剥皮法 基本原理是,在3×3的像元组中,凡是去掉后不会影响原栅格影像拓扑连通性的像元都应该去掉,反之保留 * * 一、矢量向栅格数据的转换 (一)点的栅格化 (二)线的栅格化 (三)面的栅格化 在ArcGIS中点栅格化的命令是: POINTGRID in_cover out_grid {value_item} {lookup_table} {weight_table} 其中: {value_item}是指用来为生成的每个栅格赋值的字段,一般默认为用每个栅格对应的内部点号(即ID号)来赋值;{lookup_table} :是用来定义栅格单元代码的info表,查找表必须包含两个字段,即{value_item}和CODE,且info表中的CODE字段必须是数值型,查找表必须按照{value_item}字段进行升序排列 {weight_table}:是info表中用于指定栅格单元代码权重的,一个栅格单元会有几个可能的代码值,这时就根据权重把最大的赋给这个单元,权重表中必须包含两个字段:CODE和WEIGHT,在info表中这两个字段必须是数值型的,如果某个代码不在权重表中,那么权重就指定为0,权重表必须按CODE字段进行升序排列 Examples Arc:pointgrid wells gridwell Coverting points from WELLS to grid GRDIWELL Cell Size (Square Cell):30 Convert the Entire Coverage (Y/N)?:Y Backgroud value (NODATA/ZERO)?:NODATA 第一种情况:如果△J △I,也就是列数差小于行数差 Y X 7 6 5 4 3 (X1,Y1) (X2,Y2) 基本思路是:先使用刚才讲的点栅格化的方法,把线段的两个端点栅格化,然后再把线段中间的部分栅格化。 第二种情况: △J △I,也就是列数差大于行数差 在ArcGIS中线栅格化的命令是: LINEGRID in_cover out_grid {value_item} {lookup_table} {weight_table} Examples: Arc:LINEGRID ROADS RDGRID ROADS-TYPE Converting arcs from ROADS to grid RDGRID Cell Size (Square Cell):30 Convert the Entire Coverage (Y/N)?:Y Background value (NODATA/ZERO)?:ZERO 基于弧段数据的栅格化方法 基于多边形数据的栅格化方法 基于弧段数据的栅格化方法 首先,对要进行栅格化的全部范围按行或按列做中心扫描线,求每一条扫描线与所有矢量多边形的边界弧段的交点,并用点的栅格化方法求出交点的栅格行列值。 然后,根据弧段的左右多边形信息判断并记录交点左右多边形的数值。 最后,通过对一行中所有的交点按其坐标x值的大小从小到大进行排序,并结合左右多边形的配对情况,逐段生成栅格数据,直到所有的扫描线都完成从矢量向栅格的转换。 基于弧段数据的栅格化方法 2. 基于多边形数据的栅格化方法 内点填充法 边界代数法 包含检验法 (1)内点填充法 程序设计比较复杂,而且可能造成阻塞而造成扩散不能完成,此外若多边形不完全闭合时,会扩散出去。 内点填充法 (2)边界代数法 不是逐点搜寻判别边界,而是根据边界的拓扑信息,通过简单的加减代数运算将拓扑信息动态地赋予各栅格点,实现矢栅转换; 不需要考虑边界与搜索轨迹之间的关系,算法简单,可靠性好; 仅采用加减代数运算,每条边界仅计算一次,免去了公共边界重复运算,又可不考虑边界存放的顺序,所以运算速度快; 同时较少受内
显示全部
相似文档