文章信息
- 王蕊, 贲进, 杜灵瑀, 周建彬, 李祝鑫
- WANG Rui, BEN Jin, DU Lingyu, ZHOU Jianbin, LI Zhuxin
- 正二十面体四孔六边形格网系统编码运算
- Code Operation Scheme for the Icosahedral Aperture 4 Hexagonal Grid System
- 武汉大学学报·信息科学版, 2020, 45(1): 89-96
- Geomatics and Information Science of Wuhan University, 2020, 45(1): 89-96
- http://dx.doi.org/10.13203/j.whugis20180191
-
文章历史
收稿日期: 2018-12-16

2. 61287部队, 四川 成都, 610000
2. Troops 61287, Chengdu 610000, China
全球离散格网系统(discrete global grid system,DGGS)是一类以地球作为组织框架的空间参考系统。相较于传统空间数据模型,其更适合解决大尺度的问题[1],且单元运算可完全借助编码实现,有助于提高数据处理效率。六边形具有拓扑关系一致、采样效率高等理想几何特性,有助于实现空间分析算法[2-3]及数据的可视化表达[4],但其不具备叠合一致性,无法直接建立多分辨率格网层次关系。Gibson等[5]提出一种多维数据结构,其二维特例可通过广义平衡三进制(generalized balanced ternary,GBT)运算实现不同层次六边形单元索引。然而,GBT采用高分辨率单元聚合生成低分辨率单元,在球面上会导致格网破碎或重叠。
基于多面体剖分建立六边形全球离散格网系统仍被认为是目前最有效的方法。正二十面体面数最多,投影到球面后变形最小[6],因而被广泛使用。Sahr[7]认为,正二十面体等积三孔六边形格网系统(icosahedral snyder equal area aperture 3 hexagonal grid, ISEA3H)具有较好的几何属性,他借助与GBT类似的码元分布,建立改进广义平衡三进制(modified generalized balanced ternary,MGBT)编码方案,但其编码不唯一,仅适用于表达矢量数据。之后,Sahr[8]又将MGBT分解为两种子单元模块的组合,建立三孔六边形树(aperture 3 hexagon tree,A3HT)唯一编码方案,并扩展至正二十面体。Vince[9]建立了正二十面体三孔六边形格网的进制索引,并实现了傅里叶变换。童晓冲等[10]建立了四孔六边形格网系统的四元平衡结构(hexagonal quad balanced structure,HQBS),并实现正二十面体格网编码运算。
数学家已从理论上证明,封闭球面拓扑等价于封闭正二十面体表面,全球离散格网系统编码运算拓扑等价于正二十面体格网系统编码运算。然而无限平面格网的编码运算规则不适用于正二十面体封闭表面,如何实现正二十面体上的高效率编码运算是目前的研究难点。A3HT通过指定正二十面体上首层单元的递归剖分规则建立正二十面体格网系统,该方案不是直接利用编码运算实现单元操作,而是先借助二维整数坐标系计算结果,再将之转换为编码[8]。HQBS采用分面编码到全局编码的映射解决上述问题,但只能保证编码运算在单个三角面上连续,跨面操作仍需借助笛卡尔坐标运算实现。上述两种方案的计算效率均不高,理论上也不严密。Vince[9]通过对三孔六边形格网层次结构的裁剪拼接建立正二十面体格网模型,由于区分奇(偶)层编码,运算规律较复杂,且相邻层次单元方向会交替变化,不利于格网层次分析。
本文结合四孔六边形格网系统在正二十面体表面的分布特点,基于六边形格点四叉树定义顶点瓦片与面瓦片结构,提出正二十面体四孔六边形格网系统编码方案,归纳编码运算规律,通过对比实验验证方案的有效性与优越性。
1 平面四孔六边形格网编码运算四孔六边形格网单元剖分过程如图 1所示,为保证编码的唯一性,本文的格网剖分选择图 1阴影部分所示的子单元模块,它们关于父单元对称,几何属性更优。
|
| 图 1 四孔六边形格网子单元模块 Fig. 1 Child Block of Aperture 4 Hexagonal Grids |
为便于讨论,定义平面格网系统单元中心为格点(lattice point)等效替代单元。首层格网单元可自定义。令Ln表示第n层格点集合(n≥1),根据编码运算需要,本文定义的L1在复数平面上的位置如图 2所示,图中
|
| 图 2 L1格点位置示意图 Fig. 2 Diagram of L1 Location |
根据文献[11],在复数平面上,令
| $ \left\{\begin{array}{l}{L}_{n}={L}_{1}+\stackrel{n}{\sum \limits_{j=2}}\frac{1}{{2}^{j}}D\\ {L}_{1}=\frac{1}{2}D\prime \end{array}\right. $ | (1) |
式中,
|
| 图 3 L1与L2格点层次关系示意图 Fig. 3 Diagram of Relationship Between L1 and L2 |
式(1)表明,四孔六边形格点系统本质上是一种定位计数系统,格点与实数域上的二进制、十进制等数字的本质完全相同,是复数域上一种特定形式的“数”。该定位计数系统的进制为2,数字位集合为
| $ x=\frac{1}{2}{d}_{1}+\frac{1}{4}{d}_{2}+\cdots +\frac{1}{{2}^{n}}{d}_{n} $ | (2) |
式中,d1∈
| $ x={d}_{1}{d}_{2}\cdots {d}_{n} $ | (3) |
式中,复数数字位di(
根据上述替换规则,数字位集合D'被替换为整数码元集合
| $ x={e}_{1}{e}_{2}\cdots {e}_{n} $ | (4) |
式中,码元
图 4为首层格点
|
| 图 4 格网第三层编码及运算示意图 Fig. 4 Diagram of Codes in the Third Level and Example of Code Arithmetic |
编码运算采用更适合计算机处理的一维码元序列代替传统二维实数坐标,从而提高计算效率。
设Hn为HLQT第n层编码集合(n≥1),编码
设
| $ \begin{array}{c}\alpha \oplus \beta ={a}_{1}{a}_{2}\cdots {a}_{n}\oplus {b}_{1}{b}_{2}\cdots {b}_{n}=({\varepsilon }_{n}^{{a}_{n}}\oplus {\varepsilon }_{n}^{{b}_{n}})\oplus \\ ({\varepsilon }_{n-1}^{{a}_{n-1}}\oplus {\varepsilon }_{n-1}^{{b}_{n-1}})\oplus \cdots \oplus ({\varepsilon }_{2}^{{a}_{2}}\oplus {\varepsilon }_{2}^{{b}_{2}})\oplus ({\varepsilon }_{1}^{{a}_{1}}\oplus {\varepsilon }_{1}^{{b}_{1}})\end{array} $ | (5) |
式中,
对于非首位加法位上的码元相加,即
1) 若
2) 若
3) 若
计算首位码元,包括
| 相加码元 | 相加码元 | ||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 10 | 20 | 30 | 40 | 50 | 60 | 100 | 200 | 300 | 400 | 500 | 600 | |
| 0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 10 | 20 | 30 | 40 | 50 | 60 | 100 | 200 | 300 | 400 | 500 | 600 |
| 1 | 1 | 100 | 20 | 2 | 0 | 6 | 10 | 106 | 102 | 200 | 3 | 5 | 600 | 201 | 30 | 4 | 60 | 601 | |
| 2 | 2 | 20 | 200 | 30 | 3 | 0 | 1 | 100 | 201 | 203 | 300 | 4 | 6 | 102 | 302 | 40 | 5 | 10 | |
| 3 | 3 | 2 | 30 | 300 | 40 | 4 | 0 | 1 | 200 | 302 | 304 | 400 | 5 | 20 | 203 | 403 | 50 | 6 | |
| 4 | 4 | 0 | 3 | 40 | 400 | 50 | 5 | 6 | 2 | 300 | 403 | 405 | 500 | 1 | 30 | 304 | 504 | 60 | |
| 5 | 5 | 6 | 0 | 4 | 50 | 500 | 60 | 600 | 1 | 3 | 400 | 504 | 506 | 10 | 2 | 40 | 405 | 605 | |
| 6 | 6 | 10 | 1 | 0 | 5 | 60 | 600 | 601 | 100 | 2 | 4 | 500 | 605 | 106 | 20 | 3 | 50 | 506 | |
HLQT是平面上的编码结构,正二十面体表面为封闭三角面集合,HLQT编码运算规则不能完全适用,为了避免复杂、低效的跨三角面运算,需要将HLQT编码扩展到正二十面体上, 并设计简洁、高效的编码运算方案。
2.1 正二十面体顶点结构正二十面体共有20个三角面及12个顶点,每个顶点周围都连续排列有5个共顶点的三角面(图 5(a)),将该顶点结构作为正二十面体表面基础结构。沿任意一条边
|
| 图 5 正二十面体顶点结构展开示意图 Fig. 5 Expanded View of Vertex Structure of Icosahedron |
以图 5(c)作为研究对象,作三角面内接六边形,则还存在一个以V1为中心、与6个内接六边形为相邻的顶点六边形。定义三角面内接六边形内格点集合为
|
| 图 6 面瓦片与顶点瓦片 Fig. 6 Face Tile and Vertex Tile |
为建立顶点结构上的格点集合,借助图 5所示的正二十面体顶点结构变化,去除一个
记正二十面体表面的四孔六边形离散格网系统第n层对应的格点集合为
| $ {G}_{n}=\stackrel{19}{\bigcup \limits_{j=0}}{P}_{n}^{j}\bigcup \stackrel{11}{\bigcup \limits_{k=0}}{R}_{n}^{k} $ | (6) |
式中,
面瓦片位于单个三角面内,满足HLQT编码运算规律。顶点瓦片位于5个相连三角面上,运算涉及跨三角面单元的处理。由于顶点瓦片由平面六边形裁剪拼接而得,在运算不经过拼接边界时,仍满足HLQT编码运算规律;当运算经过拼接边界,由于裁剪了一个三角面的编码单元,平面编码运算规律不再适用,运算需跨越一个三角面。
如图 6所示,边界
| $ {c}_{1}=\left\{\begin{array}{l}\begin{array}{l}{b}_{1}, {b}_{1}\in \left\{\mathrm{0, 2}\right\}\\ 201, {b}_{1}=203\end{array}\\ \begin{array}{l}20, {b}_{1}=30\\ 2 000, {b}_{1}=3 000\end{array}\end{array}\right. $ | (7) |
| $ {c}_{j}=\left\{\begin{array}{l}{b}_{j}, {b}_{1}\in \left\{\mathrm{0, 1}\right\}\\ 2, {b}_{j}=3\\ 3, {b}_{j}=2\end{array}\right. $ | (8) |
式中,
以接边处跨面邻近单元搜索为例,图 7为
|
|
图 7 |
此外,还需注意顶点单元为五边形,只有5个邻近单元,加上5个方向单位向量的对应编码即可。
3 格网生成与跨面编码运算效率对比实验本文在Visual C++ 2012平台上实现了基于正二十面体的四孔六边形格网构造、显示算法。根据用户输入的格网层次
|
| 图 8 格网系统构造、显示流程图 Fig. 8 Flowchart of Construction and Display for the Grid System |
|
| 图 9 正二十面体上四孔六边形格网 Fig. 9 Icosahedral Aperture 4 Hexagonal Grids |
|
| 图 10 球面四孔六边形格网 Fig. 10 Spherical Aperture 4 Hexagonal Grids |
为验证本文提出的顶点结构在编码跨面运算中的优势,将本文方案与HQBS对比,设计了跨面邻近单元搜索实验,即§2.3所述两类单元邻近搜索方法,并统计各层符合条件的编码个数。全部程序编译为Release版本,并在一台兼容机(软件配置:Windows 7 x64旗舰版+SP1;硬件配置:Intel Core i5-6500 CPU@3.20 GHz,8 GB RAM,KingSton 120 GB SSD)上进行测试。统计两种方案在6~19层的运算效率,即在单位时间内查找邻近单元的平均个数。单位时间设置为1 ms,效率比=
| 层次 | 单元个数 | HQBS效率 | 本文方案效率 | 效率比 |
| 6 | 84 | 168.2 | 8 886.6 | 52.8 |
| 7 | 170 | 318.1 | 7 746.4 | 24.4 |
| 8 | 340 | 329.3 | 6 297.5 | 19.7 |
| 9 | 682 | 324.6 | 6 027.7 | 18.6 |
| 10 | 1 364 | 292.3 | 5 437.3 | 18.6 |
| 11 | 2 730 | 276.6 | 4 871.3 | 17.6 |
| 12 | 5 460 | 255.9 | 4 500.1 | 17.6 |
| 13 | 10 922 | 249.2 | 3 683.5 | 14.8 |
| 14 | 21 844 | 242.8 | 3 399.0 | 14.0 |
| 15 | 43 690 | 232.7 | 3 346.5 | 14.4 |
| 16 | 87 382 | 224.6 | 3 044.8 | 13.6 |
| 17 | 174 764 | 213.6 | 2 828.0 | 13.2 |
| 18 | 349 526 | 203.9 | 2 556.2 | 12.5 |
| 19 | 699 052 | 190.3 | 2 383.4 | 12.5 |
|
| 图 11 邻近搜索效率对比曲线 Fig. 11 Comparison of Searching Efficiency Curves for Adjacent Cell |
|
| 图 12 HQBS效率曲线 Fig. 12 Searching Efficiency Curve for HQBS |
分析上述实验结果,得出以下结论:(1)本文方案的跨面邻近单元搜索效率约为HQBS的19.6倍。这主要因为HQBS跨面运算需要借助效率不高的浮点数运算来实现三角面间的旋转、平移,而本文提出的纯编码跨面运算规律只涉及整数编码的直接转换,简单高效,更适合计算机处理。(2)两种方案的编码加法运算效率均随层次升高呈下降趋势。主要原因是:编码长度随层次升高线性增加,编码加法运算需逐个码元处理,编码越长,计算量越大。由于本文方案的绝对效率是HQBS的几十倍,HQBS效率的数值变化在图 11上难以明显看出,图 12表明HQBS的运算效率也呈下降趋势。(3)本文方案效率足以满足绝大多数应用的需求。以对编码运算效率要求较高的实时地形三维可视化为例,对于视点较远的大区域场景,通常采用低分辨率层次格网承载数据,尽管格网单元数目较多,但是效率极高的低层次编码运算可保证处理效率。对于视点较近的局部场景,通常采用高分辨率层次格网承载数据,经过可视区域裁剪后,有效单元数目较少且基本稳定,效率较高的高层次编码运算亦可保证处理效率。
4 结语本文结合四孔六边形格网系统在正二十面体上的分布特点,利用顶点瓦片与面瓦片,巧妙地将无限平面上的四孔六边形格网编码运算方案退化到封闭正二十面体表面。与现有方案相比,本文方案不仅形式简洁、理论严密,而且具有较高的跨面编码运算效率。本文研究思路可扩展到其他规则格网系统上,为编码运算方案的设计、分析和优化提供理论支撑。
| [1] |
Zhou Chenghu, Ou Yang, Ma Ting. Progress in Geographical Model[J]. Progress in Geography, 2009, 28(5): 657-662. (周成虎, 欧阳, 马廷. 地理格网模型研究进展[J]. 地理科学进展, 2009, 28(5): 657-662. ) |
| [2] |
Sahr K, White D, Kimerling J. Geodesic Discrete Global Grid System[J]. Cartography and Geographic Information Science, 2003, 30(2): 121-134. DOI:10.1559/152304003100011090 |
| [3] |
Ben Jin, Tong Xiaochong, Zhou Chenghu, et al. Construction Algorithm of Octahedron Based on Hexagon Grid Systems[J]. Journal of Geo-Information Science, 2015, 17(7): 789-797. (贲进, 童晓冲, 周成虎, 等. 基于正八面体的六边形离散格网系统生成算法[J]. 地球信息科学学报, 2015, 17(7): 789-797. ) |
| [4] |
Sahr K. Hexagonal Discrete Global Grid Systems for Geospatial Computing[J]. Archives of Photogrammetry, Cartography and Remote Sensing, 2011, 6(22): 363-376. |
| [5] |
Gibson L, Lucas D. Spatial Data Processing Using Generalized Balanced Ternary[C]. Processing of PRIP 82, IEEE Computer Society Conference on Pattern Recognition and Image Processing, Las Vegas, Nevada, USA, 1982
|
| [6] |
White D, Kimerling J, Sahr K, et al. Comparing Area and Shape Distortion on Polyhedral-Based Recursive Partitions of the Sphere[J]. International Journal of Geographical Information Science, 1998, 12(8): 805-827. DOI:10.1080/136588198241518 |
| [7] |
Sahr K. Location Coding on Icosahedral Aperture 3 Hexagon Discrete Global Grids[J]. Computers, Environment and Urban Systems, 2008, 32(3): 174-187. DOI:10.1016/j.compenvurbsys.2007.11.005 |
| [8] |
Sahr K. Icosahedral Modified Generalized Balanced Tenary and Aperture 3 Hexagon Tree: US20110022296A1[P]. 2011-01-26
|
| [9] |
Vince A. Indexing the Aperture 3 Hexagonal Discrete Gobal Grid[J]. Journal of Visual Communication and Image Representation, 2006, 17(6): 1 227-1 236. DOI:10.1016/j.jvcir.2006.04.003 |
| [10] |
Tong Xiaochong, Ben Jin. The Principle and Methods of Discrete Global Grid Systems for Geospatial Information Subdivision Organization[M]. Beijing: Surveying and Mapping Press, 2016. (童晓冲, 贲进. 空间信息剖分组织的全球离散格网理论与方法[M]. 北京: 测绘出版社, 2016. )
|
| [11] |
Ben J, Li Y L, Zhou C H, et al. Algebraic Encoding Method of the Aperture 3 Hexagonal Discrete Global Grid System[J]. Science China Earth Science, 2018, 61(2): 97-109. |
2020, Vol. 45


