目次

6. 校区の児童数マップを作る

校区地図を作ったら、今度は、どの学校にどれくらい児童がいるのか知りたくなりました。

6.1. 児童数のデータを取得

「東大阪 生徒数」でぐぐってみたら、学校名と生徒・児童数のレポートがすぐに見つかったよ! http://www.city.higashiosaka.lg.jp/0000007023.html

東大阪、ちゃんとしてる!えらい!(∩´∀`)∩ワーイ

国勢調査が平成22年だったので、それにあわせて平成22年のデータを取得しました。

6.2. CSVファイルの読み込み

pdfのままではQGISで読み込めないので、手作業でcsvファイルを作ります。

<ho_jidosu.csv>:

NAME,NUMBER
縄手小学校,370
縄手北小学校,357
枚岡東小学校,524
枚岡西小学校,1043
    ・・・

1行目は項目名になります。

それから、これだけだと、すべてStringのデータにされてしまうので、型定義ファイルを作ります。 csvファイルと同じ名前で、拡張子は csvt です。

<ho_jidosu.csvt>:

"String","Integer"

[レイヤ]→[デリミティッドテキストレイヤを追加]

_images/lesson4_1.jpg

ファイルを選んで、ジオメトリなし(属性のみのテーブル)にチェックして、[OK]クリック!

_images/lesson4_2.jpg

6.3. CSVのデータをベクタレイヤにくっつける

読み込んだ児童数のデータは、小学校のファイルにくっつけちゃおうと思います。

  1. ho_PublicElementarySchoolレイヤのプロパティを開く

  2. [結合]タブを開いて[+]ボタンをクリック。

    _images/lesson4_3.jpg

    結合するレイヤ:ho_jidosu(児童数のレイヤ)

    結合フィールド:NAME(ho_jidosuの小学校名の項目)

    ターゲットフィールド:A27_003(ho_PublicElementarySchoolレイヤの小学校名の項目)

  3. ダイアログで[OK]→レイヤプロパティ画面で[OK]

属性テーブルを見てみます。無事、一番最後に読み込んだデータがくっつきました^^

_images/lesson4_4.jpg

ところで、もういちどレイヤプロパティを見てみます。

_images/lesson4_5.jpg

今、くっつけた情報が書かれています。

つまり、この状態だと、ho_PublicElementarySchoolのシェイプファイルにデータが書き込まれたのではなくて、 プロジェクトファイルの上にこのファイルとこのファイルをくっつけて使うよーと記述されたにすぎません。

ここで、ho_jidosuレイヤをプロジェクトから削除してしまうと、この情報も削除されてしまい、 ho_PublicElementarySchoolの属性テーブルからも児童数の項目はなくなってしまいます。

そのままで使ってもいいのですが、今回は新しいファイルに保存しちゃいます。

ho_PublicElementarySchoolレイヤで右クリック→「名前をつけて保存」

同じ名前で上書きできればファイルが増えなくていいのですが、失敗してしまうので、違うファイル名(ho_School)で保存します。

くっついたファイルが完成しました。

_images/lesson4_6.jpg

項目名は10文字でぶったぎられます。同じ名前になってしまうときは、最後の文字が連番にされます。

邪魔なので、ho_PublicElementarySchoolレイヤと、ho_jidosuはプロジェクトから削除しておきます。

6.4. 属性テーブルの項目名を編集する

ところで、前から気になってたのですが、属性テーブルの項目名がわかり辛いです。

QGISでは編集できないのですが、OpenOffice Calc等、dbfを編集できるツールを使えば可能です。

  1. OpenOffice Calcでho_School.dbfを開く。(プロジェクトを閉じておかないと編集不可モードになります)

    _images/lesson4_7.jpg
  2. 1行目が項目名。「項目名, 型, データ長」なので、「,型,データ長」を消さないように注意して、項目名を修正する。

  3. 1列目の項目はいらないので、消しておく。

    (2列めの項目も消したいが、テストを兼ねて長い名前をつけてみる。どうなったか確認したら、QGISの方で削除する)

    _images/lesson4_8.jpg
  4. 「選択した書式を保持」で保存、終了。

プロジェクトを開いて、属性テーブルを見てみる。

_images/lesson4_9.jpg

1つ目の項目がなくなって、「higasioosaka」が「HIGASIOOSA」と、10文字ぴったりでぶった切られました。 また、項目名がすべて大文字になっています。

ところで、結果も見たことだし、1列目はもういらないので、ここで消しちゃいます。

_images/lesson4_10.jpg

左端の鉛筆アイコンをクリック(編集モード切替)→編集用のアイコンがアクティブになる

→から4つめの「×」が描かれたアイコンをクリック(列削除)

→削除したい列を選択→[OK]


まあ、要は、やり方はいろいろあるんで、自分の好きなやり方で編集してね♥ということです。

6.5. 校区のレイヤを人数レベルで塗り分ける

ho_Schoolのレイヤプロパティを開いて、見た目を整えました。

・ スタイルをSVGマーカ/shopping/猫の手形にしました。

・ ラベルを「学校名(児童数)」にしました。(「”NAME” || ‘(‘ || tostring( “JIDOSU” ) || ‘)’」)

・ 色をピンクにしました。

_images/lesson4_11.jpg

このままでは寂しいので、校区の方も人数の多い少ないで塗り分けようと思います。

まずは、こちらも項目名がわかりにくいので、プロジェクトを閉じ、OpenOffice Calcで ho_SchoolDistrict.dbf を開いていらない項目を消して、項目名を修正します。

プロジェクトを開いて、プロパティを開き、結合でho_Schoolの人数を参照できるようにします。

_images/lesson4_12.jpg

ho_SchoolDistrictレイヤの属性テーブルにho_Schoolの項目がくっつきました。

_images/lesson4_13.jpg

ho_SchoolDistrictレイヤのプロパティを開き、スタイル→「段階に分けられた」を選んで児童数で色分けしてみます。

町の方は小規模な小学校が多いようです。校区が細かく分断されているせいに思います。昔、町が賑わってたころにたくさん建てたのでしょうか。

逆に成和小学校はすごいです。町中の小学校の10倍の児童が通っています。私立並みの大規模校ですね。どんな様子なのか見てみたいです。