根据影像数据生成影像金字塔后获得的不同分辨率的图层,以及系统所确定的起始分层和终止分层,同时,系统根据影像图层分辨率的大小,指定每个图层的分层级别编号,从第1层开始,第1层对应分辨率最低的影像分层;第2层对应较第1层分辨率高的影像分层;第3层对应分辨率最高的影像分层。
根据不同的存储类型,生成的缓存结果会有所不同。
其中,nRow:为缓存文件对应的分块在全球剖分格网中的行号,至少4个字符,不够拿0补齐;
nCol:为缓存文件对应的分块在全球剖分格网中的列号,至少4个字符,不够拿0补齐;nVersion:为缓存文件的版本号,这里默认为0000;
Postfix:为缓存文件的扩展名,这里为*.png。
其中,Name:为缓存名称,即缓存根目录的名称,这里为 day。
SuperMap 对地形/影像数据进行分层分块时,采用基于经纬度坐标系全球剖分的规则,该规则建立了全球统一的格网剖分模型,全球尺度的数据和区域尺度的数据都采用这个统一的规则进行分层分块,也就是建立了一个对数据进行分割的标准体系。根据这个规则体系,也可以很容易地确定某个范围的地形/影像数据属于哪个分层分块范围。 采用四叉树的剖分方式对全球范围进行分层分块的切分,分层结果分别对应地形/影像栅格数据建立影像金字塔后所得到的不同分辨率的栅格图层,分层级别的首层编号为 0,一般来说,支持的最大分层数为21层。
经纬度坐标系全球剖分规则,采用规则的正方形格网进行数据的分割,分割后的每一块空间区域为一个正方形区域,这里称为分块,每一个分块对应的数据最终存储为一个缓存文件。经纬度坐标系全球剖分规则中,第0层采用180度*180度的经纬度范围进行分块,则全球范围共被分割成2块;第1层采用90度*90度的经纬度范围进行分块,则全球范围共被分割成8块。依次类推,一直按1/2倍进行剖分,即对分块进行四叉树分割。
图:经纬度坐标系全球剖分规则 |
分层分块采用规则的正方形格网,因此,在一个分层中,全球范围被分割成的每一个分块或者空间区域可以通过行列号来标识该分块在这一分层中的位置,行列号的起始值为0。所有分层中的分块位置的起算点为(-180度,90度),即分块范围的左上角点为(-180度,90度)的分块,其位置为(第0行,第0列),如上图所示。每个分块的地理范围,即分块所表示的空间区域由其所属的分层所确定的全球范围分割原则来决定,例如:第0层,每一个分块的地理范围为180度*180度;第1层,每一个分块的地理范围为90度*90度,依次类推。
如下所示,标记了第1层、第2层、第3层数据分块的结果,图中标识了每一个分块缓存文件的文件名称。
图:对 day 影像数据第1层的分块结果 |
图:对 day 影像数据第2层的分块结果 |
图:对 day 影像数据第3层的分块结果 |
对分层分块数据进行分组存储时,通过按照某种规则划分分组格网,来确定哪些分块缓存文件放置在一起存放,分组格网为规则的格网,格网的行数和列数由行分组跨度row_setp和列分组跨度 col_setp 功能决定,在分层分块结果的基础上,每 row_setp 行的分块为分组格网中的一行,每 col_setp 列的分块为分组格网的一列,按照这种规则,对第1层、第2层、第3层分块缓存文件进行分组,所划分的分组格网如下所示:
根据公式计算可得:
每个分层中行文件夹个数的确定
每个分层中行文件夹的创建个数的计算规则如下:
其中,x为中间变量;n为当前分层的级别编号;floor()为向下取整函数;pow()为幂指数函数;row 即为当前分层目录下要创建的行文件夹的个数,行文件夹的名称为行文件夹的序号,且序号从0000开始编号,依次递增,如0001、0002、0003…;row_image 为当前分层中影像或地形数据分块后的行数;row_setp 为当前分层中分块处理后的行数的分组跨度,即在影像或地形数据分块处理后所产生的剖分格网中,确定格网的每 row_setp 行对应的分块缓存文件存放在一个行文件夹目录下,也就是分组格网的每行包含了 row_setp 行的分块缓存文件,因此,行文件夹的序号也可以理解为分组格网行号。
每个行文件夹中列文件夹个数的确定
每个行文件夹目录下的列文件夹个数 col_image 依赖于当前分层中分块处理后的列数的分组跨度 col_setp,而列数的分组跨度 col_setp 为行分组跨度 row_setp 的2倍,具体计算规则如下:
其中,n 为当前分层的分层级别编号;pow()为幂指数函数;col 行文件夹下要创建的列文件夹的个数,列文件夹的名称为列文件夹的序号,且序号从0000开始编号,依次递增,如0001、0002、0003…;col_image 为当前分层中影像或地形数据分块后的列数;col_setp 为当前分层中分块处理后的列数的分组跨度,影像或地形数据分块处理后所产生的剖分格网,在行分组的基础上,每个行分组中每 col_setp 列对应的分块缓存文件将存放在一个列文件夹目录下,即经过行分组和列分组之后,就构建了分组格网,处在该格网同一格子中的缓存文件将放置在一个列文件夹中。
图:day 影像数据第1层分块数据的分组格网 |
图:day 影像数据第2层分块数据的分组格网 |
图:day 影像数据第3层分块数据的分组格网 |