マップ サービス キャッシュの作成 (Create Map Server Cache) (サーバー)

概要

マップまたはイメージ サービス キャッシュ用のタイル スキーマおよびフォルダーを作成します。このツールの実行後は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] を使用して、タイルをキャッシュに追加できます。

使用法

  • このツールは、ArcGIS Server のマップまたはイメージ サービスに対してのみ機能します。

  • このツールは、ArcGIS Enterprise のマップ レイヤーとイメージ レイヤーおよび ArcGIS Server のマップ サービスとイメージ サービスに対してのみ機能します。

  • ラスター データは、JPEG または MIXED イメージ形式を使用して公開するのが最適です。ベクター マップで JPEG または MIXED 形式を使用する場合は、高い圧縮品質値 (90 など) を使用して、ラインやテキストの不鮮明さを軽減します。ベクター データは PNG 形式を使用して公開することもできます。

  • キャッシュのイメージ形式は、キャッシュが生成された後で変更することはできません。別の形式に切り替える前に、キャッシュを最初に削除しなければなりません。

構文

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})
パラメーター説明データ タイプ
input_service

キャッシュを作成するマップまたはイメージ レイヤー。

Image Service; MapServer
service_cache_directory

キャッシュの親ディレクトリ。この ArcGIS Server キャッシュ ディレクトリは、登録済みのものでなければなりません。

String
tiling_scheme_type

タイル スキーマの定義方法を指定します。このツールで新しいタイル スキーマを定義するか、または定義済みのタイル スキーマ ファイル (*.xml) を参照することができます。定義済みスキーマは、[マップ サービス キャッシュ タイル スキーマの生成 (Generate Map Server Cache Tiling Scheme)] ツールを実行することによって生成できます。

  • NEW縮尺レベル、画像形式、格納形式その他を定義するために、このツールの他のパラメーターを使用してタイル スキーマを定義します。これがデフォルトです。
  • PREDEFINED*.xml ファイルを使用してタイル スキーマを定義します。[マップ サービス キャッシュ タイル スキーマの生成 (Generate Map Server Cache Tiling Scheme)] ツールを使用して、タイル スキーマ ファイルを生成することができます。
String
scales_type

タイルの縮尺方法を指定します。

  • STANDARD縮尺は、[縮尺レベル数] (Python では num_of_scales) パラメーターに指定された数に基づいて自動的に生成されます。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 128128 x 128 ピクセル
  • 256 x 256256 x 256 ピクセル これがデフォルトです。
  • 512 x 512512 x 512 ピクセル
  • 1024 x 10241024 x 1024 ピクセル
String
predefined_tiling_scheme
(オプション)

定義済みのタイル スキーマ ファイル (ファイル名は通常 conf.xml) へのパス。

File
tile_origin
(オプション)

ソース マップ ドキュメントの空間参照座標での、タイル スキーマの原点 (左上隅)。ソース マップ ドキュメントの範囲は、この原点の内側であることが条件となります (ただし、この領域と一致している必要はありません)。

Point
scales
[scales,...]
(オプション)

利用可能なキャッシュの縮尺レベル。これらは分数としては表されません。代わりに、500 を使用して 1:500 などの縮尺を表します。

Value Table
cache_tile_format
(オプション)

