このページの内容は、 FOSS4G と都市計画 12講 にまとめています。

GIS Lecture 1: QGIS を使う。

GIS を理解するには、原理の理解と実践的理解の双方が必要です。 そこで、QGIS を使用しながら、概念を理解していきましょう。

1. QGISの概要

GIS とは、地理情報を扱うシステムです。 画像 (ベクタ、ラスタ) やデータベースなどと連動することができます。

GIS を用いた空間解析などを行う場合、通常データを一から作成することは稀です。 その代わり、インターネット上で得られるデータなどを加工して使用することが多いでしょう。 つまり、次のような流れになります。

1. 基本データの取得 > 2. データの加工 > 3. データの分析 > 4. 出力

ここでは、データの加工や分析はせず、1. データの取得と 4. 出力 (QGIS を使用) を解説します。

まず、QGIS の設定をしましょう。

  • Setting > Options で、Always start new project with this CRS を EPSG:4612 - JGD2000 とする。
  • Enable 'on the fly' reprojection by default をチェックする。

CRS を EPSG:4612 - JGD2000 にするというのは、数値情報など緯度経度を基本とするということです。 緯度経度よりもメートルを優先させたい場合、都道府県によって設定が異なります。 京都市の場合、 EPSG:2448 - JGD2000 / Japan Plane Rectangular CS VI を選択します。 日本で使われる座標系は、こちらにまとめてあります。

'on the fly' reprojection を使用すると、異なる座標系のレイヤを重ね合わせたときに、GIS が自動的に重ね合わせてくれます。

2. GISデータの取得 1 (数値情報と基盤地図)

GIS が他のソフトと大きく違う点の一つは、自分でデータを作るのではなく、既にあるデータを活用することが中心ということでしょう。

そこでまず、数値情報データ を取得してみましょう。 ここでは、「用途地域」の「京都府」を選択します。 解凍すると、A29-11.shp などのファイルが複数得られます。

  • .dbf - データベースデータが入っています。
  • .prj - 測地系が定義されています。このファイルがなくても、ArcGIS や QGIS で定義することができます。
  • .shp - ベクターデータが入っています。
  • その他 - .shx, .sbn, など。

業界標準のファイル形式はSHPデータ形式で、複数のファイルから構成されています。 日本では、DM、「国土数値情報統一フォーマット (KSJ)」や 基盤地図 (JPGIS)、G-XML など独自のファイル形式が乱立しており、 また対応していないソフトウェアが多かったのですが、近年SHP形式での提供が増えてきました。

.dbf ファイルは、データベースファイルです。 Microsoft Excel で開くことはできます。 .dbf ファイルは、各列のデータ型が厳密に決まっています。 例えば、テキストの場合、何文字かが指定されています。 .dbf ファイルを Excel で開くと、その文字数指定がセル幅になります。 よって、セル幅を変更してしまうと、ファイルが壊れてしまいます。

もし、頻繁にデータを修正するのであれば、いったん .csv 形式で保存し、 QGIS 上でテーブル結合をするとよいでしょう。

測地系 (projection) はたくさんありますが、ここでは「平面直角座標系」(JGD2000) と「緯度経度」 (WGS84) を紹介します。 「平面直角座標系」は単位がメートルであり、都市計画など比較的小地域で使用する際に適しています。 基準となる系が日本では約20にわかれており、近畿圏では兵庫県だけが第5系、京都府や大阪府などは第6系に属しています。 「緯度経度」は単位が緯度経度であり、ソフトウェアによっては「ある地点から500m 以内のものを全て取得」などができません。

QGIS で .prj ファイルを作成するには、以下のようにします。

  1. QGIS で Layer > Add Vector Layer でレイヤを開きます。
  2. Vector > Data Management Tools > Define Current Projection を選択します。
  3. Use predefined spatial reference system から、適切な座標系を選択します。適切な座標系とは、
    • 数値情報 - JGD2000 EPSG:4612
    • 基盤地図など - 都道府県などによって異なる。京都の場合、JGD 2000 Japan Plane Rectangular CS VI EPSG:2448。
    • 行政提供データなど - 都道府県などによって異なる。京都の場合、Tokyo / Japan Plane Rectangular CS VI EPSG:30166。
Census

ウィンドウの下の方を見ると、この地図が緯度経度で表示されていることがわかります。

左に表示されているレイヤ上を右クリック (または Option + Click) し、Open attribute table を選択します。

Census

次に、国土地理院 基盤地図をダウンロードしましょう。 基盤地図は、独自の形式なので、直接は開けませんが、開くと次のような画面になります。

Census

詳細は省きますが、基盤地図の開き方は、2つ方法があります。

  • FGDV (Windows 版のみ) をダウンロードし、このソフトで Shapefile に変換する。
  • 基盤地図対応 gdal (ogr) を利用する。

3. GISデータの取得 2 (アドレスマッチング)

次に、住所から位置を点で示しましょう。 まず、Excel などで、以下のような表データを作成し、CSV 形式で保存します。 住所は、Google Map で検索できる形式とします。

識別コード住所YX
26102京都府京都市上京区  
26104京都府京都市中京区  
26106京都府京都市下京区  

