2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-12-18

この記事は、「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

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?