GISデータフォーマット ~Shapefile~

近年、世界的なオープンデータの潮流に伴い、数多くの地理空間情報が「GISデータ」としてインターネット上などで広く公開・共有されるようになりました。

今や身近になった「GISデータ」ですが、そのデータ形式は慣習や目的などの要因から様々な形式が存在し、GISユーザはその特性を理解したうえでデータを扱う必要があります。

本記事では、主に国内で流通するGISデータ形式の特性や成立経緯といった概要や、公的組織による標準化の動きを整理したいと思います。

本サイトで扱うデータフォーマットは次の通りです。

  • Shapefile
  • GeoJSON
  • GML
  • KML
  • Geopakage
  • 数値地形図データ(DM)

このうち今回はShapefileを整理します。

Shapefile

世界最大級のGISベンダーであるEsri社が管理する事実上の業界標準形式です。市場普及する多くのGISツールが対応しています。

概要

管理者          Esri社
策定時期       1998年(最終改訂 2006年)
拡張子          shp, shx, dbfなど
標準化認定   なし

特徴

  • 多くのGISツールが対応している
  • 1つのGISデータを表現するために複数のファイルが必要(最低3つの拡張子のファイルが必要)
    Shapefileは、特定の1ファイルを指す訳ではなく、拡張子shp、shx、dbfなどの役割の異なる複数ファイルの総称名です。
  • dBASEという1980年代に策定された古いRDBの仕様をベースとしているため、属性の文字数制限など制約が多い

ファイル形式の表記

Shapefileの表記は、Esri社によって次の通りに用いることが定められている。
日本語表記           :シェープファイル
英語表記              :Shapefile
代表拡張子           :SHP

上記以外の表記(シェイプ形式、Shapeファイル、ShapeFile、など)は、誤った表記のため控えることが望ましい(ただ、厳密に守られてはいない)

Shapefile 構成ファイルの一覧

Shapefileは、1つのデータを表現するために、複数の拡張子のデータ群が必要である。

必須3ファイル

名称拡張子概要
メイン・ファイルshp図形情報を保持するファイル。 1レコードごとに頂点の座標リストを持つ
インデックス・ファイルshxメイン・ファイルのインデックスを管理するファイル。 各レコードのオフセットを記録している。
属性ファイル
(dBASEファイル)
dbf属性情報を保持するファイル。メイン・ファイルの図形情報の記録順に合わせて、 属性情報を1:1で紐付けて管理する。

dBASE自体はShapefileに関係なく1980年代に使われていたRDB。そのためGISツールでなくてもdbfだけを閲覧することは可能。実際、ExcelでもdBASEファイルをサポートしており、Shapefileの属性だけを確認したい場合はExcelで該当のdbfファイルを開くことが可能(ただしExcel2007以降では閲覧のみ対応しており、編集・保存は非対応)

拡張ファイル

名称拡張子概要
空間参照系 定義ファイルprj
qpj
空間参照系を定義するファイル(prjはPROJ.4非準拠、qpjはPROJ.4準拠)
※PROJ.4とは、汎用的な空間参照系の変換ライブラリであり、多くのGISツールはこのライブラリの文法に沿った空間参照系の管理を行っている。
文字コード 定義ファイルcpg属性ファイルの文字コードを定義するファイル
メタデータshp.xmlXML形式地理空間メタデータ。 シェープファイルに関する情報を記録する。
空間インデックス ファイルsbn sbx空間インデックス情報を保有するファイル。
読み取り専用
空間インデックス
ファイル
fbn fbx空間検索のパフォーマンス向上を目的とした 空間インデックス情報を保有するファイル(読み込み専用)。
属性インデックスaxt属性ファイルの属性インデックスを定義するファイル。 ESRI社製品「ArcCatalog」でのみ作成される。
アクティブフィールドの
属性インデックス
ain aih属性ファイル内のアクティブフィールドの属性インデックスを定義するファイル。ArcCatalogでのみ作成される。
読み書き用ファイルの ジオコーディング インデックスixs
mxs
mxsはODB規格
レイヤ定義ファイルsldレイヤ定義(図形の色定義など)を保持するファイル。

他にもGISツールによって独自の拡張ファイルを定義する場合がある。たとえば、QGISではレイヤ定義ファイルとしてSLDの他に独自形式「QGISレイヤスタイルファイル(.qml)」をサポートしている。

dbfに由来する制約事項

Shapefileの元となっているdbf形式は1980年代に策定されたフォーマットのため、当時のマシンスペックを想定した制約が存在する。代表的なものは次の文字数制約である。

  • カラム名の文字数制約…10バイト制約があるため、英数字は10文字まで、日本語の場合はUTF-8で3文字、Shift-JISで5文字までの制約がある。
  • 属性名の文字数制約…254バイト制約があるため、英数字は254文字まで、日本語の場合はUTF-8で84文字、Shift-JISで127文字までの制約がある。
  • ファイルサイズ制約…1ファイル2GBの制約がるため、大容量のGISデータの扱いに難儀。

このようにShapefileはマシンスペックの制約が大きい時代に策定されたデータ形式のため、使い勝手はよくないです。そのため近年、次記事でも紹介するGeoPackageなどへの世代交代が注目されています。

GISデータフォーマット ~Shapefile~” に対して1件のコメントがあります。

コメントは受け付けていません。