ArcGIS For Server10.3版本新型紧促切片缓存(.bundle)文件读取

本文介绍了ArcGIS 10.3版本的紧凑型切片缓存(.bundle)文件的结构和读取方法。.bundle文件包含头文件、索引和PNG切片字节流,每个切片由8字节索引表示。通过理解文件头和索引,可以有效地读取和合并.bundle文件。
摘要由CSDN通过智能技术生成

ArcGIS For Server10.3版本新型紧促切片缓存(.bundle)文件读取及合并

前言

… ArcGIS10.3版本发布以后,Esri推出了新的紧凑型切片缓存格式,与之前.bundle+.bundlex文件组合相比,新的格式将所有信息整合到一个.bundle文件中,增强了用户的访问体验。

一、.bundle文件名

…bundle文件的文件名与其中所包含的切片有关,例如R0000C0000、R1c280C10080、R38680C20180、不难看出R和C分别作为行和列的标识,后跟的数字为16进制数,代表该切片中第一张图片的行号与列号,以R1c280C10080为例,换算成10进制为R:115328,C:65664,故该切片中的切片的行列号为:(R:115328,C:65664),(R:115328,C:65665)…(R:115456,C:65791),(R:115456,C:65792),共计128*128张,在索引中的排列方式为第115328行的第65664-65792列,第115329行的65664-65792列,以此类推。

二、读取.bundle

…Esri官方在2016年就在Github上将由松散切片合成紧凑型切片缓存的方法开源了:https://github.com/Esri/raster-tiles-compactcache
…本文根据将由该项目中的代码区推导读取.bundle文件的方法

直接说结论:
.bundle文件由3部分组成:①64个字节的头文件+②128 * 128 * 8个字节的索引③单个PNG切片的字节流
以下代码是Esri项目中创建.bundle文件的代码

BSZ2 = 128 * 128
IDXSZ = BSZ2 * 8
def init_bundle(fname):
    '''Create an empty V2 bundle file'''
    fd = open(fname,"wb")
    # Empty bundle file header, lots of magic numbers
    header = struct.pack("<4I3Q6I",
        3,          # Version
        BSZ2,       # numRecords
        0,          # maxRecord Size
        5,          # Offset Size
   
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值