福野泰介の一日一創 - create every day

自治体オープンデータの意義は、自治体の仕事を減らし、民間企業による豊かさの創出!


オープンイベントさいたま
埼玉県オープンデータ」で唯一の4つ星オープンデータ、RDFで提供されていた広報情報オープンデータをjig.jp、この夏のインターンに参加する高専生による作品「福井県のイベント (src on GitHub)」を埼玉化。 自治体による広報の仕事を減らせるかも。

RDFにもターゲット情報が入っていれば、若者や、高齢者など、対象別に見やすいアプリづくりもできるので、一層伝わりやすくなります。 Vue.jsを使ったモダンで見やすいアプリづくりは、地域の高専生や、JavaScriptが使える小中学生にとって良いネタにもなります。


オープンデータを庁内で広めるオープンデータリーダーを育成する総務省企画「オープンデータリーダ育成研修
自治体の中でやっている繰り返される仕事、オープンデータで効率化できませんか?
イノベーションのはじめのいっぽは、当たり前に疑問を持つこと。
今までを変える意識と行動力を持つ人、それがリーダーです。
教材はオープンデータ、今すぐ、行動を!


オープンデータによる連携を活かす、11万件もの公園データを提供する「PARKFUL
公園の設備を提供する会社、株式会社コトブキとの連携がおもしろい!


東さんによるオープンデータ講義。震災での反省から始まったオープンデータ。避難所データがオープンデータではないと、活用するために問い合わせが必要。実際に30箇所問い合わせて、OKの返事はたった9。 事実、災害時にサーバーがダウンしていて避難所データにすらたどり着けな事態が未だに発生しています。


ネット時代、データを広く共有するコストが劇的に下がりました。まだまだ市民意識が追いついていませんが、まずはデータがあれば、楽しく可視化するアプリが生まれ、広まります。 アプリを誕生させるためには、開発者にとって優しく横展開が可能でうれしい「5つ星オープンデータ」が必須!


鯖江市のオープンデータ産みの親、牧田さんに会ったことがきっかっけで、自分でなんでもやっちゃうことにしたという、埼玉県深谷市の斉藤さん! 「ふかやMap」から様々な位置情報付きデータをオープンデータとしてダウンロードできます。


odp - オープンデータプラットフォーム
5つ星オープンデータはじめのいっぽに、避難所データをExcelでまとめてアップロードするだけ。無料です。

さまざまな業務課題や、社会を豊かにする取り組みへのチャレンジに向けて、まずは最小限の手間で、5つ星オープンデータ化と、データをアップした瞬間に動くアプリをご体験を!

5つ星オープンデータ対応避難所ナビアプリ「ヒナンパス

600万円、これは世界一高い参議院選挙立候補に必要な供託金(市議選は30万円)。
第25回参議院選挙の投票日は7/21。 前回投票日の2016年7月10日の投票所と人の流れをTellusで見てみました。


Tellus ver 1.1 によって追加された、位置情報データ「Profile Passport」を使って、投票日7/10の10時時点(日本時間はUTC+9時間)を品川区の5つ星オープンデータ、投票所と組み合わせて表示した図。 もう一歩分解能がほしいところですが、投票所への人の流れがわかるかも?通常の日曜日との比較なども可能です。


鯖江市の選挙ポスター掲示場、オープンデータと宇宙データ、だいち(ALOS)のセンサーAVRIR-2による植物活性度を重ねたもの。鯖江市の東側、自然豊かな場所にあることが一目瞭然。


Tellusを使った分析は、Jupyter Notebookや、後継サービスJupyter Lab上のPythonで行います。
5つ星オープンデータを集約する opendata.cc のAPI、SPARQLを呼び出し、GeoJSONにしてpostするとTellus上の「取り込みマップ」として表示できます。

API_TOKEN = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # Tellus マイページ、APIアクセス設定で生成したトークン import json, requests, urllib.parse URL = "https://api.tellusxdp.com/v1/geojson-files" def get(id = ""): return requests.get(URL + "/" + id , headers = { "Authorization": "Bearer " + API_TOKEN }).json() def post(data): headers = { "Authorization": "Bearer " + API_TOKEN, "Content-Type": "application/json" } return requests.post(URL, headers = headers, json = data).json() def delete(id): return requests.delete(URL + "/" + id, headers = { "Authorization": "Bearer " + API_TOKEN }).json() SPARQL_ENDPOINT = "https://sparql.opendata.cc/data/sparql?output=json&query=" def sparql(query): url = SPARQL_ENDPOINT + urllib.parse.quote(query) return requests.get(url).json() def toGeoJSON(res): fs = [] for d in res["results"]["bindings"]: f = { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ d["lng"]["value"], d["lat"]["value"] ] } } if "name" in d: f["properties"] = { "name": d["name"]["value"] } fs.append(f) return { "type": "FeatureCollection", "features": fs } def addLayer(rdftype, layername): gj = toGeoJSON(sparql(""" select ?uri ?name ?lat ?lng { ?uri <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <""" + rdftype + """>. optional { ?uri <http://www.w3.org/2000/01/rdf-schema#label> ?name. } ?uri <http://www.w3.org/2003/01/geo/wgs84_pos#lat> ?lat. ?uri <http://www.w3.org/2003/01/geo/wgs84_pos#long> ?lng. } """)) #print(gj) post({ "originalName": layername, "transparency": 1, "windowNumber": 1, "data": gj }) addLayer("http://odp.jig.jp/odp/1.0#Polls", "odp 投票所") addLayer("http://odp.jig.jp/odp/1.0#PosterPlace", "odp 選挙ポスター掲示場") print("ok")

