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