块码是游程编码的一种变异,它以正方形区域为单元对块状地物的栅格数据进行编码,其实质是把栅格阵列中同一属性方形区域各元素映射成一个元素序列。
块码的编码方式为:行号、列号、半径、代码。行号和列号表示正方形区域左上角栅格元素所在行号及列号;半径表示正方形区域行(或列)方向的栅格元素数;代码表示该正方行区域的属性值。
图3-13所示的8×8栅格矩阵为例,对其进行块码编码,所得编码结果如表3-11。
表3-11 块码表
(1,1,1,0),(1,2,2,4),(1,4,1,7),(1,5,1,7),(1,6,2,7),(1,8,1,7),
(2,1,1,4),(2,4,1,4)。(2,5,1,4),(2,8,1,7),
(3,1,1,4),(3,2,1,4),(3,3,1,4),(3,4,1,4),(3,5,2,8),(3,7,2,7),
(4,1,2,0),(4,3,1,4),(4,4,1,8),
(5,3,1,8),(5,4,2,8),(5,6,1,8),(5,7,1,7),(5,8,1,8),
(6,1,3,0),(6,6,3,8),
(7,4,1,0),(7,5,1,8),
(8,4,1,0),(8,5,1,0)
从上表可知,图3-13栅格数据可用22个1单位方块,6个4单位方块及两个9单位方块来描述。
块编码法实际上是把一维游程编码扩展到二维空间。
若一个面状地物所能包含的正方形越大,多边形边界越简单,块码编码的效率越高。它同游程编码一样,对图形比较碎,多边形边界复杂的图形,数据压缩率低。块码对计算面积、检索图形延伸性及合并插入操作较有利,但是有时不便于运算。