Génération du cache et mises à jour sur Linux/Solaris
Pour ArcGIS Server sous Linux/Solaris, les services de carte et de globe sont créés à l'aide d'outils de géotraitement scriptables. De nombreux scripts installés sur ArcGIS Server vous permettent de gérer les caches à partir de la ligne de commande. Ces scripts utilisent les outils du serveur à partir de ArcToolbox.
Scripts de mise en cache
Les scripts mis en cache sont situés dans <Répertoire d'installation d'ArcGIS Server>/server10.0/java/tools/caching directory.
Scripts de mise en cache des cartes
- CreateMapServerCache.sh - Initialise le cache et définit la structure de tuilage. Cet outil ne crée pas de tuiles. Pour créer des tuiles, utilisez ManageMapServerCacheTiles.sh.
- ManageMapServerCacheTiles.sh - Crée de nouvelles tuiles, remplace les anciennes ou supprime des tuiles du cache.
- ManageMapServerCacheScales.sh - Ajoute ou supprime des échelles à partir d'un cache existant.
- DeleteMapServerCache.sh - Supprime toutes les tuiles en cache et la structure du dossier de cache.
- GenerateMapServerCacheTilingScheme.sh - Crée une structure de tuilage à partager dans votre organisation. Cet outil crée un fichier XML de structure de tuilage. Vous pouvez placer le fichier de structure de tuilage dans un emplacement partagé et le référencer en exécutant CreateMapServerCache.sh.
- ConvertMapServerCacheStorageFormat.sh - Convertit des anciens caches au nouveau format compact présent dans ArcGIS Server 10. Cet outil permet une conversion des caches dans les deux sens, entre le format éclaté et le format compact.
- ExportMapServerCache.sh - Exporte les sous-ensembles de tuiles vers un emplacement différent sous un format de stockage spécifié. Ce répertoire peut ensuite être partagé avec une autre organisation pour des mises en cache collaboratives, en y important d'autres caches.
- ImportMapServerCache.sh - Importe les sous-ensembles de tuiles entre les caches, si les deux structures, importée et existante, correspondent. Cet outil est utilisé lorsque de nombreuses organisations collaborent pour la création d'un cache volumineux.
Scripts de mise en cache de globe
- ManageMapServerCacheTiles.sh - Crée de nouvelles tuiles, remplace les anciennes ou supprime des tuiles du globe.
- DeleteGlobeServerCache.sh - Supprime un cache de globe.
Exécution des scripts
Voici quelques lignes directrices pour créer/mettre à jour un cache de carte ou de globe à l'aide de ces outils.
L'application SOC (ArcGIS Server Container) s'exécute en tant que propriétaire de l'installation ArcGIS Server. Par défaut, cet utilisateur n'est pas membre du groupe agsadmin. Seuls les membres du groupe agsadmin peuvent créer des contextes vides sur le serveur et exécuter avec succès les outils de mise en cache de carte.
Le propriétaire de l'installation ArcGIS Server doit être ajouté dans le groupe agsadmin. Pour ce faire, suivez les étapes suivantes dans le gestionnaire :
- Connectez-vous au gestionnaire ArcGIS Server.
- Cliquez sur l'onglet Serveur SIG.
- Cliquez sur le lienUtilisateurs SIG locaux, situé sur le côté gauche.
- Cliquez sur le lien Ajouter des utilisateurs.
- Donnez à l'utilisateur le nom de "ags" et définissez le groupe comme "agsadmin" (si vous avez choisi ags comme propriétaire de l'installation d'ArcGIS Server).
- Cliquez sur Enregistrer.
- Assurez-vous qu'il y a suffisamment d'espace dans le répertoire de cache. Sinon, déplacez le répertoire de cache par défaut vers un emplacement plus volumineux.
- S'il s'agit d'un déploiement sur plusieurs machines, assurez-vous que le processus ArcSOC dispose d'un accès en écriture à l'emplacement du cache.
Maintenant, vous êtes prêts à exécuter les scripts pour créer/mettre à jour le cache depuis la ligne de commande ; en tant que le propriétaire de l'installation d'ArcGIS, lancez l'exécution à partir de <Répertoire d'installation d'ArcGIS Server>/server10.0/java/tools/caching. Le script vous invite à choisir parmi la liste de variables ou à entrer une valeur pour un paramètre donné.
Comme décrit plus haut, la création d'un cache de carte comporte deux étapes : (1) définition des propriétés de cache de la carte ; (2) création/mise à jour de caches de tuiles de carte. Les propriétés de caches de carte peuvent être définies à l'aide du gestionnaire ArcGIS (accédez au panneau Gérer des services, sélectionnez un service de carte et choisissez l'onglet Mise en cache) ou en exécutant le script CreateMapServerCache.
Script : CreateMapServerCache
- Domaines : pour ArcGIS Server sur Unix, entrez le nom d'hôte complet.
- Nom d'utilisateur/mot de passe :saisissez le nom d'utilisateur/mot de passe utilisés pour vous connecter au gestionnaire ArcGIS Server. Les accès par défaut sont admin/admin.
- server_name :saisissez le nom de la machine hôte sur laquelle ArcGIS Server est installé ou la machine ArcGIS SOM hébergeant le service à mettre en cache.
- object_name :une liste de services de carte en cours d'exécution et répondant aux exigences du script en cours d'exécution vous est proposée. Par exemple, si la structure de tuilage du cache pour un service de carte n'est pas configurée, elle ne figurera pas dans les options pour script ManageMapServerCacheTiles, même si le service est en cours d'exécution.
- data_frame : énumère les noms des trames de données disponibles pour un service de carte donné. Appuyez la touche Entrée pour accepter la trame de données par défaut.
- out_folder - Répertoire de cache du serveur : sélectionnez le répertoire de cache où vous désirez conserver les données de cache. Si vous souhaitez ajouter un répertoire autre que celui fourni dans la liste, vous devez ajouter un nouveau répertoire de cache dans le gestionnaire ArcGIS.
- tiling_scheme_type - Structure de tuilage : définit les propriétés du cache comme le nombre d'échelles et leurs valeurs.
- [New] * défaut : création d'une nouvelle structure de tuilage.
Prédéfini : utilisé pour maintenir une structure standard de tuilage pour l'ensemble d'une organisation ou pour avoir une structure de tuilage compatible avec des services en ligne existants comme ArcGIS Online, Bing Maps ou Google Earth.
- tiling_schema : cette option n'est disponible que lorsque vous utilisez une structure de tuilage prédéfinie et nécessite le chemin d'accès à cette structure de tuilage.
- scales_type - Echelles :
- [Standard] * défaut : lorsqu'il est sélectionné, le script propose des valeurs d'échelle pour un nombre d'échelles donné, en fonction de l'étendue de la carte et de sa résolution.
- Personnalisé : lorsque cette option est sélectionnée, vous devez entrer une liste de valeurs d'échelles personnalisées pour les données cartographiques spécifiées, en fonction des meilleurs paramètres d'affichage.
- num_of_scales : cette option n'est disponible que si le type d'échelle standard est sélectionné. Entrez le nombre d'échelles pour zoomer dans les niveaux de cache. En général, il est conseillé de limiter le nombre d'échelles suggérées que vous demandez à 20 ou moins.
- ppp - Points (pixels) par pouce : choisissez des valeurs élevées pour une meilleure résolution. La valeur par défaut de 96 s'avère généralement suffisante, sauf si vous travaillez principalement sur un réseau dont la majorité des machines client utilisent une résolution ppp différente.
- tile_width et tile_height - Largeur et hauteur de la tuile (en pixels) : la sélection de valeurs de hauteur et de largeur réduites peut améliorer les performances de l'application qui demande des tuiles du cache. En effet, une quantité de données moins importante est alors transmise. En revanche, une taille de tuile réduite augmente la taille du cache et allonge le délai de création.
- map_or_layers - Type de carte : paramètres de cache avancés.
- [Fused]* défaut : toutes les couches de la carte sont incluses dans une image fusionnée et doivent être activées et désactivées ensembles.
- Multi_layer : ensemble d'images mises en cache pour chaque couche pouvant être activées ou désactivées par l'utilisateur. Cette option est désactivée pour les services de carte .msd.
- tile_origin : Origine du tuilage et unités de carte.
- niveaux : option disponible uniquement si "scales_type" est défini comme "personnalisé". Entrez la liste des valeurs d'échelle personnalisées séparées par des points-virgules.
- couches : option disponible uniquement si la variable "map_or_layers" est définie comme "multi-couche". Entrez la liste des couches (séparées par des points-virgules) pour lesquelles le cache doit être généré.
- Antialiasing :
- [None]* défaut
- Antialiasing : sélectionnez cette option pour lisser les contours des étiquettes et des lignes pour une qualité d'affichage améliorée.
- cache_format - Format de l'image des tuiles de cache : [Png8, Png24, Png32, JPEG, Mixed] sélectionnez format d'image en sortie utilisé pour créer les tuiles de cache. Le format de l'image détermine la taille de cache sur le disque, la qualité de l'image et la capacité à prendre en charge un arrière-plan transparent. Les données raster sont mieux servies au format d'image JPEG ou MIXED.
- tile_compression_quality : la compression est uniquement prise en charge pour le format JPEG. Entrez une valeur comprise entre 1 et 100 pour définir la qualité de compression JPEG. La valeur par défaut est 75 pour le format de tuile JPEG et zéro pour les autres formats. La sélection d'une valeur plus élevée se traduit par une plus grande taille de fichiers et une image de qualité supérieure, tandis que la sélection d'une valeur plus faible génère des fichiers de plus petite taille et une image de qualité inférieure. Lors de l'utilisation des cartes vectorielles JPEG ou MIXED, utilisez une valeur de qualité de compression élevée (par exemple 90) pour réduire le brouillage des lignes et du texte.
- storage_format - Format de stockage des tuiles de cache :
- Compact : groupe les tuiles de cache pour un stockage et une mobilité plus efficaces.
- Eclaté : Stocke chaque tuile comme un fichier unique.
- use_local_cache_dir - Répertoires de cache locaux sur le serveur : choisissez si le groupe de fichiers doit être écrit sur un répertoire local sur le serveur lors de la création d'un cache compact, au lieu d'être écrit directement sur le répertoire de cache partagé. Si vous choisissez cette option, les groupes de fichiers sont copiés sur le répertoire de cache partagé une fois qu'ils sont terminés. Cette option améliore les performances lorsque plusieurs machines travaillent sur la mise en cache.
- [True] * Valeur par défaut lorsque le format de stockage du cache est "Compact". Les tuiles conservées en groupes sont copiés sur un répertoire de cache local, puis sur le répertoire de cache partagé une fois que les paquets sont terminés. Remarque : cette option n'est pas disponible lorsque le format de stockage est "Eclaté".
- False : les tuiles sont enregistrées directement sur le répertoire cache partagé. Cette option n'est valide que lorsque le format de stockage est "Eclaté".
Script : ManageMapServerCacheTile
- couches : option disponible uniquement si la variable "map_or_layers" est définie comme "multi-couche" dans la structure de cache. Entrez la liste des couches (séparées par des points-virgules) pour lesquelles les tuiles cache doivent être générées/mises à jour.
- niveaux : les échelles offrent la possibilité de choisir des échelles sur une liste d'échelles données pour l'un des outils suivants : ManageMapServerCacheTiles, ExportMapServerCache, ou ImportMapServerCache.
- update_mode - Mode mise à jour :
- Recréer les tuiles vides : à utiliser lorsque vous voulez vous assurer que le cache est créé pour les tuiles manquantes. Remarque : temps de réalisation plus important pour les mises en cache volumineuses, étant donné que les dossiers du cache sont vérifiées et que les tuiles manquantes sont créées, garantissant la qualité du cache créé.
- Recréer toutes les tuiles : à utiliser lors d'une première création de cache ou lorsque vous souhaitez ignorer le cache existant et en créer un nouveau basé sur un service de carte mis à jour.
- Supprimer les tuiles : supprime les tuiles existantes du cache tout en gardant la structure de cache.
- constraining_extent - Mise à jour de l'étendue : si vous souhaitez créer des tuiles pour une zone rectangulaire de la carte, vous pouvez modifier l'option mise à jour de l'étendue par défaut et entrer une étendue rectangulaire personnalisée, ce qui peut être utile pour la création de caches pour une zone de test.
- thread_count - Nombre d'instances de serveur de carte
- update_feature_class - Mise à jour du cache avec les étendues de classes d'entités : entrez le chemin du répertoire dans lequel les classes d'entités se trouve pour contraindre spatialement la création de tuiles aux limites d'une classe d'entités, en évitant les zones vides ou inintéressantes. Cette option facilite également la mise en cache pour une gestion et un suivi améliorés.
- ignore_status :
- Suivi de l'état d'achèvement : utilisé pour indiquer les fonctions ayant eu des tuiles créées au-dessus de leurs zones. Un champ mis en cache est ajouté à la classe d'entités pour laquelle la mise en cache est effectuée. Lorsque les tuiles ont été créées pour l'étendue d'une entité, le champ Mise en cache de cette entité est marqué Oui. Les champs peuvent être affichés en ouvrant le tableau de la classe d'entités dans ArcCatalog.
- [Ignore Completion Status Field] * défaut : aucun champ Mise en cache ajouté ou mis à jour.
- Antialiasing : en mode lecture seule dans cet outil. Basé sur la valeur définie dans l'onglet Mise en cache de la boîte de dialogue Propriétés du service.
Suivez les instructions du script qui vous guide à travers le processus de génération/mise à jour du cache.
Un fois le processus terminé, la sortie est localisée dans l'emplacement du cache. L'emplacement par défaut du cache est <Répertoire d'installation d'ArcGIS Server>/server/serverdir/arcgiscache.
Script : ManageMapServerCacheScales
niveaux : vous permet de définir le jeu d'échelles, en réalisant les ajouts ou suppression d'échelles nécessaires à la mise à jour de la structure de cache. Propose une liste des valeurs d'échelles mise à jour en entrant les valeurs d'échelles séparées par des points-virgules.
Script : GenerateMapServerCacheTilingScheme
- map_document : Fournit le chemin du fichier de carte en fonction de l'emplacement où vous désirez créer la nouvelle structure de tuilage de cache.
- tiling_schema : fournit le chemin dans lequel vous désirez stocker les structures de tuilage en sortie. Assurez-vous que vous avez ajouté le nom de la nouvelle structure avec une extension .xml.
- cache_levels : entrez le nombre d'échelles que la nouvelle structure de tuilage doit avoir.
- niveaux : par défaut, le script propose des valeurs d'échelle correspondantes pour le nombre donné de niveaux de cache, en fonction des étendues de la carte. Vous pouvez choisir de sélectionner les valeurs proposées ou de définir vos valeurs d'échelle personnalisées en entrant les nouvelles valeurs séparées par des points-virgules.
Script : ExportMapServerCache and ImportMapServerCache
- target_cache_path : entrez le chemin d'accès au dossier dans lequel vous désirez exporter les données de cache sélectionnées. Assurez-vous que le dossier existe bien et que ArcSOC y a un accès en écriture.
- storage_format_type : permet de sélectionner du type de format de stockage du cache exporté. Il peut être être différent du cache mère. Remarque : l'outil Importer le cache du serveur de carte choisit le format de stockage du dossier de destination par défaut.
- export_extent/import_extent : permet d'exporter/importer une partie seulement des données de cache dans une étendue donnée. Entrez le chemin d'accès à l'étendue rectangulaire personnalisée pour exporter ou importer les données de cache.
- niveaux : permet de choisir les échelles sur une liste d'échelles données pour l'exportation/importation.
- export_feature_class/import_feature_class : permet de contraindre spatialement l'exportation des tuiles de cache aux limites d'une classe d'entités en évitant les zones non intéressantes. Entrez le chemin d'accès du répertoire dans lequel la classe d'entités se trouve.
- source_cache_dataset : fournit le chemin au fichier couche à l'intérieur du dossier dans lequel vous désirez importer les données de cache. Ex. : /net/plotemy/arcgiscache/sandiego/Layers.
Script : ManageGlobeServerCacheTiles
- in_layers : sélectionnez les couches à inclure dans le cache des couches.
- Niveau de départ - Sélectionnez l'échelle de niveau de détail avec laquelle vous souhaitez commencer la mise en cache de la couche. Si vous utilisez les échelles de niveaux de détails les plus petites et les plus élevées pour le minimum et le maximum, un cache total est conçu pour la couche.
- Level_To - Sélectionnez l'échelle de niveau de détail avec laquelle vous souhaitez commencer la mise en cache de la couche. Si vous utilisez les échelles de niveaux de détails les plus petites et les plus élevées pour le minimum et le maximum, un cache total est conçu pour la couche.
Automatisation de la génération de cache depuis la ligne de commande
Pour crypter les outils de cache sans interaction de l'utilisateur, lancez les codes suivants en tant que propriétaire de l'installation ArcGIS depuis la ligne de commande. Entrez les valeurs des paramètres décrits plus haut dans l'ordre indiqué.
CreateMapServerCache .sh
./CreateMapServerCache.sh -u <username> -d <hostname> -p <passwd> -args <server_name> <object_name> <out_folder> <tiling_scheme_type> <scales_type> <num_of_scales> <dpi> <tile_width> <tile_height> <data_frame> <map_or_layers> <tiling_schema> <tile_origin> <'levels;customScale1'> <'layers;multiLayer1'> <antialiasing> <cache_format> <tile_compression_quality> <storage_format> <use_local_cache_dir> Par exemple : pour générer le cache avec un nouveau type de structure de tuilage et des échelles standard ./CreateMapServerCache.sh -u admin -d hostname -p admin -args myserver Rainfall Layers /path/to/arcgiscache/ NEW STANDARD 4 96 512 512 FUSED '#' '-400 400' '#' '#' ANTIALIASING MIXED 75 Compact True Remarque : 1. Les propriétés dépendantes seront activées ou désactivées en fonction des paramètres choisis. 2. Pour entrer les valeurs par défaut ou des valeurs nulles, utilisez le signe # entre guillemets. Par exemple"#" 3. Pour entrer plusieurs valeurs pour un paramètre, séparez chacune des valeurs avec un point-virgule (;) 4. Utilisez des guillemets simples ('') lorsque vous insérez les valeurs requérant une séparation par un point-virgule (;) ou un espace. Par exemple : 'échelle1;échelle2', 'couche1;couche2'
ManageMapServerCache.sh.
./ManageMapServerCacheTiles.sh -u <username> -d <hostname> -p <passwd> -args <server_name> <object_name> <data_frame> <'layers;multiLayer1'> <'levels;levels'> <update_mode> <constraining_extent> <thread_count> <Antialiasing> <update_feature_class> <ignore_status> Par exemple : ./ManageMapServerCacheTiles.sh -u ags -d hostname -p ags -args myserver Rainfall Layers '#' '64000000;32000000' 'Recreate Empty Tiles' '-183.780014728684 16.3007091216187 -61.4068546696843 74.030308030969' 5 NONE /path/to/feature_class IGNORE_COMPLETION_STATUS_FIELD
Afin de programmer un script de cache pour qu'il s'exécute à des moments définis
# 1. Définissez la variable de l'environnement pour qu'il sélectionne un éditeur de son choix (l'exemple ci-dessous utilise vi) EDITOR=/usr/bin/vi; exporter EDITOR # 2. Affichez le crontab dans l'éditeur à l'aide de la commande crontab -e # 3. Ajoutez une ligne au crontab # <min> <heure> <jour du mois> <mois> <jour de la semaine> <script à exécuter> # Allowed values # <0-60> <0-23> <1-31> <1-12> <0-6> </path/to/customised_ManageMapServerCache.sh> 0 10 * * 0 /path/to/customised_Cache.sh # Exécuter tous les dimanches à 10 h 00 0 18 * * * /path/to/updatecache.sh # Exécuter tous les jours à 18 h 00 0 0 1 * * /path/to/updatecache.sh # Exécuter à minuit le premier jour du mois # 4. Sauvegardez et sortez de l'éditeur # 5. Vérifiez que les paramètres de cron ont été ajoutés dans la liste des tâches cron crontab -I Remarque : n'utilisez pas d'instructions après le signe "#", il s'agit simplement de commentaires pour une meilleure compréhension.