GISファイルフォーマットの簡単なまとめ

様々な分野でGISが活用され、また世界的なオープンデータの潮流に伴い様々なGISデータが世の中に漂うようになってきました。今や身近な存在となりつつあるGISデータですが、そのファイルフォーマットは結構複雑です(慣習や目的などの要因から様々な形式が存在します)。今回、自分自身の整理を兼ねてファイルフォーマット(データ仕様)を整理したいと思います。

※GISのファイルフォーマットは結構種類があります。有名なのはShapefileですが、他にも様々なフォーマットがあります。今回、そのうち比較的多くのツールでサポートされるフォーマットをいくつかまとめます。

Shapefille

まずは皆さんご存知のShapefileから。事実上の業界標準フォーマットで一般に普及する多くのGISツールが対応しています。今から20年近く前にEsri社によって策定されたデータ仕様のため、当時のPCスペックを意識したいくつかの制約事項やあるなど、クセが強いフォーマットでもあります(Esri社はGIS業界を長年けん引してきた世界的なリーディングカンパニーです。このページをご覧の方にはお馴染みかもしれませんが一応の補足です…)。

なお、Esri社はShapefileの表記は次のいずれかで記載するよう広報しています。
  日本語表記 :シェープファイル / 英語表記 :Shapefile
上記以外の表記(シェイプ形式、Shapeファイル、ShapeFile、など)は、誤った表記となりますのでご注意ください。ただ、実際にはネット上でも別表記を見かけることも多く、厳密に守られいるかというと…。

フォーマット概要

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

※本ページでは、国際的な機関(GISの世界ではISOやOGCが標準化団体に該当します)がそのフォーマットを標準規格として認定しているとき、「標準化認定あり」と表現しています。

特徴

  • 流通する多くのGISツールで読み込み可能
  • 1つの情報を複数ファイルで管理する仕様になっている(最低でも拡張子.shp .shx .dbfの3ファイルが必要 →後述)
  • 上記3ファイルのうちの1つ.dbfは、dBASEという1980年代に流通したRDBの仕様を継承している。それに伴い、データ容量の上限値が決まっている(属性の文字数制約がある)

複数の拡張子について

Shapefileは複数の同名・異拡張子ファイルの集合体で構成される“ファイル群の総称名”です。先ほど説明した3つのファイル.shp .shx .dbfはデータ構成上必須な3ファイルとなっています。さらにその3ファイルでは不足する情報を補うため、拡張ファイルも多数存在しています。拡張ファイルについては、GISツールによってサポートしていなかったり、逆に特定のGISソフトが自身のソフトでのみ動く拡張ファイルを定義していたいりと、中々整理が難しいのが実態です(今回は代表的なファイルを取り上げます)。

必須3ファイル

名称 [拡張子]概要
メインファイル [.shp]図形情報を保持するファイル。 1レコードごとに頂点の座標リストを持つ。
インデックスファイル [.shx]メイン・ファイルのインデックスを管理するファイル。 各レコードのオフセットを記録している。
属性ファイル(dBASEファイル) [.dbf]属性情報を保持するファイル。
メインファイルの図形情報の記録順に合わせて、 属性情報を1:1で紐付けて管理する。
※dBASEファイル自体は汎用的なRDBの1種で、Excelでも読み込みに対応しています。このファイル単体をExcelに投げ込むと、属性情報の一覧を確認することが出来る。

拡張ファイル

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

dBase継承による制約事項

Shapefileの属性はdBASEファイル仕様を継承しています。dBASEファイルは1980年代に普及したファイル形式のため、当時のPCスペックに準じた制約があります。例えばShapefileでは属性名として3文字以上を設定しようとすると、文字化けが発生してしまいます(文字コードがUTF-8の場合)。これはまさにdBaseの仕様を継承したことによる制約です。属性名と属性値を設定するときは、それらに注意するようにしましょう。

GML

GMLは国内外の公的機関によって標準規格として認定されている、公的な管理が行われている仕様です。GISデータの標準規格を目指し国際機関主導で作られており、国内でも一時期は国が普及推進していたのですが…既にデファクトスタンダードとなっていたShapefileの牙城を崩せず、また新興の他フォーマット(後述のGeojson、KMLなど)の方が利便性も高く、市場普及は限定的になっています。

フォーマット概要

  • 管理者          OGC(業界団体)
  • 策定時期       2000年
  • 拡張子          gml
  • 標準化認定   あり(ISO、OGC)

