Crear caché del servidor de mapas (Servidor)

Resumen

Crea el esquema de ordenamiento en teselas y las carpetas preparatorias para una caché de servicio de imágenes o mapas. Después de ejecutar esta herramienta, ejecute la herramienta Administrar teselas de caché de servidor de mapas para agregar teselas a la caché.

Uso

  • Esta herramienta solo funciona con los servicios de mapas o imágenes de ArcGIS Server.

  • Esta herramienta solo funciona con capas de mapas e imágenes de ArcGIS Enterprise y servicios de mapas e imágenes de ArcGIS Server.

  • Los datos ráster se publican mejor en el formato de imágenes JPEG o MIXED. Cuando se utiliza el formato JPEG o MIXED con mapas vectoriales, utilice un valor de alta calidad de compresión (como 90) para reducir las líneas y el texto borrosos. También se pueden publicar con el formato PNG.

  • El formato de imágenes de caché no se puede cambiar después de que se creó la caché. Primero se debe eliminar la caché antes de cambiar de formato.

Sintaxis

arcpy.server.CreateMapServerCache(input_service, service_cache_directory, tiling_scheme_type, scales_type, num_of_scales, dots_per_inch, tile_size, {predefined_tiling_scheme}, {tile_origin}, {scales}, {cache_tile_format}, {tile_compression_quality}, {storage_format})
ParámetroExplicaciónTipo de datos
input_service

La capa de mapas o imágenes que se almacenará en caché.

Image Service; MapServer
service_cache_directory

El directorio principal para la caché. Debe ser un directorio de caché de ArcGIS Server registrado.

String
tiling_scheme_type

Especifica cómo se definirá el esquema de ordenamiento en teselas. Puede definir un nuevo esquema de ordenamiento en teselas con esta herramienta o buscar un archivo de esquema de ordenamiento en teselas predefinido (.xml). Se puede crear un esquema predefinido ejecutando la herramienta Generar esquema de ordenamiento en teselas de caché de servidor de mapas.

  • NEWEl esquema de ordenamiento en teselas se define usando otros parámetros de esta herramienta para definir niveles de escala, formato de imágenes, formato de almacenamiento, etc. Esta es la opción predeterminada.
  • PREDEFINEDEl esquema de ordenamiento en teselas se define mediante un archivo .xml. Puede crear un archivo de esquema de ordenamiento en teselas mediante la herramienta Generar esquema de ordenamiento en teselas de caché de servidor de mapas.
String
scales_type

Especifica cómo se escalarán las teselas.

  • STANDARDLas escalas se generan automáticamente basándose en el número especificado en el parámetro Número de escalas (num_of_scales en Python). Utilizará niveles que aumentan o disminuyen a la mitad desde 1:1000000 y comenzará con el nivel más cercano a la extensión del documento de mapa fuente. Por ejemplo, si el documento de mapa de origen tiene una extensión de 1:121.000.000 y se definen tres niveles de escala, el servicio de mapas creará una caché con los niveles de escala en 1:128.000.000; 1:64.000.000; y 1:32.000.000. Esta es la opción predeterminada.
  • CUSTOMEl diseñador de la caché determinará las escalas.
String
num_of_scales

La cantidad de niveles de escala para crear en la caché. Esta opción está deshabilitada si crea una lista personalizada de escalas.

Long
dots_per_inch

Los puntos por pulgada (dpi) del dispositivo de salida deseado. Si se elige un DPI que no coincide con la resolución del dispositivo de salida, la escala de la tesela de mapa aparecerá como incorrecta. El valor predeterminado es 96.

Long
tile_size

Especifica en píxeles el ancho y la altura de las teselas en caché. Para un mejor equilibrio entre rendimiento y manejabilidad, evite desviarse de los anchos estándar de 256 por 256 y 512 por 512.

  • 128 x 128128 por 128 píxeles.
  • 256 x 256256 por 256 píxeles. Esta es la opción predeterminada.
  • 512 x 512512 por 512 píxeles.
  • 1024 x 10241024 por 1024 píxeles.
String
predefined_tiling_scheme
(Opcional)

La ruta a un archivo de esquema de ordenamiento en teselas predefinido (en general con el nombre conf.xml).

File
tile_origin
(Opcional)

El origen (esquina superior izquierda) del esquema de ordenamiento en teselas en las coordenadas de la referencia espacial del documento de mapa fuente. La extensión del documento de mapa de origen debe estar dentro de esta región (pero no es necesario que coincida con ella).

Point
scales
[scales,...]
(Opcional)

Los niveles de escala disponibles para la caché. No se representan como fracciones. En cambio, utilice 500 para representar una escala de 1:500, por ejemplo.

Value Table
cache_tile_format
(Opcional)

Especifica el formato de las teselas en caché.

  • PNGUn formato PNG con distintas profundidades de bits. Las profundidades de bits están optimizadas según la variación de color y los valores de transparencia de una tesela. Esta es la opción predeterminada.
  • PNG8Un formato de imagen de colores de 8 bits, sin pérdida de información, que utiliza una paleta de colores indexada y una tabla alfa. Cada píxel almacena un valor (0–255) que se utiliza para buscar el color en la paleta de colores y la transparencia en la tabla alfa. Las imágenes PNG de 8 bits son similares a las imágenes GIF y la mayoría de los navegadores web admiten los fondos transparentes de las imágenes PNG.
  • PNG24Un formato de imagen de tres canales, sin pérdida de información, que admite grandes variaciones de colores (16 millones de colores) y tiene una compatibilidad limitada con la transparencia. Cada píxel contiene tres canales de colores de 8 bits y el encabezado del archivo contiene el color único que representa el fondo transparente. Las versiones de Internet Explorer anteriores a la versión 7 no son compatibles con este tipo de transparencia. Las cachés que utilizan PNG24 son significativamente más grandes que las que usan PNG8 o JPEG, utilizarán más espacio en disco y requerirán un mayor ancho de banda para servir a los clientes.
  • PNG32Un formato de imagen de cuatro canales, sin pérdida de información, que admite grandes variaciones de colores (16 millones de colores) y transparencia. Cada píxel contiene tres canales de colores de 8 bits y un canal alfa de 8 bits que representa el nivel de transparencia para cada píxel. Mientras el formato PNG32 permite píxeles parcialmente transparentes en el rango de 0 a 255, la herramienta de generación de caché de ArcGIS Server solo escribe valores completamente transparentes (0) o completamente opacos (255) en el canal de transparencia. Las memorias caché que utilizan PNG32 son significativamente más grandes que otros formatos compatibles, utilizarán más espacio en disco y requerirán mayor ancho de banda para servir a los clientes.
  • JPEGUn formato de imagen de tres canales, con pérdida de información, que admite grandes variaciones de colores (16 millones de colores) y no es compatible con la transparencia. Cada píxel contiene tres canales de colores de 8 bits. Las caché que utilizan JPEG ofrecen control sobre la calidad y el tamaño de la salida.
  • MIXEDEl formato PNG32 se crea en cualquier lugar en el que se detecte transparencia (es decir, en cualquier lugar en el que el fondo del marco de datos sea visible). El formato JPEG se crea para las demás teselas. Así, el tamaño de archivo promedio se mantiene bajo y al mismo tiempo proporciona una superposición limpia por encima de los otras cachés.
String
tile_compression_quality
(Opcional)

La calidad de compresión JPEG (1–100). El valor predeterminado es 75 para el formato de tesela JPEG y 0 para otros formatos.

La compresión solo es compatible con el formato JPEG. La elección de un valor superior resultará en un tamaño de archivo más grande con una imagen de calidad más alta. La elección de un valor inferior resultará en un tamaño de archivo más pequeño con una imagen de calidad más baja.

Long
storage_format
(Opcional)

Especifica el formato de almacenamiento de teselas.

  • COMPACTLas teselas se agruparán en archivos grandes denominados paquetes. Este formato de almacenamiento es eficiente en términos de almacenamiento y movilidad. Esta es la opción predeterminada.
  • EXPLODEDCada tesela se almacenará como un archivo separado.
String

Salida derivada

NombreExplicaciónTipo de datos
out_service_url

La URL del servicio de mapas de salida.

Cadena

Muestra de código

Ejemplo 1 de CreateMapServerCache (script independiente)

