Présentation de la mise en cache des services d'imagerie
La mise en cache des services d'imagerie permet d'optimiser les performances de services d'imagerie dans des applications client. Lorsque vous mettez en cache un service d'imagerie, le serveur prégénère des tuiles à différents niveaux. Vous pouvez les générer plus rapidement qu'en traitant l'entrée de la mosaïque ou du jeu de données raster chaque fois qu'une requête est émise à partir d'ArcGIS for Server. Un des aspects importants du cache des services d'imagerie est qu'il ne diffuse pas des images traitées à la volée, mais traite les images au préalable pour créer les tuiles en cache qu'il diffuse ensuite.
Lorsque vous mettez en cache un service d'imagerie, vous générez un service d'imagerie à double fonction auquel vous accédez selon l'utilisation que vous souhaitez en faire. Une des fonctions garantit l'accès le plus rapide à l'image sous la forme d'un service tuilé. L'autre fonction assure un accès aux données à des fins d'interrogation et de téléchargement, ainsi qu'un accès à des éléments individuels. Les données peuvent également être utilisées à des fins de traitement et d'analyse.
Pourquoi mettre en cache des services d'imagerie ?
L'avantage de la mise en cache d'un service d'imagerie est d'en améliorer les performances. Le service d'imagerie en cache peut afficher une image très rapidement, car il n'effectue presque aucune opération sur ArcGIS for Server puisque l'application n'utilise que les tuiles en cache. Parmi les avantages spécifiques d'un service d'imagerie en cache, on compte les suivants :
- Performances améliorées des images de base : si votre service d'imagerie est utilisé en tant qu'image de base (tel qu'un service de carte permettant de diffuser une image ou une image d'arrière-plan), la mise en cache est recommandée si les utilisateurs ne doivent pas modifier les propriétés du service d'imagerie, telles que les méthodes de mosaïquage, ou exécuter des requêtes.
- Génération inutile d'un aperçu : si vous publiez une mosaïque qui servira d'image de base, vous gagnez du temps en ne créant pas d'aperçu de la mosaïque, si le service d'imagerie doit être mis en cache. C'est le cas, par exemple, si vous diffusez une collection d'orthophotographies prétraitées et tuilées ou le rendu de relief ombré d'un MNT.
- Performances améliorées pour les formats aux performances lentes : si vous publiez des formats aux performances lentes ou extrêmement compressés, nous vous conseillons de générer un cache. Si la mosaïque est lente en raison des chaînes de fonctions complexes, le cache permet un accès plus rapide à l'image.
Comment le cache est-il créé ?
La mise en cache n'est pas automatique. Avant de créer le cache, vous devez partager une mosaïque ou un jeu de données raster en tant que service d'imagerie, puis définir certaines propriétés du cache.
Lorsque vous mettez en cache un service d'imagerie, il génère une collection de tuiles d'images à des niveaux d'échelle ou tailles de pixels divers et prédéfinis, comme c'est le cas pour la mise en cache d'un service de carte. Cela permet aux utilisateurs d'effectuer rapidement des zooms avant et arrière, mais uniquement aux échelles correspondantes. Le cache du service d'imagerie est créé à l'aide d'une combinaison de canaux RVB et d'une méthode de mosaïquage par défaut.
Structure de tuilage
Les échelles que vous choisissez et les propriétés que vous définissez pour le cache constituent la structure de tuilage. La structure de tuile doit être cohérente avec les autres couches que vous pourrez éventuellement intégrer. Par exemple, vous pouvez utiliser la structure de tuile bien connue d'ArcGIS Online, de Google Maps et de Bing Maps pour superposer facilement vos caches à ces services de cartographie en ligne. Vous pouvez également créer votre structure de tuile pour rester cohérent dans votre application Web. Chaque cache possède un fichier de structure de tuilage que vous pouvez importer lorsque vous créez de nouveaux caches, de sorte que tous vos caches utilisent les mêmes tailles et échelles de tuiles.
Si votre structure de tuile ne correspond pas à celle qui est utilisée par d'autres couches dans votre application, il est possible que vous ne puissiez pas voir vos couches en cache. Cela est dû au fait que les clients Web ne peuvent souvent pas rééchantillonner vos données pour les afficher à un niveau différent (contrairement à ArcMap).
Si votre structure de tuile peut être unique, choisissez des intervalles d'échelles ou de tailles de pixels qui correspondent aux aperçus de votre mosaïque ou de vos pyramides dans un jeu de données raster. Vous améliorez ainsi la qualité du cache s'il peut être créé à partir d'un aperçu ou d'une pyramide qui présente un intervalle de cache semblable ou identique à celui que vous créez. Sinon, vous pouvez créer une tuile en cache à partir d'autres tuiles en cache, mais risquez de dégrader la qualité de l'image. Vous pouvez afficher un aperçu des données source à chaque échelle dans ArcMap pour vous assurer de la qualité de l'image et utiliser ensuite ces échelles dans la structure de tuile.
Vous pouvez également contrôler la taille de cellule de base du cache en saisissant une valeur Taille maximale de la cellule source sur la page Paramètres avancés pour la mise en cache. Vous pouvez, par exemple, procéder de la sorte pour commencer à créer le cache à l'emplacement où les aperçus ou les pyramides se sont arrêtés.
Tuiles de cache
Les tuiles de cache sont traitées et stockées au format JPEG ou PNG pour que le serveur puisse distribuer ces images lorsqu'elles font l'objet d'une requête.
Le cache est stocké dans le répertoire de cache de votre serveur. Lorsque vous avez installé ArcGIS for Server, un répertoire de cache du serveur a été créé pour vous dans un dossier local. Si vous ajoutez davantage de serveurs SIG à votre site, vous devez partager votre répertoire de cache du serveur (à l'aide des options de système d'exploitation telles que le partage de fichiers Windows) afin qu'il soit accessible aux autres ordinateurs de votre site.
Même si la mise en cache présente des avantages en termes de performances, elle sollicite de nombreuses ressources. La création de tuiles de cache nécessite du temps et sollicite la puissance du serveur. Leur stockage nécessite du matériel. Il vous faudra peut-être également procéder à des mises à jour du cache si vos données source sont mises à jour, dans le cas d'une mosaïque, par exemple. Si votre application propose des images pour une zone étendue à une grande échelle, il est possible que les avantages en termes de performances ne justifient pas le temps et le stockage nécessaires pour créer et stocker le cache.
Découvrir les étapes de création d'un cache de service d'imagerieCache à la demande
Le cache à la demande vous permet de définir la structure de tuile et de publier le service d'imagerie. Le cache n'est généré que lorsqu'un utilisateur accède au service. Le premier utilisateur qui accède à une surface non mise en cache doit attendre que les tuiles correspondantes soient affichées par le serveur. Les tuiles sont ensuite ajoutées au dossier de cache du service et demeurent sur le serveur jusqu'à ce qu'elles soient mises à jour ou supprimées par l'administrateur du serveur. Cela signifie que les visiteurs suivants sur la surface n'auront pas à attendre que la tuile soit créée.
Lorsqu'elle est utilisée judicieusement, la mise en cache à la demande peut vous faire gagner beaucoup de temps et d'espace disque. De nombreux services d'imagerie contiennent des zones qui sont stériles ou sans intérêt pour le public, et ce, particulièrement à grande échelle (zoom avant). La mise en cache à la demande vous évite de créer et de stocker ces tuiles inutiles, mais laisse la possibilité à un utilisateur d'afficher la surface s'il le souhaite.
De nombreuses recommandations relatives à la création d'un cache à la demande disponibles pour des services de carte s'appliquent à des services d'imagerie. Pour plus d'informations, reportez-vous à la rubrique Mise en cache à la demande.
pour les services d'imagerie créés à l'aide d'une mosaïque, lorsque vous générez le cache à la demande ou que vous ne générez qu'un niveau de cache, vous devez être certain que la création du cache est possible, sinon, il sera vide. Si vous générez le cache à la demande, vérifiez que les images sont visibles pour chaque niveau de cache. Si ce n'est pas le cas, créez les vues d'ensemble des mosaïques ou modifiez les autres paramètres pouvant influencer la visibilité des images. Lorsque vous utilisez l'outil Gérer des tuiles de cache de serveur de carte, la génération ou la nouvelle génération des échelles aléatoires est déconseillée. Générez toutes les échelles ou uniquement une petite échelle si l'échelle précédente de taille supérieure est créée.
Dois-je mettre en cache mes services d'imagerie ?
Un cache de service d'imagerie représente une vue figée de votre service d'imagerie à un moment donné, avec un ou trois canaux, qui fait appel à une méthode de mosaïquage spécifique. Pour cette raison, les caches sont les plus efficaces avec les services d'imagerie qui ne changent pas souvent, tels qu'une collection d'orthophotocartes numériques ou un service d'imagerie d'altitude ombrée.
Si vos données ont tendance à évoluer (mises à jour fréquentes, par exemple), vous pouvez toujours utiliser les outils de mise en cache pour actualiser régulièrement le cache. Vous pouvez même planifier ces mises à jour de façon automatique.
Si les données source d'un service d'imagerie doivent être en temps réel, sans retard possible, vous pouvez envisager l'utilisation d'un cache dynamique.
Si la mise à jour ne peut pas suivre les modifications dans des délais acceptables ou que les propriétés des images d'un service d'imagerie doivent être modifiées fréquemment, le service d'imagerie n'est pas adapté à la mise en cache.
ArcMap applique généralement un étirement à toute donnée raster lorsqu'elle est ajoutée à l'affichage. Dès lors, il se peut que le service d'imagerie se présente différemment selon qu'il apparaît dans une application Web ou dans ArcMap. Pour éviter ce phénomène, vous pouvez exporter l'étirement appliqué dans ArcMap et l'ajouter au service d'imagerie avant la publication et la mise en cache.
Pour en savoir plus sur l'exportation de l'étirement dans ArcMap, reportez-vous à la rubrique Enregistrement d'un modèle de fonction raster de symbologie de la couche.
Pour en savoir plus sur l'application du modèle de fonction raster (*.rft.xml) au service d'imagerie, reportez-vous à la section intitulée Paramètres de contrôle du traitement à la volée.
Comment mettre à jour le cache de mon service d'imagerie ?
La gestion du cache du service d'imagerie est semblable à celle du cache du service de carte.
Si les éléments de la mosaïque sont mis à jour pour des services d'imagerie créés à partir de mosaïques, exécutez l'outil Calculer la zone à valider pour produire une classe d'entités qui identifie les zones modifiées. Cette classe d'entités permet de générer à nouveau les tuiles de cache modifiées.
En savoir plus sur les outils de mise à jour de cachesAccès à un service d'imagerie en cache ou qui n'est pas en cache
Lorsque vous affichez dans ArcMap un service d'imagerie qui a été mis en cache, il présente des fonctionnalités de service d'imagerie limitées. Par exemple, vous ne pouvez pas modifier la méthode de mosaïquage ou de compression de transmission. Vous pouvez toutefois modifier la symbologie et procéder à des améliorations, identifier les pixels ou encore interroger les données.
Si vous devez utiliser le service d'imagerie de façon dynamique et utiliser des fonctionnalités, telles que la méthode de mosaïquage, vous pouvez modifier le mode de la couche. Pour modifier le mode, cliquez avec le bouton droit sur la couche du service d'imagerie, puis désélectionnez l'option Activer le mode d'affichage du cache. Pour utiliser le service d'imagerie en tant que service en cache, sélectionnez de nouveau cette option.
Pour accéder à un service d'imagerie en cache dans une application Web (telle que Flex), vous devez utiliser la classe ArcGISTiledMapServiceLayer, alors que pour accéder à un service d'imagerie dynamique, vous utilisez la classe ArcGISImageServiceLayer. Vous pouvez également accéder à un service d'imagerie mis en cache à l'aide du protocole WMTS (Web Map Tile Service) de l'OGC (Open Geospatial Consortium, Inc.).
L'extrémité REST du service d'imagerie prend en charge ExportImage qui fournit le service d'imagerie dynamique et GetTile qui permet d'accéder au service d'imagerie en cache.
En savoir plus sur l'accès aux services d'imagerie mis en cache