Esri グリッド形式
グリッドは、Esri のネイティブ ラスタ データ格納形式です。グリッドには、2 つのタイプ整数および浮動小数点があります。整数グリッドを使用して不連続データを表し、浮動小数点を使用して連続データを表します。
整数グリッドの属性は、値属性テーブル(VAT)に格納されます。VAT には、グリッド内の 1 つのセル値に対して1つのレコードを持ちます。レコードは、1 つの固有な値(VALUE :特定のクラスのセルまたはセルのグループを表す整数)と、その値を持つセルの個数(COUNT)の情報を保持します。たとえば、森林を表す 1 の値を持つセルが 50 個ある場合、VAT は 50 個のセルごとに VALUE = 1 と COUNT = 50 を示します。
浮動小数点グリッドでは、セル値として所定の範囲内の任意の値を想定できるため、VAT はありません。このタイプのグリッドでは、セル値は、離散的なカテゴリにきちんと収めることができません。セル値自体も、その位置を表す属性です。たとえば、海面からの標高データをメートル単位で表すグリッドでは、10.1662 の値を持つセルは、海面から 10 メートルほど上の位置を示します。
グリッド値として格納できるデータ値の範囲は次のとおりです。
- 浮動小数点グリッドは、-3.4 x 1038 ~ 3.4 x 1038 の値を格納できます。
- 整数グリッドは、-2147483648 ~ 2147483647(-231 ~ 231-1)の値を格納できます。
整数グリッドの場合、この情報は VALUE アイテムにのみ適用されます。整数グリッドでは、VAT に他の INFO アイテムが追加されていることがありますが、このアイテムの値の範囲はアイテム定義に依存します。
グリッドの座標系は、他の地理データの座標系と同じです。行と列は、座標系の X 軸と Y 軸に平行です。グリッド内の各セルのサイズは他のセルと同じなので、任意のセルの位置とそれによりカバーされる範囲はその行と列によって簡単に特定されます。このため、グリッドの座標系は、セルのサイズ、行と列の数、および左上隅の XY 座標によって定義されます。グリッドには、そのグリッドに関連付けられた座標系などの追加情報もあります。
ほとんどの形式と同様、グリッド名では、スペースおよびその他の特殊文字を使用できません。マルチバンド グリッドのファイル名は最長 9 文字、シングルバンド ラスタ データセットのファイル名は最長 13 文字です。
グリッド データの構造
グリッドは、タイル化されたラスタ データ構造を持っています。そのデータ ストレージの基本単位は、いくつかのセルで構成される四角形のブロックです。ブロックは、タイルと呼ばれる可変長のファイル構造で、圧縮形式でディスクに格納されます。各ブロックは、1 つの可変長レコードとして格納されます。
グリッドのタイルのサイズは、グリッドの作成時の行と列の数に基づきます。タイル サイズの上限は、アプリケーションによって非常に大きなサイズに設定されます(現時点では、4,000,000 x 4,000,000 セルに設定されています)。このため、GIS アプリケーションに使用されるほとんどのグリッドは、自動的に単一のタイルに格納されます。グリッドの作成時のサイズがタイル サイズの上限を超える場合、グリッドの空間データは複数のタイルに自動的に分割されます。
グリッドのブロック ストレージ構成は、大きなラスタ データセットへの順次的およびランダムな空間アクセスを両方サポートします。ブロック構造によりグリッドの結合解析が制限されることはありません。また、結合解析のために、さまざまなグリッド内のタイルやブロックがマップ空間で一致する必要はありません。グリッドのタイルおよびブロック構造はユーザからはまったく見えず、ユーザは常にグリッドを均一な正方形のセルのシームレス ラスタであるかのように作成し、使用します。
グリッドは、ブロック レベルで適用できるランレングス ラスタ圧縮方式を使用します。ブロックごとに評価され、ブロックに使用される深度(各セルのビット数)と、より効果的なストレージ手法(セル単位またはランレングス圧縮)が判断されます。ブロックは、よりディスク スペースを消費しない形式で格納されます。この適応型の圧縮方式は、均質なカテゴリ データと不均質な連続データの両方を効果的に表すことができ、加えて両方のタイプのデータを使用した結合解析をサポートする点で、最適な選択肢です。データの再分類など、単一レイヤでのセル演算では、データのラン(同じ値を持つピクセルの連なり)が圧縮解除されずに直接処理されます。圧縮された入力レイヤに対するのマルチレイヤでのセル演算では、複数のレイヤからのラン同士を重ね合わせ、重なったランを処理します。圧縮データと非圧縮データが混在する単一レイヤの近傍演算およびマルチレイヤのセル演算では、ランをセルに展開し、従来のセルごとの処理を透過的に実行します。
グリッドのタイルブロック構造も、グリッド内の空間データにアクセスするアプリケーション プログラムを透過します。グリッドを操作するプログラムは、マップ座標で定義された四角形のウィンドウを設定することにより、空間データにアクセスします。
グリッド データのストレージ
グリッドは、ArcInfo ワークスペースに格納されます。グリッドは、カバレッジと同様に、グリッドに関する特定の情報が含まれた関連テーブルおよびファイルからなる、個別のディレクトリとして格納されます。整数グリッド ディレクトリ(ArcInfo Workstation で作成されたもの)に含まれるテーブルおよびファイルは、グリッドの範囲を格納する BND テーブル、セル解像度やブロック ファクタなどグリッドを記述する特定の情報を格納する HDR ファイル、グリッドの統計情報が含まれた STA テーブル、グリッドのゾーンに関連する属性データを格納する VAT テーブル、グリッドで発生したアクティビティを記録するログ ファイル(LOG)、そしてセル データを格納するタイル ファイル w001001.adf(q0x1y1)と、それに付随してタイルと LOG のブロックにインデックスを付けるインデックス ファイル w001001x.adf(q0x1y1x)です。(ログ ファイルなど、これらの中には、ArcGIS の演算子で作成した場合は存在しないものがあります)。
グリッドが変更されると、ファイルやテーブルに含まれている値や情報が直ちに更新されます。INFO テーブルに格納された情報は、ユーザからアクセス可能であり、グリッドに関する情報を提供します。
BND テーブル
グリッドの BND テーブルには、グリッドの範囲が含まれます。範囲は、グリッドのセルを取り囲む四角形であり、マップ座標で格納されます。すべての BND テーブルは倍精度で格納されます。
BND テーブルの最小座標値は、グリッドの左下のセルの左下隅の座標です。最大座標値は、グリッドの右上のセルの右上隅の座標です。
HDR ファイル
HDR はバイナリ ファイルです。このファイルに格納される情報には、セル サイズ、グリッドの種類(整数または浮動小数点)、圧縮方式、ブロック ファクタ、およびタイル情報があります。
STA テーブル
STA テーブルは、グリッドに関する統計データが含まれた INFO テーブルです。グリッドの最小、最大、平均、標準偏差は、STA テーブルに浮動小数点数値として格納されます。これらの値を直接変更することはできません。
NoData は値が不明であることを表すため、STA テーブルの統計計算には使用されません。
二値グリッド(0 と 1 の値のみを含む)が作成されると、STA テーブルには平均の値 0 と標準偏差の値-1 が含まれます。標準偏差値-1 は、グリッドの統計が計算されていることを示します。
標準偏差値-2 は、グリッドに NoData セルのみが含まれていることを示します。
VAT テーブル
VAT は、グリッドの 0 の値と関連付けられた属性を格納する INFO テーブルです。VAT は整数グリッドにのみ関連付けられます。すべての VAT には、少なくとも VALUE と COUNT の 2 つのアイテムが含まれています。VALUE アイテムには、グリッド内のある位置の特性を他の位置と区別するために使用される整数値が入っています。同じ値が割り当てられたセルはすべて同じ特性を含んでいるため、同じゾーンに属します。COUNT はゾーン内のセル数です。
VAT には新しいアイテムを追加することができます。VALUE アイテムと COUNT アイテムを変更することはできません。VAT は常に VALUE アイテムで並べ替える必要があります。VALUE または COUNT の前に新しいアイテムを追加しないでください。
NoData が含まれているセルは、VAT では表現されません。
次に、VAT の例を示します。
Record VALUE COUNT 1 0 628872 2 1 265043 3 2 151150 4 3 3185652 5 4 79983 6 5 4782 7 6 74334 8 7 8877 9 8 1817 10 9 491 11 10 858 12 11 8770 13 12 28789 14 13 72539 15 14 3686 16 15 3932 17 16 13227 18 17 1890 19 18 1305 20 19 427286 21 20 6695
タイル ファイル
w001001.adf(q0x1y1)ファイルと w001001x.adf(q0x1y1x)ファイルは、グリッドの最初のタイルまたはベース タイルのデータとインデックスを格納します。タイル サイズの上限は非常に大きいため、ほとんどのグリッドは 1 つのタイルを使用して格納されます。追加のタイルが使用される場合、最初のタイルとの空間関係に基づいて、それらに自動的に番号が振られます。タイルは可変長のバイナリ ファイルとして実装されます。ARC/INFO 7.x よりも前のバージョンでは、これらのファイルの名前は q0x1y1 および q0x1y1 となっていましたが、現行のソフトウェアでも利用可能です。
LOG ファイル
LOG ファイルは、グリッドの作成と変更に関する情報が含まれた ASCII ファイルです。LOG はグリッドに対して実行されたアクションを監視しますが、グリッドを使用して実行されたアクションがすべて含まれているとは限りません。すべてのグリッド関数は新しいグリッドを生成するため、RENAME や COPY などのグリッド コマンドのみが既存のグリッドを変更でき、それらは LOG ファイルに記録されます。LOG ファイルには、ASCII ファイルと同様に、システム コマンドや任意のテキスト エディタからアクセスできます。
ストレージに関する制限
グリッドの名前には次のような制限があります。
- スペースを使用した名前を保存することはできません。
- 数字で始まる名前は使用できません。
- 名前が 13 文字を超えてはなりません(マルチバンド グリッドは最大 9 文字まで)。
カバレッジとグリッドの両方について、INFO ディレクトリに格納できるファイルの数には制限があります。この合計は約 10,000 です。このため、ワークスペースに格納できるグリッドの数が制限されます。たとえば、単一のワークスペース ディレクトリに格納できるグリッド データセットの理論上の最大数は、次のとおりです。
- 浮動小数点グリッドの場合は 5,000 未満
- VAT がある整数グリッドの場合は、3,333 より少ない(VAT がない場合は、5,000 未満)
- グリッド スタックの場合は 10,000 未満
前述の数は、理論上の最大値です。テンポラリのグリッドを作成する(したがって、INFO ディレクトリにファイルを作成する)プロセスの場合、これらの数は減少します。また、グリッドとカバレッジのように混合したファイルを格納する場合は、格納できる数は少なくなります。
これらの上限値は、グリッド フォルダに保存されるファイルの数に直接関係します(グリッド フォルダは INFO ディレクトリに情報を格納します)。10,000 個未満、つまり 9,999 個までという上限は、INFO ディレクトリに格納できるファイル数の上限ではなく、「INFO ディレクトリに格納されているファイルを参照している」ファイルの数の上限です。各グリッドに専用のグリッドフォルダには、BND(境界)および STA(統計)テーブルという 2 つのファイルが生成されます。両方とも INFO ディレクトリに格納されているファイルをポイントします。これで、グリッドの数の上限は 9999÷2 ≈ 5000 となります。 グリッドが VAT を持つ場合は、その VAT も INFO ディレクトリのファイルをポイントするので、上限はさらに下がって 9999÷3 ≈ 3333 となります。グリッド スタックの場合、INFO ディレクトリをポイントするファイルは 1 つしかないため、9999÷1 ≈ 9999 となります。
スタック
スタックは、空間的に重なり合う、順序付けされた一連のグリッド(レイヤ)で構成され、多変量解析において単一のエンティティとして扱われます。クラスタ解析、分類、主成分解析はすべて、スタック内のレイヤに対して実行されます。
スタックには次の特徴があります。
- それぞれ個別のグリッドからなるレイヤの集合
- マップ範囲または BND
- セル サイズ
- データ タイプ
- 投影法
スタックに含まれる各レイヤは、スタック内での順序を示すインデックス番号を持ちます。スタックを構成するグリッドは、同じワークスペースに属していなければなりません。
入力レイヤ同士は、完全に重なる、部分的に重なる、またはまったく重ならない場合がありますが、スタックはレイヤが重なり合うエリアでのみ構成されます。スタックの BND は、レイヤの重複部分の境界線です。多変量解析機能での計算は、重なり合うエリアで実行されます。入力レイヤの間に共通のエリアがない場合、スタックは空となり、計算は実行されません。
スタックのセル サイズは、デフォルトではスタックにおいて最も解像度の低いレイヤとなります。
スタックの入力グリッドのデータ タイプ(実数または整数)はいくつでも組み合わせることができます。ただし、多変量解析を適用する前に、それらの値が何を表すのか、カテゴリ データか連続データか、そして値の範囲または相対範囲を知っておく必要があります。特定の解析では、スタックの入力データ タイプによって出力データ タイプが決定します。
入力グリッドに関連付けられた投影情報はスタックに格納されます。スタックは単一のエンティティとして扱われるため、スタック内のすべてのグリッドが同じ投影法である必要があります。投影情報は、スタックの各グリッドが同じ地理エリアに属することを保証するために使用されます。
グリッド スタックの格納
スタックは、グリッドやカバレッジに類似したディレクトリ構造に格納されます。スタック ディレクトリには、外部 INFO STK テーブルと ASCII PRJ ファイルの 2 つのファイルが含まれます。スタックを構成する実際のグリッドはスタックに格納されません。それらはワークスペース内の通常のグリッドです。つまり、どのグリッドも複数のスタックで使用することができます。STK テーブルは、スタックを構成するグリッドの名前と、それらに対応するインデックス値を格納します。
GRID: LIST JER135.STK Record INDEX GRID 1 1 jer1 2 2 jer3 3 3 jer5
INDEX アイテムはスタック内のグリッドの位置を表し、GRID アイテムはスタックを構成するグリッドの名前を示します。入力グリッドの空間データはスタック内に複製されません。このため、スタックは常に入力グリッドの最新バージョンを反映します。STK ファイルには、他の INFO ファイルと同じようにアクセスできます。データ取得日を格納するためのアイテムなど、説明目的のアイテムを追加することは可能ですが、INFO を使用して INDEX アイテムの値や GRID アイテムの名前を変更しないでください。こうしたアイテムの操作はすべて、GRID で利用可能な各種スタック管理コマンドのみを使用して行う必要があります。
PRJ ファイルが存在する場合、このファイルにはスタックの投影情報が格納されます。
Projection STATEPLANE Zone 4701 Datum NAD27 Zunits NO Units FEET Spheroid CLARKE1866 Xshift 0.0000000000 Yshift 0.0000000000 Parameters
スタック内のすべての入力グリッドの投影法が不明である場合、PRJ ファイルは作成されません。
グリッド スタックには、スペースが含まれた名前、数字で始まる名前、および 9 文字を超える名前は使用できません。
グリッド内の NoData
グリッド内のすべてのセルには値が割り当てられています。しかし、そのテーマを表すグリッドで実際の値を持たないセルには、NoData を割り当てることができます。NoData と 0(ゼロ)は同じでありません。0 は有効な値です。このため、NoData セルをグリッドの STA テーブルでの統計計算に使用することはできません。