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}, {ready_to_serve_format})
|
名前
|
説明
|
データ タイプ
|
|
input_service
|
キャッシュされるマップまたはイメージ レイヤー。
|
Image Service; Map Server
|
|
service_cache_directory
|
キャッシュの親ディレクトリ。 これは、登録済みの ArcGIS Server キャッシュ ディレクトリーであることが必要です。
|
String
|
|
tiling_scheme_type
|
タイル スキーマの定義方法を指定します。 新しいタイル スキーマを定義するか、定義済みタイル スキーマ ファイル (.xml) を参照できます。 定義済みスキーマは、マップ サービス キャッシュ タイル スキーマの生成 ツールの実行によって作成できます。
|
String
|
|
scales_type
|
タイルの縮尺方法を指定します。
STANDARD—縮尺は、縮尺レベル数の値に基づいて自動的に生成されます。 1:1,000,000 から 0.5 倍ずつ増減するレベルが使用されます。開始レベルとしては、ソース マップ ドキュメントの範囲に最も近いレベルが使用されます。 たとえば、ソース マップ ドキュメントの範囲が 1:121,000,000 で、定義されている縮尺レベルが 3 の場合、マップ サービスは 1:128,000,000、1:64,000,000、1:32,000,000 の縮尺レベルでキャッシュを作成します。 これがデフォルトです。
CUSTOM—キャッシュ デザイナーが縮尺を決定します。
|
String
|
|
num_of_scales
|
キャッシュ内に作成される縮尺レベルの数。 縮尺のカスタム リストを作成した場合、このパラメーターは無効です。
|
Long
|
|
dots_per_inch
|
対象となる出力デバイスの 1 インチあたりのドット数 (DPI)。 指定した DPI が出力デバイスの解像度と一致していない場合、その縮尺のマップ タイルは正しく表示されません。 デフォルト値は 96 です。
|
Long
|
|
tile_size
|
ピクセル単位でキャッシュ タイルの幅と高さを指定します。 パフォーマンスと管理容易性の最適なバランスを得るには、256 x 256 または 512 x 512 の標準幅から外れないようにしてください。
128 x 128—キャッシュ タイルの幅と高さは 128 x 128 ピクセルです。
256 x 256—キャッシュ タイルの幅と高さは 256 x 256 ピクセルです。 これがデフォルトです。
512 x 512—キャッシュ タイルの幅と高さは 512 x 512 ピクセルです。
1024 x 1024—キャッシュ タイルの幅と高さは 1024 x 1024 ピクセルです。
|
String
|
|
predefined_tiling_scheme
(オプション)
|
定義済みタイル スキーマ ファイル (ファイル名は通常 conf.xml) へのパス。
|
File
|
|
tile_origin
(オプション)
|
ソース マップ ドキュメントの空間参照座標での、タイル スキーマの原点 (左上隅)。 ソース マップ ドキュメントの範囲は、この原点の内側であることが条件となります (ただし、この領域と一致している必要はありません)。
|
Point
|
|
scales
[scales,...]
(オプション)
|
利用可能なキャッシュの縮尺レベル。 これらは分数としては表されません。 代わりに、500 を使用して 1:500 などの目盛を表します。
|
Value Table
|
|
cache_tile_format
(オプション)
|
使用するキャッシュ タイル フォーマットを指定します。
PNG—さまざまなビット深度の PNG 形式が使用されます。 ビット深度は、タイルのカラー バリエーションと透過値に従って最適化されます。 これがデフォルトです。
PNG8—インデックス カラー パレットとアルファ テーブルを使用する 8 ビット カラーの可逆画像形式が使用されます。 各ピクセルには、値 (0 - 255) が格納されていて、カラー パレット内のカラー、およびアルファ テーブル内の透過表示色のルックアップに使用されます。 8 ビット PNG 画像は、GIF 画像と類似しており、ほとんどの Web ブラウザーは PNG 画像で背景の透過をサポートします。
PNG24—大量のカラー バリエーション (1600 万色) をサポートし、透過表示も限定的にサポートする、3 チャンネルの可逆画像形式が使用されます。 各ピクセルには 3 つの 8 ビット カラー チャンネルが格納されていて、ファイル ヘッダーには透明な背景を表す単一色が格納されています。 バージョン 7 より前の Microsoft Internet Explorer のバージョンでは、この種類の透過表示はサポートされていません。 PNG24 を使用したキャッシュは、PNG8 または JPEG を使用したものに比べはるかに容量が大きいため、クライアントの処理に費やすディスク容量も、帯域幅の所要量も多くなります。
PNG32—多くのカラー バリエーション (1,600 万色) と透過表示をサポートする 4 チャンネルの可逆画像形式が使用されます。 各ピクセルには、8 ビット カラー チャンネル 3 つと、各ピクセルの透過表示レベルを表す 8 ビット アルファ チャンネル 1 つが格納されています。 PNG32 形式では、0 〜 255 の範囲で部分的に透明なピクセルが可能ですが、ArcGIS Server キャッシュ生成ツールが透過表示チャネルに書き込む値は、0 (完全に透明) または 255 (完全に不透明) に限られます。 PNG32 を使用したキャッシュは、サポートされている他の形式に比べはるかに容量が大きいため、クライアントの処理に費やすディスク容量も、帯域幅の所要量も多くなります。
JPEG—多くのカラー バリエーション (1,600 万色) をサポートするが、透過表示はサポートしない、3 チャンネルの非可逆画像形式が使用されます。 各ピクセルには、8 ビット カラー チャンネル 3 つが格納されています。 JPEG を使用したキャッシュは、出力品質とサイズを制御します。
MIXED—透過表示が検出される場所 (つまり、データ フレームの背景が表示される場所) ならどこにでも PNG32 形式が作成されます。 残りのタイルでは、JPEG 形式が作成されます。 これにより、平均ファイル サイズが小さく抑えられるとともに、他のキャッシュ上にきれいにオーバーレイすることができます。
|
String
|
|
tile_compression_quality
(オプション)
|
使用される JPEG の圧縮品質 (1 ~ 100)。 JPEG タイル フォーマットのデフォルト値は 75 で、他のフォーマットのデフォルト値は 0 です。
圧縮は JPEG 形式だけでサポートされます。 高い値を選択すると、作成されるファイルのサイズは大きくなり、画像の品質は向上します。 低い値を選択すると、作成されるファイルのサイズは小さくなり、画像の品質は低下します。
|
Long
|
|
storage_format
(オプション)
|
タイルに使用する格納形式を指定します。
レガシー:
このパラメーターは非推奨になりました。 指定されている格納形式にかかわらず、Compact V2 格納形式が必ず使用されます。
|
String
|
|
ready_to_serve_format
(オプション)
|
キャッシュのコンテンツが、オープンなタイル パッケージ仕様を使用して生成されるかどうか、およびキャッシュ スキーマのファイル形式を指定します。
READY_TO_SERVE_FORMAT—キャッシュ コンテンツはタイル パッケージのオープン仕様 (https://github.com/Esri/tile-package-spec) を使用して生成されます。 タイル パッケージをオフライン ワークフロー用のタイル パッケージとして zip アーカイブにパッケージ化できます。 キャッシュの形式は Compact V2 になり、キャッシュ スキーマは JSON 形式で格納されます。
NON_READY_TO_SERVE_FORMAT—キャッシュ コンテンツは XML 形式で格納されているスキーマを使用して生成されます。 以前のバージョンの ArcGIS Enterprise にキャッシュをコピーするには、このオプションを使用します。 これがデフォルトです。
|
Boolean
|
派生した出力
|
名前
|
説明
|
データ タイプ
|
|
out_service_url
|
出力マップ サービス URL。
|
String
|
コードのサンプル
CreateMapServerCache の例 1 (スタンドアロン スクリプト)
次の例では、STANDARD 縮尺タイプを使用して、マップ サービス キャッシュ用のタイル スキーマおよび準備フォルダーを作成します。 このスクリプトを実行してから、マップ サービス キャッシュのタイルを管理ツールを実行して、キャッシュにタイルを追加します。
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using standard tiling schema for weblayers published to ArcGIS Enterprise and ArcGIS Online.
# and for map and image services on a stand alone ArcGIS Server
# Requirements: os, sys, time & traceback modules
# Any line that begins with a pound sign is a comment and will not be run
# 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 sys
import time
import datetime
# Set environment settings
env.workspace = "C:/data"
# Sign in to portal
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)
print (myPortalServiceURL)
# Stand alone ArcGIS Server
##target_server_connection = r"C:\share\python3\arcgis on MyServer"
##serviceName= "States"
##serviceType= "MapServer"
##myServerServiceURL= target_server_connection + "/" + serviceName + "." + serviceType
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 = ""
ready_to_serve_format="READY_TO_SERVE_FORMAT"
#variables for reporting
currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = 'E:/data/report_%s.txt' % arg1
# print results of the script to a report
report = open(file,'w')
try:
## starttime = time.clock()
result = arcpy.server.CreateMapServerCache(myPortalServiceURL,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat,
ready_to_serve_format)
## 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" + \
## myServerServiceURL + " in " + str(elapsedtime) + " sec \n on " + arg2)
print("Created cache schema with 4 scales & default properties for" + \
myServerServiceURL + " in " + 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(e.message)
report.write(str(e))
print("Executed creation of Map server Cache schema ")
report.close()
CreateMapServerCache の例 2 (スタンドアロン スクリプト)
次の例では、CUSTOM 縮尺タイプを使用して、マップ サービス キャッシュ用のタイル スキーマおよび準備フォルダーを作成します。 このスクリプトを実行してから、マップ サービス キャッシュのタイルを管理ツールを実行して、キャッシュにタイルを追加します。
# 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 run
# 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 sys
import time
import datetime
# Set environment settings
env.workspace = "C:/data"
# List of input variables for map service properties
# Sign in to portal
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)
print (myPortalServiceURL)
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:
result = arcpy.server.CreateMapServerCache(myPortalServiceURL,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
#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()
CreateMapServerCache の例 3 (スタンドアロン スクリプト)
次の例では、PREDEFINED タイル スキーマを使用して、マップ サービス キャッシュ用のタイル スキーマおよび準備フォルダーを作成します。 このスクリプトを実行してから、マップ サービス キャッシュのタイルを管理ツールを実行して、キャッシュにタイルを追加します。
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using existing predefined schema in a ready to serve format
# Requirements: os, sys, time & traceback modules
# Any line that begins with a pound sign is a comment and will not be run
# 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 sys
import time
import datetime
# Set environment settings
env.workspace = "E:/data"
# Sign in to portal
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)
print (myPortalServiceURL)
# Stand alone ArcGIS Server
##target_server_connection = r"C:\share\python3\arcgis on MyServer"
##serviceName= "States"
##serviceType= "MapServer"
##myServerServiceURL= target_server_connection + "/" + serviceName + "." + serviceType
# List of input variables for map service properties
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"
ready_to_serve_format="READY_TO_SERVE_FORMAT"
#variables for reporting
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:
result = arcpy.server.CreateMapServerCache(myPortalServiceURL,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat,
ready_to_serve_format)
#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 " + 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()