LoginSignup
1
2

More than 5 years have passed since last update.

シェープファイルとその実体で混乱した話

Last updated at Posted at 2018-09-03

ArcGIS を使って地理情報の解析をする必要ができてきたので、人生で初めて ArcGIS を使うことになりました。

初めて ArcGIS を使ったときに躓いた点が、ArcGIS のデータフォーマットでした。

ArcGIS のデータフォーマット

ArcGIS を勉強するために本やネットのリファレンスを読んでみたのですが、私はデータの説明がいまいちよくわかりませんでした。こういった説明によくあるのが

  • GIS で扱うデータはベクタデータとメッシュデータがある
  • 点・線・面で表される情報はベクタデータ、連続的に変化する状態などはラスタデータ
  • シェープファイルはベクタデータを格納するデータフォーマットである
  • ジオデータベースではベクタデータだけでなくラスタやアノテーションなども格納できる

といった雰囲気のものです。けれど、初心者の私からするといろいろな疑問が生じました。

(疑問1)シェープファイルはファイルなのか

いわゆるシェープファイルというものをe-Stat 政府統計の総合窓口からダウンロードした私は最初、複数のファイルがそこにあったので戸惑いました。「どれがシェープファイルなのだ」と。

キャプチャ.PNG

さらに ArcMap でこのファイルを開こうとしたら単一ファイルしか表示されないのでさらに混乱しました。

キャプチャ2.PNG

これについてですが

  • 「狭義の」シェープファイルは .shp という拡張子のファイル
  • 「広義の」シェープファイルは、同一ディレクトリに格納された、共通のファイル名を持つファイル郡( .shp, .shx, .dbf, ...)

というふうに私は解釈しています。

狭義のシェープファイル

シェープファイルはベクタデータを格納している、という話は「狭義の」シェープファイルのことを指しています。つまり .shp のこと。この .shp には ArcMap で表示されるようなマップ情報を保持しています。たとえば以下の図のデータ。

キャプチャ3.PNG

広義のシェープファイル

一方で ArcMap でシェープファイルを開いたら、この図のデータ以外にもデータがあります。例えば属性テーブル。

キャプチャ4.PNG

この属性テーブルは .dbf ファイルとなっていて、狭義のシェープファイルではありません。しかしながら ArcGIS で扱うレベルの話ではシェープファイルに含まれています。

ArcGIS では広義のシェープファイルを単一のファイルとして扱う

先程 ArcMap でシェープファイルを開こうとしたら単一ファイルしか表示されなくて混乱した、と書きましたが、これは ArcMap が広義のシェープファイルを扱うようになっているからです。ArcMap を始めとした ArcGIS 製品で表示されるファイルは、実際のファイルシステム上のファイルとは微妙に異なります。

(追記 2018年9月5日)

コメントでいただきましたが、「シェープファイルはshp, dbf, shxの3種(サフィックス)ファイルがそろって1つのシェープファイルをなす」 と考えるのがよいそうです。

(疑問2)ポリゴンデータとテーブルデータの間の対応関係はどこに定義されている?

広義のシェープファイルには図形データ(ベクタデータ)と属性テーブルが格納されていることがわかりました。けれど1つ疑問が残ります。属性テーブルのレコードと図形データには対応関係がありますが、その対応関係はどこに記述されているのでしょうか。

(下図は属性テーブルのレコードを選択したときの様子)

キャプチャ5.PNG

これですが、 Wikipedia の説明では

.shp, .shx, .dbfの各ファイル内での各シェープの順序は互いに対応している

というで、どうやら .shp と .dbf に格納されているデータの順序で対応関係が決まっている ということだそうです(Wikipedia なので正しくないかもしれませんが)。

ちょっと心もとない気もする弱い結びつきですが、この結びつきによって複数のファイル群から構成されるデータが ArcGIS 上で単一のファイルとして利用できるようになるようです。

余談

ArcGIS は実際には ArcMap, ArcCatalog などのソフトウェア群で構成されていますし、シェープファイルは .shp, .dbf などで構成されていることもわかりました。なんか ArcGIS 関係のものはちょっとわかりにくいものが多いですね...。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2