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}, {ready_to_serve_format})
|
名前
|
説明
|
データ タイプ
|
|
input_service
|
エクスポートするキャッシュ タイルを含むマップ イメージ レイヤー。
|
Image Service; Map Server
|
|
target_cache_path
|
キャッシュのエクスポート先のフォルダー。 このフォルダーは、登録済みサーバー キャッシュ ディレクトリである必要はありません。 ArcGIS Server アカウントには、ターゲットのキャッシュ フォルダーに対する書き込みアクセス権が必要です。 サーバー アカウントにターゲットのキャッシュ フォルダーに対する書き込みアクセス権を付与できない場合、ArcGIS Desktop または ArcGIS Pro のクライアントにこのフォルダーへの書き込みアクセス権があるなら、データをサーバーからコピー パラメーターをオンにします。
|
Folder
|
|
export_cache_type
|
エクスポートするキャッシュのタイプを指定します。 ArcGIS Maps SDKs for Native Apps で使用するには、タイル パッケージが適しています。
CACHE_DATASET—ArcGIS Server を使用して生成されたマップまたはイメージ サービス キャッシュがエクスポートされます。 これは ArcGIS Desktop と、ArcGIS Server のマップまたはイメージ サービスで使用できます。 このオプションを使用すると、すぐに利用できる形式でコンテンツを生成できます。 これがデフォルトです。
TILE_PACKAGE—キャッシュ データセットがレイヤーとして追加され、共有できるように統合された単一の圧縮ファイルがエクスポートされます。 これは ArcGIS Pro および ArcGIS Maps SDKs for Native Apps で使用できます。
|
String
|
|
copy_data_from_server
|
タイルをエクスポート先のフォルダーに移動する方法を指定します。
ArcGIS Server アカウントにターゲット フォルダーに対する書き込みアクセス権を付与できない場合、ArcGIS Desktop または ArcGIS Pro のクライアントにこのフォルダーへの書き込みアクセス権があるなら、このパラメーターを COPY_DATA に設定します。 ソフトウェアは、タイルをターゲット フォルダーに移動する前に、サーバーの出力ディレクトリーにエクスポートします。
COPY_DATA—タイルは最初にサーバーの出力ディレクトリに配置された後、エクスポート先のフォルダーに移動されます。 ArcGIS Desktop または ArcGIS Pro のクライアントには、ターゲット フォルダーに対する書き込みアクセス権が必要です。
DO_NOT_COPY—タイルは直接エクスポート先のフォルダーにエクスポートされます。 ArcGIS Server アカウントには、ターゲット フォルダーに対する書き込みアクセス権が必要です。 これがデフォルトです。
|
Boolean
|
|
storage_format_type
|
エクスポートされたキャッシュに使用される格納形式を指定します。
COMPACT—タイルは、ディスク領域の節約とキャッシュのコピーの高速化を可能にするために、bundle および bundlex ファイルにグループ化されます。 export_cache_type パラメーターが TILE_PACKAGE に設定されている場合は、これがデフォルトです。
COMPACT_V2—タイルはバンドル ファイルのみにグループ化されます。 この形式は、ネットワーク共有とクラウド ストア ディレクトリのパフォーマンスを向上させます。 export_cache_type パラメーターが TILE_PACKAGE に設定されている場合、タイル パッケージの拡張子は .tpkx になります。これは、ArcGIS Online、ArcGIS Enterprise 12.0、ArcGIS Maps SDKs for Native Apps 200.0 以降、ArcGIS Runtime 100.5 ~ 100.15 などの新しいバージョンの ArcGIS 製品でサポートされています。
EXPLODED—各タイルは、個別のファイルとして格納されます。
|
String
|
|
scales
[scales,...]
|
タイルのエクスポート先の縮尺レベルのリスト。
|
Double
|
|
num_of_caching_service_instances
(オプション)
|
タイルの更新または生成に使用するインスタンスの数。 このパラメーターの値は無制限 (-1) に設定され、変更できません。
|
Long
|
|
area_of_interest
(オプション)
|
キャッシュからタイルをエクスポートする範囲を空間的に制限する対象エリア。 このパラメーターは不規則な形状のエリアをエクスポートする場合に有効です。ツールはキャッシュ データセットをピクセル解像度でクリップします。
対象エリアを指定しない場合、マップ全体がエクスポートされます。
|
Feature Set
|
|
export_extent
(オプション)
|
エクスポートするタイルを定義する四角形の範囲。 デフォルトでは、表示範囲は、インポートするマップ サービスの全体表示に設定されます。 オプションの 対象エリア パラメーターを使用すると、代わりにポリゴンを使用してインポートを行えます。 両方のパラメーターを同時に指定しないようにすることをお勧めします。 両方のパラメーターに値を指定した場合は、このパラメーターよりも 対象エリア パラメーターが優先されます。
MAXOF - すべての入力データの最大範囲が使用されます。
MINOF - すべての入力データに共通する最小領域が使用されます。
DISPLAY - 範囲は、表示範囲と同じになります。
レイヤー名 - 指定されたレイヤーの範囲が使用されます。
Extent オブジェクト - 指定されたオブジェクトの範囲が使用されます。
スぺース区切りの座標文字列 - 指定された文字列の範囲が使用されます。 座標値は、x-min、y-min、x-max、y-max という順序で表記されます。
|
Extent
|
|
overwrite
(オプション)
|
エクスポート先のキャッシュ内にある画像を、作成されたキャッシュのタイルとマージするか、タイルで上書きするかを指定します。
|
Boolean
|
|
ready_to_serve_format
(オプション)
|
キャッシュのコンテンツが、オープンなタイル パッケージ仕様を使用して生成されるかどうか、およびキャッシュ スキーマのファイル形式を指定します。 このパラメーターは、export_cache_type パラメーター値が CACHE_DATASET である場合にのみ使用できます。
READY_TO_SERVE_FORMAT—キャッシュ コンテンツは、オープンなタイル パッケージ仕様 (https://github.com/Esri/tile-package-spec) を使用して生成されます。 タイル パッケージをオフライン ワークフロー用のタイル パッケージとして zip アーカイブにパッケージ化できます。 キャッシュの形式は Compact V2 になり、キャッシュ スキーマは JSON 形式で格納されます。
NON_READY_TO_SERVE_FORMAT—キャッシュ コンテンツは XML 形式で格納されているスキーマを使用して生成されます。 以前のバージョンの ArcGIS Enterprise にキャッシュをコピーするには、このオプションを使用します。 これがデフォルトです。
|
Boolean
|
派生した出力
|
名前
|
説明
|
データ タイプ
|
|
output_cache_path
|
キャッシュのエクスポート先のフォルダー。
|
String
|
コードのサンプル
ExportMapServerCache の例 1 (スタンドアロン スクリプト)
格納形式を EXPLODED から COMPACT に変更して、フィーチャクラスのキャッシュ タイルをエクスポートします。
# Name: ExportMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to export
# cache from a map layer in ArcGIS Enterprise portal,
# as CACHE_DATASET in COMPACT_V2 storage format and MERGE tiles
# using an AREA_OF_INTEREST to TARGET_CACHE_PATH
# which is accessible to server instances
# Example: This sample script updates map cache tiles.
import arcpy
from arcpy import env
import sys
import time
import datetime
# Set environment settings
env.workspace = "C:/data"
# Sign in to ArcGIS Enterprise
myPortal= "https://MyPortal.domain.com/portalwebadaptor"
arcpy.SignInToPortal(myPortal, "siteadminValue", "siteadminPassword")
myServer="https://Myserver.domain.com/serverwebadaptor"
serviceName= "SampleWorldCities"
serviceType= "MapServer"
myPortalServiceURL = (myServer + "/" + "rest/services" +"/" + serviceName + "/"
+ serviceType)
# Stand alone ArcGIS Server
##target_server_connection = r"C:\share\python3\arcgis on MyServer.ags"
##serviceName= "MyServiceName"
##serviceType= ".MapServer"
##myPortalServiceURL = (target_server_connection + "\\" + serviceName + serviceType)
print (myPortalServiceURL)
#variables for reporting
currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = r'C:\test\report_%s.txt'% arg1
# List of input variables for map or image service
targetCachePath = "C:/data/temp"
exportCacheType = "CACHE_DATASET"
copyDataFromServer = "DO_NOT_COPY"
storageFormat = "COMPACT_V2"
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
areaOfInterest = "C:/data/101/Portland/Metro.shp"
exportExtents = ""
overwriteTiles = "MERGE"
ready_to_serve_format = "NON_READY_TO_SERVE_FORMAT"
# Print results of the script to a report
report = open(file,'w')
try:
result = arcpy.server.ExportMapServerCache(myPortalServiceURL, targetCachePath,
exportCacheType,
copyDataFromServer,
storageFormat, scales,
numOfCachingServiceInstances,
areaOfInterest, exportExtents,
overwriteTiles,
ready_to_serve_format)
while result.status < 4:
time.sleep(0.2)
resultValue = result.getMessages()
report.write ("completed " + str(resultValue))
print ("Exported cache successfully for " + serviceName )
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno)
report.write(str(e))
report.close()
ExportMapServerCache の例 2 (スタンドアロン スクリプト)
ArcGIS Server インスタンスからエクスポート先のフォルダーにアクセスできないとき、TILE_PACKAGE を使用してキャッシュをエクスポートします。
# Name: ExportMapServerCacheTiles2.py
# Description: The following stand-alone script demonstrates how to export cache
# on a map service on standalone server 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
# Example: This sample script updates map cache tiles.
import arcpy
from arcpy import env
import sys
import time
import datetime
# Set environment settings
env.workspace = "C:/data"
### Sign in to ArcGIS Enterprise
##myPortal= "https://MyPortal.domain.com/portalwebadaptor"
##arcpy.SignInToPortal(myPortal, "siteadminValue", "siteadminPassword")
##myServer="https://Myserver.domain.com/serverwebadaptor"
##serviceName= "SampleWorldCities"
##serviceType= "MapServer"
##myPortalServiceURL = (myServer + "/" + "rest/services" +"/" + serviceName + "/"
## + serviceType)
# Stand alone ArcGIS Server
target_server_connection = r"C:\share\python3\arcgis on MyServer.ags"
serviceName= "MyServiceName"
serviceType= ".MapServer"
myPortalServiceURL = (target_server_connection + "\\" + serviceName + serviceType)
print (myPortalServiceURL)
#variables for reporting
currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = r'C:\test\report_%s.txt'% arg1
# List of input variables for map or image service
targetCachePath = "C:/temp/usa"
exportCacheType = "TILE_PACKAGE"
copyDataFromServer = "COPY_DATA"
storageFormat = "COMPACT_V2"
scaleValues = [500000,250000,125000,64000]
numOfCachingServiceInstances = "2"
exportExtents = ""
areaOfInterest = ""
overwriteTiles = "MERGE"
ready_to_serve_format = "NON_READY_TO_SERVE_FORMAT"
# Print results of the script to a report
report = open(file,'w')
try:
result = arcpy.server.ExportMapServerCache(inputService, targetCachePath,
exportCacheType,
copyDataFromServer,
storageFormat, scales,
numOfCachingServiceInstances,
areaOfInterest,
exportExtents, overwriteTiles,
ready_to_serve_format)
while result.status < 4:
time.sleep(0.2)
resultValue = result.getMessages()
report.write ("completed " + str(resultValue))
print ("Exported cache successfully for " + serviceName )
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno)
report.write(str(e))
report.close()