首页 百科知识 栅格矢量一体化数据结构

栅格矢量一体化数据结构

时间:2022-10-09 百科知识 版权反馈
【摘要】:前面已讲述了矢量结构和栅格数据结构,按照传统的观念,矢量和栅格数据似乎是两类完全不同性质的数据结构。总体来看,一体化结构就是采用“细分格网”方法,以提高数据表示的精度。因此,一体化结构虽然以栅格数据为基础,但却摒弃了传统栅格数据结构的一些不足,它保留了矢量数据的全部特性,并能建立拓扑关系。其中边界由弧段组成,面域信息则由线性四叉树或二维行程编码表示。

4.4.4 栅格矢量一体化数据结构

前面已讲述了矢量结构和栅格数据结构,按照传统的观念,矢量和栅格数据似乎是两类完全不同性质的数据结构。当利用它们来表达空间目标时,对于线状实体,人们习惯使用矢量数据结构;而对于面状实体,在基于矢量的GIS中,主要使用边界表达法,在基于栅格的GIS中,一般用空间填充表达法。由此,人们联想到能否每个面状地物除记录它的多边形边界外,还记录中间包含的栅格,这样,既保持了矢量数据的特性,又具有栅格数据的性质,从而将矢量与栅格数据形式统一起来,这就是矢量与栅格一体化数据结构的基本概念。

总体来看,一体化结构就是采用“细分格网”方法,以提高数据表示的精度。其实可以发现,如果将栅格大小进一步细分,它与矢量法表示的实体已没有什么大的区别。因此,一体化结构虽然以栅格数据为基础,但却摒弃了传统栅格数据结构的一些不足,它保留了矢量数据的全部特性,并能建立拓扑关系。因此,这样的数据具有矢量和栅格双重性质,甚至于人们可以不存储原始采样的矢量数据,用转换后的数据格式亦能保持较好的精度。

1.点状地物和结点的数据结构

应用细分格网法,每个点的位置用两个四叉树中的Morton码来表示,Morton码可通过行列号计算得到,因此其中隐含了位置信息。在这两个Morton中,前一个Morton码为该点在基本格网中的地址码,后一个Morton码为该点在细分格网中的地址码。这种结构简单灵活,便于点的插入和删除,还能处理一个栅格内包含多个点状目标的情况。所有的点状地物以及弧段之间的结点数据都可用一个文件表示,如表4-6所示,可见,这种结构几乎与矢量结构完全一致。

表4-6 点状实体的数据结构

img44

2.线状地物的数据结构

表达一条路径就是要将该线状地物经过的所有栅格的地址全部记录下来。一个线状地物可能由几条弧段组成,所以应先建立一个弧段数据文件,如表4-7所示。表中的中间点串不仅包含了原始采样点(已转换成用M1、M2表示),而且包含了该弧段路径通过的所有格网边的交点,虽然这种数据结构比单纯的矢量结构增加了一定的存储量,但它解决了线状地物的四叉树表达问题,使它与点状、面状地物一起建立了统一的基于线性四叉树编码的数据结构体系。这使得点状地物与线状地物相交、线状地物之间的相交以及线状地物与面状地物相交的查询问题变得相当简便和快速。有了弧段数据文件,线状地物的数据仅是它的集合表示。

表4-7 弧段的数据结构

img45

3.面状地物的数据结构

一个面状地物应记录边界和边界所包围的整个面域。其中边界由弧段组成,面域信息则由线性四叉树或二维行程编码表示。面状地物的数据结构包括弧段文件、带指针二维行程表和多边形数据文件(表4-8、表4-9)。

表4-8 带指针的二维行程表

img46

表4-9 多边形数据结构

img47

弧段文件同上所述,带指针二维行程表指二维行程编码中的属性值是指向该地物的下一个子块的循环指针。即用循环指针将同属于一个目标的叶结点链接起来,形成面向地物的结构(如图4-19所示)。

表4-8中的循环指针指向该地物下一个子块的地址码,并在最后指向该地物本身。这样,只要进入第一块就可以顺着指针直接提取该地物的所有子块,从而避免像栅格数据那样为查询某一个目标需遍历整个矩阵,大大提高了查询速度。

img48

图4-19 循环指针链接情况

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