arcgis紧凑型切片缓存(解决大范围切片,文件数量大的问题)

ArcGIS 切片缓存的紧凑型存储格式是一种优化的存储方式,用于提高切片缓存的存储效率和访问速度。紧凑型存储格式将多个切片文件合并为一个单一的 .bundle 文件,从而减少文件系统的开销和切片的加载时间。这类格式已经应用很久了,我记得2013我项目中就采用过此类格式!最重要的是这是一种公开开放的格式有很多代码和库可以读写此类格式。而我们在日常使用软件中应尽量使用公开和开放的格式,以保证系统数据的可兼容性和可迁移性!

1.紧凑型切片缓存的优点

减少文件数量:将多个切片合并为一个 .bundle 文件,可以显著减少文件数量,从而降低文件系统的负担。

提高访问速度:由于文件系统需要处理的文件减少,读取和写入操作的性能得到提升。

节省存储空间:通过压缩和合并,紧凑型格式可以节省一定的存储空间。

便于管理和传输:减少了需要管理和传输的文件数量,简化了缓存的管理和分发过程。

2.创建紧凑型切片缓存

在 ArcGIS 中,可以使用 ArcGIS Pro 或 ArcMap 创建紧凑型切片缓存。以下是一个使用 ArcGIS Pro 创建紧凑型切片缓存的示例步骤:

  • 使用 ArcGIS Pro 创建紧凑型切片缓存

  • 打开 ArcGIS Pro 并创建项目:

  • 打开 ArcGIS Pro 并创建一个新项目或打开一个现有项目。

  • 准备地图文档:

  • 添加要切片的地图图层并进行必要的样式设置和配置。

  • 共享为 Web 地图或 Web 场景:

  • 在"共享"选项卡中,选择"Web 地图"或"Web 场景"。

  • 配置服务参数并发布。

  • 创建缓存:

  • 在发布服务时,选择"使用切片缓存"选项。

  • 配置缓存参数,包括切片方案、切片格式等。

  • 选择"紧凑型"作为缓存存储格式。

  • 生成缓存:

  • 发布服务后,缓存生成过程会自动开始。

  • 生成的切片缓存会存储在指定的缓存目录中,并以紧凑型格式保存。

3.读取方式:

在 ArcGIS 的紧凑型切片缓存中,.bundle 文件和 .bundlex 文件一起工作。.bundle 文件包含实际的切片数据,而 .bundlex 文件是索引文件,描述了每个切片的偏移和大小。要读取 .bundlex 文件并从 .bundle 文件中提取切片数据,你需要理解它们的文件结构。

  • .bundle 文件:存储切片数据。

  • .bundlex 文件:存储索引信息,描述切片在 .bundle 文件中的偏移量和大小。

读取 .bundlex 文件的步骤

  • 读取 .bundlex 文件,获取每个切片的偏移量和大小。

  • 根据索引信息读取 .bundle 文件,提取相应的切片数据。

4.将XYZ型 转 为紧凑型:

要将 XYZ 切片格式转换为 ArcGIS 紧凑型切片缓存格式,可以使用 ArcGIS Pro 中的工具和功能。以下是详细步骤:

使用 ArcGIS Pro 将 XYZ 切片转换为紧凑型切片缓存

准备工作
  1. 确保你有 ArcGIS Pro 和相关的扩展(如 Spatial Analyst 或 3D Analyst)。

  2. 将 XYZ 切片导入为栅格数据集:将 XYZ 格式的切片导入到 ArcGIS 中作为栅格数据集。如果你的数据已经在 XYZ 格式,可以使用适当的工具或脚本进行转换。

具体步骤

第一步:导入 XYZ 切片
  1. 打开 ArcGIS Pro,创建一个新的项目或打开一个现有项目。

  2. 导入 XYZ 切片数据

    • 如果 XYZ 切片以文件夹形式存在,确保所有切片文件按 XYZ 命名规则(例如 z/x/y.png)存放。

    • 使用"添加数据"功能将 XYZ 数据导入到 ArcGIS Pro。

第二步:创建切片缓存
  1. 创建切片图层

    • 在"内容"面板中,右键点击你的地图或影像图层。

    • 选择"共享 > 发布 Web 图层"。

  2. 配置切片缓存

    • 在"共享为 Web 图层"对话框中,填写服务名称和存储位置。

    • 在"配置 Web 图层"页面中,选择"切片"作为图层类型。

    • 配置切片缓存的详细设置,例如切片方案、切片格式、缓存存储格式等。

  3. 选择紧凑型存储格式

    • 在"切片缓存设置"中,选择"紧凑型"作为缓存存储格式。
  4. 生成缓存

    • 配置完成后,点击"发布"按钮。ArcGIS Pro 将开始生成切片缓存,并将其保存为紧凑型格式(.bundle.bundlex 文件)。

但个人认为无论那种压缩或合并格式都会产生效率损失,因为各类普遍应用前端应用读写前都会解压翻译成标准格式,而解压翻译国产就会产生效率损失!所以如小范围还是xyz的切片格式最快。

相关推荐
材料苦逼不会梦到计算机白富美4 小时前
golang分布式缓存项目 Day 1
分布式·缓存·golang
Java 第一深情4 小时前
高性能分布式缓存Redis-数据管理与性能提升之道
redis·分布式·缓存
HBryce245 小时前
缓存-基础概念
java·缓存
想要打 Acm 的小周同学呀12 小时前
LRU缓存算法
java·算法·缓存
hlsd#12 小时前
go 集成go-redis 缓存操作
redis·缓存·golang
镰刀出海12 小时前
Recyclerview缓存原理
java·开发语言·缓存·recyclerview·android面试
奶糖趣多多14 小时前
Redis知识点
数据库·redis·缓存
CoderIsArt15 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
ketil2719 小时前
Redis - String 字符串
数据库·redis·缓存
生命几十年3万天21 小时前
redis时间优化
数据库·redis·缓存