Что такое кэширование сервиса изображений?
Кэширование сервиса изображений улучшает производительность в клиентских приложениях. При кэшировании сервиса изображений сервер предварительно создает листы на разных уровнях масштаба, которые можно извлекать быстрее, чем при обработке входных данных набора данных мозаики или набора растровых данных при каждом запросе от ArcGIS for Server. Важный аспект кэширования сервиса изображений состоит в том, что он не обрабатывает изображения на лету, а предварительно сохраняет изображения в кэшированные листы, а затем их читает.
При кэшировании сервиса изображений вы получаете сервис с двойной функциональностью, которая используется в зависимости от требуемой цели. Одна из них – предоставить быстрый доступ к изображению как к сервису листов. Другая цель – предоставить доступ к данным для отправки запросов, загрузки элементов, доступа к отдельным элементам и использованию данных при обработке и анализе.
Для чего нужно кэшировать сервисы изображений?
Основное преимущество кэширования сервиса – улучшение производительности. Кэшированный сервис изображений может показывать изображение очень быстро, так как он практически не работает с ArcGIS for Server, потому что использует только кэшированные листы. К преимуществам кэшированного сервиса изображений относятся:
- Улучшенная производительность для базовых изображений – если сервис изображений используется как базовое изображение (как картографический сервис, предоставляющий изображение или фоновое изображение), при этом пользователи не изменяют свойства сервиса изображений, например, не меняют методы мозаики или не выполняют запросы, то рекомендуется применять кэширование.
- Пропуск формирования обзора – если вы публикуете набор данных мозаики, который будет использоваться как базовое изображение, вы можете сэкономить время, не создавая обзоры для набора данных мозаики (если сервис изображений будет кэшироваться). Например, если вы обрабатываете коллекцию предварительно сохраненных в кэш и разбитых на листы ортофотографий или изображений с отмывкой DEM.
- Улучшенная производительность для медленно отображаемых форматов – если вы публикуете изображения в медленно отображаемых форматах или форматах с сильным сжатием, то рекомендуется создавать кэш. Если набор данных мозаики работает медленно из-за сложных функциональных связей, то кэширование обеспечит более быстрый доступ к изображениям.
Как создается кэш?
Кэширование не происходит автоматически. Сначала нужно опубликовать набор данных мозаики или набор растровых данных как сервис изображений, затем следует задать свойства кэша и после этого можно приступать к созданию кэша.
При кэшировании сервиса изображений создается коллекция листов на нескольких предварительно заданных уровнях масштаба или с определенным размером в пикселах, как и при кэшировании картографического сервиса. Это позволяет пользователям быстро увеличивать и уменьшать изображение, но только на соответствующих масштабах. Кроме того, кэш сервиса изображений создается с использованием стандартной комбинации канала RGB и метода мозаики.
Схема листов
Выбираемые масштабы и устанавливаемые значения параметров кэша составляют схему листов. Схема листов должна совпадать со схемами листов других слоев, которые вы используете. Например, можно выбрать именно ту схему листов, которая используется в ArcGIS Online, Bing Maps и Google Maps. Это позволит накладывать ваши листы кэша на листы этих картографических онлайн-сервисов, или же можно создать собственную схему в вашем веб-приложении. В каждом кэше есть файл схемы листов, который можно импортировать при создании новых кэшей, чтобы все кэши использовали одни и те же размеры листов и масштабы.
Если схема листов не совпадает со схемой листов других слоев в приложении, то вы можете не увидеть кэшированные слои. Это происходит потому, что веб-клиенты часто не могут переработать данные для их отображения на другом уровне (в отличие от ArcMap).
Если схема листов уникальна, вы можете выбрать масштабы или интервалы размера пикселов, совпадающие с обзорами набора данных мозаики или пирамидных слоев в наборе растровых данных. Это позволяет улучшить качество кэша, если его можно создать на основе обзорного или пирамидного слоя, близкого к создаваемому интервалу кэша или совпадающего с ним. В противном случае кэшированный лист основывается на других кэшированных листах, что может ухудшить качество изображения. Просмотрите исходные данные в ArcMap на тех же масштабах, что и в схеме листов, чтобы убедиться в их качественном отображении.
Вы также можете задать размер базовой ячейки кэша, указав значение параметра Максимальный размер ячейки источника (Maximum source cell size) на странице Дополнительные настройки (Advanced Settings) для кэширования. Вы можете использовать этот параметр, например, для старта построения кэша, где остановлены обзоры или пирамиды.
Листы кэша
Листы кэша обрабатываются и хранятся в формате JPEG или PNG, что позволяет серверу распространять эти изображения по запросу.
Кэш хранится в директории кэша вашего сервера. При установке ArcGIS for Server директория кэша сервера создается в локальной папке. При добавлении дополнительных ГИС-серверов для поддержки сайта следует настроить общий доступ к директории кэша сервера, для того чтобы она была доступна с других задействованных компьютеров.
Чтобы кэш работал оптимально, требуются следующие условия. Для создания листов кэша требуется мощный сервер и некоторое время, а для их хранения нужно оборудование. Вам также может потребоваться выполнять обновление кэша, если, например, исходные данные, такие как набор данных мозаики, редактируется. Если приложение предоставляет изображения для большой области с крупным масштабом, вы можете решить, что время и место, необходимые для создания и обслуживания кэша, перевешивают преимущества, связанные с производительностью.
Более подробно о создании кэша сервиса изображенийКэширование по запросу
Кэширование по запросу позволяет настроить схему листов и опубликовать сервис изображений, но создавать кэш, только когда пользователь обращается к сервису. Первый пользователь, который переходит по карте в область, отсутствующую в кэш, будет вынужден ждать полной прорисовки листов сервером и добавления их в кэш. Затем листы добавляются в папку кэш на сервере и остаются там, пока их не обновит или не удалит администратор сервера. Это означает, что последующие пользователи карты в этой области не должны будут дожидаться создания листа.
При грамотном использовании кэширование по запросу может сэкономить много времени и места на диске. Многие изображения содержат области, которые либо пусты или они в принципе не нужны пользователю, особенно на крупных масштабах (при увеличении). Кэширование по запросу позволяет исключить ненужные листы, которые не будут прорисовываться и сохраняться, но у пользователя будет возможность просмотреть эти области при первой необходимости.
Существует много рекомендаций для создания кэша по запросу для картографических сервисов, которые применимы к сервисам изображений. Дополнительные сведения см. в разделе Кэширование карты по запросу.
Для сервисов изображений, созданных с использованием набора данных мозаики: при создании кэша по запросу или построении одного уровня кэша, вы должны быть уверены в том, что кэш можно создать. Иначе кэш будет пустым. При создании кэша по запросу убедитесь, что изображения видны на каждом уровне. В противном случае создайте обзоры набора данных мозаики или измените другие параметры, которые могут повлиять на видимость изображения. При использовании инструмента Управление листами кэша сервера карт (Manage Map Server Cache Tiles) не создавайте случайные масштабы. Формируйте все масштабы или только мелкий масштаб, если предыдущий крупный масштаб уже был построен.
Следует ли кэшировать сервисы изображений?
Кэш сервиса изображений представляет снимок сервиса в определенный момент времени с одним или тремя каналами с использованием определенного метода мозаика. Из-за этого кэш лучше работает с сервисами изображений, которые редко изменяют данные, например коллекция цифровых ортофотопланов или сервиса изображений с отмывкой.
Если данные изменяются (например, при частых обновлениях), вы можете использовать инструменты кэширования, периодически обновляя кэш с помощью соответствующих инструментов. Также настраивается и график автоматического запуска таких обновлений.
Если исходные данные сервиса изображений должны быть динамическими и временная задержка недопустима, то вы можете использовать динамический кэш.
Если обновление не поспевает за изменениями или сервис изображений должен часто изменяться с разными свойствами изображений, то сервис изображений не подходит для кэширования.
ArcMap обычно применяет растяжение для всех растровых данных, когда они добавляются к отображению. Таким образом, вы можете заметить, что сервис изображений выглядит в веб-приложении не так, как в ArcMap. Чтобы он выглядел аналогично, вы можете выполнить экспорт растяжения, применяемого в ArcMap, и добавить его к сервису изображений перед публикацией и кэшированием.
Подробнее об экспорте растяжения см. в разделе Сохранение шаблона функции растра из символов слоя.
Дополнительную информацию о применении шаблона функции растра (*.rft.xml) к сервису изображений см. в разделе Параметры для управления обработкой "на лету".
Как обновлять кэш сервиса изображений?
Кэш сервиса изображений управляется так же, как и кэш картографического сервиса.
Если элементы набора данных мозаики обновляются для сервисов изображений на основе наборов данных мозаики, запустите инструмент Вычислить измененную область (Compute Dirty Area) для создания класса объектов, определяющего измененные области. Этот класс объектов можно использовать для повторного формирования затронутых листов кэша.
Более подробно об инструментах для обновления кэшаСравнение доступа к кэшированному сервису изображений и некэшированному сервису изображений
При отображении кэшированного сервиса изображений в ArcMap, его функциональность будет ограничена. Например, вы не сможете изменить метод мозаики или метод сжатия передачи. Но вы все равно сможете изменить настройки условных знаков, идентифицировать пикселы, производить запросы к данным и загружать исходные данные.
Если вам нужно работать с сервисом изображений динамически и использовать функции, такие как метод мозаики, вы можете изменить режим работы слоя. Чтобы изменить режим, щелкните правой кнопкой слой сервиса изображений и снимите отметку Включить режим просмотра кэша (Enable Cache View Mode). Чтобы использовать сервис изображений как кэшированный сервис, снова активируйте эту опцию.
Для доступа к кэшированному сервису изображений в веб-приложении (таком как Flex) используется класс ArcGISTiledMapServiceLayer, а для доступа к динамическому сервису изображений используется класс ArcGISImageServiceLayer. Вы также можете выполнить доступ к кэшированному сервису изображений при помощи протокола Open Geospatial Consortium, Inc. (OGC), Web Map Tile Service (WMTS).
Точка доступа REST сервиса изображений поддерживает ExportImage для предоставления динамического сервиса изображений и GetTile для предоставления доступа к кэшированному сервису изображений.
Более подробно о доступе к кэшированным сервисам изображений