Exporter un cache de serveur de carte (Serveur)

Niveau de licence :BasicStandardAdvanced

Récapitulatif

Cet outil exporte des tuiles depuis un cache de service d'imagerie ou de carte en tant que jeu de données de cache ou paquetage de tuiles vers un dossier du disque. Vous pouvez importer les tuiles dans d'autres caches ou y accéder à partir d'ArcGIS for Desktop ou de périphériques mobiles en tant que jeu de données raster, indépendamment de leur service parent.

Utilisation

Syntaxe

ExportMapServerCache_server (input_service, target_cache_path, export_cache_type, copy_data_from_server, storage_format_type, scales, {num_of_caching_service_instances}, {area_of_interest}, {export_extent}, {overwrite})
ParamètreExplicationType de données
input_service

Service de carte ou d'imagerie dont les tuiles de cache seront exportées.

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
target_cache_path

Dossier dans lequel le cache sera exporté. Ce dossier n'a pas besoin d'être un répertoire de cache du serveur enregistré. Le compte ArcGIS Server doit posséder des droits d'accès en écriture sur le dossier du cache cible. Si le compte serveur ne peut pas obtenir de droits d'accès en écriture sur le dossier de destination, mais que le client ArcGIS for Desktop peut y accéder en écriture, choisissez le paramètre Copier les données à partir du serveur.

Folder
export_cache_type

Indiquez si vous souhaitez exporter le cache comme jeu de données de cache ou paquetage de tuiles. Les paquetages de tuiles sont adaptés aux déploiements ArcGIS Runtime et ArcGIS Mobile.

  • CACHE_DATASETCache du service de carte ou d'imagerie généré à l'aide d'ArcGIS Server. Utilisable dans ArcMap et avec les services de carte ou d'imagerie ArcGIS Server. Il s'agit de l'option par défaut.
  • TILE_PACKAGEFichier compressé unique dans lequel le jeu de données de cache est ajouté en tant que couche et consolidé pour permettre de le partager facilement. Utilisable dans ArcGIS for Desktop, ainsi que dans les applications mobiles et ArcGIS Runtime.
String
copy_data_from_server

Définissez cette option sur COPY_DATA si le compte ArcGIS Server ne peut pas obtenir de droits d'accès en écriture sur le dossier cible et que le client ArcGIS for Desktop peut y accéder en écriture. Le logiciel exporte les tuiles dans le répertoire en sortie du serveur avant de les placer dans le dossier cible.

  • COPY_DATALes tuiles sont placées dans le répertoire en sortie du serveur, puis transférées dans le dossier cible. Le client ArcGIS for Desktop doit posséder des droits d'accès en écriture sur le dossier cible.
  • DO_NOT_COPYLes tuiles sont exportées directement dans le dossier cible. Le compte ArcGIS Server doit posséder des droits d'accès en écriture sur le dossier cible. Il s'agit de l'option par défaut.
Boolean
storage_format_type

Format de stockage du cache exporté.

  • COMPACTLes tuiles sont regroupées dans des fichiers paquets afin d'économiser de l'espace sur le disque et d'accélérer la copie des caches. Il s'agit de l'option par défaut si Exporter le type de cache (export_cache_type dans Python) est défini sur Paquetage de tuiles.
  • EXPLODEDChaque tuile est stockée en tant que fichier individuel (de la façon dont les caches étaient toujours stockés avant ArcGIS Server 10).
String
scales
[scales,...]

Liste des niveaux d'échelle auxquels les tuiles sont exportées.

Double
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)

Zone d'intérêt (polygone) qui contraint spatialement la zone où les tuiles sont exportées du cache. 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 voulez exporter des zones de forme irrégulière, car l'outil découpe le jeu de données du cache à une résolution de pixel.

Si vous n'indiquez pas de zone d’intérêt, l'étendue globale de la carte est exportée.

Feature Set
export_extent
(Facultatif)