キャッシュ タイル フォーマットを指定します。

  • PNGさまざまなビット深度の PNG 形式。ビット深度は、タイルのカラー バリエーションと透過値に従って最適化されます。これがデフォルトです。
  • PNG88 ビット カラーの可逆イメージ形式で、インデックス カラー パレットとアルファ テーブルを使用します。各ピクセルには、値 (0 - 255) が格納されていて、カラー パレット内のカラー、およびアルファ テーブル内の透過表示色のルックアップに使用されます。8 ビット PNG イメージは、GIF イメージと類似しており、ほとんどの Web ブラウザーは PNG イメージで背景の透過をサポートします。
  • PNG243 チャンネルの可逆イメージ形式で、多くのカラー バリエーション (1,600 万色) をサポートし、透過表示も限定的にサポートします。各ピクセルには 3 つの 8 ビット カラー チャンネルが格納されていて、ファイル ヘッダーには透明な背景を表す単一色が格納されています。バージョン 7 より前の Internet Explorer のバージョンでは、この種類の透過表示はサポートされていません。PNG24 を使用したキャッシュは、PNG8 または JPEG を使用したものに比べはるかに容量が大きいため、クライアントの処理に費やすディスク容量も、帯域幅の所要量も多くなります。
  • PNG324 チャンネルの可逆イメージ形式で、多くのカラー バリエーション (1,600 万色) と透過表示をサポートします。各ピクセルには、8 ビット カラー チャンネル 3 つと、各ピクセルの透過表示レベルを表す 8 ビット アルファ チャンネル 1 つが格納されています。PNG32 形式では、0 〜 255 の範囲で部分的に透明なピクセルが得られるのに対し、ArcGIS Server キャッシュ生成ツールが透過表示チャンネルに書き込む値は、0 (完全に透明) または 255 (完全に不透明) に限られます。PNG32 を使用したキャッシュは、サポートされている他の形式に比べはるかに容量が大きいため、クライアントの処理に費やすディスク容量も、帯域幅の所要量も多くなります。
  • JPEG3 チャンネルの非可逆イメージ形式で、多くのカラー バリエーション (1,600 万色) をサポートしますが、透過表示はサポートしません。各ピクセルには、8 ビット カラー チャンネル 3 つが格納されています。JPEG を使用したキャッシュは、出力品質とサイズを制御します。
  • MIXED透過表示が検出される場所 (つまり、データ フレームの背景が表示される場所) ならどこにでも PNG32 形式が作成されます。残りのタイルでは、JPEG 形式が作成されます。これにより、平均ファイル サイズが小さく抑えられるとともに、他のキャッシュ上にきれいにオーバーレイすることができます。
String
tile_compression_quality
(オプション)

JPEG の圧縮品質 (1 ~ 100)。JPEG タイル フォーマットのデフォルト値は 75 で、他のフォーマットのデフォルト値は 0 です。

圧縮は JPEG 形式だけでサポートされます。高い値を選択すると、作成されるファイルのサイズは大きくなり、画像の品質は向上します。低い値を選択すると、作成されるファイルのサイズは小さくなり、画像の品質は低下します。

Long
storage_format
(オプション)

タイルの格納形式を指定します。

  • COMPACTタイルは、バンドルと呼ばれる大きなファイルにグループ化されます。この格納形式は、格納と移動性の点で効率的です。これがデフォルトです。
  • EXPLODED各タイルは、個別のファイルとして格納されます。
String

派生した出力

名前説明データ タイプ
out_service_url

出力マップ サービス URL。

String

コードのサンプル

CreateMapServerCache (マップ サービス キャッシュの作成) の例 1 (スタンドアロン スクリプト)

次の例では、STANDARD 縮尺タイプを使用して、マップ サービス キャッシュ用のタイル スキーマおよびフォルダーを作成します。このスクリプトの実行後は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] を実行して、タイルをキャッシュに追加できます。

# 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()
CreateMapServerCache (マップ サービス キャッシュの作成) の例 2 (スタンドアロン スクリプト)

次の例では、CUSTOM 縮尺を使用して、マップ サービス キャッシュ用のタイル スキーマおよびフォルダーを作成します。このスクリプトの実行後は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] を実行して、タイルをキャッシュに追加できます。

# 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()
CreateMapServerCache (マップ サービス キャッシュの作成) の例 3 (スタンドアロン スクリプト)

次の例では、PREDEFINED タイル スキーマを使用して、マップ サービス キャッシュ用のタイル スキーマおよびフォルダーを作成します。このスクリプトの実行後は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] を実行して、タイルをキャッシュに追加できます。

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

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック