ハンズオン詳細...openlayers mapの設定 openlayers mapのsettingsを選択し、 initial...

46
1 © NEC Corporation 2019 ハンズオン 詳細 2019年9月 NEC NECxさくらインターネット データ流通実証実験 あなたのデータ活用してみませんか?データ流通プラットフォームによる データ可視化のハンズオンセミナー (大阪, 東京, 福岡)

Upload: others

Post on 13-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

1 © NEC Corporation 2019

ハンズオン 詳細

2019年9月

NEC

NECxさくらインターネット データ流通実証実験

あなたのデータ活用してみませんか?データ流通プラットフォームによるデータ可視化のハンズオンセミナー (大阪, 東京, 福岡)

ハンズオン

GUI編

WireCloudへのログイン 3

WireCloudチュートリアル 8

AEDオープンデータの可視化 13

データ変換ツール 25

Web API編

curlコマンドを使ったオープンデータへのアクセス 32

WireCloudへのログイン

4 © NEC Corporation 2019

WireCloudへのログイン (1/4)

①https://wirecloud.fiware-testbed.jp/ にアクセスして、右上の Sign in をクリック

ログイン

5 © NEC Corporation 2019

WireCloudへのログイン (2/4)

②ID管理の画面でユーザとパスワードを入力し、Sign in をクリックしてください

ログイン

6 © NEC Corporation 2019

WireCloudへのログイン (3/4)

③初回のログイン時のみ、WireCloudへのアクセスを確認する画面が表示されます。Authorizeをクリックしてください

ログイン

7 © NEC Corporation 2019

WireCloudへのログイン (4/4)

④WireCloud/home の画面が表示されればログイン完了です

ログイン

WireCloudチュートリアル

9 © NEC Corporation 2019

WireCloudチュートリアル (1/4)

WireCloudのWidget, operator, wiring の概念を理解するためのチュートリアルです

画面右上の▼のメニューから、Tutorials->Basic concepts を選択して、画面の指示に従ってください。

チュートリアル

10 © NEC Corporation 2019

WireCloudチュートリアル (2/4)

チュートリアルの実行画面

チュートリアル

11 © NEC Corporation 2019

WireCloudチュートリアル (3/4) チュートリアル

チュートリアルの設定画面

12 © NEC Corporation 2019

WireCloudチュートリアル (4/4)

チュートリアルが一通り終了したら、“Video Player”のWidgetを追加して、ビデオを再生できるようWiringしてください

チュートリアル

AEDオープンデータの可視化

14 © NEC Corporation 2019

AED(自動体外式除細動器)オープンデータの可視化

画面中央上のハンバーガーアイコン(三)をクリックして、New workspace を選択して作成します。ワークスペースの名前を設定してください

AED可視化

15 © NEC Corporation 2019

OpenLayers Map Widgetの追加

ハンバーガーアイコンの右側のAdd componentsアイコンを選び、左側の一覧から、OpenLayers Map Widgetを追加します。(+) を選択

AED可視化

16 © NEC Corporation 2019

Wiringの画面に移動

Add componentsの右側のWiringアイコンを選択

AED可視化

17 © NEC Corporation 2019

Wiring画面に移動

ハンバーガーアイコンの右側のFind componentsアイコンを選び、Wiringのエリアに、WidgetsとOperatorを追加します。

AED可視化

18 © NEC Corporation 2019

OpenLayers Mapを追加 AED可視化

19 © NEC Corporation 2019

FIWARE data model To PoIとNGSI sourceを追加 AED可視化

20 © NEC Corporation 2019

WidgetとOperatorをWiringします AED可視化

21 © NEC Corporation 2019

データソース(NGSI source)を設定

項目 設定値

NGSI server URL https://orion.fiware-testbed.jp/

NGSI proxy URL https://ngsiproxy.fiware-testbed.jp

FIWARE-Service NEC

FIWARE-ServicePath /fukuoka_aed

NGSI entity types PointOfInterest

Id pattern .*

AED可視化

22 © NEC Corporation 2019

OpenLayers Mapの設定

OpenLayers MapのSettingsを選択し、Initial LocationとInitial Zoom Levelを設定してください

AED可視化

項目 設定値

Initial Locaton 130.421447, 33.588905

Initial Zoom Level 12

23 © NEC Corporation 2019

設定終了

設定が完了したら、画面左の三角のアイコンをクリックしてください。

AED可視化

24 © NEC Corporation 2019

実行画面 AED可視化

※サンプルデータの出典福岡市 AED https://ckan.open-governmentdata.org/dataset/401307_aed

データ変換ツール

26 © NEC Corporation 2019

データ変換ツールの準備 (1/3)

新しいワークスペースを作成してください

データ変換ツール

27 © NEC Corporation 2019

データ変換ツールの準備 (2/3)

ワークスペースにNGSI Converter Widgetを置いてください

データ変換ツール

28 © NEC Corporation 2019

データ変換ツールの準備 (3/3)

”Extract from gird”を選択するとWidgetがワークスペース全体に広がり、操作しやすくなります

データ変換ツール

29 © NEC Corporation 2019

データの変換 (1/3)

CSVファイルをドラッグドロップしてください

データ変換ツール

30 © NEC Corporation 2019

データの変換 (2/3) データ変換ツール

31 © NEC Corporation 2019

データの変換 (3/3) データ変換ツール

※サンプルデータの出典加古川市 オープンデータカタログサイト 防災関連施設https://opendata-api-kakogawa.jp/ckan/dataset/disastermanagementfacilities

curlコマンドを使ったオープンデータへのアクセス

33 © NEC Corporation 2019

curlコマンドを使ったオープンデータへのアクセス

福岡AEDのNGSI形式のオープンデータにコマンドラインからアクセスすることで、NGSI APIの基本を試すことができます

▌内容

トークン取得

エンティティの取得

エンティティ件数の取得

ジオフィルタリング

▌ハンズオンの手順

https://documents.fiware-testbed.jp/opendata/を開き、説明にしたがって、オープンデータにアクセスしてください

34 © NEC Corporation 2019

オープンデータへのアクセス例 (1/12)

ckan.fiware-testbed.jpではNGSI APIでアクセスできるオープンデータを公開しています。この中にある ”福岡市 AED (NGSI)” オープンデータへNGSI APIを使ってアクセスを試してみます。

まず、https://ckan.fiware-testbed.jp/dataset/401307_aed/resource/bb54bdd0-5a7d-4bac-a47a-a6f770d36104にアクセスして、データのURL、Tenant、Service Pathを確認します。

以下のような内容でした。

URL: https://orion.fiware-testbed.jp/v2/entities?type=PointOfInterestTenant: NECService Path: /fukuoka_aed

35 © NEC Corporation 2019

アクセスの前にトークンを取得します。次にスクリプトで取得できます。

$ curl -s https://orion.fiware-testbed.jp/token ¥-H ‘Content-type: application/json’ ¥-d @- <<EOF | jq{“username”: “[email protected]”,“password”: “xxxxxxxxxxxxxxxxx”

}EOF

実行すると以下のようなレスポンスがあります。

{access_token”: “ad95d1aa30ff98a7b62452b5aa63b795ef08e2e1”,“token_type”: “Bearer”,“expires_in”: 3599,“refresh_token”: “1bedde200cfca09ddc0172b647f825bd3287428b”

}

access_tokenがAPI実行時に必要なトークンです。環境変数に登録します。

$ export TOKEN=ad95d1aa30ff98a7b62452b5aa63b795ef08e2e1

オープンデータへのアクセス例 (2/12)

アクセストークンの取得と環境変数への登録

36 © NEC Corporation 2019

オープンデータへのアクセス例 (3/12)

エンティティの確認

どんなエンティティがあるか確認してみます。先ほど、ckanのページで確認した、URL、Tenant、Service Pathを使います。

$ curl -sS -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” https://orion.fiware-testbed.jp/v2/entities?type=PointOfInterest | jq .[].id“fukuoka-aed-0001”“fukuoka-aed-0002”“fukuoka-aed-0003”“fukuoka-aed-0004”“fukuoka-aed-0005”“fukuoka-aed-0006”“fukuoka-aed-0007”“fukuoka-aed-0008”“fukuoka-aed-0009”“fukuoka-aed-0010”“fukuoka-aed-0011”“fukuoka-aed-0012”“fukuoka-aed-0013”“fukuoka-aed-0014”“fukuoka-aed-0015”“fukuoka-aed-0016”“fukuoka-aed-0017”“fukuoka-aed-0018”“fukuoka-aed-0019”“fukuoka-aed-0020”

fukuoka-aed-XXXX というエンティティが多数登録されているようです。orionは、1回のクエリで既定では先頭の最大20件のエンティティを返します。

37 © NEC Corporation 2019

オープンデータへのアクセス例 (4/12)

エンティティの登録件数の確認

20件以上のエンティティがある場合、countオプションでトータルの件数がわかり、offsetとlimitのオプションで、任意の開始位置から、任意の件数のエンティティを取得できます。

それでは、何件登録されているか、確認してみます。オプション “options=count” をつけて、実行すると、レスポンスヘッダに、fiware-total-countが返されます。

curl -sS -i -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” https://orion.fiware-testbed.jp/v2/entities?options=count | grep fiware-total-countfiware-total-count: 996

996 件あるようです。最後の6件を取り出してみます。”offset=990&limit=6″ を指定して実行します。

$ curl -sS -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” “https://orion.fiware-testbed.jp/v2/entities?offset=990&limit=6” | jq .[].id“fukuoka-aed-0991”“fukuoka-aed-0992”“fukuoka-aed-0993”“fukuoka-aed-0994”“fukuoka-aed-0995”“fukuoka-aed-0996”

38 © NEC Corporation 2019

オープンデータへのアクセス例 (5/12)

エンティティの登録件数の確認

20件以上のエンティティがある場合、countオプションでトータルの件数がわかり、offsetとlimitのオプションで、任意の開始位置から、任意の件数のエンティティを取得できます。

それでは、何件登録されているか、確認してみます。オプション “options=count” をつけて、実行すると、レスポンスヘッダに、fiware-total-countが返されます。

curl -sS -i -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” https://orion.fiware-testbed.jp/v2/entities?options=count | grep fiware-total-countfiware-total-count: 996

996 件あるようです。最後の6件を取り出してみます。”offset=990&limit=6″ を指定して実行します。

$ curl -sS -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” “https://orion.fiware-testbed.jp/v2/entities?offset=990&limit=6” | jq .[].id“fukuoka-aed-0991”“fukuoka-aed-0992”“fukuoka-aed-0993”“fukuoka-aed-0994”“fukuoka-aed-0995”“fukuoka-aed-0996”

39 © NEC Corporation 2019

オープンデータへのアクセス例 (6/12)

ジオクエリの例

NGSIv2 APIには、ジオロケーション機能があり、ある場所の中心から15km近くに位置するすべてのエンティティなど、地理的な場所でフィルタリングすることができます。

これを試してみます。

エンティティのロケーションは、location属性が保持しています。fukuoka-aed-0020エンティティのlocationを確認してみます。

$ curl -s https://orion.fiware-testbed.jp/v2/entities/fukuoka-aed-0020 -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” | jq .location{“type”: “geo:json”,“value”: {“type”: “Point”,“coordinates”: [

130.294118,33.579836

]},“metadata”: {}}

40 © NEC Corporation 2019

オープンデータへのアクセス例 (7/12)

ジオクエリの例

住所は、address属性にあります。

$ curl -s https://orion.fiware-testbed.jp/v2/entities/fukuoka-aed-0020 -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” | jq .address{“type”: “StructuredValue”,“value”: {“addressLocality”: “福岡市”,“addressCountry”: “JP”,“addressRegion”: “福岡県”,“streetAddress”: “西区生の松原1丁目33番1号”,“@type”: “PostalAddress”

},metadata”: {}

}

41 © NEC Corporation 2019

オープンデータへのアクセス例 (8/12)

ジオクエリの例

次に、前ページのエンティティのロケーションを中心として、1km以内にあるAEDの設置場所を検索してみます。

以下のようなクエリ・パラメータを指定して実行します。georel=near;maxDistance:1000&geometry=point&coords=33.579836,130.294118

$ curl -sS -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” “https://orion.fiware-testbed.jp/v2/entities?georel=near;maxDistance:1000&geometry=point&coords=33.579836,130.294118” | jq .[].id“fukuoka-aed-0020”“fukuoka-aed-0341”“fukuoka-aed-0499”“fukuoka-aed-0634”

中心の”fukuoka-aed-0020″を含め、4件のエンティティが見つかりました。

42 © NEC Corporation 2019

オープンデータへのアクセス例 (9/12)

ジオクエリの例

詳細情報として住所を確認してみます。

$ curl -sS -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” “https://orion.fiware-testbed.jp/v2/entities?georel=near;maxDistance:1000&geometry=point&coords=33.579836,130.294118” | jq .[].address

{“type”: “StructuredValue”,“value”: {“addressLocality”: “福岡市”,“addressCountry”: “JP”,“addressRegion”: “福岡県”,“streetAddress”: “西区生の松原1丁目33番1号”,“@type”: “PostalAddress”},“metadata”: {}}{“type”: “StructuredValue”,“value”: {“addressLocality”: “福岡市”,“addressCountry”: “JP”,“addressRegion”: “福岡県”,“streetAddress”: “西区生の松原3丁目9番1号”,“@type”: “PostalAddress”},“metadata”: {}}{

“type”: “StructuredValue”,“value”: {“addressLocality”: “福岡市”,“addressCountry”: “JP”,“addressRegion”: “福岡県”,“streetAddress”: “西区生の松原3丁目9番2号”,“@type”: “PostalAddress”},“metadata”: {}}{“type”: “StructuredValue”,“value”: {“addressLocality”: “福岡市”,“addressCountry”: “JP”,“addressRegion”: “福岡県”,“streetAddress”: “西区上山門3-5-1”,“@type”: “PostalAddress”},“metadata”: {}}4件とも西区にあるAED設置場所が取得できました。

43 © NEC Corporation 2019

オープンデータへのアクセス例 (10/12)

コンパクトなレスポンス (key-value形式)

エンティティを取得する際、オプションにkeyValuesやvaluesを指定することで、コンパクトで簡単な表現でレスポンスを取得できます。まず、オプションを指定しないで、fukuoka-aed-0001のエンティティ情報を取得してみます。

curl “https://orion.fiware-testbed.jp/v2/entities/fukuoka-aed-0001” -sS -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” | jq .{“id”: “fukuoka-aed-0001”,“type”: “PointOfInterest”,“address”: {“type”: “StructuredValue”,“value”: {“addressLocality”: “福岡市”,“addressCountry”: “JP”,“addressRegion”: “福岡県”,“streetAddress”: “博多区博多駅前四丁目19-7”,“@type”: “PostalAddress”},“metadata”: {}},“category”: {“type”: “StructuredValue”,“value”: [“41”],“metadata”: {}},“description”: {“type”: “Text”,“value”: “AED設置場所:1階玄関付近¥n使用時間:24時間使用可能”,“metadata”: {}

},“location”: {“type”: “geo:json”,“value”: {“type”: “Point”,“coordinates”: [130.419087,33.584888]},“metadata”: {}},“name”: {“type”: “Text”,“value”: “博多消防署”,“metadata”: {}},“source”: {“type”: “URL”,“value”: “https://ckan.open-governmentdata.org/dataset/aed”,“metadata”: {}},“subCategory”: {“type”: “Text”,“value”: “AED”,“metadata”: {}}}

44 © NEC Corporation 2019

オープンデータへのアクセス例 (11/12)

コンパクトなレスポンス (key-value形式)

次に、keyValuesオプションを指定して、fukuoka-aed-0001のエンティティ情報を取得してみます。オプションなしのレスポンスと比べ、簡単な表現になりました。

$ curl “https://orion.fiware-testbed.jp/v2/entities/fukuoka-aed-0001?options=keyValues” -s -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” | jq .{“id”: “fukuoka-aed-0001”,“type”: “PointOfInterest”,“address”: {“addressLocality”: “福岡市”,“addressCountry”: “JP”,“addressRegion”: “福岡県”,“streetAddress”: “博多区博多駅前四丁目19-7”,“@type”: “PostalAddress”},“category”: [“41”],“description”: “AED設置場所:1階玄関付近¥n使用時間:24時間使用可能”,“location”: {“type”: “Point”,“coordinates”: [130.419087,33.584888]},“name”: “博多消防署”,“source”: “https://ckan.open-governmentdata.org/dataset/aed”,“subCategory”: “AED”}

45 © NEC Corporation 2019

オープンデータへのアクセス例 (12/12)

コンパクトなレスポンス (key-value形式)

次に、valuesオプションを指定して、fukuoka-aed-0001のエンティティ情報を取得してみます。valuesオプションには、取得したい属性とその順番を指定できます。AEDの設置場所の名前(name)と説明(description)を取得してみます。

$ curl “https://orion.fiware-testbed.jp/v2/entities/fukuoka-aed-0001?options=values&attrs=name,description” -sS -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” | jq .[“博多消防署”,“AED設置場所:1階玄関付近¥n使用時間:24時間使用可能”]

上記のようにname,descriptionの値のみを取得できました。

次に、属性の順序を逆にして、説明、名前の順で取得してみます。

$ curl “https://orion.fiware-testbed.jp/v2/entities/fukuoka-aed-0001?options=values&attrs=description,name” -sS -H “X-Auth-Token: $TOKEN” -H “Fiware-Service: NEC” -H “Fiware-ServicePath: /fukuoka_aed” | jq .[“AED設置場所:1階玄関付近¥n使用時間:24時間使用可能”,“博多消防署”]