ArcGIS なしでシェープファイルを開く方法

ArcGIS がなくても、シェープファイルは3つの方法で開けます。無料の QGIS で .shp ファイルを地図にドラッグする方法、GDAL の ogrinfo でレイヤー、フィールド、座標系を表示する方法、そして .shp、.shx、.dbf を FileReshape の「シェープファイル ビューア」にドロップする方法です。ビューアは地図と属性テーブルをブラウザー内で表示し、ファイルはアップロードされません。

まず、すべての構成ファイルがそろっているか確認する

シェープファイルは1つのファイルではなく、同じ名前を持つ複数のファイルの集まりです。.shp ファイルには形状が、.shx ファイルには各形状とテーブルの行を結び付けるインデックスが、.dbf ファイルには属性テーブルが入っています。この3つは必須です。.prj ファイルは座標系を、.cpg ファイルは属性テーブルの文字コードを示します。どちらも任意ですが、付けておくことを強くおすすめします。

シェープファイルが「開けない」原因でいちばん多いのは、.shp ファイルだけが送られてきた、あるいはコピーされたケースです。.shp が1つだけメールで届いた場合は、フォルダーごと、できれば .zip にまとめて送ってもらいましょう。.sbn、.sbx、.qix、.shp.xml などのファイルは空間インデックスやメタデータで、データを開くのにこれらを必要とするソフトはありません。

データを見るときは、この形式の制限も頭に入れておきましょう。.dbf のフィールド名は最大10文字までなので、DESCRIPTIO のように省略された列名がよく見られます。1つのシェープファイルに入れられるジオメトリの種類は1つだけなので、ポイント、ライン、ポリゴンは必ず別々のシェープファイルになります。また、.shp と .dbf のファイルサイズはそれぞれ 2 GB までです。

QGIS でシェープファイルを開く

QGIS は Windows、macOS、Linux で使える無料のオープンソース デスクトップ GIS です。形状や属性の編集、スタイル設定、テーブルの結合、計測、地図の印刷など、ざっと眺める以上のことをしたいときに最適です。Linux ではたいていディストリビューションのパッケージマネージャーから入手できるため、「Linux で使えるシェープファイル ビューアは?」という質問への定番の答えにもなっています。

QGIS が座標系を尋ねてきた場合は、.prj ファイルがありません。レイヤーのプロパティで正しい座標系を選んでください。そうしないと、レイヤーが地図上の間違った場所に表示されてしまいます。

  1. qgis.org またはパッケージマネージャーから QGIS をインストールし、新しいプロジェクトを開始します。
  2. ファイルマネージャーから .shp ファイルを地図ウィンドウにドラッグするか、「レイヤ」>「レイヤを追加」>「ベクタレイヤを追加」(Layer > Add Layer > Add Vector Layer)で .shp ファイルを選びます。
  3. レイヤーを右クリックして「属性テーブルを開く」(Open Attribute Table)を選ぶと、フィールドと値が表示されます。
  4. レイヤーを右クリックして「プロパティ」(Properties)を選び、座標系、文字コード、フィールドの型を確認します。

ogrinfo を使ってコマンドラインでシェープファイルを調べる

GDAL は QGIS をはじめ多くのツールの土台になっているオープンソースのライブラリで、ogrinfo と ogr2ogr というコマンドライン プログラムが付属しています。Linux では通常、gdal-bin または gdal というパッケージでインストールできます。Windows と macOS では QGIS に同梱されているほか、単体でもインストールできます。サーバー上での作業、スクリプト、多数のファイルを一括処理するバッチ作業には、コマンドラインが適しています。

-so オプションを付けると、すべてのフィーチャーではなく概要が表示されます。ジオメトリの種類、フィーチャー数、範囲、座標系、そしてフィールドとその型の一覧です。このオプションを外すと、すべてのフィーチャーが属性付きで表示されます。シェープファイルを別の形式に変換するには ogr2ogr を使います。たとえば GeoJSON に変換すれば、どのテキストエディターでも、多くのウェブツールでも読み込めます。

# Summary: geometry type, feature count, extent, CRS and fields
ogrinfo -so -al roads.shp

# Convert to GeoJSON in WGS84
ogr2ogr -f GeoJSON -t_srs EPSG:4326 roads.geojson roads.shp

