Gérer des tuiles de cache de serveur de carte (Serveur)

Niveau de licence :BasicStandardAdvanced

Récapitulatif

Crée et met à jour les tuiles dans un cache de service d'imagerie ou de carte. Cet outil permet de créer des tuiles, de remplacer des tuiles manquantes, d'actualiser des tuiles devenues obsolètes et de supprimer des tuiles.

Utilisation

Syntaxe

ManageMapServerCacheTiles_server (input_service, scales, update_mode, {num_of_caching_service_instances}, {area_of_interest}, {update_extent}, {wait_for_job_completion})
ParamètreExplicationType de données
input_service

Service de carte ou d'imagerie dont vous souhaitez mettre à jour les tuiles de cache.

Cette chaîne contient les informations relatives au serveur et au service. Pour savoir comment construire cette chaîne, ouvrez ArcCatalog, sélectionnez votre service dans l'arborescence du catalogue et notez le texte dans la barre d'outils Emplacement. Remplacez les barres obliques inverses par des barres obliques, par exemple, GIS Servers/arcgis on MYSERVER (admin)/USA.MapServer.

String
scales

Niveaux d'échelle auxquels vous créez ou supprimez des tuiles lors de l'exécution de cet outil, selon le Mode de mise à jour.

Double
update_mode

Mode de mise à jour du cache.

  • RECREATE_EMPTY_TILESSeules les tuiles vides sont créées. Les tuiles existantes restent en l'état.
  • RECREATE_ALL_TILESLes tuiles existantes sont remplacées et de nouvelles tuiles sont ajoutées si l'étendue a été modifiée.
  • DELETE_TILESLes tuiles sont supprimées du cache. La structure du dossier de cache n'est pas supprimée. Si vous souhaitez supprimer le cache dans son intégralité, y compris la structure de dossier, utilisez l'outil Supprime le cache du serveur de carte.
String
num_of_caching_service_instances
(Facultatif)

Nombre total d'instances du service des outils de mise en cache du dossier système que vous souhaitez utiliser pour exécuter cet outil. Vous pouvez augmenter le nombre maximum d'instances par machine du service des outils de mise en cache du dossier système en ouvrant la fenêtre Editeur de services via une connexion administrateur à ArcGIS Server. Assurez-vous que vos machines serveur peuvent prendre en charge le nombre d'instances sélectionné.

Long
area_of_interest
(Facultatif)

Définit une zone d'intérêt pour contraindre l'emplacement où les tuiles seront créées ou supprimées. Il peut s'agir d'une classe d'entités ou d'une entité que vous définissez de manière interactive dans ArcMap. Ce paramètre est utile si vous souhaitez gérer des tuiles pour les zones de forme irrégulière. Il permet également de mettre certaines zones en cache et de conserver telles quelles les zones moins visitées qui n'ont pas été mises en cache.

Si vous ne fournissez aucune valeur pour ce paramètre, l'étendue globale de la carte est utilisée par défaut.

Feature Set
update_extent
(Facultatif)

Etendue rectangulaire dans laquelle créer ou supprimer les tuiles, selon la valeur du paramètre update_mode. Nous vous déconseillons d'entrer des valeurs pour les deux paramètres update_extent et area_of_interest. Si vous entrez des valeurs pour les deux paramètres, la valeur de area_of_interest est utilisée.

Extent
wait_for_job_completion
(Facultatif)

Ce paramètre vous permet de suivre la progression de la tâche en cache exécutée sur le serveur.

  • WAITCet outil continue de s'exécuter dans ArcGIS for Desktop pendant que la tâche en cache est traitée dans ArcGIS for Server ou ArcGIS Online. Grâce à cette option, vous pouvez demander des rapports de progression détaillés à tout moment et visualiser les messages de géotraitement dès qu'ils apparaissent. Il s'agit de l'option par défaut. Il est recommandé d'utiliser cette option dans les scripts Python.
  • DO_NOT_WAITL'outil de géotraitement envoie la tâche au serveur pour que vous puissiez effectuer d'autres tâches de géotraitement dans ArcGIS for Desktop ou même fermer ArcGIS for Desktop. Cette option est utilisée lorsque vous choisissez de créer un cache automatiquement au moment de la publication du service. Vous pouvez également la définir sur un autre cache que vous générez. Pour suivre l'état de la tâche en cache, ouvrez ArcGIS for Desktop, cliquez avec le bouton droit sur le service dans la fenêtre Catalogue et sélectionnez Afficher l'état du cache. Vous pouvez également utiliser l'URL fournie dans le message de résultat de l'outil.Cette option n'est disponible que si la géodatabase fichier Status.gdb figure dans le répertoire de cache du service.
Boolean

Exemple de code

Exemple 1

Crée ou met à jour toutes les tuiles dans le cache à l'aide de l'option RECREATE_ALL_TILES.

# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all 
#               cache tiles for the scales in the cache tiling scheme.
# Requirements: os, sys, time and traceback modules

# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
#                                                           "sys.argv[]"

# Import system modules
import arcpy
from arcpy import env
import os, sys, time, datetime, traceback, string

# Set environment settings
env.workspace = "C:/data"

# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""

currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = r'C:/data/report_%s.txt' % arg1

# print results of the script to a report
report = open(file,'w')

try:
    starttime = time.clock()
    result = arcpy.ManageMapServerCacheTiles_server(inputService, scales,
                                                    updateMode,
                                                    numOfCachingServiceInstances,
                                                    areaOfInterest, updateExtents,
                                                    waitForJobCompletion)
    finishtime = time.clock()
    elapsedtime= finishtime - starttime

    #print messages to a file
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))

    print "Created cache tiles for given schema successfully for "
    + serviceName + " in " + str(elapsedtime) + " sec \n on " + arg2
    
except Exception, e:
    # If an error occurred, print line number and error message
    tb = sys.exc_info()[2]
    report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)
report.close()
    
print "Created Map server Cache Tiles "

Exemple 2

Met à jour les tuiles vides pour certaines échelles à l'aide de l'option RECREATE_EMPTY_TILES.

# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate  
#               empty tiles for one of the default number of scales in the cache
#               tiling scheme.
# Requirements: os, sys, time and traceback modules

# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
#                                                           "sys.argv[]"

# Import system modules
import arcpy
from arcpy import env
import os, sys, time, datetime, traceback, string

# Set environment settings
env.workspace = "C:/data"

# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_EMPTY_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""
cacheDir = "c:\\arcgisserver\\arcgiscache\\"

currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = 'C:/data/report_%s.txt' % arg1

# print results of the script to a report
report = open(file,'w')

# use "scales[0]","scales[-1]","scales[0:3]"

try:
    starttime = time.clock()
    result = arcpy.ManageMapServerCacheTiles_server(inputService, scales[-1],
                                                    updateMode, numOfCachingServiceInstances,
                                                    areaOfInterest, updateExtents,
                                                    waitForJobCompletion)
    finishtime = time.clock()
    elapsedtime = finishtime - starttime
    ## print messages to a file
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))
    
    
    print "Created cache tiles for scale =" + str(scales[-1]) + "for "
    + serviceName + "\n   at " + cacheDir + " in " + str(elapsedtime)
    " sec \n on " + arg2

except Exception, e:
    # If an error occurred, print line number and error message
    tb = sys.exc_info()[2]
    report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)
    
report.close()   
print "Rereated Map server Cache Tiles for scale = " + str(scaleValues[-1])

Exemple 3

Met les tuiles à jour à l'aide d'une zone d'intérêt.

# ManageMapServerCacheTiles example for ArcGIS Server 10.1(stand-alone script)

# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all
#               tiles using given feature class.

# Requirements: os, sys, time and traceback modules
# Author: ESRI

# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
#                                                           "sys.argv[]"

# Import system modules
import arcpy
from arcpy import env
import os, sys, time, datetime, traceback, string

# Set environment settings
env.workspace = "C:/data"

# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = "C:/data/shp/CaTxFlMaMin.shp"
waitForJobCompletion = "WAIT"
updateExtents = ""


currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = r'C:/data/report_%s.txt' % arg1

# print results of the script to a report
report = open(file,'w')

# use "scales[0]","scales[-1]","scales[0:3]"

try:
    starttime = time.clock()
    result = arcpy.ManageMapServerCacheTiles_server(inputService, scales[-1],
                                                    updateMode,
                                                    numOfCachingServiceInstances,
                                                    areaOfInterest, updateExtents,
                                                    waitForJobCompletion)                                           
    finishtime = time.clock()
    elapsedtime = finishtime - starttime

    #print messages to a file
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))
    
    print "Created cache tiles for scale =" + str(scales[-1]) + "for "
    + serviceName + "at " + cacheDir + "\n using specified feature class "
    areaOfInterest + " in " + str(elapsedtime) + " sec \n on " + arg2

except Exception, e:
    # If an error occurred, print line number and error message
    tb = sys.exc_info()[2]
    report.write("Failed at \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)

report.close()     
print "Rereated Map server Cache Tiles"
print "for scale = " + str(scaleValues[-1]) + " using area of Interest"

Environnements

Cet outil n'utilise aucun environnement de géotraitement

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic: Oui
ArcGIS for Desktop Standard: Oui
ArcGIS for Desktop Advanced: Oui
6/5/2014