QGISによるデータ分析(4)

この記事は1年以上前に書かれました。
内容が古くなっている可能性がありますのでご注意下さい。


横浜市に引越してから不便に思うのは、近くに図書館がないことです。そこで、QGISによるビジュアライゼーションと統計解析によって、神奈川県内の3つの政令指定都市(横浜市、川崎市、相模原市)を比較してみます。

面積カバー率
ここでは、図書館から半径1.5Kmの区域をその図書館がカバーしているものとし、市の面積のうち図書館によってカバーされている面積の割合を面積カバー率と定義します。

まず必要となるのは、位置情報付きの図書館一覧です。
横浜市の位置情報付き図書館一覧をよこはまオープンデータカタログ(試行版)横浜市統計ポータルサイトで探してみましたが見つからなかったため、横浜市立図書館一覧の住所をジオコーディングしてCSVファイルを作成しました。全部で18館あります。1区1館ですね。

同様に、川崎市の図書館一覧も川崎市立図書館のサイトにある図書館一覧の住所をジオコーディングしてCSVファイルを作成しました。分館や閲覧所を入れて13館あります。

相模原市については、相模原市オープンデータライブラリーに位置情報付きの公民館・図書館・ホールなどのCSVファイルがありました。
ダウンロードしたCSVファイルから、図書館と、図書室のある公民館を抜き出し、抜けていた青野原図書室を追加してCSVファイルを作成しました(図書室のある公民館の一覧は図書館のサイトにあります。これらの図書室では、ネットで予約した他館の図書の受け取りもできるため、図書館に含めて分析します)。

面積カバー率の算出手順は以下の通りです(細かい操作手順についてはQGISによる統計解析(2)およびQGISによる統計解析(3)を参照)。
● 図書館一覧のCSVファイルを[レイヤ]→[デリミテッドテキストレイヤを追加…]メニューで読み込む。このとき、「ジオメトリ定義」の「Xフィールド」で経度の列を、「Yフィールド」で緯度の列を指定し、「空間参照システム」では「WGS84」を指定する。
● 図書館一覧を、平面直角座標で表される座標系(JGD2000 / Japan Plane Rectangular CS IX)に変換する。
● 各市のSHAPEファイルを作成する。
● 各市のSHAPEファイルを平面直角座標で表される座標系(JGD2000 / Japan Plane Rectangular CS IX)に変換する。
● 各図書館から1.5Kmの領域のレイヤを[ベクタ]→[空間演算ツール]→[バッファ]で作成する。
● 各市のレイヤと、各図書館から1.5Kmの領域のレイヤとの差分を[ベクタ]→[空間演算ツール]→[差分]で得る。

以上の操作によって得られた横浜市のビジュアライゼーションは以下の通りです。緑色の領域は図書館から半径1.5Kmの地域、その他の地域はオレンジ色です。

圧倒的にオレンジ色の領域が多く、たまたま近くに図書館があればラッキー、という程度であることが分かります(ちなみに私はアンラッキーです)。

川崎市は以下の通りです。

横浜市と比べると、緑の領域が多いです。

相模原市は以下の通りです。

東部は緑の領域が、西部はオレンジ色の領域が多く、対照的です。
3市合わせて表示すると、以下のようになります(横浜市以外は色を薄く表示しています)。

Group Statsプラグイン(QGISによる統計解析(2)参照)を使用して各市毎に図書館にカバーされていない面積と総面積を求め、面積カバー率を算出すると以下のようになります。

1位 川崎市 43.4%
2位 相模原市 36.8%
3位 横浜市 27.1%

横浜市は最下位です。

人口カバー率
総人口のうち、図書館にカバーされた地域に住んでいる人口の割合を、人口カバー率と定義します。
人口カバー率は、人口メッシュを利用して求めることができます。
以下の図は、青の濃淡(人口が多いほど濃い)で表された人口メッシュに、図書館にカバーされていない横浜市の地域を赤の斜線で重ね合わせたものです。

図書館にカバーされた地域は比較的人口が多いようですが、カバーされていない地域にも人口の多い地域があります。

川崎市では以下のようになります。

東部の端にある図書館にカバーされない地域は、ほとんど人が住んでいないことが分かります。
面積カバー率よりも人口カバー率の方が良くなることが期待できます。

同様に相模原市でも、

西部にある図書館にカバーされない地域は、あまり人が住んでいません。

人口メッシュを用いて人口カバー率を求める手順は以下の通りです。
e-Statのダウンロードページから、「平成22年国勢調査-世界測地系(国勢調査-世界測地系500mメッシュ)」を選択し、地域選択で一次メッシュ「M5239」と「M5339」の「統計データ」と「境界データ」をダウンロードする。
● M5239とM5339のそれぞれについて、境界データ(SHAPE形式)を[レイヤ]→[ベクタレイヤの追加…]メニューで、統計データ(CSV形式)を[レイヤ]→[デリミテッドテキストレイヤを追加…]メニューで読み込む(統計データは「ジオメトリなし」を指定する)。
● 境界データと統計データを「KEY_CODE」で結合する。(境界データの各メッシュに人口の値が入る)
● 統計データを結合した境界データを、平面直角座標で表される座標系(JGD2000 / Japan Plane Rectangular CS IX)に変換してSHAPE形式で保存する。
● 変換した「M5239」と「M5339」の人口メッシュを、[ベクタ]→[データマネジメントツール]→[複数のシェープファイルを1つに結合する]メニューで結合する。
● [ベクタ]→[ジオメトリツール]→[ポリゴンの重心]で、結合した人口メッシュを、(矩形の行列から)点の行列で表されるレイヤに変換する(矩形が人口を保持していたのが、点が人口を保持することになる)。
● [ベクタ]→[空間演算ツール]→[交差]で、(人口を保持した)点の行列のレイヤと、各市のレイヤとの交差するレイヤを得る。Group Statsプラグインを使用して、各市毎の総人口を得る。
● [ベクタ]→[空間演算ツール]→[交差]で、(人口を保持した)点の行列のレイヤと、各市の図書館にカバーされない地域のレイヤとの交差するレイヤを得る。Group Statsプラグインを使用して各市毎の図書館にカバーされない地域の人口を得る。
● 各市毎に、図書館にカバーされない地域の人口と総人口から、人口カバー率を求める。

以上で得られた人口カバー率は以下の通りです。

1位 相模原市 92.6%
2位 川崎市 63.7%
3位 横浜市 35.2%

相模原市は素晴らしく良い数字です。面積カバー率は高くなくても、図書館にカバーされない地域は人口の少ない山間部であり、人口の多い地域には高密度で図書館を配置しているため、このような良い結果になっています。
横浜市も、面積カバー率より人口カバー率の方が若干良くなっていますが、それでも3人に2人は不便を強いられていることが分かります。ネットで予約した図書館の図書を、区役所その他の市施設でも受け取れるようにする等、サービス改善の余地があります。

追記
大まかな手順を図にすると以下のようになります(座標系の変換等は省いています)。

QGISによるデータ分析 123456789