rdftypeに設定するデータ種別と対応地区は「5つ星オープンデータ対応一覧表」をご参照ください。


Tellus x オープンデータ、いろいろ遊んでみましょう!

A project started to translate the documents of IchigoJam for English speakers from a member of IchigoJam-FAN.
I added descriptions in broken English to IchigoJam doc opendata, and updated apps.

"IchigoJam BASIC command list" also for printings

I'd be glad if you sent me a comment in cool translated words!
"IchigoJam doc repository on GitHub"

5つ星オープンデータとして規格化しておくと、自分で使うときにも便利!

大人には便利なアプリですが、スマホを持っていない小学生には紙、大事。
アプリと同じオープンデータを使って紙出力版を生成するwebアプリを作りました。

IchigoJam BASIC コマンド一覧 (印刷用)PDFダウンロードはこちら
やさしい順に並んでいますが、ABC順カテゴリ順としても表示可能。お好みでどぞ!


IchigoJam BASIC コマンド一覧アプリ
カテゴリデータ、優先順位データなどを追記したので、アプリも合わせてバージョンアップ。機能ごとの簡単にチェックできるようになりました。 sabae.cc語彙も少し成長。

オープンデータはGitHub上にあります「IchigoJam/doc: documents of IchigoJam
issuesを使ったコメント、プルリクなど、大歓迎です!
次は英語化?

そろそろリリース、IchigoJam BASIC 1.4。
高専生、大学生など、スマホを持っている人にもわかりやすいリファレンスづくり、スタート。


IchigoJam BASIC コマンド一覧
ソースはGitHubにありますので、追記翻訳など、プルリク、コントリビューター希望、歓迎です。
1.4搭載予定のコマンドや、使い方も含まれています。


CSVデータ
schema.orgの語彙と、足りない気がしたものはsabae.cc語彙を作って補っています。

ichigojam-1.4.0b01.zip
- POINTで文字がある場所をチェックした場合1を返すように変更

総額3700万円をかけた一大イベント、鯖江市議選「SABAE20総選挙」スタート!
候補者25人から今後4年、10億円をかける鯖江市議会の運営メンバー20名が決まります。(議員報酬1人あたり3400万円)
福野あおい 鯖江市議会議員 — 鯖江市議会議員選挙

