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