シェープファイル出力のジオプロセシングの検討事項

Esri では長年にわたり、地理情報を格納するために、カバレッジ、シェープファイル、ジオデータベースという主な 3 つのデータ形式を開発してきました。シェープファイルは、地理情報と属性情報を格納するためのシンプルな形式を提供するために開発されました。このシンプルな特徴から、シェープファイルは非常に一般的でオープンなデータ転送形式になっています。シェープファイルはシンプルで扱いやすいのですが、制約があり、ジオデータベースにはできてもシェープファイルにはできないことがたくさんあります。シェープファイルを使用する際は、その制限について注意する必要があります。一般的に、次の制限があります。

これらをはじめとする問題のために、シェープファイルはアクティブなデータベース管理には適していません。シェープファイルは、データの作成、編集、バージョン対応、アーカイブという現代のライフ サイクルを扱うことができません。

シェープファイルを使用すべき場合

シェープファイルを使用すべきでない場合

後述する例外はありますが、シェープファイルはシンプルなフィーチャ ジオメトリの格納に使用できます。ただし、シェープファイルは属性に関して大きな問題があります。たとえば、シェープファイルは、NULL 値を格納できません。数値を切り上げます。Unicode 文字列のサポートが不十分です。10 文字を超えるフィールド名を使用できません。そして、1 つのフィールド内に、日付と時間の両方を格納できません。これらは、主な問題にすぎません。さらに、シェープファイルは、ドメインやサブタイプなど、ジオデータベースに備わっている機能をサポートしていません。そのため、属性が非常にシンプルでジオデータベースの機能が必要でない場合以外は、シェープファイルは使用しないでください。

シェープファイルのコンポーネントとファイル拡張子

シェープファイルは、3 つ以上のファイルに格納されます。これらは、すべて同じ接頭辞を持ち、同じシステム フォルダ(シェープファイル ワークスペース)内に格納されます。個々のファイルを表示するには、ArcCatalog ではなく、ArcCatalog でフォルダを参照します。

拡張子

説明

必須

.shp

フィーチャ ジオメトリを格納するメイン ファイル。このファイルに格納されるのはジオメトリだけで、属性は格納されていません。

はい

.shx

*.shp のコンパニオン ファイルで、*.shp ファイル内にある個々のフィーチャ ID の位置を格納します。

はい

.dbf

フィーチャの属性情報を格納する dBASE テーブル。

はい

.sbn および .sbx

フィーチャの空間インデックスを格納するファイル。

いいえ

.atx

ArcCatalog で作成された各 dBASE 属性インデックスに対して作成されます。

いいえ

.ixs および .mxs

読み取り/書き込みモードのシェープファイルのジオコーディング インデックス。

いいえ

.prj

座標系情報を格納するファイル。

いいえ

xml

ArcGIS のメタデータ。シェープファイルに関する情報を格納します。

いいえ

シェープファイルの拡張子

ジオメトリの制限

属性の制限

NULL 値の表現

シェープファイルでは、NULL 値はサポートされません。NULL を持つフィーチャクラスがシェープファイルに変換される時、あるいはデータベーステーブルが dBASE ファイルに変換される時、NULL 値は次の表に示すように変更されます。

注意注意:

シェープファイルあるいは dBASE ファイル(*.dbf)をツールの入力に用いた場合、ArcGIS はフィールド値が NULL 値なのか適切な値なのかを判定できません。

NULL 値を含むデータ タイプ

NULL 値の置換

Number - ツールに NULL、無限、NaN(Not a Number)を出力する必要がある場合

-1.7976931348623158e+308(IEEE 標準における負の最大値)

Number(その他すべてのジオプロセシング ツール)

0

Text

" "(空白 - スペースなし)

Date

ゼロとして格納されますが、「<null>」と表示されます。

シェープファイルと dBASE(*.dbf)ファイル内の NULL 値の置換

サポートされていない機能

シェープファイルには、ワークスペースまたはフィーチャクラスのレベルで拡張されたデータ タイプがありません。ジオデータベース フィーチャクラスまたはその他の形式からシェープファイルに変換すると、次の情報が失われます。

シェープの長さおよび面積

ジオデータベースに格納されたラインまたはポリゴン フィーチャクラスでは、ArcGIS は shape_length および shape_area フィールドを計算し維持します。つまり、ジオデータベース フィーチャクラスのラインまたはポリゴンのシェープを編集すると、shape_length および shape_area フィールドの値が再計算されて、編集内容がフィーチャに反映されます。これは、シェープファイルの場合は異なります。シェープファイルに shape_area または shape_leng フィールドがあり、これらが編集された場合でも、その編集内容は更新されません。

シェープファイルとジオプロセシング

フィーチャクラスを出力するジオプロセシング ツールでは、出力形式としてシェープファイルとジオデータベース フィーチャクラスのいずれかを選択できます。同様に、テーブルを出力するツールを使用すると、dBASE ファイル(*.dbf)かジオデータベース テーブルを出力として選択できます。使用している形式と、ジオデータベースの入力からシェープファイルの出力への変換結果には、必ず注意する必要があります。

ジオプロセシング ツールは、出力フィーチャクラスまたはテーブルを自動生成します。この自動生成された出力は、「現在およびテンポラリ ワークスペース環境の使用」で説明されているように、多くの要因に基づいています。テンポラリ ワークスペース環境をジオデータベースではなくシステム フォルダに設定している場合、自動生成された出力フィーチャクラスは、以下の図のように、シェープファイルまたは dBASE ファイルになります。

シェープファイルと dBASE の出力

テンポラリ ワークスペースをファイル ジオデータベースに設定して、自動生成された出力がシェープファイルや *.dbf テーブルではなく、ファイル ジオデータベースに書き込まれるようにすることをお勧めします。

ジオプロセシング環境の詳細

シェープファイルは、書き込み処理が高速であるため、モデルの実行を高速化するためにモデルの中間データの書き込みによく使用されます。しかし、ファイル ジオデータベースへの書き込みもシェープファイルへの書き込みと同じくらい高速であるため、実行速度が非常に重要である場合を除いて、中間および出力データにはファイル ジオデータベースを必ず使用してください。シェープファイルを使用する場合は、前述した制限に注意し、シンプルなフィーチャと属性だけにシェープファイルを使用してください。中間データにシェープファイルを使用する代わりに、フィーチャをインメモリ ワークスペースに書き込む方法もあります。

インメモリ ワークスペースの詳細

空間参照とシェープファイル

空間参照とジオプロセシング」では、ジオプロセシング ツールを使う際の空間参照プロパティの重要性について説明しています。空間参照を制御する多くのジオプロセシング環境がツールで使用されています。次の環境は、ツールの出力がシェープファイルの場合はサポートされていません。

関連トピック

5/10/2014