次に、Napzak というサイトを開き、今作成した CSV ファイルをアップロードします。 そうすると、徐々に緯度経度が埋まっていくことが確認できます。 全て終わったら、ダウンロードし、1行目 (ヘッダ) を直します。 なお、緯度経度座標が取得できなかったレコードがある場合、次のステップでエラーが出るので、あらかじめ削除しておいてください。

Napzak

Layer > Add Delimited Text Layer を選択し、先ほどダウンロードしたファイルを選択します。

Add Delimited Text Layer はプラグインです。 見つからない場合は、Manage Plugins からインストールしてください。

Napzak 2

このほかに、東大アドレスマッチングや、自力でアドレスマッチングを行うことも可能です。 http://d.hatena.ne.jp/end0tknr/20081021/1224576363

地理学では、南北方向が X になります。

次に、各区役所からの 500m バッファを作成してみましょう。 しかし、バッファは CSV ファイルからは作成できません。 また、緯度経度データからは 500m という単位を使用できません。 そこで、この CSV ファイルをメートル単位の Shapefile に変換しましょう。

右クリックする。 CRS を Selected CRS にする。 Browse から、JGD2000 / Japan Plane Rectangular CS Vを選択する。 Save as で保存先を決定する。 こうして保存したファイルを読み込み、 Vector Geogrocessing Tools Bufffer(s) Buffer distance を 500 Output shapefile で保存先を決定する。

4. GISデータの取得 3 (Google 地図の表示)

これはインターネットが必要になります。

Plugins > OpenLayers Plugin を選択します。 これがない場合、Plugins > Fetch Python Plugins から、OpenLayers Plugin をインストールします。

Plugins > OpenLayers plugin > Add Google Streets layer を選択します。 しばらくすると、Google Map が表示されます。

今までに追加したレイヤの上に表示されるため、Google Map を下にしましょう。 正しい位置で表示されました。 先ほど追加した基盤地図が、御所や二条城、あるいは市役所前広場の道路まで描かれています。

Census

拡大してみます。 御池中学がまだありませんね。

Census

出力 2 (スタイルとラベル)

次に、国勢調査のレイヤをクリックし、Layer > Properties を選択します。 Style のところでは、色や線種、塗りつぶし方法などを変更することができます。

スタイルとは、図形の表示方法です。シンボルということもあります。

Labels をクリックし、Display Labels を選択し、Field containing label では MOJI を選択、OK を押します。

ラベルとは、属性値を地図上に表示する機能です。

5. DXF 出力

CAD用に出力することを要請される場合が頻繁にあります。 しかし、GIS と CAD は似て非なるものであり、基本的には GIS だけで完結することをおすすめします。 そうは言っても、GIS に比べて圧倒的に普及量の多い CAD の利用者は多いので、 以下になるべく GIS 側も CAD 側も負担のかからない出力方法を示します。

CAD 側に任せる。 AutoCAD など、最近の商用 CAD であれば、Shapefile を読めるはずです。 AutoCAD の場合、 Map > Tools > Import です。

OGR の DXF 出力は、1.9.0 まではバグがあり、正常な DXF ファイルを出力しません。

6. Illustrator 出力

高価な Illustrator に出力することを要請される場合が頻繁にあります。 しかし、GIS と Illustrator は似て非なるものであり、基本的には GIS だけで完結することをおすすめします。 そうは言っても、GIS に比べて圧倒的に普及量の多い Illustrator の利用者は多いので、 以下になるべく GIS 側も Illustrator 側も負担のかからない出力方法を示します。 なお、Illustrator ファイルを GIS に取り込むのはほぼ不可能に近いです。

Illustrator でベクター画像として開ける形式はいくつかありますが、 代表的なのは Illutrator 本来の .ai、オープン形式の .svg、CAD 形式の .dxf でしょう。

  • .ai 形式 - QGIS では書き出せません。
  • .svg 形式 - Qt に問題があり、たいてい Illustrator で読み込めません。
  • .dxf 形式 - ogr 1.9.0 までバグがあった。まともに開けることが少ない。
  • .kml 形式 - 試したことがなり。.svg に変更することが可能。
  • .pdf 形式 - Illustrator で開ける。

ArcGIS では、.ai 形式に直接書き出すことができます。 その際、GISのレイヤごとにレイヤが分かれます。

.pdf 形式にするには、通常の印刷機能を使用します。 QGIS の印刷の仕方は、ArcGIS などとは少し異なります。

File > New Print Composer を選択します。 これが、出力先の紙のイメージです。 ここに、地図、縮尺、凡例などを追加していきます。 ただし、凡例の日本語は表示されないことが多いです。 凡例を使いたい場合、いったん出力し、Illustrator 上で凡例を書くことができます。

地図を追加します。 位置がずれている場合、地球+手のアイコンで移動させることができます。 縮尺していもできます。

次に、縮尺や凡例などを追加します。

最後に、 File > Export as PDF として保存します。 これで、 Illustrator で開けるようになります。

MacOSX の印刷機能で PDF 出力すると、ファイルサイズが小さくなります。

  • レイヤは一つになる。
  • ラベルはパスになる。
  • 凡例はテキストだが、日本語は表示されない。