影像服务缓存可提高影像服务在客户端应用程序中的性能。 对影像服务进行缓存时,服务器会在不同级别上预先生成切片,在这种情况下,获取这些切片的速度要比每次从 ArcGIS Server 发出请求时处理镶嵌数据集或栅格数据集的输入数据的速度更快。 影像服务缓存很重要的一个方面是:它不适合动态处理的影像,而是预先处理影像来创建缓存切片并提供缓存切片。
对影像服务进行缓存时,将生成一个具有双重用途的影像服务,并且可根据其用途来进行访问。 一种用途是以最快速度访问通过切片服务形式提供的影像。 另一种用途是提供对数据的访问,以用于查询、下载、访问各个项并在处理和分析中使用。
注:
所有影像缓存均以 8 位数据的形式存储。
为何要缓存影像服务?
缓存影像服务的主要优点是提高其性能。 缓存影像服务可以非常快速地显示影像,因为 ArcGIS Server 不必动态生成影像。 缓存影像服务的具体优点包括:
- 可改善基础影像的性能 - 如果将影像服务用作基础影像(即地图背景),而不希望用户去修改影像服务的任何属性(如更改镶嵌方法或执行查询),则建议进行缓存。
- 可跳过概视图生成过程 - 当您正发布将用作基础影像的镶嵌数据集时,如果缓存影像服务,则可跳过为镶嵌数据集创建概视图的过程,从而节省时间。 在提供一组预处理和切片的正射像片或 DEM 地貌晕渲渲染时,则可能应用此功能。
- 可改善慢格式的性能 - 发布性能较低的格式或高压缩的格式时,建议生成缓存。 如果因函数链比较复杂而影响了镶嵌数据集的速度,那么通过缓存可加快影像的访问速度。
如何创建缓存?
缓存不会自动进行。 首先,必须将镶嵌数据集和栅格数据集共享为影像服务。 接下来,您将设置一些属缓存性。 然后,您可以开始创建缓存。
对影像服务进行缓存时,它将以多个预定义比例级别或像素大小生成影像切片的集合,与地图服务类似。 这可允许用户快速放大或缩小地图,但只能使用那些匹配比例。 此外,影像服务缓存将使用默认 RGB 波段组合和镶嵌方法创建。
切片方案
针对缓存创建所选择的比例级别和所设置的属性构成了切片方案。 切片方案应该与您可能集成的其他图层一致。 例如,您可以选择使用熟知的 ArcGIS Online、Google 地图和 Bing 地图切片方案,以便可以将您的缓存轻松地叠加到这些在线地图服务上,也可以创建您自己的切片方案,并使其在您自己的 web 应用程序内保持一致。 每个缓存都有一个可在创建新缓存时直接导入的切片方案文件,以确保所有缓存都使用相同的切片大小和比例。
如果切片方案与应用程序中其他图层所使用的切片方案不匹配,则看不到缓存图层。 这是因为与 ArcGIS Pro 不同,Web 客户端通常无法重采样您的数据以在其他级别上显示这些数据。
如果创建您所拥有的唯一切片方案,您可能想要选择与镶嵌数据集概视图或栅格数据集中的金字塔匹配的比例或像素大小间隔。 如果可以根据与要创建的缓存切片具有相近或相同缓存间隔的概视图或金字塔创建,这有助于提升缓存的质量;否则,可能会从其他缓存切片创建缓存切片,而这可能会降低影像质量。 在 ArcGIS Pro 中对每个比例的源数据进行预览有助于保证影像的良好效果,然后再在切片方案中应用这些比例。
还可以通过在用于缓存的高级设置页面的最大源像元大小中输入相应值来控制缓存的基本像元大小。 例如,您可能使用此方法从概视图或金字塔停止的位置上开始创建缓存。
缓存切片
缓存切片将以 JPEG 或 PNG 格式处理和存储,这样服务器即可根据需要随时分发这些图像。
缓存存储于服务器缓存目录中。 安装 ArcGIS Server 时,会在本地文件夹中创建一个服务器缓存目录。 如果要向站点中添加更多的 GIS 服务器,您需要共享服务器缓存目录(使用操作系统选项,如 Windows 文件共享),以便站点中的其他机器也可以访问该服务器缓存目录。
为达到其所有性能优势,缓存还需要一些费用。 缓存切片需要占用时间以及通过服务器支持来创建,还需要使用硬件进行存储。 当您对源数据(如镶嵌数据集)进行编辑后,可能还需要进行缓存更新。 如果应用程序在广泛区域内以大比例提供影像,您可能需要确定构建和维护缓存所需的时间和存储空间是否会超出获得的性能优势。
了解创建影像服务缓存的步骤按需缓存
按需缓存可以设置切片方案并发布影像服务,但仅在用户访问服务时生成缓存。 第一个导航到未缓存区域的用户必须等待服务器绘制相应的切片。 然后将切片添加到服务的缓存文件夹并保留在服务器上,直到服务器管理员对其进行更新或将其删除。 这意味着该区域的后续访问者将不必等待创建切片。
巧妙地使用按需缓存可以为您节省时间和磁盘空间。 许多影像服务都包含一些空旷或读者不感兴趣的区域,尤其是以大比例(放大后)显示时。 按需缓存可以减轻您创建和存储这些不需要的切片的负担,但如果需要,用户仍然可以查看该区域。
对于创建适用于地图服务和影像服务的按需要缓存,我们提供了许多建议。 要了解这些建议的信息,请参阅按需进行地图缓存。
警告:
对于使用镶嵌数据集创建的影像服务:生成按需缓存或只生成一个级别的缓存时,您要确保可以创建缓存;否则缓存将为空。 要生成按需缓存,需要验证影像服务在每个缓存层级都可见。 如果不可见,则需要构建镶嵌数据集概视图或更改可能影像影像可见性的其他设置。 使用管理地图服务器缓存切片工具时,请不要构建或重新构建随机比例。 构建所有比例,或者在之前已构建较大比例的情况下构建小比例。
我是否应该缓存我的影像服务?
影像服务缓存表示某个时刻点、具有一或三个波段且使用特定镶嵌方法的影像服务快照。 正因如此,缓存非常适用于不经常变化的影像服务,如数字正射影像四边形的集合或山体阴影高程影像服务。
如果数据经常变化(例如,经常更新),您可以使用缓存工具来定期更新缓存。 您甚至可以将更新设置为自动进行。
如果需要影像服务的实时源数据,而无法接受时间延迟,则您可能需要考虑使用按需缓存。
如果更新不能在一个可接受的时间段内赶上变化的步伐,或者影像服务必须使用不同影像属性进行频繁更改,则不适于对地图进行缓存。
抢先版本:
使用 ArcGIS Pro 时,在其被添加到显示时通常会对任意栅格数据应用拉伸,因此您可能会注意到,影像服务在 Web 应用程序中的外观与在 ArcGIS Pro 中不同。 为使其外观相同,可导出在 ArcGIS Pro 中应用的拉伸,并在发布和缓存之前将其添加到影像服务。
要了解有关在 ArcGIS Pro 中导出拉伸的信息,请参阅将符号系统设置保存为模板。
要了解有关将栅格函数模板 (*.rft.xml) 应用于影像服务的信息,请参阅标题为控制动态处理的参数的部分。
如何更新我的影像服务缓存?
影像服务缓存的管理方法与地图服务缓存类似。
如果要更新根据镶嵌数据集所创建的影像服务的镶嵌数据集项目,则运行计算脏区工具来生成用于识别修改区域的要素类。 可使用此要素类重新构建受影响的缓存切片。
了解有关缓存更新工具的信息访问缓存和非缓存影像服务
显示已缓存的影像服务时,其影像服务功能将受到限制。 例如,您将无法更改镶嵌方法或传输压缩方法。 但是,仍可执行更改符号系统和增强符号系统、识别像素、查询数据以及下载源数据之类的操作。
如果需要以动态方式使用影像服务并且使用镶嵌方法等功能,可以更改图层的模式。 要更改模式,请右键单击影像服务图层,然后取消选中启用缓存视图模式。 要以缓存服务形式使用影像服务,可再次选中此选项。
要在 Web 应用程序(如使用 ArcGIS API for JavaScript 开发的应用程序)中访问缓存的影像服务,可使用 ArcGISTiledMapServiceLayer 类;而要以动态影像服务形式进行访问,可使用 ArcGISImageServiceLayer 类。 也可以使用开放地理空间联盟 (OGC) Web 地图切片服务 (WMTS) 协议访问缓存的影像服务。
影像服务的 REST 端点既支持 ExportImage(提供动态影像服务),也支持 GetTile(提供对缓存影像服务的访问)。