Administrar teselas de memoria caché de servidor de mapas (Servidor)
Resumen
Crea y actualiza las teselas en una memoria caché del servicio de mapas o imágenes existente. Esta herramienta se utiliza para crear teselas nuevas, reemplazar teselas faltantes, sobrescribir teselas desactualizadas o eliminar teselas.
Uso
- Asegúrese de tener un esquema de ordenamiento en teselas definido para el servicio de mapas antes de utilizar esta herramienta. Puede utilizar la pestaña Almacenamiento de memoria caché de la ventana Editor del servicio o la herramienta Crear caché del mapa del servidor para crear el esquema de ordenamiento en teselas.
Esta herramienta puede tardar demasiado en ejecutarse para memorias caché que cubren una extensión geográfica grande o escalas de mapas muy grandes. Si la herramienta se cancela, la creación de teselas se detiene, pero las teselas existentes no se eliminan. Esto significa que puede cancelar la herramienta si no tiene el tiempo suficiente y volver a ejecutarla más tarde en la misma memoria caché con el modo de actualización RECREAR_TESELAS_VACÍAS.
Sintaxis
Parámetro | Explicación | Tipo de datos |
input_service | El servicio de mapas o de imágenes cuyas teselas de memoria caché desea actualizar. Esta es una cadena de caracteres que contiene la información del servidor y de servicios. Para ver cómo construir esta cadena, abra ArcCatalog, seleccione el servicio en el árbol Catálogo y tenga en cuenta el texto en la barra de herramientas Ubicación. A continuación, cambie las barras invertidas por barras normales, por ejemplo, GIS Servers/arcgis en MYSERVER (admin)/USA.MapServer.Servidor de mapas MapServer. | String |
scales |
Los niveles de escala en los cuales creará o eliminará teselas cuando ejecute esta herramienta, según el Modo actualizar. | Double |
update_mode |
El modo para actualizar la memoria caché.
| String |
num_of_caching_service_instances (Opcional) |
El número total de casos del servicio System/CachingTools que desea dedicar a ejecutar esta herramienta. Puede aumentar la cantidad máxima de instancias por equipo del servicio System/CachingTools utilizando la ventana Editor de servicio disponible a través de una conexión administrativa a ArcGIS Server. Asegúrese de que los equipos de servidor son compatibles con el número de instancias elegidos. | Long |
update_extent (Opcional) |
La extensión rectangular en la cual se crearán o eliminarán teselas, según el valor del parámetro Modo actualizar. No se recomienda que proporcione los valores para actualiza_extensión y área_de_interés. Si se proporcionan los valores para ambos parámetros, se utilizará el valor de área_de_interés. | Extent |
area_of_interest (Opcional) |
Define un área de interés para restringir dónde se van a crear o eliminar las teselas. Esta puede ser una clase de entidad o puede ser una entidad que usted defina de forma interactiva en ArcMap. Este parámetro es útil si desea administrar teselas para áreas con formas irregulares. También es útil en situaciones donde desea almacenar en la memoria caché algunas áreas y dejar sin almacenar las áreas menos visitadas. Si no proporciona un valor para este parámetro, la opción predeterminada es utilizar la extensión completa del mapa. | Feature Set |
wait_for_job_completion (Opcional) | Este parámetro le permite ver el progreso de la labor de la memoria caché que se ejecuta en el servidor.
| Boolean |
Ejemplo de código
Ejemplo1
Crear o actualizar todas las teselas en la memoria caché con la opción RECREAR_TODAS_LAS_TESELAS
# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all
# cache tiles for 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 = ""
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 "
Ejemplo2
Actualizar las teselas vacías para algunas de las escalas con la opción RECREAR_TESELAS_VACÍAS
# 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])
Ejemplo3
Actualizar las teselas mediante un Área de interés
# 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"