Étendue rectangulaire définissant les tuiles à exporter. Par défaut, l'étendue est définie sur l'étendue complète du service de carte dans lequel vous effectuez l'importation. Notez le paramètre facultatif de l'outil Zone d'intérêt qui vous permet également de procéder à l'importation à l'aide d'un polygone. Nous vous déconseillons de définir les deux paramètres dans le cadre d'une tâche. Si vous entrez des valeurs pour les deux paramètres, la Zone d'intérêt est prioritaire sur l'Emprise d'importation.

Extent
overwrite
(Facultatif)
  • OVERWRITEL'exportation remplace tous les pixels de la zone d'intérêt, en remplaçant les tuiles du cache de destination par les tuiles du cache d'origine.
  • MERGELorsque les tuiles sont importées, les pixels transparents du cache d'origine sont ignorés par défaut. L'image est ainsi fusionnée dans le cache de destination. Il s'agit du comportement par défaut.
Boolean

Exemple de code

Exemple 1 d'utilisation de l'outil ExportMapServerCache

Exportez des tuiles de cache pour une classe d'entités tout en remplaçant le format de stockage EXPLODED par COMPACT.

# Name: ExportMapServerCache.py for ArcGIS Server 
# Description: The following stand-alone script demonstrates how to export 
# 		cache as CACHE_DATASET in COMPACT storage format and MERGE tiles
#               using an AREA_OF_INTEREST to TARGET_CACHE_PATH
#		which is accessible to server instances 
# 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
targetCachePath 	= "C:/data/temp"
exportCacheType 	= "CACHE_DATASET"
copyDataFromServer 	= "DO_NOT_COPY"
storageFormat 		= "COMPACT"
scales 			= [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
areaOfInterest 		= "C:/data/101/Portland/Metro.shp"
exportExtents 		= ""
overwriteTiles 		= "MERGE"

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 "scaleValues[0]","scaleValues[-1]","scaleValues[0:3]"

# Enter rectangular custom extent values for the "exportExtents" variable to
# constrain the exporting cache along the rectangular extents

try:
    starttime = time.clock()
    result = arcpy.ExportMapServerCache_server(inputService, targetCachePath,
                                               exportCacheType,
                                               copyDataFromServer,
                                               storageFormat, scales, 
                                               numOfCachingServiceInstances, 
                                               areaOfInterest, exportExtents, 
					       overwriteTiles)
    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 "Exported cache successfully for mapservice " + serviceName 
    " to " + targetCachePath + "\n using " + areaOfInterest + "\n 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)

print "Exported Map server Cache  using area of Interest"

report.close()

Exemple 2 d'utilisation de l'outil ExportMapServerCache

Exportez un cache en tant que TILE_PACKAGE lorsque les instances ArcGIS Server ne peuvent pas accéder au dossier de destination.

# Name: ExportMapServerCache.py
# Description: The following stand-alone script demonstrates how to export cache
#               as TILE_PACKAGE for default number of scales of a service, to a 
#               TARGET_CACHE_PATH which is inaccessible to server instances using
#               COPY_DATA_FROM_SERVER
# 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
targetCachePath = "C:/temp/usa"
exportCacheType = "TILE_PACKAGE"
copyDataFromServer = "COPY_DATA"
storageFormat = "COMPACT"
scaleValues = [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
exportExtents = ""
areaOfInterest = ""
overwriteTiles = "MERGE"

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 "scaleValues[0]","scaleValues[-1]","scaleValues[0:3]"

try:
    starttime = time.clock()
    result = arcpy.ExportMapServerCache_server(inputService, targetCachePath,
                                               exportCacheType,
                                               copyDataFromServer,
                                               storageFormat, scales,
                                               numOfCachingServiceInstances,
                                               areaOfInterest,
                                               exportExtents, overwriteTiles)
    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 "Exported cache successfully for mapservice " + serviceName + " to "
    targetCachePath + " 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)
    
print "Exported Map server Cache "

report.close()

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