Webアプリ更新
以前公開した「市町村人口別色別地図」と「100人の村にしてみたら」を統合して一つのWebアプリにし、機能追加もしてみました。
また、HTMLやCSSも勉強してスマホでも使える程度に調整したつもりです。
- 市町村別地図上で市町村をクリックし、それを「100人の村にしてみたら」で見ることができる
- 市町村地図で表示している「色分け項目」の上位50の市町村にマークできる。 (総人口を選択していたら、総人口の上位50の市町村にマーク)
- 同様に下位50の市町村にもマークできる
- 市町村地図で表示している「色分け項目」のカテゴリ別の市町村数を表示できる
(色別の市町村数がわかる) - 「100人の村にしてみたら」を必要なものだけのコンパクトなものに変更
- 「100人の村にしてみたら」に全国および都道府県内順位を表示
- 「100人の村にしてみたら」に100人の村の広さの全国、都道府県平均との比較イメージを追加
- 「100人の村にしてみたら」の「連続」は都道府県内の全市町村を自動的に連続で表示します。
北海道占冠村、東京都青ヶ島、父島は人口は少ないのに生産年齢比率が高い。(外国人が多いようだ)
マークしながら見ると面白いです。
市町村の緯度経度データ(複数のPDFファイルからデータ抽出)
この記事で説明すること
国土地理院で都道府県別に提供されている市町村庁舎の緯度経度情報はPDFになっています。
EXCELのPowerQueryを使って、都道府県別の47個のPDFから市町村庁舎のデータを抜き出し、全国のデータとして一つに結合したEXCELテーブルを作成しました。
プログラムを書かなくてもEXCELがあれば複数ファイルからのデータ抽出&結合ができるので、手軽な方法&応用の利く方法として紹介します。
データの目的
市町村別人口色別地図で市町村にマーカーを付けるとき、マーカーの場所(緯度、経度)を決める方法として
- 市町村の重心にする : 地理的(図形的)な中心部にマークされる
- 市町村庁舎の場所にする : 地理的な中心ではない端の位置につく場合がある
が考えらえます。
重心を計算するためには、市町村の外周(ポリゴン)データが必要で、国土地理院から入手できるようですが、データが大量になるし計算も面倒そうなので、安易に2の方法を選択しました。
2を実現するためには、市町村庁舎の緯度経度情報が必要です。
ネット上にはいくつかデータが提供されているようですが、なるべく公的なデータを使いたいので、国土地理院のデータを使うことにしました。
利用したデータ
の中の「都道府県及び市区町村の東西南北端点の経度緯度」のデータを使用します。
都道府県別にPDFファイルが提供され、PDFの中には県、市町村別に表が記載されています。

参考:
国交省のGISホームページの「国土数値情報 | 市町村役場等及び公的集会施設データ」には、市庁舎だけでなく支所など位置などの詳細なデータも存在します。
加工方法
以下のような簡単な手順で作成できます。
- PDFのダウンロード
47個のPDFファイルを一つのフォルダーにダウンロードします。 - EXCELを起動し、PowerQueryで47ファイルからデータを抽出
EXCELのPowerQueryではフォルダ内の複数ファイルをまとめて取り込んで加工する機能があります。
2の詳細手順
事前確認(準備)
EXCEL 2016以降のバージョンはPowerQueryが最初から利用可能ですが、EXCEL2013ではPowerPivotアドインのインストールが必要です。

1)フォルダーを指定して全ファイルの読み込み
上図のデータメニューの一番下にある「フォルダーから(F)」を選択
フォルダ選択ウィンドウが表示されるので、PDFをダウンロードしたフォルダを選択する
2)フォルダのファイル一覧が表示されるので「結合」->「データの結合と変換」を選択

3)サンプルファイルとテーブルを選択
次以降のステップで複数ファイルを結合するための手順を決めていく。
そのためのサンプルファイルとテーブルを選択する

4)PowerQueryが起動されるので、テーブルデータ抽出&ファイル結合をする
下図のようにフォルダー名が付いたクエリが表示されている画面が表示されます。
この画面で、PDFの中の複数テーブルからデータを抽出する処理を編集していきます。

以下に手順にそって処理手順画像を張り付けておきます。
Step1.サンプル処理の編集(不要ステップ削除)

Step2.PDFの中のテーブルだけを対象にする

Step3.PDFの中のテーブルをデータに展開する

Step4.不要列の削除

Step5.データ項目名”市町村”を作るための加工

Step6.不要列の削除

Step7.表を最終形に変換

最終形の変換結果

Step8. 全ファイル結合処理の修正
フォルダー名のついたクエリが、全ファイルマージ処理になっている。
自動生成された処理の中の不要なステップでエラーになっているので、それを削除。

完成形
完成したら「閉じて読み込む」を選択し、最終形をEXCELのテーブルとして読み込む

EXCELのテーブルとして読み込んだ結果
全国の市町村のデータが一つのテーブルに変化された
※島根県のPDFだけはこの結合処理で正常に処理できない!
島根県のPDFは個別に処理をしてこのテーブルにデータ追加する必要がある!

役場本庁舎が行政区域内に無い町村!?
市町村人口色別地図で人口の少ない市町村TOP50にマークを付けてみると、鹿児島市にマークがついています。
鹿児島市がTOP50に入るはずがない!バッグったか?
市町村にマークを付ける場所として、市町村庁舎の緯度経度を調べて、そこにマークをつけています。マークの場所も鹿児島市の市庁舎と少しずれている気がします。

地図を拡大してみると、うっすらと「十島村役場」という文字が見える。

吐噶喇(トカラ)列島の十島村と三島村は鹿児島市に役場があるということのようです。
そのため、十島村、三島村のマークを村役場につけると鹿児島市についてしまうということになりました。
鹿児島県民や地理好きの人には当たり前の知識なんでしょうが、こんな地図を作らない限り知りえない情報でした。
「沖縄県八重山郡竹富町が石垣市に役場を置いている。過去には青森県下北郡東通村も隣接するむつ市に村役場を置いていた」ということです。

市町村人口別色別地図
総務省 令和4年8月9日 発表の「住民基本台帳に基づく人口、人口動態及び世帯数(令和4年1月1日現在)の市町村別人口データを入手したらとっても面白かったので、色々分析してみた。※大規模な機能改善を実施したので、記事を書き直した。(2022.11.10)
結果を市町村別に色分けする方法を調べたら埼玉大学 谷先生作成のMANDARAというソフトが大変便利なソフトだったので、これを使って各種カテゴリでの色分け地図を作ってみた。
以下をクリックするとWebアプリが開く。最初は少し時間がかかる。
↓↓↓↓↓↓↓↓↓
市町村人口色別地図 http://vilof100ppl.herokuapp.com
アプリの概要

●7種類の色分け地図が見られる
総人口別、人口密度別、生産年齢人口比率、老年人口比率、後期高齢者人口比率、
鉄道駅の有無、100歳以上人口
●データ一覧が表示できる
色分けの元になっている市町村別のデータを表形式で確認できる。
データの絞込み機能、ソート機能、マーカー作成機能を実装。
「XX県だけやXX市だけのデータを見る」、「人口密度 順にソートする」というようなことが可能。また、絞りこんだデータの市町村を地図上にマークする機能もあるので、ランキングを地図上でも確認できる。

- 市町村=埼玉県 で絞り込む
- 「人口密度」の降順にソートする
- 表のNo.が順位になるので、埼玉県の人口密度ランキングが確認できる

「マーカー作成」で地図上に順位付きのマークが表示される。TOP10は赤色、11位以降は青色のマーク
全国の生産年齢人口比率ランキングなど他も簡単に作成できる。

重ね合わせる地図はマークと無関係なので、自由に色分け地図と組み合わせが可能。
色分け地図が目障りな場合には、色分け地図を非表示にしマークだけにもできる。

ベースの地図は国土地理院から提供されている、標準地理院図、淡色地図、色別標高図が選択できる。
使用しているデータについて
- 人口データ:総務省「【総計】令和4年住民基本台帳年齢階級別人口(市区町村別)」 総人口なので、外国人も含む
- 市町村面積:人口密度を計算するための市町村の面積は、国土地理院が公開している「全国都道府県市区町村別面積調」の令和4年7月1日版
- 鉄道駅の情報:駅データ.jp(https://www.ekidata.jp/)の最新データ
色別地図を作成したソフト
埼玉大学教 谷謙二先生作成のMANDARA(https://ktgis.net/mandara/index.php)
を使用しました。MANDARAはLeaflet用にJavescriptが出力できるので、これとLeafletを使って機能追加しました。
Herokuは間もなく無償サービスが終了するので、いつまで公開できるかわからないけど、触っていると地理の勉強にもなり面白い。
興味があればぜひアクセスを!
今日のイラストはがき
はがきの表と裏のイラスト部分だけ切り出しました。


暑中見舞(イラストはがき)
いつも知り合いから届く素敵なイラストはがき
今回は暑中見舞です。


はがきウラ