準備編:SpatiaLite-GUIを使ってデータベースファイルを用意する

More than 1 year has passed since last update.

この記事は、「SpatiaLiteを使ってSQLだけで面積按分」の準備編です。
SpatiaLite-GUIを利用して、データベースファイルを作成し、地域統計メッシュ(人口データ)をインポートする手順を説明します。

利用するソフトウェア

  • SpatiaLite-GUI(2.0.0-devel)
  • QGIS(地物を表示しないなら、なくてもよい)

手順

SpatiaLite-GUIの入手

  • ここでは、Windows-64bit版を入手します。
  • こちらからspatialite_gui-4.3.0a-win-amd64.7zをダウンロードします。(Windows-32bit版はこちら

image

  • その他のバージョン等はトップページから
  • ファイルは7z圧縮されている(なぜ…)ので、「7-zip」等の7zアーカイブを展開できるツールで展開します。
  • アーカイブにはspatialite_gui.exeというファイルが一つだけ入っているので、任意の場所に展開します。

image

データの入手

  • 使用するデータは先人の記事と同じです。データのダウンロードはこちらを参照してください。
  • ここでは、展開したデータ(shapeファイルと統計データtxtファイル)を C:\temp\data ディレクトリ内に保存しています。

003.png

SpatiaLiteデータベースの作成

  • SpatiaLite-GUIを起動します。
  • まず、新しいデータベースを作成します。
    File -> Creating a New (empty) SQLite DB と選択

001.png

002.png

  • 任意の場所にデータベースファイルを作成します。
    (この記事では、C:\temp ディレクトリ内に db.sqlite という名前で作成します。)

004.png

  • 作成したデータベースに接続した状態

005.png

データの読み込み

  • Shapeファイル(MESH05339.shp)を読み込みます。
    File -> Advanced -> Load Shapefile

006.png
007.png

  • Shapeファイルの読み込み時には、
     ①SRID(空間参照システムのID)
     ②エンコーディング
    の指定が必要です。ここでは、
     ①4612(JGD2000)
     ②CP932
    を指定します。

008.png

  • 無事に読み込まれると、それを知らせるメッセージが出ます。

009.png

  • Shapeファイルが読み込まれた状態

010.png

  • 続いて、統計データ(tblT000608S53390.txt)を読み込みます。
    File -> Advanced -> Load CSV/TXT

011.png
012.png

  • CSV/TXTファイルの読み込み時設定ウィンドウが表示されます。
    ここでは、
     ①Column separator に Comma
     ②Charset Encoding に CP932
    を指定します。

013.png

  • データが読み込まれました。

014.png

メッシュへの統計データの結合

先のポストと同様に、QGISでテーブル結合を行っても良いのですが、せっかくなので結合もデータベース内でやってみます。
全部をテーブル結合してもよいですが、ここでは各メッシュの総人口データしか使いませんので、この一列(T000608001)だけを結合します。

  • SQLを入力する部分に、以下を入力して実行します。
テーブルデータの結合
-- メッシュポリゴン(MESH05339)に新しい列(T000608001)を作成する。
ALTER TABLE MESH05339
ADD COLUMN T000608001 INTEGER
;
-- 元のテーブルからデータを結合して列を更新する。
UPDATE MESH05339
SET T000608001 = (
    SELECT T000608001
    FROM tblT000608S53390
    WHERE tblT000608S53390.KEY_CODE = MESH05339.KEY_CODE
)
;

image

  • メッシュのデータに列が追加されて、データが入力されているかをSQLで確認してみます。
更新結果の確認
SELECT *
FROM MESH05339
;

image

  • 結果、新しい列に人口データが結合されています。