WEBアプリをHerokuからGoogle Cloudに移動

以前に公開した市町村別色分MAPはあまり利用されていないので、Google Cloud Runに無料枠に収まりそうなので、Herokuから移動した。

Herokuはそのうち削除する。

Cloud Runはコンテナを自分で作らないといけないので、GitHubにソースをアップしそれからコンテナを作る方法でデプロイした。

 

populationmap-fwnea4ujuq-an.a.run.app

 

kanjitest-fwnea4ujuq-an.a.run.app

全国医療機関リスト

全国の医療機関のリストを作成してみた

 

医療機関の情報は各地方厚生局で都道府県の情報として管理されている。

そのデータをコンピュータ処理しやすい形式に変換して、1つにまとめて全国のリストにしてみた。(2023年6月時点の最新データ)

Google スプレッドシートで公開してみる。

docs.google.com

 

データ形式について】

元のデータは以下のフォーマット

EXCEL
  • ヘッダがないので、情報の意味が不明(PDFがあったのでそこから類推できた)
  • 1つのデータが複数行にわたり、しかも固定の行数ではない。
  • 1つのセル(列)に複数の異なる情報が入っている
    電話番号と勤務医の人数、病床数と診療科、が同じ列に混在

複数の情報が混在しているのを、1つずつのセルに分解&1データ1行の形式に変換する

 

●勤務医数のデータ形式の整理

●病床数のデータ形式の整理

変換後のEXCELは以下のようにした

出力フォーマット

【必要データの追加】

  • 市町村別の集計が容易になるように、都道府県、市町村名を抜き出したセルを作成
  • 開設者から、病院の種類(国立、公立、大学病院付属、日赤、済生会などの準公立病院など)の分析が可能なように開設者を区分したセルを作成

 

【元になったデータ】

以下のURLにあるデータを使用

北海道厚生局
https://kouseikyoku.mhlw.go.jp/hokkaido/gyomu/gyomu/hoken_kikan/code_ichiran.html

東北厚生局
https://kouseikyoku.mhlw.go.jp/tohoku/gyomu/gyomu/hoken_kikan/itiran.html

関東信越厚生局
https://kouseikyoku.mhlw.go.jp/kantoshinetsu/chousa/shitei.html
東海北陸厚生局
https://kouseikyoku.mhlw.go.jp/tokaihokuriku/newpage_00287.html
近畿厚生局
https://kouseikyoku.mhlw.go.jp/kinki/tyousa/shinkishitei.html
中国四国厚生局
https://kouseikyoku.mhlw.go.jp/chugokushikoku/chousaka/iryoukikanshitei.html
四国厚生支局
https://kouseikyoku.mhlw.go.jp/shikoku/gyomu/gyomu/hoken_kikan/shitei/index.html

九州厚生局
https://kouseikyoku.mhlw.go.jp/kyushu/gyomu/gyomu/hoken_kikan/index_00006.html

Webアプリ更新

以前公開した「市町村人口別色別地図」と「100人の村にしてみたら」を統合して一つのWebアプリにし、機能追加もしてみました。

また、HTMLやCSSも勉強してスマホでも使える程度に調整したつもりです。

vilof100ppl.herokuapp.com

  • 市町村別地図上で市町村をクリックし、それを「100人の村にしてみたら」で見ることができる
  • 市町村地図で表示している「色分け項目」の上位50の市町村にマークできる。 (総人口を選択していたら、総人口の上位50の市町村にマーク)
  • 同様に下位50の市町村にもマークできる
  • 市町村地図で表示している「色分け項目」のカテゴリ別の市町村数を表示できる
    (色別の市町村数がわかる)
  • 「100人の村にしてみたら」を必要なものだけのコンパクトなものに変更
  • 「100人の村にしてみたら」に全国および都道府県内順位を表示
  • 「100人の村にしてみたら」に100人の村の広さの全国、都道府県平均との比較イメージを追加
  • 「100人の村にしてみたら」の「連続」は都道府県内の全市町村を自動的に連続で表示します。

北海道占冠村、東京都青ヶ島、父島は人口は少ないのに生産年齢比率が高い。(外国人が多いようだ)

マークしながら見ると面白いです

 

市町村の緯度経度データ(複数のPDFファイルからデータ抽出)

この記事で説明すること

国土地理院都道府県別に提供されている市町村庁舎の緯度経度情報はPDFになっています。

EXCELのPowerQueryを使って、都道府県別の47個のPDFから市町村庁舎のデータを抜き出し、全国のデータとして一つに結合したEXCELテーブルを作成しました。

プログラムを書かなくてもEXCELがあれば複数ファイルからのデータ抽出&結合ができるので、手軽な方法&応用の利く方法として紹介します。

データの目的

市町村別人口色別地図で市町村にマーカーを付けるとき、マーカーの場所(緯度、経度)を決める方法として

  1. 市町村の重心にする : 地理的(図形的)な中心部にマークされる
  2. 市町村庁舎の場所にする : 地理的な中心ではない端の位置につく場合がある

が考えらえます。

重心を計算するためには、市町村の外周(ポリゴン)データが必要で、国土地理院から入手できるようですが、データが大量になるし計算も面倒そうなので、安易に2の方法を選択しました。

2を実現するためには、市町村庁舎の緯度経度情報が必要です。

ネット上にはいくつかデータが提供されているようですが、なるべく公的なデータを使いたいので、国土地理院のデータを使うことにしました。

 

利用したデータ

日本の東西南北端点の経度緯度 | 国土地理院

の中の「都道府県及び市区町村の東西南北端点の経度緯度」のデータを使用します。

都道府県別にPDFファイルが提供され、PDFの中には県、市町村別に表が記載されています。

PDFの一部

参考:

 国交省GISホームページの「国土数値情報 | 市町村役場等及び公的集会施設データ」には、市庁舎だけでなく支所など位置などの詳細なデータも存在します。

 

加工方法

以下のような簡単な手順で作成できます。

  1. PDFのダウンロード
    47個のPDFファイルを一つのフォルダーにダウンロードします。
  2. 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は個別に処理をしてこのテーブルにデータ追加する必要がある!