鯖江市の未来を担う、20名のポートフォリオを決定するのに、1名だけを選ぶという不思議な選挙制度ですが、現行ルールなので仕方ありません。
Code for Sabae として、候補者一覧オープンデータ(CSV-utf8)デジタルポスター掲示版アプリをひとまず開発しました。 いろんなアプリを作って盛り上げましょう!(ハッシュタグ #sabae20


SABAE20総選挙2019 鯖江市議候補者デジタルポスター&オープンデータ
ダブリンコアに習って、sabae.cc語彙を作りました。schema.orgにないものを勝手に作っていきます。

選挙カーを使う候補者の方、前回の2015年選挙時につくったアプリをご活用ください!

選挙カー連呼スポット探しアプリ
オープンデータ選挙カー連呼スポット探しアプリ 鯖江市議選スタート!
* 認められているのは、8時〜20時、学校・病院・診療所その他の療養施設の周辺以外、連呼行為(車上の連呼以外は公職選挙法違反です)

各地で欲しいとの声多数。地方公共団体の方、学校と病院オープンデータ、ぜひ5つ星オープンデータ化してください。(odpへの登録いただければ、即アプリに反映されます)

投票日は、6/30日曜日です
鯖江市議会議員選挙のお知らせ – めがねのまちさばえ 鯖江市

宇宙と科学のシンポジウム、ISTS福井大会の展示期間が終了。IoT人流カウンターの値を集計してみました。

ほぼ一人ずつ通過する場所に設置し、精度良くデータが取れた、8Fの上りエスカレーター出口のデータを、10分置きにカウントをとって、簡易的にグラフにしたもの。

確かに人が少なかった月曜日の様子や、セッションのはじまり時間に合わせて流量が増えている様子がデータにも現れています。データを蓄積して、イベントデータと共に解析すると、優位な予測や、取り組みの効果測定に十分使えそうです。


こちら5日分のまとめ。


8Fに4箇所設置した、値を半分にして推定のべ人数としています。実際にはその場で立ち続けている人を重複カウントしたり、まとまって通った数を1として数えたりするので、あくまで目安です。

import csv def ana(fn, m, w): with open(fn) as csvfile: reader = csv.reader(csvfile) cnt = 0 bkd = None for row in reader: datetime = row[0] module = row[1] value = row[2] if m == module: #dt = datetime[0:13] # 1時間単位 dt = datetime[0:15] # 10分単位 if bkd is None: bkd = dt elif bkd == dt: cnt += 1 else: #w.write(bkd + "," + str(cnt) + "\n") # csv for 1時間単位 w.write(bkd + "0," + str(cnt) + "\n") # csv for 10分単位 bkd = dt cnt = 0 if not bkd is None: w.write(bkd + "," + str(cnt) + "\n") # csv fn = "ists-fukui2019.csv" modules = { "uZwuY2G0vn7C": "1FJ", # 1FJAXA内", # BSCM-B28 "uAbs00TuPz23": "5FR", # 5F展示 右", # BSCM-B94 "u52oJ7ReEICB": "5FL", # 5F展示 左", # BSCM-A00 "uXaXTQ866fqt": "8FU", # 8F上りエスカレーター", # BSCM-C07 "uKIpvNgHMhMZ": "8FD", # 8F下りエスカレーター", # BSCM-C12 "urBprjzYcYx8": "8FL", # 8Fエレベーター左", # BSCM-B27 "uHJqMGJf3tJ6": "8FR", # 8Fエレベーター右", # BSCM-B90 } for m in modules: print("analyze:", m, modules[m]) w = open("data-" + modules[m] + ".csv", "w") ana(fn, m, w) w.close()

人流センサーのローデータ CSV を解析するPythonプログラム(参考、Python3でCSVほか)


1F JAXAに設置していたカウンター(テレビの下)

IchigoJam x sakura.io を使った、IoT人流カウンターはオープンソース
福井x宇宙! 200円測距センサーとIchigoJamで作って実験、ISTS福井大会用、IoT入場者数カウンターとリアルタイムオープンデータ

観光地、施設出入り口、市役所の窓口など、いろいろ活用ください!
AI、EBPM、RPA、何を使うにしても、改善するなら、まずは計測しましょう!

ISTS福井、展示最終日。JAXAのロボ、健気くんの動く動画撮影に成功!

旋回、かっこいい!


AOSSA 1F JAXAブース


今回は人間の手によるリモートコントロール。こちらがそのコントローラー。ラジコンですね!


ホリエモンロケットこと、MOMO3のスケール模型。VR化も楽しめる、3Dオープンデータ化ほしい!
北海道でも、衛星データの利活用、進めていました。Tellusでの連携もしたいですね。


こどもワークショップ向けロケット、モデルロケットというものがある!
IchigoJamでデータ取得して、解析実験も楽しそう。


現実化していくアニメの世界、宇宙で活躍するカメラロボ「Int-Ball」


Raw Data Now!! 「ists-fukui2019.csv.zip
展示5日間の人流センサーによるカウント記録。ノイズ除去など解析前ですが、ひとまずローデータ、CSVにて公開します!
解析してみたい方、どうぞ!

第32回宇宙技術および科学の国際シンポジウム(ISTS)福井大会、初日!
宇宙からの目「Tellus」と地上の目IoT/オープンデータとの組み合わせを展示する jig.jpグループ、B Inc. ブースへ、IchigoJam使っている中学生、科学の子たちの訪問!

CanSat(缶サット)という200m以下の低高度で人工衛星っぽいことをトライ中、IchigoJamにセンサーつなぎデータ記録に使う予定とのこと。 Tellus、Oculus Questで見る未来に目を輝かせてました。

こどもだって宇宙学会発表!ジュニアISTS、こちらで発表していた中学生でした。福井高専チームも落下してから自動的に戻ってくるロボットで参戦!鯖江でもいろいろ実験しましょう。

リハーサル室は、プログラミングワークショップコーナー!
大人気のプログラミングして自分で乗れる自動運転車らでぃっしゅ!

越前がにロボコンのカニロボデモ。こどもたちもロボットプログラミング体験!

ドローンだってプログラミング!宇宙という高高度の目と低高度な柔軟性ある目、使い分けが大事。

福井県知事杉本さんの訪問、カニロボも一緒に記念撮影。

IchigoJam x sakura.io でIoT人流センサー実験。こちらも大いに好評。実際に設置する場所や角度、設定など、やってみないとわからないので、やってみましょう!

本日の記録、補正前。ノイズと思われる値や、動線によるカウントを使って、ここから来場者数を算出予定。
8Fの上りエスカレーター出口は、滞留することがないので、ほぼ正確な値と思われます。

大人も楽しい、Oculus Quest x オープンデータ。いろんな発想広がります。AOSSA 8F ISTS B Inc. ブースへどうぞ!

IchigoJam 1.4を予定しているβファームウェア、サーボが扱いやすくなるアップデート。
ichigojam-1.3.2b20.zip
- WMコマンドでパラメータに変化がない時リセットしないように変更
- WS.LEDが効かない不具合修正

1 @ARUN 10 PWM 2,100+BTN()*50 20 [2]=BTN()*100:[3]=100-BTN()*100:WS.LED 2 30 GOTO 10

ボタンを押すとサーボが動いて、光り方が変わります。
1.3.1まではWAITを入れる必要があったのでよりシンプルに!
@ARUNをいれて、自動起動が簡単!

宇宙好きの皆さん、週末は福井駅前へ!

貴重な地球外探査用のロボットの展示、JAXAブース、福井駅東口AOSSAにて!


福井で惑星探査ロボと言えば、越前がにロボコン
「越前がにロボコン2018 決勝の様子」


昨年、11/25(日)開催した、小学生対抗「越前がにロボコン
今年も楽しみですね!


デバイスをいろいろ接続するコネクター、「べーん」ってなんだろう?


意外と普通の配線用のケーブル?


自分のカニロボを持ってきて、一緒に写真を撮ると記念になりますよ!


福井を宇宙から見た大きな衛星写真、宇宙服、ロケットの模型。


宇宙グッズが買える、宇宙の店!


8Fのブースでは、誰でも使える宇宙からの目、宇宙データプラットフォーム「Tellus」、プログラミング体験、ロボット、ドローン、自動運転車らでぃっしゅも体験できるブースもあります!


5Fでも様々な宇宙関連企業や学校のブースがあります。実は今回、それら入口で活躍する IchigoJam x sakura.ioを使った入場者数カウンターを計6箇所設置して実証実験。


ここは福井駅東口、宇宙飛行士の講演会やブース展示、プログラミング体験などができる、AOSSA 8F、エスカレーター下り。


どの距離で反応するか、センサーの値を見ながら現地での調整が大事。IchigoJamなら小型モニターとキーボードだけあれば、調整自在!


仮どめして、実験。カウントしてくれました。

200円の測距センサー「HC-SR04」とIchigoSodaを使ったプログラムはこちら(センサーしきい値をDとE、一度反応してから待ちをWでそれぞれ設定)

10 @ARUN:'PCONTER 20 D=6:E=9:W=120:C=0:VIDEO5 30 LC0,1:?"CNT:";C 40 LC0,0:?"PCONTER" 45 WAIT W 50 GSB@S:IF A>D CONT 60 LED1:CLT 70 WAIT6:GSB@S:IF A<=E CONT 80 C=C+1 90 T=TICK()/6:LC0,3:?"TIME:";DEC$(T,3); 100 IOT.OUT T 110 LED0:GOTO 30 120 ' 130 @S:A=0:OUT1,1:OUT1,0 140 A=A+1:IF IN(1) CONT 150 LC0,4:?"DIST:";DEC$(A,3); 160 RETURN

測距精度を上げたい場合、マシン語によるドライバを使ったこちらのバージョンもどうぞ

1 @ARUN:'PCONTER 10 POKE#700,0,32,3,73,10,104,64,28,0,42,251,209,192,9,112,71,0,16,0,80 20 D=200:E=300:W=120:C=0:VIDEO5:CLS 30 LC0,1:?"CNT:";C 40 LC0,0:?"PCONTER" 45 WAIT W 50 GSB@S:IF A>D CONT 60 LED1:CLT 70 WAIT6:GSB@S:IF A<=E CONT 80 C=C+1 90 T=TICK()/6:LC0,3:?"TIME:";DEC$(T,3); 100 IOT.OUT T 110 LED0:GOTO 30 120 ' 130 @S:OUT1,1:OUT1,0:A=USR(#700,0) 150 LC0,4:?"DIS:";DEC$(A,4);:WAIT6:RTN

来場者がある度に IOT.OUT で通信していますが、ずっと設置する場合はカウントをとっておいて、5分おきに送信などとすると、月に1万回通信に収まるので通信ランニングコスト64円でOK!
消費電力も低いので、電気代も安い!


IoT人カウンター at ISTS in FUKUI


ハピリンでも宇宙フェス!

週末の福井、宇宙を楽しもう!
ゴハン選びにオープンデータアプリ「福井のオススメ看板メニュー部門」もどうぞ!

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