特徴

  • 汎用的なファイルフォーマットであるXMLを空間情報
  • XMLベースかつテキストファイルのため、加工が比較的容易
  • ファイル仕様が厳格に定められている(国際機関主導で仕様が決まっている)
  • 日本国内では、よ類似仕様としてJPGISという仕様に準拠したGMLのことを特にJPGIS(GML)形式などと呼ぶことがある。

KML

Googleなどのサービスを中心に見かけることの多いファイルフォーマットです。GMLに似た名前ですが、それもそのはず。元々KMLはGMLをベースに、当時のKeyhole社(現在のGoogleの地図部門の前身となった会社です!!)が策定したファイルフォーマットです。GoogleMapをはじめ、Googleが2000年代~2010年代に地図業界に与えた技術的・市場的インパクトは絶大です。元々一企業が発案したKMLですが、現在は管理主体が移り、GML同様に業界団体であるOGCが仕様管理を行っています。

フォーマット概要

  • 管理者          OGC(2008年まではGoogle)
  • 策定時期       2000年代初頭
  • 拡張子          kml,kmz
  • 標準化認定   あり(OGC)

特徴

  • Keyhole社(現・Googleの地図部門)が、自社サービス(Google Earthの前身)向けの内部形式としてGML2.1.2の影響を受けつつ開発。
  • XMLベースかつテキストファイルのため、加工が比較的容易
  • ビジュアライズ用の色表現定義などをファイル内に記述することができる(表現方法も定義できる辺り、Googleらしいというか、Web地図サービスでの利用を意識した仕様です)
  • 空間参照系はepsg:3857で固定(ほかのGISデータでは空間参照系は選べるのが一般的ですが、KMLは元々GoogleのWeb地図サービスでの利用を前提とした仕様のため、Web地図サービスで一般的なepsg:3857だけに適合していれば良いという仕様です)。

すこし文字文字しくなりましたが、「GoogleをはじめとしたWeb地図サービスで使うことを前提に、シンプルかつ使いやすい特徴」を武器に、普及してきたフォーマットです。

GeoJSON

Webサービスとの親和性も高く、Githubなど様々なWebサービスがサポートしています。デファクトスタンダード・Shapefileと比較しても扱いやすいことから、GISフォーマットの中では普及しているフォーマットといえます。

フォーマット概要

  • 管理者          有志による開発
  • 策定時期       2008年
  • 拡張子          geojson
  • 標準化認定   あり(OGC)

特徴

  • その名の通り、JSONの地理空間情報への拡張形式として策定
  • Web系サービスで一般的なJSON仕様をベースとするため、Webサービスで扱いやすい
  • テキストファイルのため、加工も容易
  • WebサービスやBIツールなど比較的多くのツールがサポートしている

Geopackage

もしかしたら馴染みの薄い方もいらっしゃるかもしれませんが、近年注目されるファイルフォーマットです。GISファイルのデファクトスタンダード・Shapefileは、扱う上でクセの強いファイル形式のため、その移行先…として特に注目されています。

フォーマット概要

  • 管理者          OGC
  • 策定時期       2014年
  • 拡張子          gpkg
  • 標準化認定   OGC標準

特徴

  • SQLiteをベースとしたバイナリファイル(SQLiteの特徴を引き継ぎデータが軽量!)
  • ベクトルデータに加えてラスタデータも取り扱い可能!
  • QGISがバージョン3より、デフォルトのファイル形式としてサポート開始するなど注目度高。
  • GISソフトウェアでの対応が進むが、一般的なサービス(BIツールやWebサービス)でのサポートは今後に期待。

おわりに

今回はGISファイルフォーマットとしてShapefile,GML,KML,GeoJSONを取り上げました。ほかにもファイルフォーマットは多数あるため、今後どこかの機会でそれらも取り上げたいと思います(DXFや画像系のフォーマットGeoTiffなど今回取り上げていませんしね…汗)。

以下は個人の感想ですが、GISファイルとして最も普及しているのはShapefileだと思いますが、中々癖が強く、扱いにくいフォーマットと感じています。GISを扱っていて躓いたとき、実は原因はShapefileだったということも多々あり。QGISが猛プッシュしているようにGeoPackageがその風穴を開け、GISを扱う敷居を少しでも下げてくれないかと期待しています。本サイトでも今後、GISファイルとしてGeopackageを扱うことが多いかと思います。その裏側にはそういう思いも込められていると思って、お付き合いいただければと思います!