FileReshape を使ってブラウザーでシェープファイルを開く

シェープファイルの中身を見たいだけなら、FileReshape の「シェープファイル ビューア」はインストール不要で、Windows、Mac、Linux、Chromebook、タブレットで使えます。ウェブ用にコンパイルされた GDAL を使ってブラウザー内で動作するため、ファイルはお使いのディスクから読み込まれ、アップロードされません。シェープファイルをアップロードして見られるウェブ ビューアを探しているものの、データが機密である、という場合にも安心して使えます。

シェープファイルを含む .zip をドロップするか、.shp、.shx、.dbf、.prj の各ファイルをまとめて選択します。.zip の場合は、サブフォルダーに入っていてもビューアが構成ファイルを自動で見つけます。1つの .zip に複数のシェープファイルが入っていれば、すべて同じ地図に描画され、リストで属性テーブルを切り替えられます。各列の見出しには、フィールド名と、GDAL が読み取った String、Integer、Real、Date などの型が表示されます。行をクリックするとそのフィーチャーにズームし、地図上のフィーチャーをクリックするとテーブルの該当行が見つかります。

.prj ファイルがない場合、ビューアは座標が経度・緯度に見えれば WGS84 とみなし、そうでなければ EPSG コードの入力を求めます。.cpg ファイルがない場合は、有効な UTF-8 のテキストは UTF-8 として読み込み、それ以外のテキストは .dbf ヘッダーのコードページ、それもなければ Windows-1252 で読み込みます。

  1. 「シェープファイル ビューア」を開き、.zip をドロップするか、.shp、.shx、.dbf、.prj ファイルをまとめて選択します。
  2. 地図上のフィーチャーを確認し、その下の属性テーブルをスクロールして見ます。
  3. 必要に応じて「GeoJSON としてダウンロード」をクリックし、すべてのフィーチャーを WGS84 で保存します。

どの方法を使えばよいか

誰かから送られてきたファイルをさっと確認したいときや、ソフトをインストールできない、またはしたくないパソコンで作業するときは、ブラウザーのビューアを使いましょう。読み取り専用なのでファイルを壊すことはありませんが、編集もできません。応答性を保つため、地図にはレイヤーごとに最大20,000件のフィーチャーを描画し、テーブルには最初の1,000行を表示します。ただし件数の表示と GeoJSON のダウンロードはすべてのフィーチャーが対象です。扱えるサイズはブラウザーのメモリによって決まります。

編集、スタイル設定、分析、印刷をしたいときや、ファイルが非常に大きいときは QGIS を使いましょう。多数のファイルをスクリプトで確認・変換したいときや、デスクトップ環境のないサーバーで作業するときは ogrinfo と ogr2ogr が向いています。3つとも同じファイルを読み込めるので、まずブラウザーで確認し、あとから QGIS に移ることもできます。

よくある質問

.shp ファイルだけを開くことはできますか?

実用的には開けません。.shp ファイルには形状しか入っていません。.dbf がなければ属性がなく、.shx がなければほとんどのソフトがファイルを受け付けません。同じ名前のすべてのファイル、またはフォルダーをまとめた .zip を送ってもらいましょう。

Linux で使えるシェープファイル ビューアはありますか?

あります。QGIS は Linux で動作し、ほとんどのディストリビューションのパッケージリポジトリに含まれています。また GDAL の ogrinfo を使えば、コマンドラインで概要を表示できます。FileReshape のビューアも、Linux 上のモダンなブラウザーであれば動作します。

オンラインのビューアを使うと、シェープファイルはアップロードされますか?

いいえ。FileReshape はブラウザー内でファイルを読み込み、地図もそこで描画します。ウェブから読み込まれるのは背景地図のタイルだけで、データはどこにも送信されません。

フィールド名が途中で切れているのはなぜですか?

.dbf の属性テーブルではフィールド名が最大10文字までに制限されているため、シェープファイルを書き出すときに長い名前は短縮されます。元の名前をシェープファイル自体から復元することはできません。

ArcGIS なしでシェープファイルを編集できますか?

はい、QGIS で編集できます。レイヤーの鉛筆アイコンで編集を開始し、形状や属性値を変更して保存します。FileReshape のビューアは読み取り専用です。