Submit Search
iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する
8 likes
4,730 views
Atsushi Tadokoro
1 of 36
Download now
Downloaded 19 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
More Related Content
PDF
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
Atsushi Tadokoro
PDF
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
Atsushi Tadokoro
PDF
iTamabi 13 第5回:ARTSAT API 導入
Atsushi Tadokoro
PDF
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
Atsushi Tadokoro
PDF
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM)
Atsushi Tadokoro
PDF
Interactive Music II ProcessingとSuperColliderの連携1
Atsushi Tadokoro
PDF
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
Atsushi Tadokoro
PDF
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
Atsushi Tadokoro
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
Atsushi Tadokoro
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
Atsushi Tadokoro
iTamabi 13 第5回:ARTSAT API 導入
Atsushi Tadokoro
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
Atsushi Tadokoro
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM)
Atsushi Tadokoro
Interactive Music II ProcessingとSuperColliderの連携1
Atsushi Tadokoro
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
Atsushi Tadokoro
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
Atsushi Tadokoro
What's hot
(16)
PDF
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
Atsushi Tadokoro
PDF
衛星芸術Pbl 2011 10_18
Koichiro Mori
PDF
衛星芸術Pbl 2011 10_11
Koichiro Mori
PDF
Media Art II 2013 第5回:openFrameworks Addonを使用する
Atsushi Tadokoro
PDF
Interactive Music II Processingによるアニメーション
Atsushi Tadokoro
PDF
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム
Atsushi Tadokoro
PDF
AVRマイコン入門
amusementcreators
PDF
20210514 sports IoTLT vol7 kitazaki v1
Ayachika Kitazaki
PPTX
Makerの「道具」としてのカスタムLSI
Junichi Akita
PDF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
Atsushi Tadokoro
PPTX
async/await のしくみ
信之 岩永
PDF
Slide
Takefumi MIYOSHI
PDF
Common LispでGPGPU
gos-k
PDF
Synthesijer and Synthesijer.Scala in HLS-friends 201512
Takefumi MIYOSHI
PDF
iTamabi iPhoneアプリ実践開発講座2 - 時計アプリをつくる
Atsushi Tadokoro
PDF
Log解析の超入門
菊池 佑太
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
Atsushi Tadokoro
衛星芸術Pbl 2011 10_18
Koichiro Mori
衛星芸術Pbl 2011 10_11
Koichiro Mori
Media Art II 2013 第5回:openFrameworks Addonを使用する
Atsushi Tadokoro
Interactive Music II Processingによるアニメーション
Atsushi Tadokoro
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム
Atsushi Tadokoro
AVRマイコン入門
amusementcreators
20210514 sports IoTLT vol7 kitazaki v1
Ayachika Kitazaki
Makerの「道具」としてのカスタムLSI
Junichi Akita
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
Atsushi Tadokoro
async/await のしくみ
信之 岩永
Slide
Takefumi MIYOSHI
Common LispでGPGPU
gos-k
Synthesijer and Synthesijer.Scala in HLS-friends 201512
Takefumi MIYOSHI
iTamabi iPhoneアプリ実践開発講座2 - 時計アプリをつくる
Atsushi Tadokoro
Log解析の超入門
菊池 佑太
Ad
Similar to iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する
(20)
PPTX
Develop Web Application with Node.js + Express
Akinari Tsugo
PDF
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Toshiyuki Ienaga
PDF
Head toward Java 15 and Java 16
Yuji Kubota
PDF
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Yuki Takei
PDF
Using Ext Direct with SenchaTouch2
久司 中村
PDF
Stream processing and Norikra
SATOSHI TAGOMORI
PDF
WordPressと外部APIとの連携
Hidekazu Ishikawa
PPTX
Facebook Parseの世界
maruyama097
PDF
SparqlEPCUが提供するlod開発プラットフォーム
Chubu University
PDF
【Interop Tokyo 2018】 Telemetryの匠が解説~オープン技術を用いたマイクロバースト検知の最前線~
Juniper Networks (日本)
PDF
AppiumのWebViewアプリテストの仕組みとハマりどころ
Masayuki Wakizaka
PDF
Data apiで実現 進化するwebの世界
Yuji Takayama
PPTX
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
Fujio Kojima
PDF
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
PDF
MacPort japanese_ver.1.0
Satoshi Kume
PDF
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
PDF
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
PDF
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
PDF
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
PDF
Parse触ってみた
Naoya Harasawa
Develop Web Application with Node.js + Express
Akinari Tsugo
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Toshiyuki Ienaga
Head toward Java 15 and Java 16
Yuji Kubota
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Yuki Takei
Using Ext Direct with SenchaTouch2
久司 中村
Stream processing and Norikra
SATOSHI TAGOMORI
WordPressと外部APIとの連携
Hidekazu Ishikawa
Facebook Parseの世界
maruyama097
SparqlEPCUが提供するlod開発プラットフォーム
Chubu University
【Interop Tokyo 2018】 Telemetryの匠が解説~オープン技術を用いたマイクロバースト検知の最前線~
Juniper Networks (日本)
AppiumのWebViewアプリテストの仕組みとハマりどころ
Masayuki Wakizaka
Data apiで実現 進化するwebの世界
Yuji Takayama
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
Fujio Kojima
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
MacPort japanese_ver.1.0
Satoshi Kume
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
ネットワーク自動化、なに使う? ~自動化ツール紹介~(2017/08/18追加開催)
akira6592
ネットワーク自動化、なに使う? ~自動化ツール紹介~ (2017/07/21開催)
akira6592
Parse触ってみた
Naoya Harasawa
Ad
More from Atsushi Tadokoro
(20)
PDF
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
Atsushi Tadokoro
PDF
プログラム初級講座 - メディア芸術をはじめよう
Atsushi Tadokoro
PDF
Interactive Music II ProcessingとSuperColliderの連携 -2
Atsushi Tadokoro
PDF
coma Creators session vol.2
Atsushi Tadokoro
PDF
Interactive Music II Processing基本
Atsushi Tadokoro
PDF
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Atsushi Tadokoro
PDF
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Atsushi Tadokoro
PDF
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Atsushi Tadokoro
PDF
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
Atsushi Tadokoro
PDF
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
Atsushi Tadokoro
PDF
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Atsushi Tadokoro
PDF
Tamabi media131118
Atsushi Tadokoro
PDF
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Atsushi Tadokoro
PDF
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Atsushi Tadokoro
PDF
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
Atsushi Tadokoro
PDF
Media Art II openFrameworks 複数のシーンの管理・切替え
Atsushi Tadokoro
PDF
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Atsushi Tadokoro
PDF
Geidai music131107
Atsushi Tadokoro
PDF
Interactive Music II SuperCollider入門 5 時間構造をつくる
Atsushi Tadokoro
PDF
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
Atsushi Tadokoro
プログラム初級講座 - メディア芸術をはじめよう
Atsushi Tadokoro
Interactive Music II ProcessingとSuperColliderの連携 -2
Atsushi Tadokoro
coma Creators session vol.2
Atsushi Tadokoro
Interactive Music II Processing基本
Atsushi Tadokoro
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Atsushi Tadokoro
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Atsushi Tadokoro
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Atsushi Tadokoro
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
Atsushi Tadokoro
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
Atsushi Tadokoro
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Atsushi Tadokoro
Tamabi media131118
Atsushi Tadokoro
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Atsushi Tadokoro
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Atsushi Tadokoro
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
Atsushi Tadokoro
Media Art II openFrameworks 複数のシーンの管理・切替え
Atsushi Tadokoro
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Atsushi Tadokoro
Geidai music131107
Atsushi Tadokoro
Interactive Music II SuperCollider入門 5 時間構造をつくる
Atsushi Tadokoro
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する
1.
iTamabi 13 第6回:ARTSAT API
実践 1 Web APIから情報を取得する 2013年10月21日 多摩美術大学 PBL科目 担当:田所 淳
2.
今日の内容 ‣ ARTSAT Web
API を利用して、各種センサーの情報を取得 ‣ 取得するのは、ARTSAT Projectの第一弾衛星、INVADERのシ ミュレーションデータ
3.
ARTSAT WebAPI
4.
ARTSAT WebAPI ‣ ARTSAT
WebAPI - Web経由でARTSATの情報を取得可能 ‣ http://api.artsat.jp/web/
5.
ARTSAT WebAPI ‣ INVADERのセンサー情報は、下記のURLから取得できる ‣
http://api.artsat.jp/web/v2/invader/sensor_data.json ‣ JSON形式で、ブラウザにデータが表示される { "results": [{ "interpolated": true, "requested_time_unix": 1382216472, "requested_time_iso_string": "2013-10-20T06:01:12.000+09:00", "closest_available_time_unix": 1382216200, "closest_available_time_iso_string": "2013-10-20T05:56:40.000+09:00", "sensors": { "lat": { "type": "float", "unit": "degrees", "value": -59.82505 }, "lon": { "type": "float", "unit": "degrees", "value": 60.40049 }, "alt": { "type": "float", "unit": "degrees", "value": 463.5504 }, "ax": { "type": "float",
6.
ARTSAT WebAPI ‣ データの内容 { "results":
[{ "interpolated": true, "requested_time_unix": 1382216472, ← リクエスト "requested_time_iso_string": "2013-10-20T06:01:12.000+09:00", "closest_available_time_unix": 1382216200, した時間 "closest_available_time_iso_string": "2013-10-20T05:56:40.000+09:00", "sensors": { "lat": { "type": "float", "unit": "degrees", "value": -59.82505 }, "lon": { "type": "float", "unit": "degrees", "value": 60.40049 }, "alt": { "type": "float", "unit": "degrees", "value": 463.5504 }, "ax": { "type": "float", "unit": "rad/s", "value": -0.0011949767 }, "ay": { "type": "float",
7.
ARTSAT WebAPI ‣ データの内容 { "results":
[{ "interpolated": true, "requested_time_unix": 1382216472, "requested_time_iso_string": "2013-10-20T06:01:12.000+09:00", "closest_available_time_unix": 1382216200, "closest_available_time_iso_string": "2013-10-20T05:56:40.000+09:00", "sensors": { "lat": { ↑ "type": "float", "unit": "degrees", リクエストした時間から一番近い "value": -59.82505 }, 取得可能な時間 "lon": { "type": "float", "unit": "degrees", "value": 60.40049 }, "alt": { "type": "float", "unit": "degrees", "value": 463.5504 }, "ax": { "type": "float", "unit": "rad/s", "value": -0.0011949767 }, "ay": { "type": "float",
8.
ARTSAT WebAPI ‣ データの内容 { "results":
[{ "interpolated": true, "requested_time_unix": 1382216472, "requested_time_iso_string": "2013-10-20T06:01:12.000+09:00", "closest_available_time_unix": 1382216200, "closest_available_time_iso_string": "2013-10-20T05:56:40.000+09:00", "sensors": { "lat": { "type": "float", "unit": "degrees", ← 取得したセンサーの値 "value": -59.82505 }, "lon": { "type": "float", "unit": "degrees", "value": 60.40049 }, "alt": { "type": "float", "unit": "degrees", "value": 463.5504 }, "ax": { "type": "float", "unit": "rad/s", "value": -0.0011949767 }, "ay": { "type": "float",
9.
WebAPI の値をopenFrameworksに読み込む
10.
ofxJSONをインストール
11.
ofxJSONをインストール ‣ Webブラウザで、INVADERのセンサーの値を表示できた ‣ この結果を、openFrameworksから利用したい ‣
JSONデータにアクセスして、その結果をパース(解析)するため の機能が必要 ‣ ofxJSON というアドオン(拡張機能)を利用する
12.
ofxJSONをインストール ‣ iOSでも利用可能に修正したofxJSONを下記に用意 ‣ Zip形式でダウンロードする ‣
https://github.com/tado/ofxJSON
13.
ofxJSONをインストール ‣ ofxJSON-masterのZipファイルを解凍し、addons/ 以下に
14.
新規プロジェクトの作成
15.
WebAPI の値をopenFrameworksに読み込む ‣ 新規プロジェクトを作成 ‣
apps/myApps/emptyExample をフォルダごとコピー
16.
WebAPI の値をopenFrameworksに読み込む ‣ 作成したプロジェクトをXcodeで開く ‣
「addons」を右クリック → 「Add files...」を選択
17.
WebAPI の値をopenFrameworksに読み込む ‣ addons/ofxJSON
を選択
18.
WebAPI の値をopenFrameworksに読み込む ‣ 「src
」と「lib」フォルダ以外は削除 ‣ 下記のような、ファイル構成に
19.
JSONファイルを読み込んでみる
20.
JSONファイルを読み込んでみる ‣ 作成したプロジェクトに、INVADERのJSONデータを読み込ん でみる ‣ とても簡単!!
21.
JSONファイルを読み込んでみる ‣ testApp.h #pragma once #include #include #include #include "ofMain.h" "ofxiOS.h" "ofxiOSExtras.h" "ofxJSONElement.h" ←
追加 class testApp : public ofxiOSApp{ public: void void void void setup(); update(); draw(); exit(); ...(中略)... }; ofxJSONElement response; ← 追加
22.
JSONファイルを読み込んでみる ‣ testApp.mm #include "testApp.h" //-------------------------------------------------------------void
testApp::setup(){ ofBackground(224); ofSetFrameRate(30); // ARTSAT WebAPIにアクセスしてJSONデータを取得 bool result = response.open("http://api.artsat.jp/web/v2/invader/ sensor_data.json"); // 取得結果をコンソールに出力 if (!result) { // もし取得できなかったら、エラーを出力 cout << "faild to get JSON data!" << endl; } else { // 取得に成功したら、JSONデータを出力 } ... } cout << response.getRawString() << endl;
23.
JSONファイルを読み込んでみる ‣ ビルドして実行 ‣ Xcodeのコンソール(画面下)に、JSONデータが表示される
24.
JSONデータを画面に表示
25.
JSONデータを画面に表示 ‣ JSONデータをopenFrameworksのプログラムに読み込むこと ができた ‣ 次に画面にデータを表示したい ‣
まず手始めに、取得したJSONの文字列をそのまま画面に表示 してみる ‣ ofDrawBitmapString() を使用する
26.
JSONデータを画面に表示 ‣ testApp.mm ‣ testApp::draw()
に下記のプログラムを追加 #include "testApp.h" ...(中略)... //-------------------------------------------------------------void testApp::draw(){ ofSetColor(63); ofDrawBitmapString(response.getRawString(), 10, 12); }
27.
JSONデータを画面に表示 ‣ iPhoneの画面にJSONデータが表示 される(はず)!
28.
JSONデータをパース(解析)する
29.
JSONデータをパース(解析)する ‣ 取得したJSONデータから、センサーの値をとり出すには? ‣ JSONデータをパース(解析)する必要がある ‣
ofxJSONでは、簡単に分解してデータをとり出せる! ‣ それぞれのデータの値は、以下のようにして取得可能 // “lat”の値をFloat型で取得 response["results"][0]["sensors"]["lat"]["value"].asFloat(); // “lon”の値をFloat型で取得 response["results"][0]["sensors"]["lon"]["value"].asFloat(); // “alt”の値をFloat型で取得 response["results"][0]["sensors"]["alt"]["value"].asFloat(); ...
30.
JSONデータをパース(解析)する ‣ testApp.mm ‣ testApp::draw()
に下記のプログラムを追加 void testApp::draw(){ ofSetColor(63); int lineHeigt = 15; // JSONデータをパースして、画面に表示 string available_time = response["results"][0] ["closest_available_time_iso_string"].asString(); ofDrawBitmapString(available_time, 10, lineHeigt*1); float lat = response["results"][0]["sensors"]["lat"] ["value"].asFloat(); ofDrawBitmapString("lat = " + ofToString(lat,12), 10, lineHeigt*2); float lon = response["results"][0]["sensors"]["lon"] ["value"].asFloat(); ofDrawBitmapString("lon = " + ofToString(lon,12), 10, lineHeigt*3); float alt = response["results"][0]["sensors"]["alt"] ["value"].asFloat(); ofDrawBitmapString("alt = " + ofToString(alt,12), 10, lineHeigt*4); float ax = response["results"][0]["sensors"]["ax"]["value"].asFloat(); ofDrawBitmapString("ax = " + ofToString(ax,12), 10, lineHeigt*5); float ay = response["results"][0]["sensors"]["ay"]["value"].asFloat(); ofDrawBitmapString("ay = " + ofToString(ay,12), 10, lineHeigt*6); float az = response["results"][0]["sensors"]["az"]["value"].asFloat(); ofDrawBitmapString("az = " + ofToString(az,12), 10, lineHeigt*7); }
31.
JSONデータをパース(解析)する ‣ それぞれのセンサーの値を、独立し て取り出すことが出来た! ‣ あとは、この値をどのように視覚化 するか ‣
続きは次週に!!
32.
参考: センサーの値を全て出力
33.
参考: センサーの値を全て出力 ‣ センサーの値を全て出力するプログラム ‣
JSONのパースに、少し工夫が必要
34.
JSONデータをパース(解析)する ‣ testApp.mm #include "testApp.h" ...(中略)... void
testApp::draw(){ ofSetColor(63); int lineHeigt = 15; // 取得した時間を表示 string available_time = response["results"][0] ["closest_available_time_iso_string"].asString(); ofDrawBitmapString(available_time, 10, lineHeigt*1); // センサーの全てのメンバー名を取得 ofxJSONElement::Members mem = response["results"][0]["sensors"].getMemberNames(); // メンバーごとにセンサーの値をとりだして、画面に表示 for (int i = 0; i < mem.size(); i++) { string lavel = mem[i]; float value = response["results"][0]["sensors"][mem[i]]["value"].asFloat(); ofDrawBitmapString(lavel + " = " + ofToString(value), 10, lineHeigt * (i + 3)); } }
35.
JSONデータを画面に表示 ‣ 完成!!
36.
今日はここまで 続きは、来週に!
Download