Kartenserver-Cache exportieren (Server)

Zusammenfassung

Exportiert Kacheln eines Kartenbild-Layer-Cache als Cache-Dataset oder Kachelpaket in einen Festplattenordner. Die Kacheln können in andere Caches importiert werden. Außerdem ist der Zugriff von ArcGIS Desktop oder mobilen Geräten als Raster-Dataset unabhängig vom übergeordneten Service möglich.

Verwendung

  • Erstellen Sie vor dem Ausführen dieses Werkzeugs auf dem Datenträger den Ordner, der die exportierten Kacheln enthalten soll.

  • Das ArcGIS Server-Konto muss Schreibzugriff auf den Ziel-Cache-Ordner haben. Wenn dem ArcGIS Server-Konto kein Schreibzugriff auf den Ziel-Cache-Ordner gewährt werden kann, der ArcGIS Pro-Client jedoch über den entsprechenden Schreibzugriff verfügt, wählen Sie den Parameter Daten vom Server kopieren (copy_data_from_server).

  • Mit dem Parameter Kacheln überschreiben können die Kacheln im Ziel-Cache vollständig von den exportierten Kacheln überschrieben werden, statt die Bilder zu überblenden. Exportierte Kacheln können auf einen Interessenbereich beschränkt werden.

Syntax

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})
ParameterErklärungDatentyp
input_service

Der Kartenbild-Layer mit den zu exportierenden Cache-Kacheln.

Image Service; MapServer
target_cache_path

Der Ordner, in den der Cache exportiert wird. Dieser Ordner muss kein registriertes Server-Cache-Verzeichnis sein. Das ArcGIS Server-Konto muss Schreibzugriff auf den Ziel-Cache-Ordner haben. Wenn dem Serverkonto kein Schreibzugriff auf den Zielordner gewährt werden kann, der ArcGIS Desktop- oder ArcGIS Pro-Client jedoch über den entsprechenden Schreibzugriff verfügt, wählen Sie den Parameter Daten vom Server kopieren.

Folder
export_cache_type

Exportiert einen Cache als Cache-Dataset oder Kachelpaket. Kachelpakete sind für ArcGIS Runtime- und ArcGIS for Windows Mobile-Bereitstellungen geeignet.

  • CACHE_DATASETEin Karten- oder Image-Service-Cache, der mithilfe von ArcGIS Server generiert wird. Er kann in ArcGIS Desktop und durch ArcGIS Server-Karten- oder -Image-Services verwendet werden. Dies ist die Standardeinstellung.
  • TILE_PACKAGEEine einzelne komprimierte Datei, der das Cache-Dataset als Layer hinzugefügt und konsolidiert wird, sodass es freigegeben werden kann. Es kann in ArcGIS Desktop, ArcGIS Runtime und mobilen Apps verwendet werden.
String
copy_data_from_server

Stellen Sie für diesen Parameter COPY_DATA ein, wenn dem ArcGIS Server-Konto kein Schreibzugriff auf den Zielordner gewährt werden kann und der ArcGIS Desktop- oder ArcGIS Pro-Client über den entsprechenden Schreibzugriff verfügt. Die Software exportiert die Kacheln im Server-Ausgabeverzeichnis, bevor sie in den Zielordner verschoben werden.

  • COPY_DATAKacheln werden im Server-Ausgabeverzeichnis platziert und dann in den Zielordner verschoben. Der ArcGIS Desktop- oder ArcGIS Pro-Client muss über Schreibzugriff auf den Zielordner verfügen.
  • DO_NOT_COPYKacheln werden direkt in den Zielordner exportiert. Das ArcGIS Server-Konto muss Schreibzugriff auf den Zielordner haben. Dies ist die Standardeinstellung.
Boolean
storage_format_type

Das Speicherformat des exportierten Cache.

  • COMPACT Kacheln werden in Paket- und Bundlex-Dateien gruppiert, um Platz auf dem Datenträger zu sparen und das schnellere Kopieren von Caches zu ermöglichen. Wenn der Parameter export_cache_type auf Tile package festgelegt ist, ist dies die Standardeinstellung.
  • COMPACT_V2 Kacheln werden nur in Bundle-Dateien gruppiert. Dieses Format bietet eine bessere Performance bei Netzwerkfreigaben und Cloudstore-Verzeichnissen. Wenn der Parameter export_cache_type auf Tile package festgelegt ist, lautet die Erweiterung des Kachelpakets (.tpkx). Diese wird von neueren Versionen der ArcGIS Plattform wie ArcGIS Online, ArcGIS Enterprise 10.8.1 und ArcGIS Runtime 100.5 unterstützt.
  • EXPLODEDJede Kachel wird als einzelne Datei gespeichert (vor ArcGIS Server wurden Caches immer auf diese Weise gespeichert).
String
scales
[scales,...]

Eine Liste von Maßstabsebenen, aus denen Kacheln exportiert werden.

Double
num_of_caching_service_instances
(optional)

Legt die Anzahl der Instanzen fest, die zum Aktualisieren oder Generieren der Kacheln verwendet werden. Der Wert für diesen Parameter ist auf unbegrenzt (-1) festgelegt und kann nicht geändert werden.

Long
area_of_interest
(optional)

Ein Interessenbereich, der räumlich beschränkt, wohin Kacheln aus dem Cache exportiert werden. Dieser Parameter ist hilfreich, wenn Sie unregelmäßig geformte Bereiche exportieren möchten, da das Werkzeug das Cache-Dataset mit Pixelauflösung ausschneidet.

Wenn Sie keinen Interessenbereich angeben, wird die volle Ausdehnung der Karte exportiert.

Feature Set
export_extent
(optional)

Eine rechteckige Ausdehnung, die die zu exportierenden Kacheln definiert. Standardmäßig ist die Ausdehnung auf die volle Ausdehnung des Kartenservice festgelegt, in den Sie importieren. Beachten Sie, dass Sie mit dem optionalen Parameter Interessenbereich des Werkzeugs den Import alternativ mithilfe eines Polygons durchführen können. Es wird empfohlen, bei einem Auftrag nicht für beide Parameter Werte anzugeben. Wenn Werte für beide Parameter angegeben werden, hat der Parameter Interessenbereich Vorrang vor Importausdehnung.

  • MAXOF: Die maximale Ausdehnung aller Eingaben wird verwendet.
  • MINOF: Die kleinste gemeinsame Fläche aller Eingaben wird verwendet.
  • DISPLAY: Die Ausdehnung entspricht der sichtbaren Anzeige.
  • Layer-Name: Die Ausdehnung des angegebenen Layers wird verwendet.
  • Extent-Objekt: Die Ausdehnung des angegebenen Objekts wird verwendet.
  • Durch Leerzeichen getrennte Koordinatenzeichenfolge: Die Ausdehnung der angegebenen Zeichenfolge wird verwendet. Die Koordinaten werden in der Reihenfolge X-Min, Y-Min, X-Max, Y-Max ausgedrückt.
Extent
overwrite
(optional)

Legt fest, ob die Bilder im empfangenden Cache mit den Kacheln aus dem ursprünglichen Cache zusammengeführt oder von diesen überschrieben werden.

  • OVERWRITEBeim Export werden alle Pixel im Interessenbereich ersetzt, wobei die Kacheln im Ziel-Cache effektiv mit den Kacheln aus dem ursprünglichen Cache überschrieben werden.
  • MERGEBeim Importieren der Kacheln werden transparente Pixel im ursprünglichen Cache standardmäßig ignoriert. Das Ergebnis ist ein zusammengeführtes oder überblendetes Bild im Ziel-Cache. Dies ist die Standardeinstellung.
Boolean

Abgeleitete Ausgabe

NameErklärungDatentyp
output_cache_path

Der Ordner, in den der Cache exportiert wurde.

String

Codebeispiel

ExportMapServerCache – Beispiel 1 (eigenständiges Skript)

Exportieren von Cache-Kacheln für eine Feature-Class, während das Speicherformat von EXPLODED in COMPACT geändert wird.

# 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()
ExportMapServerCache – Beispiel 2 (eigenständiges Skript)

Exportieren des Cache als TILE_PACKAGE, wenn die ArcGIS Server-Instanzen nicht auf den Zielordner zugreifen können.

# 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()

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen