arcpy.server.ImportMapServerCache(input_service, source_cache_type, {source_cache_dataset}, {source_tile_package}, {upload_data_to_server}, {scales}, {num_of_caching_service_instances}, {area_of_interest}, {import_extent}, {overwrite})
|
Nom
|
Explication
|
Type de données
|
|
input_service
|
Couche d’images de carte dont les tuiles de cache doivent être importées.
|
Image Service; Map Server
|
|
source_cache_type
|
Spécifie le type de cache à importer dans un service de carte ou d’imagerie en cache exécuté sur le serveur.
CACHE_DATASET—Un cache du service de carte ou d’imagerie généré à l’aide d’ArcGIS Server est importé. Il peut être utilisé dans ArcGIS Desktop et par les services de carte ou d’imagerie ArcGIS Server.
TILE_PACKAGE—Un fichier compressé unique dans lequel le jeu de données de cache est ajouté en tant que couche et consolidé afin de pouvoir être partagé est importé. Il peut être utilisé dans ArcGIS Pro et avec ArcGIS Maps SDKs for Native Apps.
|
String
|
|
source_cache_dataset
(Facultatif)
|
Chemin d'accès au dossier de cache correspondant au nom du bloc de données. Vous n’avez pas besoin d’indiquer un répertoire de cache du serveur enregistré. En général, vous spécifiez un emplacement du disque où figurent déjà des tuiles exportées. Le compte ArcGIS Server doit pouvoir accéder à cet emplacement. Si le compte ArcGIS Server ne peut pas obtenir de droits d’accès sur cet emplacement, définissez le paramètre upload_data_to_server sur UPLOAD_DATA.
|
Raster Dataset
|
|
source_tile_package
(Facultatif)
|
Chemin d’accès au paquetage de tuiles (.tpk ou .tpkx) à importer. Le compte ArcGIS Server doit pouvoir accéder à cet emplacement. Lors de l’importation d’un fichier de paquetage de tuiles dans un service de carte ou d’imagerie en cache, le paramètre upload_data_to_server est ignoré car il est automatiquement défini sur UPLOAD_DATA.
|
File
|
|
upload_data_to_server
(Facultatif)
|
Indique la façon dont les tuiles sont transférées dans le répertoire de cache du serveur.
Définissez ce paramètre sur UPLOAD_DATA si le compte ArcGIS Server ne dispose pas d’un accès en lecture au cache source. L’outil charge le cache source dans le répertoire de téléchargements d’ArcGIS Server avant de le placer dans le répertoire de cache d’ArcGIS Server.
UPLOAD_DATA—Les tuiles sont d’abord placées dans le répertoire de téléchargements du serveur, puis transférées dans le répertoire de cache du serveur. Cette opération est activée par défaut si source_cache_type est défini sur TILE_PACKAGE.
DO_NOT_UPLOAD—Les tuiles sont importées directement dans le répertoire de cache du serveur. Le compte ArcGIS Server doit posséder des droits d’accès en lecture sur le cache source.
|
Boolean
|
|
scales
[scales,...]
(Facultatif)
|
Liste des niveaux d'échelle auxquels les tuiles sont importées.
|
Double
|
|
num_of_caching_service_instances
(Facultatif)
|
Nombre d’instances 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)
|
Polygone de zone d’intérêt qui contraint spatialement la zone où les tuiles sont importées dans le cache. Ce paramètre est utile lors de l’importation de tuiles pour des zones de forme irrégulière, car l’outil découpe le jeu de données du cache qui intersecte le polygone à une résolution de pixel, puis l’importe dans le répertoire de cache du service.
Si vous ne spécifiez aucune valeur pour ce paramètre, la valeur du paramètre import_extent est utilisée. Par défaut, il convient d'utiliser l'étendue globale de la carte.
|
Feature Set
|
|
import_extent
(Facultatif)
|
Étendue rectangulaire définissant les tuiles à importer dans le cache. Par défaut, l’étendue est définie sur l’étendue complète du service de carte dans lequel vous effectuez l’importation. Le paramètre facultatif Area Of Interest (Zone d’intérêt) vous permet de contraindre spatialement les tuiles importées avec une forme irrégulière. Si vous entrez des valeurs pour les deux paramètres, la valeur du paramètre Area Of Interest (Zone d’intérêt) est utilisée.
Étendue rectangulaire définissant les tuiles à importer dans le cache. Par défaut, l’étendue est définie sur l’étendue complète du service de carte dans lequel vous effectuez l’importation. Le paramètre facultatif area_of_interest vous permet de contraindre spatialement les tuiles importées avec une forme irrégulière. Si vous entrez des valeurs pour les deux paramètres, la valeur du paramètre area_of_interest est utilisée.
MAXOF : l’étendue maximale de toutes les entrées est utilisée.
MINOF : l’étendue minimale commune à toutes les entrées est utilisée.
DISPLAY : l’étendue est égale à l’affichage visible.
Nom de la couche : l’étendue de la couche spécifiée est utilisée.
Extent object : l’étendue de l’objet spécifié est utilisée.
Chaîne délimitée par des espaces de coordonnées géographiques : l’étendue de la chaîne spécifiée est utilisée. Les coordonnées sont exprimées dans l’ordre x-min, y-min, x-max, y-max.
|
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.
OVERWRITE—Tous les pixels de la zone d’intérêt sont exportés, en remplaçant les tuiles du cache de destination par les tuiles du cache d’origine.
MERGE—Lorsque les tuiles sont importées, les pixels transparents du cache d’origine sont ignorés. L'image est ainsi fusionnée dans le cache de destination. Il s’agit de l’option par défaut.
|
Boolean
|
Sortie dérivée
|
Nom
|
Explication
|
Type de données
|
|
out_job_url
|
L’URL en sortie.
|
String
|
Exemple de code
Exemple 1 d’utilisation de l’outil ImportMapServerCache (script autonome)
Importez un jeu de données de cache dans un service en cache pour le nombre d'échelles par défaut. Les tuiles du cache de destination sont remplacées par les tuiles importées.
# Name: ImportMapServerCache.py
# Description: The following stand-alone script demonstrates how to import map
# server cache from a source directory with CACHE_DATASET and
# OVERWRITE existing cache on the service for the number
# of scales specified without Uploading data to server
# Requirements: os, sys, time and traceback modules
# Any line that begins with a pound sign is a comment and will not be run
# 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 sys
import time
import datetime
# 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
sourceCacheType = "CACHE_DATASET"
sourceCacheDataset = "C:/data/destination_folder/Layers"
sourceTilePackage = ""
uploadDataToServer = "DO_NOT_UPLOAD"
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
areaOfInterest = ""
importExtents = ""
overwriteTiles = "OVERWRITE"
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.server.ImportMapServerCache(inputService, sourceCacheType,
sourceCacheDataset,
sourceTilePackage,
uploadDataToServer, scales,
numOfCachingServiceInstances,
areaOfInterest, importExtents,
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("Imported Map server Cache Tiles successfully for" + serviceName + \
" from" + sourceCacheDataset + "\n in " + str(elapsedtime)+ "sec 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("Imported Map server Cache Tiles ")
report.close()
Exemple 2 d’utilisation de l’outil ImportMapServerCache (script autonome)
Importez des tuiles de cache pour une zone d’intérêt depuis un paquetage de tuiles vers un service de cache.
# Name: ImportMapServerCache.py
# Description: The following stand-alone script demonstrates how to import map
# server cache from a source directory with Tile Package to an existing service for
# the default number of scales specified using an AOI by uploading data to remote server
# To Import cache tiles for the scales specified for given feature class
# Requirements: os, sys, time and traceback modules
# Any line that begins with a pound sign is a comment and will not be run
# 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 sys
import time
import datetime
# 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
sourceCacheType = "TILE_PACKAGE"
sourceCacheDataset = ""
sourceTilePackage = "C:\\data\\destination_folder\\TPK\\Rainfall.tpk"
uploadDataToServer = "UPLOAD_DATA"
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
cacheDir = "c:\\arcgisserver\\arcgiscache"
areaOfInterest = "C:/data/101/Portland/Portland_Metro.shp"
importExtents = ""
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 "scales[0]","scales[-1]","scales[0:3]"
try:
starttime = time.clock()
result = arcpy.server.ImportMapServerCache(inputService, sourceCacheType,
sourceCacheDataset,
sourceTilePackage,
uploadDataToServer, scales,
numOfCachingServiceInstances,
areaOfInterest, importExtents,
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("Imported Map server Cache Tiles successfully for " + serviceName + \
" from " + sourceTilePackage + " to " + cacheDir + "\n using "+ areaOfInterest + \
" 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 2 \n" "Line %i" % tb.tb_lineno)
report.write(str(e))
report.close()
print("Imported Map server Cache Tiles for the given feature class")