Resumen
Exporta teselas de la caché de una capa de imágenes de mapa como un dataset de la caché o un paquete de teselas a una carpeta en el disco. Las teselas pueden importarse a otras cachés o bien puede accederse a ellas desde ArcGIS Desktop o dispositivos móviles como un dataset ráster, independientemente de su servicio principal.
Uso
Antes de ejecutar esta herramienta, cree la carpeta en el disco que mantendrá las teselas exportadas.
La cuenta ArcGIS Server debe disponer de acceso de escritura a la carpeta de la caché de destino. Si a la cuenta de ArcGIS Server no se le puede conceder acceso de escritura a la carpeta de la caché de destino, pero el cliente de ArcGIS Pro tiene acceso de escritura a ella, elija el parámetro Copiar datos desde el servidor (copy_data_from_server).
El parámetro Sobrescribir teselas permite que las teselas exportadas sobrescriban por completo las teselas en la caché de destino, en lugar de mezclar las imágenes. Las teselas exportadas todavía se pueden restringir a un área de interés.
Sintaxis
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})
Parámetro | Explicación | Tipo de datos |
input_service | La capa de imágenes de mapa con teselas de caché que se va a exportar. | Image Service; MapServer |
target_cache_path | La carpeta a la cual se exportará la memoria caché. Esta carpeta no tiene que ser un directorio de caché de un servidor registrado. La cuenta ArcGIS Server debe disponer de acceso de escritura a la carpeta de la caché de destino. Si a la cuenta del servidor no se le puede conceder acceso de escritura para la carpeta de destino, pero el cliente de ArcGIS Desktop o ArcGIS Pro tiene acceso de escritura a ella, elija el parámetro Copiar datos desde el servidor. | Folder |
export_cache_type | Exporta una caché como un dataset de caché o un paquete de teselas. Los paquetes de tesela son adecuados para implementaciones de ArcGIS Runtime y ArcGIS Mobile.
| String |
copy_data_from_server | Establezca este parámetro como COPY_DATA si no se puede conceder acceso de escritura a la cuenta de ArcGIS Server para la carpeta de destino y el cliente de ArcGIS Desktop o ArcGIS Pro tiene acceso de escritura a ella. El software exporta las teselas al directorio de salida del servidor antes de pasarlas a la carpeta de destino.
| Boolean |
storage_format_type | El formato de almacenamiento de la caché exportada.
| String |
scales [scales,...] | Lista de niveles de escala a los cuales se exportarán las teselas. | Double |
num_of_caching_service_instances (Opcional) | Especifica el número de instancias que se utilizará para actualizar o generar las teselas. El valor de este parámetro está establecido en sin límite (-1) y no se puede modificar. | Long |
area_of_interest (Opcional) | Un área de interés que restringe espacialmente dónde se exportan las teselas desde la caché. Este parámetro es útil si desea exportar áreas con formas irregulares, puesto que la herramienta recorta el dataset de la caché en la resolución de píxeles. Si no especifica un área de interés, se exporta la extensión completa del mapa. | Feature Set |
export_extent (Opcional) | Una extensión rectangular que define las teselas que se exportarán. De forma predeterminada, la extensión se encuentra configurada como la extensión completa del servicio de mapas en el que realiza la importación. Observe que el parámetro opcional de esta herramienta Área de interés le permite de forma alternativa importar mediante un polígono. Se recomienda no proporcionar valores para ambos parámetros para un trabajo. Si los valores se proporcionan para los dos parámetros, el Área de interés prevalece sobre Importar extensión.
| Extent |
overwrite (Opcional) | Especifica si las imágenes en la caché de recepción se fusionarán con las teselas de la caché de origen o bien se sobrescribirán.
| Boolean |
Salida derivada
Nombre | Explicación | Tipo de datos |
output_cache_path | La carpeta a la que se ha exportado la memoria caché. | Cadena |
Muestra de código
Exporte teselas de caché para una clase de entidad al mismo tiempo que cambia el formato de almacenamiento de EXPLODED a 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()
Exportar caché como TILE_PACKAGE cuando la carpeta de destino es inaccesible para las instancias ArcGIS Server.
# 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()
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí