イメージ サービス キャッシュとは
イメージ サービス キャッシュにより、クライアント アプリケーションでのイメージ サービスのパフォーマンスが向上します。イメージ サービスのキャッシュを作成すると、サーバ側でタイルが異なるレベルで事前に生成されるため、ArcGIS for Server にリクエストがあるたびにモザイク データセットやラスタ データセットへの入力を処理するよりも迅速にタイルを表示できます。イメージ サービス キャッシュで重要な点は、リアルタイムで処理された画像を表示するのではないということです。画像を事前に処理してキャッシュされたタイルを作成し、このキャッシュされたタイルを表示します。
イメージ サービスをキャッシュすると、用途に応じてアクセスできる 2 つの役割を持つイメージ サービスになります。1 つの用途は、タイル化されたサービスとして、画像に最も高速にアクセスすることです。もう 1 つの用途は、クエリやダウンロード、個々のアイテムへのアクセス、処理や解析での使用などのために、データにアクセスできるようにすることです。
すべてのイメージ キャッシュは 8 ビットのデータとして保存されます。
イメージ サービスをキャッシュする理由
イメージ サービスをキャッシュする主な利点は、パフォーマンスの向上です。キャッシュされたイメージ サービスは、ArcGIS Server で画像を動的に生成する必要がないため、非常に高速に表示することができます。イメージ サービス キャッシュの具体的な利点には次のようなものがあります。
- ベース画像に対するパフォーマンスの向上 - イメージ サービスがベース画像(つまり、マップの背景)として使用されていて、モザイク手法の変更やクエリの実行のようにユーザがイメージ サービスのプロパティを変更することが想定されていない場合は、キャッシュをお勧めします。
- オーバービュー生成の省略 - ベース画像として使用されるモザイク データセットを公開する場合は、キャッシュを利用してモザイク データセットのオーバービューの作成を省略することで、時間を節約できます。事前処理してタイル化したオルソ写真のコレクションや DEM の陰影図を提供する場合に、この方法を利用できます。
- 描画時間のかかる形式のパフォーマンス向上 - パフォーマンスの低い形式や圧縮率の高い形式を公開する場合は、キャッシュの作成をお勧めします。関数チェーンが複雑であるためにモザイク データセットが遅い場合は、キャッシュによって画像へのアクセスが高速になります。
キャッシュの作成方法
キャッシュは自動的に開始されるわけではありません。まず、モザイク データセットまたはラスタ データセットをイメージ サービスとして共有する必要があります。次に、キャッシュ プロパティをいくつか設定します。これらの作業の後、キャッシュの作成を開始できます。
マップ サービスのキャッシュと同様に、イメージ サービスをキャッシュすると、事前定義された複数の縮尺レベルまたはピクセル サイズで画像タイルのコレクションが生成されます。これにより、ユーザは迅速に拡大と縮小ができるようになりますが、これは縮尺が一致した場合だけです。また、イメージ サービス キャッシュはデフォルトの RGB バンドの組み合わせとモザイク手法を使って作成されます。
タイル スキーマ
選択した縮尺とキャッシュ用に設定したプロパティにより、タイル スキーマが構成されます。タイル スキーマは、統合する可能性がある他のレイヤと一致する必要があります。たとえば、ArcGIS Online、Google マップ、Bing Maps といったよく知られたタイル スキーマを使用して、キャッシュにこれらのオンライン マッピング サービスを簡単にオーバーレイする方法を選択することも、独自の Web アプリケーション内部で一致する独自のタイル スキーマを作成することもできます。キャッシュはそれぞれタイル スキーマ ファイルを持つため、新しいキャッシュを作成するときにタイル スキーマ ファイルをインポートすると、すべてのキャッシュが同じタイル サイズと縮尺を使用するようになります。
使用したタイル スキーマが、アプリケーションの他のレイヤで使用されているスキーマと一致しない場合は、キャッシュしたレイヤが表示されません。これは、ArcMap と異なり、多くの Web クライアントはデータをリサンプリングして別のレベルで表示することができないためです。
独自のタイル スキーマを作成する場合は、モザイク データセットのオーバービューやラスタ データセットのピラミッドに一致する縮尺またはピクセル サイズの間隔を選択することをお勧めします。これにより、作成されるキャッシュの間隔と同じであるか、それに近いオーバービューまたはピラミッドからキャッシュを作成できた場合に、キャッシュの品質が向上します。それ以外の場合は、キャッシュされるタイルが他のキャッシュされたタイルから作成される可能性があり、画像品質が低下する恐れがあります。縮尺ごとにソース データを ArcMap でプレビューして、画像が適切であることを確認してから、その縮尺をタイル スキーマで使用するのもよい方法です。
キャッシュ用の [高度な設定] ページの [最大ソース セル サイズ] の値を入力して、キャッシュのベース セル サイズを制御することもできます。これを使用して、たとえば、オーバービューまたはピラミッドが停止したキャッシュの構築を開始できます。
キャッシュ タイル
キャッシュ タイルは JPEG または PNG 形式で処理および保存できるため、サーバはリクエストがあるたびにこれらの画像を提供することができます。
キャッシュはサーバ キャッシュ ディレクトリに格納されます。ArcGIS for Server をインストールしたときに、サーバ キャッシュ ディレクトリがローカル フォルダに作成されます。GIS サーバをサイトに追加する場合は、サーバ キャッシュ ディレクトリを共有し、サイト内の他のコンピュータからアクセスできるようにする必要があります。
パフォーマンス上の利点はありますが、キャッシュにはいくつかのオーバーヘッドがあります。キャッシュ タイルを作成する時間やサーバ リソース、さらにキャッシュ タイルを保存するハードウェアが必要です。たとえば、モザイク データセットのようにソース データが編集される場合は、キャッシュの更新が必要になることもあります。アプリケーションで表示する画像が大きな縮尺で広範な領域にわたる場合は、キャッシュを作成して管理するために必要な時間とストレージがパフォーマンス上の利点を上回るかどうかを確認することをお勧めします。
イメージ サービス キャッシュを作成する手順の詳細オンデマンド キャッシュ
オンデマンド キャッシュを使用すると、タイル スキーマを設定してイメージ サービスを公開しても、キャッシュの作成はユーザがサービスにアクセスするときとアクセスした場所のみにすることができます。キャッシュされていないエリアに最初にアクセスしたユーザは、該当する部分のタイルがサーバによって描画されるまで待つ必要があります。これらのタイルはサービスのキャッシュ フォルダに追加され、サーバ管理者によって更新または削除されるまでサーバ上に残ります。したがって、後からそのエリアにアクセスしたユーザは、タイルが作成されるのを待たずに済みます。
オンデマンド キャッシュをうまく利用すれば、時間とディスク容量を節約することができます。多くのイメージ サービスには、特に縮尺が大きい(拡大表示されている)場合に、ユーザにとって必要のない、あるいは興味のないエリアが含まれています。オンデマンド キャッシュは、こうした必要のないタイルを作成して格納する作業を不要にすると同時に、ユーザに必要なエリアのみを表示できるオプションを提供します。
オンデマンド キャッシュ作成の推奨事項の多くは、マップ サービスとイメージ サービスの両方に適用されます。これらの詳細については、「オンデマンドでのマップ キャッシュ」をご参照ください。
モザイク データセットを使用して作成されたイメージ サービスについて:オンデマンド キャッシュの作成、または 1 レベルのキャッシュのみの作成では、キャッシュを作成できることを確認する必要があります。作成できない場合、キャッシュは空白になります。オンデマンド キャッシュを作成する場合は、各キャッシュ レベルで画像が表示されることを確認してください。表示されない場合は、モザイク データセットのオーバービューを構築するか、画像表示に影響を与えると思われる他の設定を変更してください。[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ツールを使用するときは、ランダムな縮尺を構築または再構築しないでください。すべての縮尺を構築するか、以前に大きな縮尺で構築されている場合は小さな縮尺のみを構築してください。
イメージ サービスをキャッシュする必要性の判断
イメージ サービス キャッシュは、1 バンドまたは 3 バンドで特定のモザイク手法を使用した、ある時点でのイメージ サービスのスナップショットを表します。そのため、キャッシュが最も効果的なのは、デジタル オルソ写真地図のコレクションや陰影起伏標高イメージ サービスのような頻繁に変更されないイメージ サービスです。
データが変化する可能性が高い場合(頻繁に更新されるなど)でも、キャッシュ ツールを使用して、キャッシュを定期的に更新することができます。また、これらの更新を自動的に行うようスケジュールすることもできます。
イメージ サービスのソース データを表示する必要があり、時間の遅延を容認できない場合は、オンデマンド キャッシュの使用を検討することをお勧めします。
許容時間内での更新が変更に追いつかない場合、あるいは異なるイメージ プロパティでイメージ サービスを頻繁に変更する必要がある場合、イメージ サービスはキャッシュに適していません。
通常、ラスタ データが画面に追加されると、ArcMap はラスタ データにストレッチを適用します。このため、イメージ サービスの外観が Web アプリケーションと ArcMap で異なる場合があります。外観を同じにするために、ArcMap で適用されたストレッチをエクスポートし、公開およびキャッシュの前にイメージ サービスに追加できます。
ArcMap でストレッチをエクスポートする詳細については、「レイヤのシンボルからのラスタ関数テンプレートの保存」をご参照ください。
ラスタ関数テンプレート(*.rft.xml)をイメージ サービスに適用する詳細については、「リアルタイム処理を制御するパラメータ」をご参照ください。
イメージ サービス キャッシュの更新方法
イメージ サービス キャッシュは、マップ サービス キャッシュの場合と同じ方法で管理されます。
モザイク データセットのアイテムがモザイク データセットから作成したイメージ サービスに対して更新されると、[ダーティ エリアの計算(Compute Dirty Area)] ツールが実行され、変更されたエリアを特定するフィーチャクラスが作成されます。このフィーチャクラスを使用して、影響を受けたキャッシュ タイルを再構築することができます。
キャッシュを更新するためのツールの詳細キャッシュされたイメージ サービスとキャッシュされていないイメージ サービスへのアクセス
ArcMap でキャッシュされたイメージ サービスを表示する場合、イメージ サービスの機能は制限されます。たとえば、モザイク手法や送信時の圧縮手法は変更できません。ただし、シンボルや拡張の変更や、ピクセルの個別属性表示の実行、データの検索、ソース データのダウンロードなどの処理は実行できます。
イメージ サービスを動的に処理して、モザイク手法などの機能を使用する必要がある場合は、レイヤのモードを変更できます。モードを変更するには、イメージ サービスのレイヤを右クリックして、[キャッシュ ビュー モードを有効化] をオフにします。イメージ サービスをキャッシュ サービスとして使用するには、このオプションをオンに戻します。
Web アプリケーション内のキャッシュされたイメージ サービスにアクセスする(Flex を使うなど)には、ArcGISTiledMapServiceLayer クラスを使用します。ダイナミック イメージ サービスとしてアクセスするには ArcGISImageServiceLayer クラスを使用します。OGC(Open Geospatial Consortium, Inc.)の WMS(Web Map Service)プロトコルを使用して、キャッシュされているイメージ サービスにアクセスすることもできます。
イメージ サービスの REST エンドポイントでは、ダイナミック イメージ サービスを提供する ExportImage と、キャッシュされたイメージ サービスへのアクセスを提供する GetTile の両方がサポートされます。