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

オープンデータ伝道師への出動要請あって、新潟県妙高市へ。

鯖江市などでのオープンデータの活用を事例を交えて紹介、IoTプログラミング体験、地理院マップアプリをベースに避難所一覧2つ星オープンデータのアプリ化、SPARQL!

妙高市役所、上越市役所の皆さんと!5つ星オープンデータで、つなげましょう、上越と鯖江!


妙高市避難所一覧(サンプル)
こちら、研修内にて使った、妙高市オープンデータの避難所一覧を表示するものに、更に、今回の旅写真を加えてみました。避難所データはWordファイルで、緯度経度未記載。緯度経度地図を使って、3点ほど追加してみました。 マップアプリづくりも、IchigoJamのプログラミングを一歩先。(src on GitHub

5つ星オープンデータを手軽に実現する odp で、アプリ作成もとっても簡単に!
災害別避難所案内「ヒナンパス」は、データをいれると、即使えます。


縮小すると、上越妙高駅付近や、名物とん汁ラーメンなどの写真も置いてみました。(addIcon)


妙高市議の村越さんと!(アップいただいた、IoT研修中の動画


月額64円で実現、IchigoSoda(sakura.io x IchigoJam)でかんたんIoTプログラミング!
妙高市役所、オープンデータ担当の池田さん、とても楽しそう!


雪の上越妙高駅!雪は少ないそう。


会場は、妙高市役所。エレベーターで見かけたゆるキャラ「ミョーコーさん
胸元の馬は、雪解けとともに山に現れる、跳ね馬!
跳ね馬(はねうま)・牛形 - haneumas jimdo page!
妙高市役所最寄りの新井駅から上越妙高駅をつなぐ、妙高はねうまラインの名前の由来。


災害相互応援協定を結ぶまち、姉妹都市など、関係ある都市同士を結ぶオープンデータもおもしろそう。


松茶屋のとん汁ラーメン、一見大きなとん汁


でも、らーめんが入ってる!


唐辛子を雪にさらして、3年寝かす、薬味、かんずり!いろいろ付けておいしい!


上越妙高駅近くにあるコンテナを並べた飲食店、FURUSATTO(フルサット)


こちらにも、かんずり!特性中華ソースで食べる、地元の鳥料理が美味!(食堂酒場 酉かつ

その土地ならではの特産物、ローカルチェーンなど、グルメオープンデータ、あるといいですね!

EXIFのGPS、位置情報付き写真から、JSONデータをつくるPython3のプログラムつくりました。お手軽マップづくりがはかどります。

from PIL import Image def toDegree(v): d = float(v[0][0]) / float(v[0][1]) m = float(v[1][0]) / float(v[1][1]) s = float(v[2][0]) / float(v[2][1]) return d + (m / 60.0) + (s / 3600.0) def fixfloat(d, beem): s = str(d) n = s.find('.') if n < 0: return s s += "0000000000" return s[0:n + beem + 1] def fixnum(n, beem): s = "0000000000000" + str(n) return s[-beem:] def getExifGPS(fn): im = Image.open(fn) exif = im._getexif() for id, value in exif.items(): if id == 0x8825: # GPS gps = value lat = toDegree(gps[2]) if gps[1] == 'S': lat = -lat lng = toDegree(gps[4]) if gps[3] == 'W': lng = -lng return fixfloat(lat, 7) + "," + fixfloat(lng, 7) return '' def getExifDate(fn): im = Image.open(fn) exif = im._getexif() for id, value in exif.items(): if id == 0x9003: # DateTimeOriginal s = ''.join(value.split(':')) return ''.join(s.split(' ')) return '' def getImageSize(fn): im = Image.open(fn) h, w, c = im.shape return str(w) + '.' + str(h) import os import sys files = os.listdir('./') list = [] for f in files: if f.endswith('.jpg') or f.endswith('.JPG'): list.append([ f, getExifDate(f) ]) list.sort(key = lambda x: x[1]) if len(sys.argv) > 1: nameprefix = sys.argv[1] n = 0 for i in range(len(list)): f = list[i][0] f2 = nameprefix + '-' + fixnum(n, 2) + ".jpg" os.rename(f, f2) list[i][0] = f2 n += 1 print('[') for item in list: f = item[0] print('{ name: "' + f + '", size: [ ' + getImageSize(f) + ' ], latlng: [ ' + getExifGPS(f) + ' ] },') print(']')

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