Résumé
Cet outil exporte des tuiles depuis un cache de couche d’images 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 depuis ArcGIS Desktop ou des appareils mobiles en tant que jeu de données raster, indépendamment de leur service parent.
Utilisation
Avant d'exécuter cet outil, créez le dossier sur le disque qui contiendra les tuiles exportées.
Le compte ArcGIS Server doit posséder des droits d’accès en écriture sur le dossier du cache cible. Si le compte ArcGIS Server ne peut pas obtenir de droits d’accès en écriture sur le dossier du cache cible, mais que le client ArcGIS Pro peut y accéder en écriture, choisissez le paramètre Copy data from server (Copier les données à partir du serveur) (copy_data_from_server).
Le paramètre Remplacer les tuiles permet aux tuiles exportées de remplacer entièrement les tuiles du cache de destination, au lieu de fusionner les images. Les tuiles exportées peuvent toujours être contraintes dans une zone d'intérêt.
Syntaxe
arcpy.server.ExportMapServerCache(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ètre | Explication | Type de données |
input_service | Couche d’images de carte dont les tuiles de cache doivent être exportées. | Image Service; MapServer |
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 de serveur ne peut pas obtenir de droits d’accès en écriture sur le dossier de destination, mais que le client ArcGIS Desktop ou ArcGIS Pro peut y accéder en écriture, choisissez le paramètre Copy data from server (Copier les données à partir du serveur). | Folder |
export_cache_type | Cet outil exporte 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.
| String |
copy_data_from_server | Définissez ce paramètre 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 Desktop ou ArcGIS Pro 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.
| Boolean |
storage_format_type | Format de stockage du cache exporté.
| String |
scales [scales,...] | Liste des niveaux d'échelle auxquels les tuiles sont exportées. | Double |
num_of_caching_service_instances (Facultatif) | Indique le nombre d’instances qui seront utilisées pour mettre à jour ou générer les tuiles. La valeur de ce paramètre est définie sur illimitée (-1) et ne peut pas être modifiée. | Long |
area_of_interest (Facultatif) | Zone d’intérêt qui contraint spatialement la zone où les tuiles sont exportées du cache. 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 que le paramètre facultatif Area Of Interest (Zone d’intérêt) de cet outil vous permet également de procéder à l’importation à l’aide d’un polygone. Nous vous déconseillons de ne pas définir ces deux paramètres dans le cadre d’une tâche. Si vous entrez des valeurs pour les deux paramètres, le paramètre Area Of Interest (Zone d’intérêt) est prioritaire sur le paramètre Import Extent (Emprise d’importation).
| Extent |
overwrite (Facultatif) | Indique si les images du cache de destination sont fusionnées avec les tuiles du cache d’origine ou remplacées par ces dernières.
| Boolean |
Sortie dérivée
Nom | Explication | Type de données |
output_cache_path | Le dossier dans lequel le cache a été exporté. | Chaîne |
Exemple de code
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 as 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(str(e))
print("Exported Map server Cache using area of Interest")
report.close()
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 as 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(str(e))
print("Exported Map server Cache ")
report.close()
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?