En el ejemplo siguiente se crea el esquema de ordenamiento en teselas y carpetas preliminares para la caché de un servicio de mapas utilizando el tipo de escala ESTÁNDAR. Después de ejecutar esta secuencia de comandos, ejecute la herramienta Administrar teselas de caché de servidor de mapas para agregar teselas a la caché.

# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
#               using standard tiling schema
# Requirements: os, sys, time & 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
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache\\"
tilingSchemeType = "NEW"
scalesType = "STANDARD"
numOfScales = "4"
scales = ""
dotsPerInch = "96"
tileOrigin = ""
scales = ""
tileSize = "256 x 256"
cacheTileFormat = "PNG32"
tileCompressionQuality = ""
storageFormat = "COMPACT"
predefinedTilingScheme = ""


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

try:
    starttime = time.clock()
    result = arcpy.CreateMapServerCache_server(inputService,
                                               serviceCacheDirectory,
                                               tilingSchemeType, scalesType,
                                               numOfScales, dotsPerInch,
                                               tileSize, predefinedTilingScheme,
                                               tileOrigin, scales,
                                               cacheTileFormat,
                                               tileCompressionQuality,
                                               storageFormat)

    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 schema with 4 scales & default properties for" + \
        serviceName + " 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("Executed creation of Map server Cache schema ")
report.close()
Ejemplo 2 de CreateMapServerCache (script independiente)

En el ejemplo siguiente se crea el esquema de ordenamiento en teselas y carpetas preliminares para la caché de un servicio de mapas utilizando escalas PERSONALIZADAS. Después de ejecutar esta secuencia de comandos, ejecute la herramienta Administrar teselas de caché de servidor de mapas para agregar teselas a la caché.

# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
#              using Custom scales & jpg image format.
# Requirements: os, sys, time & 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, string, datetime, traceback

# 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
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache"
tilingSchemeType = "NEW"
scalesType = "CUSTOM"
numOfScales = "4"
dotsPerInch = "96"
tileSize = "256 x 256"
predefinedTilingScheme = ""
tileOrigin = ""
scales = "600265;350200;225400;44000"
cacheTileFormat = "JPEG"
tileCompressionQuality = "75"
storageFormat = "COMPACT"


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

try:
    starttime = time.clock()
    result = arcpy.CreateMapServerCache_server(inputService,
                                               serviceCacheDirectory,
                                               tilingSchemeType, scalesType,
                                               numOfScales, dotsPerInch,
                                               tileSize, predefinedTilingScheme,
                                               tileOrigin, scales,
                                               cacheTileFormat,
                                               tileCompressionQuality,
                                               storageFormat)
    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 schema with custom scales successfully for " + \
        serviceName + " 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("Executed creation of map server Cache schema using custom scales")

report.close()
Ejemplo 3 de CreateMapServerCache (script independiente)

En el ejemplo siguiente se crea el esquema de ordenamiento en teselas y carpetas preliminares para la caché de un servicio de mapas utilizando un esquema de ordenamiento en teselas PREDEFINIDO. Después de ejecutar esta secuencia de comandos, ejecute la herramienta Administrar teselas de caché de servidor de mapas para agregar teselas a la caché.

# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
#               using existing predefined schema
# Requirements: os, sys, time & 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
serviceCacheDirectory = "C:\\arcgisserver\\directories\\arcgiscache"
tilingSchemeType = "PREDEFINED"
scalesType = ""
tileOrigin = ""
scalesType = ""
numOfScales = ""
scales = ""
dotsPerInch = "96"
tileSize = "256 x 256"
cacheTileFormat = "MIXED"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
predefinedTilingScheme = "C:/data/TilingSchemes/ArcGIS_Online_Bing_Maps_Google_Maps.xml"


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

try:
    starttime = time.clock()
    result = arcpy.CreateMapServerCache_server (inputService,
                                                serviceCacheDirectory,
                                                tilingSchemeType, scalesType,
                                                numOfScales, dotsPerInch,
                                                tileSize, predefinedTilingScheme,
                                                tileOrigin, scales,
                                                cacheTileFormat,
                                                tileCompressionQuality,
                                                storageFormat)

    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 schema using predefined tiling schema for " + \
        serviceName + " 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("Executed creation of map server Cache schema using tiling scheme")
report.close()

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados