一日一創ブログ、3000記事目!

正確には、0から始まっていたり、欠番があったり、2012年のは連番に含まなかったりしますが、キリ良い節目なID。 3000コのアプリ、一見途方も無く感じますが、毎日8年ちょっとやっていると理論上到達します。

記念日なので、年齢を使った自分だけの時を感じる、時計アプリ。年齢を聞かれた時、通常小数点以下を切り捨てて回答しますが、連続量として回答すれば、誕生日の近さも伝わって便利かも?

analog-age 自分時計
日付を設定すると、ブラウザ内に保存され、開くと誕生日の近さが分かる円グラフと共に、アナログ量としての年齢を知ることができます。 現在 41.92696321才、小数点以下8桁表示するとリアルタイムに成長を感じられることがわかりました。

const age = getAge(); txt.textContent = `${age.toFixed(8)}才`;

円グラフは、Chart.jsをESモジュール対応した、Chart.mjsを使ってサクッと描画。

let chart = null; const show = () => { const age = getAge(); if (chart) { chart.destroy(); } const dage = age - Math.floor(age); const data = [dage, 1 - dage]; const backgroundColor = ["#222", "#eee"]; const config = { type: "pie", data: { datasets: [{ data, backgroundColor }] }, }; chart = new Chart.Chart(canvas, config); };

一度設定した誕生日をブラウザ内に手軽に保存する localStorage、サーバーには送っていないことをソースで確認しましょう。

date.onchange = () => { const s = date.value; localStorage.setItem("analogage-age", s); show(); }; const sdate = localStorage.getItem("analogage-age"); if (sdate) { date.value = sdate; }

links
- 一日一創2012 timeカテゴリー

ハンコ廃止に、デジタル庁、日本もようやく変革の気運、高まってきました。
「まちづくりを自分ごとにする」スマートシティ講演で再認識した大事なこと。
鯖江市役所との接点はどうあるとステキか?理想のインターフェイス、創りましょう!

ハンコに変わる電子署名。
これが手軽にできる技術の相談、コネクトフリー久利寿氏と京都にて。

早速、その場でプロトタイピング。一度本人確認が完了していれば、スマホで水道を開閉手続きができちゃうはず。

ちょうど話題になった「婚姻届」のデジタル化。一人の手続きだけではできないので、どのようなフローがうれしいのか、楽しく悩めそうですね。 (二人からそれぞれ相手の公開鍵を付けて送信し、市役所で両方揃えば婚姻成立でOK!?)

IPv6で本人認証できたとしたら、手続き作成はとってもシンプル!(for Node.js / JavaScript)

import fs from "fs"; import http from "http"; import { USERS } from "./users.mjs"; const server = http.createServer(); server.listen(8060, "::", function () { console.log("listener"); }); server.on("request", function (req, res) { if (req.url.indexOf(".png") >= 0) { fs.readFile("./" + req.url, (err, data) => { if (err) { res.writeHead(404); res.end(JSON.stringify(err)); return; } res.writeHead(200, { "Content-Type": "image/png" }); res.end(data); }); return; } const addr = req.connection.remoteAddress; const user = USERS[addr]; console.log(addr, user); if (user) { res.writeHead(200, { "Content-Type": "text/html" }); res.write(`<meta charset="utf-8">`); res.write(`ようこそ${user.name}さん!`); res.write(`<h2>鯖江市民メニュー</h2>`); res.write(`<button>結婚する</button>`); res.write(`<button>水道を止める</button>`); res.end(); } else { res.writeHead(200, { "Content-Type": "text/html" }); res.write(`<meta charset="utf-8">`); res.write(`<h1>鯖江市民認証サービス</h1>`); res.write(`<img src=q.png height=100><br>`); res.write(`姓名:<input type=text><br>`); res.write(`住所:<input type=text><br>`); res.write( `<img src="https://chart.apis.google.com/chart?chs=140x140&cht=qr&chl=${addr}"><br>`, ); res.write(`EverIP: <code>${addr}</code><br>`); res.write(`本EverIPとあなたを鯖江市民として登録するサービスへ申し込みます<br>`); res.write(`<div>署名:_______________________(印)</div>`); res.write(`<button onclick="window.print()">印刷する</button>`); res.end(); } });

理想の窓口、いろいろつくっていきましょう!
src on GitHub / Code for Sabae

links
- 婚姻・離婚届の押印廃止検討 手続きオンライン化推進  :日本経済新聞

海外のサービスに、行政の支出先を見て、行政にも信用される会社はいいサービスだとして紹介するメディアがあって興味深い。 日本でも同様のサービスを実現するためのオープンデータがないかと探したところ、東京都の「公金支出」オープンデータを発見!

東京都 公金支出情報オープンデータ」(src on GitHub)
残念ながら支出先の記述がないので、業者選びの参考にはできませんでしたが、最低金額1円から部署ごとに記述してある1月あたり約4万件のCSVオープンデータはなかなかおもしろい。

公金支出CSVオープンデータ、注意点は行頭に名前が入っているので読み飛ばす必要があるのと、末尾3行に「※東京都情報公開条例に規定する非開示情報に当たるために非公開となった件数」という別のデータが含まれていること。 条例は「情報公開条例(全文) | 東京都議会」にありました。 どの項目に該当しての非開示なのか、いくらなのかはわかりませんが、公金支出合計が分かれば差額は計算できるはず。 開示請求によって開示の可能性や、理由が判明するかもしれません。

項目別金額を調べてみて、他の自治体と比較し、ヒントを見つけ、もっとうまくやりくりできるようになれば、地元自治体と喜びを分かち合えることでしょう!


Webinar「オープンデータで創るまち 〜スマートシティに足りないもの〜」にてオンライン講演。 誰もが対等に使える最強のメディア、ネット。ただ活用できている人は極わずか。

まちはすべての人の思いを、知っているわけがありません。
まちづくりのはじめのいっぽは、ひとりひとりがまちについて声を出すこと。
まち、こうだったらよくない?そんな会話を増やしてみましょう!

鯖江のIT技術力アップの取り組み、Hana道場の取材記事がでてました。
地域の大人が先生。地産地消・循環型のIT教育 | 他力本願.net | 人生100年時代の仏教ウェブメディア

鯖江市長選2020、投票率は61.63%となかなかの高さ。 2014年に若者にまちづくりへの関心を高めようとスタートした「鯖江市役所JK課」はもう7期生。 中止になった「さばえものづくり博覧会」の代わりに急遽企画された「バーチャルファクトリーツーリズム」のレポーターとして活躍!
さばえものづくり博覧会 2020 の中止と JK 課プロジェクトコラボによる「バーチャルファクトリーツーリズム」制作


バーチャルファクトリーツーリズム - さばえものづくり博覧会
できあがった動画のさばえものづくり博覧会のオープンソースなwebサイトへの組み込みコーディング(HTML)で少し貢献!(src on GitHub


レポートを終えたJK課7期生の言葉がステキです(メガネ編、25:10〜


今の鯖江市なら私はずっと死ぬまでここにいたい」NNNドキュメントより
JK課、1期生で、鯖江の料亭、御殿 當田屋の女将、栗田もも乃さん。 こども、若者、学生、大人、シニアまで、市民の誰もが参加できる鯖江の強さ。

NNNドキュメント「私たち…JK課~イマドキ女子だからできること~」 - YouTube
鯖江市役所JK課が始まったのは、2014年。市内の図書館混雑に着目してできたJK課企画のIoTとオープンデータ活用アプリ「さぼた」も紹介されていたFBC製作のドキュメンタリー。


鯖江市役所1期生からのアプリ開発の依頼を受けた会社として紹介されていた、jig.jp!Google Glassをかけてた時代!

動画での連携を図るため、商工会議所による事業所オープンデータに動画項目追加。
参加事業所の方、これから参加したい方、活用方法、探っていきましょう(さばえまっぷも)

鯖江の良い動画、改めてまとめていこうと思います。
sabae.cc 鯖江動画まとめ - YouTube
自分だけのプレイリストづくりも、手軽にできる創造です!

鯖江市の新市長となる佐々木さんに、2年ぶりに来鯖した、DX推進の専門家で地域情報化アドバイザー仲間でもある森本さんと一緒にお会いしました!

国でも地方公共団体でも、本格化するデジタル化(DX=デジタルトランスフォーメーション)。 鯖江のシビックテック団体、Code for Sabaeのテーマを実証から実用へ転換し、民間でできることはどんどん進めていくことにします。

NT鯖江のふりかえり、よかったことと改善点から、やること(TODO)を決めました。 早速、来年に向けたNT鯖江2021の出展募集サイトを立ち上げ、来場者向けのサイト「さばえまっぷ」プロジェクトをスタートしました。


さばえまっぷ
さばえものづくり博覧会オープンデータと鯖江市役所の公共施設オープンデータ(odp)をマッシュアップ! 県外から鯖江に来てもらえる人に、使いやすい情報とは?Code for Sabaeとして、みんなで育てていきたいと思います。ご要望、アイデアなど、ぜひGitHubの Issues へ書き込みください。

連呼のみ認められた、車上からの選挙運動。学校や病院だけでなく、子育て中の家庭、オンライン会議中の職場などへの配慮が必要ですね。

そもそも法的にはどうなのでしょう?
拡声器をつけた街宣車 警察の許可があれば問題ないが音量に規制も - ライブドアニュース」によると、実際は条例によるようなので、鯖江市条例を見てみます。 「Reiki-Base インターネット版」には検索機能がありません。

良い機会なので全文ダウンロードして検索できるアプリ「鯖江市条例検索」を作りました。

鯖江市条例検索
今日現在全部で599条例もありました。全部ダウンロードしてブラウザ上で検索しているので、ちょっと重いですが、ネットを使っていないので、電波を発してはいけない議場傍聴席でも使えます。

騒音」で検索すると、7件ヒットし、「鯖江市環境基本条例」によって騒音は公害と定義され、「公害防止条例」にて規制基準が書かれていました。


鯖江市公害防止条例施行規則 別表第2(第4条関係) 3 騒音に係る規制基準
備考に計測方法などもあってわかりやすいです!スマホで簡易的に計測できたら便利そうですね。 調べる便利なアプリもほしいところですが、分からないところでは第1種区域(閑静な住宅街)準拠が安全です。

第1種区域=第1種低層住居専用地域+第2種低層住居専用地域
第2種区域=第1種中高層住居専用地域+第2種中高層住居専用地域+第1種住居地域+第2種住居地域+準住居地域
第3種区域=近隣商業地域+商業地域+準工業地域
第4種区域=工業地域
その他の区域=前各号に掲げる区域以外で工業専用地域を除く区域
用途地域 – めがねのまちさばえ 鯖江市
どの場所がどの地域に指定されているかは、鯖江市用途地図全体図のPDFから確認可能です。(使いやすいオープンデータで欲しいですね)


キャンペーン · 鯖江市長選挙告示まであと数日。乳幼児の午睡=子育て中の貴重な時間に配慮した選挙カー街宣をお願いします! · Change.org
市民の声が早速、三候補者に届いたようです!(鯖江市長候補者比較サイト - 鯖江市長選2020 オープンデータ


オープンデータ選挙カー連呼スポット探しアプリ」 2015-06-28 「オープンデータ選挙カー連呼スポット探しアプリ 鯖江市議選スタート!


投票ポスターを廻れ!」2015-04-06 「投票ポスターを廻れ!

何か市役所に伝えたいことがあれば、写真と位置情報が付いて登録不要ですぐに連絡できるアプリ「さばれぽ」が便利です!

スマートな選挙でいきましょう!

會津価値創造フォーラム×KDDI「データをみせる、もっとつながる」と、Govtech Conference Japan #04「COVID-19 対策の官民協働」 へのオンライン登壇。 オープンデータの活用例を紹介しディスカッション。地域と政府と企業と個人、それぞれが取り組む方向性が見えてきました。 21世紀のデータ連携基盤は、中央集権型の何かサーバーではなく、web上にそれぞれが利用者視点に立って整備するオープンデータ。 それぞれが少し歩み寄り、型が決まれば、ソフトウェアでつながり、つながる程に便利に、強力になっていきます。

誰か任せではなく、ひとりひとり、企業ひとつひとつがちょっと前進させることが、全体で大きな力になるのが、webの世界です。


KDDIさん連携で実現した、會津価値創造フォーラムへのオンライン登壇。IchigoJam制御(DMX512WS2812B)の照明も合わせて準備万端!
(参考、會津価値創造フォーラムとKDDIによる包括的連携の協定締結式がLINK FORESTでおこなわれました。高専生にもオープンなまち鯖江、福井高専 x KDDI x エル・コミュニティ x jig.jp 包括協定!


会津、鯖江、徳島、筑波など、多拠点つないだオープンデータディスカッション。オープンデータの立役者、鯖江市役所 牧田さんも登壇!

ひとまず手軽に始めるオープンデータ、次の一歩にオススメしたい、オープンデータで自慢する地域!

就業ランキング - 2015年国勢調査版
福井県の社長率ナンバーワン、裏を取ろうと国勢調査2015年版を使ったアプリづくり。社長を含む役員率でいうとそう高くない!?人口で割って見るものかも? 分子と分母を男女別8区分から選べます。(国勢調査の用語解説、従業上の地位


日本全国から各都道府県別にいろいろチェックできます。気になるまちのランキング、地域での比較と考察が熱いです!


2015年役員率ベスト10(母数は就業者数)!高い方と低い方からベスト10の表示もあります。

続いて、Govtech Conference Japan #04!

出番前の待機、ブラウザだけでOK、配信はどんどん手軽になりますね!


支援制度の発信、とってもスムーズに開発できた #民間支援情報ナビ と、苦労した 新型コロナウイルス対策ダッシュボード を紹介。
わかりやすく見せるのもまた技術であり、ビジネスのコア。政府がどうがんばっても追いつけるわけもないし、追いつく必要もないので、正確で使いやすいCSVオープンデータでシンプルな情報発信がうれしいです!

長岡造形大学生による、Govteck Conference Japan #04 グラレコ!

支援制度の発信、オープンデータとオープンソースを使って、いろんな情報発信、取り組みましょう!


電子署名が鍵、押印不要化!
国勢調査もマイナンバーで実施できれば、紙を受け取る必要なかったのでは!?

ひとりひとりの行動で変えよう、日本DX!

links
- 一日一創から2アプリ掲載、オープンデータ登場数が倍増した総務省 情報通信白書 令和2年度版と郵便局の閉鎖率

政府からの広報の一つ、白書総務省の白書情報通信白書令和2年度版が公開されていました。 対策コロナダッシュボード#民間支援情報ナビ、2つのアプリが紹介されていました!


情報通信白書令和2年度版 概要」内にも発見! 多くの方に活用いただき何よりです。ただ、厚労省による毎日手動集計&PDF公開という非DXな状態が続いています。 第三波に向けてまだまだ続くコロナとの戦い、一段落した今こそ、都道府県によるCSVオープンデータ化とその活用、ぜひ進めましょう!


オープンデータを活用するシビックテック事例として紹介された「COVID-19 Japan 新型コロナウイルス対策コロナダッシュボード」。下記、本文一部テキスト化。

加えて、オープンデータの活用も今後の拡大が期待される取組だろう。
特に、新型コロナウイルス感染症の対策においては、シビックテックと呼ばれる、技術を活用して市民が中心となって社会課題を解決しようとする活動に注目が集まった。それらの動きの中には、多様な主体が有するデジタルデータを分かりやすい形で可視化し、対策に役立てようとするものが多くあった。
例えば、福井県鯖江市のソフトウェア開発企業jig.jpの会長で、内閣官房オープンデータ伝道師/総務省地域情報化アドバイザーの福野泰介氏が開発した「COVID-19 Japan 新型コロナウイルス対策ダッシュボード」*11には、都道府県別累計PCR検査陽性者数、累計退院者数、死亡者数、現在患者数、感染症病床使用率(参考値)などが示されており、関連機関が発表する一次データとリアルタイムに連動している(図表3-2-3-3)。


内閣官房IT総合戦略室、総務省、経産省、産業界、シビックテック団体とで連携して進めた #民間支援情報ナビ プロジェクト!やれることまだまだあります!

令和元年版の420ページから大きく増した、507ページのPDF。CC BY ライセンスのオープンデータとして活用可能です。 テキスト単語として登場する「オープンデータ」の数が、元年度版の37から78へと2倍増!関係する箇所をひとまず加工した画像で紹介します。(スマホでも読みやすく検索性高いHTMLやアプリ化、過去分との比較や、時系列でのまとめもいいですね)

2030年代の我が国のデジタル経済・社会の将来像は、データ主導型の「超スマート社会」への移行!包摂的で持続可能で高信頼、SDGsにも触れています。


安心・安全、高信頼の要、オープンデータの活用と情報セキュリティ。


「超スマート社会」とは?必要なデータのあり方と空気と人材像。


日本の多くのエンジニアに、行政連携によるオープンデータ、オープンソースの活用を広めた「東京都の新型コロナウイルス感染症対策サイト


スマートシティたかまつ」による、水位情報のオープンデータ化が紹介されています。治水、大事!


「ICTを活用した街づくり」「データ利活用型スマートシティの基本構想」には、オープンデータによるダッシュボード化とデータカタログ、バスロケの事例が図で掲載。 「地方版スマートシティ官民連携プラットフォーム」も欲しいですね!


オープンデータに関する課題は元年版とほぼ同内容。


2020年に向けたアクションプラン、今年のオリンピック中止決定前の記述の様子。


新生銀行グループ、セカンドサイトではスコアリングサービスにオープンデータを使用しているとのこと。オープンデータ都市に住んでいるかどうかも指標かも!? (参考、新生銀行グループの信用スコア「SXスコア」はオープンデータ活用で差別化 - dataway


郵便局オープンデータ!コンビニ、銀行、ガソリンスタンド、公衆電話、準公共な民間企業によるオープンデータへの期待は大きいです。


日本の郵便局閉鎖率と郵便局数 - 郵便局局数情報オープンデータ
出典:日本郵便株式会社Webサイトhttps://www.post.japanpost.jp/index.html
ExcelオープンデータをCSVオープンデータに加工し、存在はするけど営業していない閉鎖局を分子とした、都道府県別の郵便局閉鎖率や、区分別郵便局数が一覧して見られるアプリにしてみました。 もしオープンデータに、郵便局の緯度経度であるとマップで探せて便利で、営業時間があると閉まっていてがっかりすることがなくなります。


オープンデータに取り組む地方公共団体数の推移。目標は今年度中に100%です。


企業のDX推進も欠かせません。


オープンデータのり活用状況及び利活用意向
10%〜15%がすでにオープンデータを活用中!40%弱が活用を検討とのこと!
オープンデータは、21世紀を代表するインフラ、徐々に定着してきています。


オープンデータの課題と取り組み。CSVオープンデータからいきましょう!
(参考、Code for Shinjuku オープンデータの理想と現実と未来、厚労省都道府県別CSVデータに検査数追加

出典:「令和2年版情報通信白書」(総務省)

今期での引退を表明した鯖江市長、牧野さん9/11、最後の議会での挨拶。市長が大きくアピールした、市民主役のまち、ものづくりのまち、ITのまち、学生連携のまち、めがねのまち、鯖江。 大きく育てていきましょう!


鯖江市議会 第426回 令和2年9月定例会 9/11(委員長報告、採決) - YouTube(鯖江市長発言)

(前略)
国が電子行政データ戦略を策定したのが2012年の7月であります。その後2013年の6月にIT国家創造宣言を閣議決定をしております。 そういったことで国に国に先駆けてオープンデータ、あるいはITのまちに取り組んだことが、鯖江のITのまちの知名度につながったのかなと思っております。

そういった中で今日現在では行政の情報のオープン(データ)が216ございます。そして民間によるアプリ開発を含め250のアプリが開発されました。 まだ市民に定着したものは少のうございますが、いよいよ5G時代の突入でございます。AIロボットビッグデータの活用ががますます盛んになる今日現在こういった取り組みも先駆けて取り組んだおかげで サテライトオフィス誘致企業6社の進出にもつながって参ったと思っております。

学生連携のまちづくりでは、福井豪雨に発した京都精華大学の河和田のアートキャンプによりまして、今では首都圏の大学がこぞって夏休みの鯖江の方へ訪れて参ります。 そういったことで、現在では河和田に住所を移された方、お住みになっておられる方、あるいは河和田の企業にお勤めになっておられる方も延べ66人になりました。 こういったことでもこれらの事業がこれからますます進む土壌というものが、できつつあるのかなという風に思っております。
(後略)

世界に遅れをとっていることの危機感の表れ「世界最先端IT国家創造宣言」、遅れの原因は政府だけなく、ひとりひとり国民にもあります。 電話、FAX、紙、非効率と分かっていても昔からの慣習のままにしたツケを支払うのは、こどもたち。 現状維持は不可能と、SDGsで結論が出ています。

こどもプログラミング、GIGAスクール構想、デジタルガバメント、あらゆる層で思い切ったDX(デジタルトランスフォーメーション)が必要です。

2006年4月28日、鯖江市長に呼んでもらった「ふれあい談義ITベンチャー編」が鯖江市との関わりのスタートでした。 学生連携をITと組み合わせてもっともっと推進していきたいと思います。

Hana道場で、IchigoJamで基本を学んだこどもたちや、一歩先を学びたい大人向けにスタートした、JavaScriptプログラミング講座。 オープンデータを操るアプリ開発者が多数誕生予定!


さばえレシピガチャ
鯖江市のレシピオープンデータを使ったオープンソース教材を作りました。高校情報レベルですが、プログラミング言語の基本が分かっていれば、小学生でもいけるはず。 無料で使える言語、HTML/CSS/JavaScriptを使えば、世界中のPCやスマホ、タブレット、ゲーム機で動作する、オープンデータを活用したアプリが開発可能です。

下記のように、HTML/CSS/JavaScriptを1つのHTMLファイルに書くだけでアプリができます!

<!-- HTML --> <!DOCTYPE html><html><head> <title>さばえレシピガチャ</title> <meta property="og:title" content="さばえレシピガチャ"> <meta name="twitter:card" content="summary_large_image"/> <meta property="og:image" content="https://code4sabae.github.io/recipe/ogp.png"> <meta name="twitter:image" content="https://code4sabae.github.io/recipe/ogp.png"> </head><body> <h1>さばえレシピガチャ</h1> <button id=btn>ガチャ</button> <div id=src> データ出典:<a href=https://ckan.odp.jig.jp/dataset/202003003/resource/9f0a20d3-37cf-4b4e-b086-8291e0aa97d7>さばえ地場産野菜の料理レシピ</a> / <a href=https://data.city.sabae.lg.jp/>データシティ鯖江</a><br> </div> <!-- CSS(スタイルシート) --> <style> body { text-align: center; background-color: rgb(243, 138, 68); color: white; font-family: sans-serif; } h1 { font-size: 10vw; margin: 0; padding: 0; } button { padding: 2em; font-size: 200%; margin: .5em; } #recipe { border: 4px solid white; margin: 1em; padding: 1em; } a { color: white !important; } </style> <!-- JavaScript --> <script type="module"> import util from "https://taisukef.github.io/util/util.mjs"; window.onload = async () => { const url = "./sabae_recipe.csv"; const json = await util.fetchCSVtoJSON(url); console.log(json); btn.onclick = async () => { const sleep = util.sleep; recipe.innerHTML = ""; btn.textContent = "なにがでるかな...."; await sleep(1000); const r = json[util.rnd(json.length)]; btn.textContent = "ジャン!"; await sleep(500); btn.textContent = r.料理名; recipe.innerHTML = `<a href=${r.詳細URL}><h2>${r.料理名}(${r.人数})</h2></a><br>`; for (let i = 1; i <= 8; i++) { const z = r["材料" + i]; console.log(z, i); if (!z) { break; } await sleep(500); recipe.innerHTML += z + "<br>"; } await sleep(1000); btn.textContent = "つくってみてね!"; await sleep(3000); btn.textContent = "ガチャ"; }; }; </script> </body> </html>

(src on GitHub)
今後、世界中のこどもたちの常識となるプログラミング。やるかやらないかは本人次第、チャンスあふれるまち鯖江を大いに活かしましょう!


料理の写真、各素材の写真、数量と単位を分離したデータ形式、日本語以外の言語対応など、一度作ってみるといろいろと拡張したいアイデアが膨らみます。 自由にデータを追加したり、変更できるのがオープンデータのいいところ。公園の遊具同様、思う存分、誰に断ることなく大いに遊びましょう!

links
- 【事例付き】ビッグデータ時代に持つべき”データ活用に必要な視点”とは オープンデータ伝道師インタビュー | 宙畑
- じぶんのウェブサイトをつくろう! 13才以上なら誰でも無料で持てるホームページ&HTMLとCSSはじめのいっぽ

厚労省からの都道府県別の新型コロナ患者状況を日次で公開されるみなしオープンデータ。 データ形式は、テキストPDFデータ。ツールを用いてテキスト化し、数値を抽出、チェックして更新するのが日課。

COVID-19 JAPAN - 都道府県別 新型コロナウイルス陽性患者数)

先日、該当ファイルが急にベクトル画像PDFとなって変換エラー。 JUST PDF4の助けを借りて、2日間を乗り切り、その後は再びテキストPDFに戻って事なきを得た。 ただ、もう発生しないとは限らないので、自動化できるツールを用意しておいた。

変換アルゴリズム
1. PDFファイルを画像化(pdf2png)
2. 画像から特定位置の数字画像を数値化
3. CSVファイルとして出力

1. macOSでは、PDF操作用のクラスがあって変換は簡単にできる。 発見した、Objective-Cによる実装、pdf2png.m by typester をCatalinaでもコンパイルできるよう調整、背景を白塗りつぶし、解像度を上げて保存するように改良した。(pdf2png.m on GitHub Gist

gcc --std=c99 -Wall -g -o pdf2png pdf2png.m -framework Cocoa

2. まずは文字画像を抜き出す。白かどうかを縦横でチェックし、1文字を抽出。0から9までの数を画像ファイルとして手動で集める。 続いて、数字が書かれているる領域を特定。レイアウトは固定のようなので、必要箇所を決め打ちで走査することにし、前述と同様の手順で抜き出した画像と0から9までの画像の一点ずつを単純に差分をとった合計値を計算し、一番差分が少ないものがその数値だと判定するプログラムをつくる。 手書き文字認識の場合、ニューラルネットワークなどを使うといいが、元のフォントが同じなので、安定性は高いはず。(src on GitHub)

3. 抽出したデータで合計値で検算。簡単なエラーチェックにもなって、安心度アップ。

罫線を自動的に認識させると、より汎用的に使えていいかもしれない。OCRを使わないで済む、CSVオープンデータとしてもらえるのが一番だが、オープンデータであればなんとかできる武器は多いに越したことはない。

困ったときにどうにかできるスキルを磨くのにオススメ、中止になった高専プロコン競技部門を勝手につくるオープンソース企画「囲みます」。 強いAIアルゴリズムを考えて、実装して、楽しく対戦して遊んでいる内に実装力つきますよ!


データ出典:オープンデータ|厚生労働省(新型コロナウイルス感染症について)
第三波はどうなるか!?

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS