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

サマリー

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

使用法

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

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

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

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

パラメーター

ラベル説明データ タイプ
入力サービス

キャッシュを作成するマップまたはイメージ レイヤー。 マップまたはイメージ レイヤーを [カタログ] ウィンドウからドラッグして、このパラメーターを設定できます。

Image Service; Map Server
サービス キャッシュ ディレクトリ

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

String
タイル スキーマ

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

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

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

  • 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 の縮尺レベルでキャッシュを作成します。 これがデフォルトです。
  • カスタムキャッシュ デザイナーが縮尺を決定します。
String
縮尺レベル数

キャッシュ内に作成する縮尺レベルの数。 縮尺のカスタム リストを作成した場合、このオプションは無効です。

Long
解像度 (DPI または PPI)

対象となる出力デバイスの 1 インチあたりのドット数 (DPI)。 選択した DPI が出力デバイスの解像度と一致していない場合、その縮尺のマップ タイルは正しく表示されません。 デフォルト値は 96 です。

Long
タイル サイズ (ピクセル)

ピクセル単位でキャッシュ タイルの幅と高さを指定します。 パフォーマンスと管理容易性の最適なバランスを得るには、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
定義済みタイル スキーマ
(オプション)

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

File
タイルの原点 (マップ単位)
(オプション)

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

Point
縮尺
(オプション)

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

Value Table
キャッシュ タイル フォーマット
(オプション)

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

  • 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 を使用したキャッシュは、出力品質とサイズを制御します。
  • 混合透過表示が検出される場所 (つまり、データ フレームの背景が表示される場所) ならどこにでも PNG32 形式が作成されます。 残りのタイルでは、JPEG 形式が作成されます。 これにより、平均ファイル サイズが小さく抑えられるとともに、他のキャッシュ上にきれいにオーバーレイすることができます。
String
タイル圧縮品質
(オプション)

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

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

Long
格納形式
(オプション)

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

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

派生した出力

ラベル説明データ タイプ
出力マップ サービス URL

出力マップ サービス URL。

String

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})
名前説明データ タイプ
input_service

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

Image Service; Map Server
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.server.CreateMapServerCache(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.server.CreateMapServerCache(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.server.CreateMapServerCache(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: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック